UNPKG

@itwin/itwinui-react

Version:

A react component library for iTwinUI

98 lines (97 loc) 3.17 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true, }); function _export(target, all) { for (var name in all) Object.defineProperty(target, name, { enumerable: true, get: all[name], }); } _export(exports, { SELECTION_CELL_ID: function () { return SELECTION_CELL_ID; }, SelectionColumn: function () { return SelectionColumn; }, }); const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard'); const _react = /*#__PURE__*/ _interop_require_wildcard._(require('react')); const _Checkbox = require('../../Checkbox/Checkbox.js'); const _index = require('../cells/index.js'); const _Table = require('../Table.js'); const SELECTION_CELL_ID = 'iui-table-checkbox-selector'; const SelectionColumn = (props = {}) => { let { isDisabled, density } = props; let densityWidth = 'condensed' === density ? 42 : 'extra-condensed' === density ? 34 : 48; return { id: SELECTION_CELL_ID, disableResizing: true, disableGroupBy: true, disableReordering: true, minWidth: densityWidth, width: densityWidth, maxWidth: densityWidth, columnClassName: 'iui-slot', cellClassName: 'iui-slot', Header: ({ getToggleAllRowsSelectedProps, toggleAllRowsSelected, rows, preFilteredFlatRows, state, }) => { let disabled = preFilteredFlatRows.every((row) => isDisabled?.(row.original), ); let checked = preFilteredFlatRows.every( (row) => state.selectedRowIds[row.id] || isDisabled?.(row.original), ); let indeterminate = !checked && Object.keys(state.selectedRowIds).length > 0 && Object.values(state.selectedRowIds).some((v) => true === v); let nextToggleState = !rows.some((row) => row.isSelected); return _react.createElement(_Checkbox.Checkbox, { ...getToggleAllRowsSelectedProps(), style: {}, title: '', checked: checked && !disabled, indeterminate: indeterminate, disabled: disabled, 'aria-label': `${nextToggleState ? 'Select' : 'Deselect'} all rows`, onChange: () => toggleAllRowsSelected(nextToggleState), }); }, Cell: ({ row, selectSubRows = true }) => _react.createElement(_Checkbox.Checkbox, { ...row.getToggleRowSelectedProps(), style: {}, title: '', disabled: isDisabled?.(row.original), onClick: (e) => e.stopPropagation(), 'aria-label': `${row.isSelected ? 'Deselect' : 'Select'} row`, onChange: () => { if ( row.subRows.length > 0 && selectSubRows && void 0 === row.initialSubRows[0].original[_Table.iuiId] ) row.toggleRowSelected( !row.subRows.every( (subRow) => subRow.isSelected || isDisabled?.(subRow.original), ), ); else row.toggleRowSelected(!row.isSelected); }, }), cellRenderer: (props) => _react.createElement(_index.DefaultCell, { ...props, isDisabled: (rowData) => !!isDisabled?.(rowData), }), }; };