UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

161 lines (160 loc) 4.42 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 expander = _react.useMemo( () => tableHasSubRows && hasSubRowExpander && cell.row.canExpand ? _react.createElement(_SubRowExpander.SubRowExpander, { cell: cell, isDisabled: isDisabled, cellProps: cellProps, expanderCell: expanderCell, density: density, slot: 'start', }) : null, [ cell, cellProps, density, expanderCell, hasSubRowExpander, isDisabled, tableHasSubRows, ], ); let cellContent = _react.useMemo(() => cell.render('Cell'), [cell]); let shadows = _react.useMemo( () => _react.createElement( _react.Fragment, null, 'left' === cell.column.sticky && tableInstance.state.sticky.isScrolledToRight && _react.createElement(_index2.Box, { className: 'iui-table-cell-shadow-right', }), 'right' === cell.column.sticky && tableInstance.state.sticky.isScrolledToLeft && _react.createElement(_index2.Box, { className: 'iui-table-cell-shadow-left', }), ), [ cell.column.sticky, tableInstance.state.sticky.isScrolledToLeft, tableInstance.state.sticky.isScrolledToRight, ], ); let defaultCellRendererChildren = _react.useMemo( () => _react.createElement( _react.Fragment, null, expander, cellContent, shadows, ), [cellContent, expander, shadows], ); let cellRendererProps = _react.useMemo( () => ({ cellElementProps, cellProps, children: defaultCellRendererChildren, }), [cellElementProps, cellProps, defaultCellRendererChildren], ); return _react.createElement( _react.Fragment, null, _react.createElement( _DefaultCell.DefaultCellContext.Provider, { value: _react.useMemo( () => ({ children: defaultCellRendererChildren, expander, shadows, }), [defaultCellRendererChildren, expander, shadows], ), }, cell.column.cellRenderer ? cell.column.cellRenderer({ ...cellRendererProps, isDisabled: () => isDisabled, }) : _react.createElement(_index1.DefaultCell, { ...cellRendererProps, isDisabled: () => isDisabled, }), ), ); };