UNPKG

@talend/react-components

Version:
76 lines (75 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _propTypes = _interopRequireDefault(require("prop-types")); var _reactVirtualized = require("react-virtualized"); var _RowSelection = _interopRequireDefault(require("../RowSelection")); var _ListGridModule = _interopRequireDefault(require("./ListGrid.module.scss")); var _rowclick = require("../event/rowclick"); var _jsxRuntime = require("react/jsx-runtime"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } /** * List renderer that accepts a custom row renderer. * The row renderer will create a row element for each collection item. */function ListGrid(props) { const { collection, isActive, isSelected, getRowState, onRowClick, onRowDoubleClick, rowRenderer, rowCount, ...restProps } = props; let enhancedRowRenderer = rowRenderer; if (isActive || isSelected || getRowState) { enhancedRowRenderer = (0, _RowSelection.default)(rowRenderer, { isActive, isSelected, getRowState, getRowData: ({ index }) => collection[index] }); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactVirtualized.List, { className: `tc-list-list ${_ListGridModule.default['tc-list-list']}`, collection: collection, overscanRowCount: 10, onRowClick: (0, _rowclick.decorateRowClick)(onRowClick), onRowDoubleClick: (0, _rowclick.decorateRowDoubleClick)(onRowDoubleClick), rowCount: rowCount || collection.length, rowRenderer: enhancedRowRenderer, rowGetter: index => collection[index] || {}, role: "group", "aria-label": "list", containerRole: "list", ...restProps }); } ListGrid.displayName = 'VirtualizedList(ListGrid)'; ListGrid.propTypes = { children: _propTypes.default.arrayOf(_propTypes.default.element), collection: _propTypes.default.arrayOf(_propTypes.default.object), height: _propTypes.default.number, id: _propTypes.default.string, isActive: _propTypes.default.func, isSelected: _propTypes.default.func, getRowState: _propTypes.default.func, noRowsRenderer: _propTypes.default.func, onRowClick: _propTypes.default.func, onRowDoubleClick: _propTypes.default.func, rowCount: _propTypes.default.number, rowHeight: _propTypes.default.number, rowRenderer: _propTypes.default.func, width: _propTypes.default.number }; ListGrid.defaultProps = { rowHeight: 170 }; var _default = exports.default = ListGrid; //# sourceMappingURL=ListGrid.component.js.map