UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

152 lines (151 loc) 4.18 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); Object.defineProperty(exports, 'TableCell', { enumerable: true, get: function () { return TableCell; }, }); const _interop_require_default = require('@swc/helpers/_/_interop_require_default'); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _classnames = /*#__PURE__*/ _interop_require_default._( require('classnames'), ); const _utils = require('./utils.js'); const _SubRowExpander = require('./SubRowExpander.js'); const _index = require('./columns/index.js'); const _index1 = require('./cells/index.js'); const _index2 = require('../../utils/index.js'); const _DefaultCell = require('./cells/DefaultCell.js'); const TableCell = (props) => { let { cell, cellIndex, isDisabled, tableHasSubRows, tableInstance, expanderCell, density, } = props; let hasSubRowExpander = cellIndex === cell.row.cells.findIndex((c) => c.column.id !== _index.SELECTION_CELL_ID); let cellElementProps = cell.getCellProps({ className: (0, _classnames.default)( 'iui-table-cell', cell.column.cellClassName, { 'iui-table-cell-sticky': !!cell.column.sticky, }, ), style: { ...(0, _utils.getCellStyle)( cell.column, !!tableInstance.state.isTableResizing, ), ...(tableHasSubRows && hasSubRowExpander && (0, _utils.getSubRowStyle)({ density, depth: cell.row.depth + (cell.row.canExpand ? 0 : 1), })), ...(0, _utils.getStickyStyle)(cell.column, tableInstance.visibleColumns), }, }); let cellProps = _react.useMemo( () => ({ ...tableInstance, ...{ cell, row: cell.row, value: cell.value, column: cell.column, }, }), [cell, tableInstance], ); let cellContent = _react.useMemo( () => _react.createElement( _react.Fragment, null, tableHasSubRows && hasSubRowExpander && cell.row.canExpand && _react.createElement(_SubRowExpander.SubRowExpander, { cell: cell, isDisabled: isDisabled, cellProps: cellProps, expanderCell: expanderCell, density: density, slot: 'start', }), cell.render('Cell'), ), [ cell, cellProps, density, expanderCell, hasSubRowExpander, isDisabled, tableHasSubRows, ], ); let defaultCellRendererChildren = _react.useMemo( () => _react.createElement( _react.Fragment, null, cellContent, 'left' === cell.column.sticky && tableInstance.state.sticky.isScrolledToRight && _react.createElement(_index2.Box, { className: 'iui-table-cell-shadow-right', slot: 'shadows', }), 'right' === cell.column.sticky && tableInstance.state.sticky.isScrolledToLeft && _react.createElement(_index2.Box, { className: 'iui-table-cell-shadow-left', slot: 'shadows', }), ), [ cell.column.sticky, cellContent, tableInstance.state.sticky.isScrolledToLeft, tableInstance.state.sticky.isScrolledToRight, ], ); let cellRendererProps = _react.useMemo( () => ({ cellElementProps, cellProps, children: defaultCellRendererChildren, }), [cellElementProps, cellProps, defaultCellRendererChildren], ); return _react.createElement( _react.Fragment, null, _react.createElement( _DefaultCell.DefaultCellRendererPropsChildren.Provider, { value: defaultCellRendererChildren, }, cell.column.cellRenderer ? cell.column.cellRenderer({ ...cellRendererProps, isDisabled: () => isDisabled, }) : _react.createElement(_index1.DefaultCell, { ...cellRendererProps, isDisabled: () => isDisabled, }), ), ); };