UNPKG

react-table-6

Version:

A fast, lightweight, opinionated table and datagrid built on React

834 lines (727 loc) 115 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.ReactTableDefaults = undefined; var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = require('react'); var _react2 = _interopRequireDefault(_react); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _utils = require('./utils'); var _utils2 = _interopRequireDefault(_utils); var _lifecycle = require('./lifecycle'); var _lifecycle2 = _interopRequireDefault(_lifecycle); var _methods = require('./methods'); var _methods2 = _interopRequireDefault(_methods); var _defaultProps = require('./defaultProps'); var _defaultProps2 = _interopRequireDefault(_defaultProps); var _propTypes = require('./propTypes'); var _propTypes2 = _interopRequireDefault(_propTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // var ReactTableDefaults = exports.ReactTableDefaults = _defaultProps2.default; var ReactTable = function (_Methods) { _inherits(ReactTable, _Methods); function ReactTable(props) { _classCallCheck(this, ReactTable); var _this = _possibleConstructorReturn(this, (ReactTable.__proto__ || Object.getPrototypeOf(ReactTable)).call(this)); _this.getResolvedState = _this.getResolvedState.bind(_this); _this.getDataModel = _this.getDataModel.bind(_this); _this.getSortedData = _this.getSortedData.bind(_this); _this.fireFetchData = _this.fireFetchData.bind(_this); _this.getPropOrState = _this.getPropOrState.bind(_this); _this.getStateOrProp = _this.getStateOrProp.bind(_this); _this.filterData = _this.filterData.bind(_this); _this.sortData = _this.sortData.bind(_this); _this.getMinRows = _this.getMinRows.bind(_this); _this.onPageChange = _this.onPageChange.bind(_this); _this.onPageSizeChange = _this.onPageSizeChange.bind(_this); _this.sortColumn = _this.sortColumn.bind(_this); _this.filterColumn = _this.filterColumn.bind(_this); _this.resizeColumnStart = _this.resizeColumnStart.bind(_this); _this.resizeColumnEnd = _this.resizeColumnEnd.bind(_this); _this.resizeColumnMoving = _this.resizeColumnMoving.bind(_this); _this.state = { page: props.defaultPage, pageSize: props.defaultPageSize, sorted: props.defaultSorted, expanded: props.defaultExpanded, filtered: props.defaultFiltered, resized: props.defaultResized, currentlyResizing: false, skipNextSort: false }; return _this; } _createClass(ReactTable, [{ key: 'render', value: function render() { var _this2 = this; var resolvedState = this.getResolvedState(); var children = resolvedState.children, className = resolvedState.className, style = resolvedState.style, getProps = resolvedState.getProps, getTableProps = resolvedState.getTableProps, getTheadGroupProps = resolvedState.getTheadGroupProps, getTheadGroupTrProps = resolvedState.getTheadGroupTrProps, getTheadGroupThProps = resolvedState.getTheadGroupThProps, getTheadProps = resolvedState.getTheadProps, getTheadTrProps = resolvedState.getTheadTrProps, getTheadThProps = resolvedState.getTheadThProps, getTheadFilterProps = resolvedState.getTheadFilterProps, getTheadFilterTrProps = resolvedState.getTheadFilterTrProps, getTheadFilterThProps = resolvedState.getTheadFilterThProps, getTbodyProps = resolvedState.getTbodyProps, getTrGroupProps = resolvedState.getTrGroupProps, getTrProps = resolvedState.getTrProps, getTdProps = resolvedState.getTdProps, getTfootProps = resolvedState.getTfootProps, getTfootTrProps = resolvedState.getTfootTrProps, getTfootTdProps = resolvedState.getTfootTdProps, getPaginationProps = resolvedState.getPaginationProps, getLoadingProps = resolvedState.getLoadingProps, getNoDataProps = resolvedState.getNoDataProps, getResizerProps = resolvedState.getResizerProps, showPagination = resolvedState.showPagination, showPaginationTop = resolvedState.showPaginationTop, showPaginationBottom = resolvedState.showPaginationBottom, manual = resolvedState.manual, loadingText = resolvedState.loadingText, noDataText = resolvedState.noDataText, sortable = resolvedState.sortable, multiSort = resolvedState.multiSort, resizable = resolvedState.resizable, filterable = resolvedState.filterable, pivotIDKey = resolvedState.pivotIDKey, pivotValKey = resolvedState.pivotValKey, pivotBy = resolvedState.pivotBy, subRowsKey = resolvedState.subRowsKey, aggregatedKey = resolvedState.aggregatedKey, originalKey = resolvedState.originalKey, indexKey = resolvedState.indexKey, groupedByPivotKey = resolvedState.groupedByPivotKey, loading = resolvedState.loading, pageSize = resolvedState.pageSize, page = resolvedState.page, sorted = resolvedState.sorted, filtered = resolvedState.filtered, resized = resolvedState.resized, expanded = resolvedState.expanded, pages = resolvedState.pages, onExpandedChange = resolvedState.onExpandedChange, TableComponent = resolvedState.TableComponent, TheadComponent = resolvedState.TheadComponent, TbodyComponent = resolvedState.TbodyComponent, TrGroupComponent = resolvedState.TrGroupComponent, TrComponent = resolvedState.TrComponent, ThComponent = resolvedState.ThComponent, TdComponent = resolvedState.TdComponent, TfootComponent = resolvedState.TfootComponent, PaginationComponent = resolvedState.PaginationComponent, LoadingComponent = resolvedState.LoadingComponent, SubComponent = resolvedState.SubComponent, NoDataComponent = resolvedState.NoDataComponent, ResizerComponent = resolvedState.ResizerComponent, ExpanderComponent = resolvedState.ExpanderComponent, PivotValueComponent = resolvedState.PivotValueComponent, PivotComponent = resolvedState.PivotComponent, AggregatedComponent = resolvedState.AggregatedComponent, FilterComponent = resolvedState.FilterComponent, PadRowComponent = resolvedState.PadRowComponent, resolvedData = resolvedState.resolvedData, allVisibleColumns = resolvedState.allVisibleColumns, headerGroups = resolvedState.headerGroups, hasHeaderGroups = resolvedState.hasHeaderGroups, sortedData = resolvedState.sortedData, currentlyResizing = resolvedState.currentlyResizing; // Pagination var startRow = pageSize * page; var endRow = startRow + pageSize; var pageRows = manual ? resolvedData : sortedData.slice(startRow, endRow); var minRows = this.getMinRows(); var padRows = _utils2.default.range(Math.max(minRows - pageRows.length, 0)); var hasColumnFooter = allVisibleColumns.some(function (d) { return d.Footer; }); var hasFilters = filterable || allVisibleColumns.some(function (d) { return d.filterable; }); var recurseRowsViewIndex = function recurseRowsViewIndex(rows) { var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : -1; return [rows.map(function (row, i) { index += 1; var rowWithViewIndex = _extends({}, row, { _viewIndex: index }); var newPath = path.concat([i]); if (rowWithViewIndex[subRowsKey] && _utils2.default.get(expanded, newPath)) { var _recurseRowsViewIndex = recurseRowsViewIndex(rowWithViewIndex[subRowsKey], newPath, index); var _recurseRowsViewIndex2 = _slicedToArray(_recurseRowsViewIndex, 2); rowWithViewIndex[subRowsKey] = _recurseRowsViewIndex2[0]; index = _recurseRowsViewIndex2[1]; } return rowWithViewIndex; }), index]; }; var _recurseRowsViewIndex3 = recurseRowsViewIndex(pageRows); var _recurseRowsViewIndex4 = _slicedToArray(_recurseRowsViewIndex3, 1); pageRows = _recurseRowsViewIndex4[0]; var canPrevious = page > 0; var canNext = page + 1 < pages; var rowMinWidth = _utils2.default.sum(allVisibleColumns.map(function (d) { var resizedColumn = resized.find(function (x) { return x.id === d.id; }) || {}; return _utils2.default.getFirstDefined(resizedColumn.value, d.width, d.minWidth); })); var rowIndex = -1; var finalState = _extends({}, resolvedState, { startRow: startRow, endRow: endRow, pageRows: pageRows, minRows: minRows, padRows: padRows, hasColumnFooter: hasColumnFooter, canPrevious: canPrevious, canNext: canNext, rowMinWidth: rowMinWidth }); var rootProps = _utils2.default.splitProps(getProps(finalState, undefined, undefined, this)); var tableProps = _utils2.default.splitProps(getTableProps(finalState, undefined, undefined, this)); var tBodyProps = _utils2.default.splitProps(getTbodyProps(finalState, undefined, undefined, this)); var loadingProps = getLoadingProps(finalState, undefined, undefined, this); var noDataProps = getNoDataProps(finalState, undefined, undefined, this); // Visual Components var makeHeaderGroup = function makeHeaderGroup(column, i) { var resizedValue = function resizedValue(col) { return (resized.find(function (x) { return x.id === col.id; }) || {}).value; }; var flex = _utils2.default.sum(column.columns.map(function (col) { return col.width || resizedValue(col) ? 0 : col.minWidth; })); var width = _utils2.default.sum(column.columns.map(function (col) { return _utils2.default.getFirstDefined(resizedValue(col), col.width, col.minWidth); })); var maxWidth = _utils2.default.sum(column.columns.map(function (col) { return _utils2.default.getFirstDefined(resizedValue(col), col.width, col.maxWidth); })); var theadGroupThProps = _utils2.default.splitProps(getTheadGroupThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _utils2.default.splitProps(column.getHeaderProps(finalState, undefined, column, _this2)); var classes = [column.headerClassName, theadGroupThProps.className, columnHeaderProps.className]; var styles = _extends({}, column.headerStyle, theadGroupThProps.style, columnHeaderProps.style); var rest = _extends({}, theadGroupThProps.rest, columnHeaderProps.rest); var flexStyles = { flex: flex + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }; return _react2.default.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: (0, _classnames2.default)(classes), style: _extends({}, styles, flexStyles) }, rest), _utils2.default.normalizeComponent(column.Header, { data: sortedData, column: column }) ); }; var makeHeaderGroups = function makeHeaderGroups() { var theadGroupProps = _utils2.default.splitProps(getTheadGroupProps(finalState, undefined, undefined, _this2)); var theadGroupTrProps = _utils2.default.splitProps(getTheadGroupTrProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement( TheadComponent, _extends({ className: (0, _classnames2.default)('-headerGroups', theadGroupProps.className), style: _extends({}, theadGroupProps.style, { minWidth: rowMinWidth + 'px' }) }, theadGroupProps.rest), _react2.default.createElement( TrComponent, _extends({ className: theadGroupTrProps.className, style: theadGroupTrProps.style }, theadGroupTrProps.rest), headerGroups.map(makeHeaderGroup) ) ); }; var makeHeader = function makeHeader(column, i) { var resizedCol = resized.find(function (x) { return x.id === column.id; }) || {}; var sort = sorted.find(function (d) { return d.id === column.id; }); var show = typeof column.show === 'function' ? column.show() : column.show; var width = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var theadThProps = _utils2.default.splitProps(getTheadThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _utils2.default.splitProps(column.getHeaderProps(finalState, undefined, column, _this2)); var classes = [column.headerClassName, theadThProps.className, columnHeaderProps.className]; var styles = _extends({}, column.headerStyle, theadThProps.style, columnHeaderProps.style); var rest = _extends({}, theadThProps.rest, columnHeaderProps.rest); var isResizable = _utils2.default.getFirstDefined(column.resizable, resizable, false); var resizer = isResizable ? _react2.default.createElement(ResizerComponent, _extends({ onMouseDown: function onMouseDown(e) { return _this2.resizeColumnStart(e, column, false); }, onTouchStart: function onTouchStart(e) { return _this2.resizeColumnStart(e, column, true); } }, getResizerProps('finalState', undefined, column, _this2))) : null; var isSortable = _utils2.default.getFirstDefined(column.sortable, sortable, false); return _react2.default.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: (0, _classnames2.default)(classes, isResizable && 'rt-resizable-header', sort ? sort.desc ? '-sort-desc' : '-sort-asc' : '', isSortable && '-cursor-pointer', !show && '-hidden', pivotBy && pivotBy.slice(0, -1).includes(column.id) && 'rt-header-pivot'), style: _extends({}, styles, { flex: width + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }), toggleSort: function toggleSort(e) { if (isSortable) _this2.sortColumn(column, multiSort ? e.shiftKey : false); } }, rest), _react2.default.createElement( 'div', { className: (0, _classnames2.default)(isResizable && 'rt-resizable-header-content') }, _utils2.default.normalizeComponent(column.Header, { data: sortedData, column: column }) ), resizer ); }; var makeHeaders = function makeHeaders() { var theadProps = _utils2.default.splitProps(getTheadProps(finalState, undefined, undefined, _this2)); var theadTrProps = _utils2.default.splitProps(getTheadTrProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement( TheadComponent, _extends({ className: (0, _classnames2.default)('-header', theadProps.className), style: _extends({}, theadProps.style, { minWidth: rowMinWidth + 'px' }) }, theadProps.rest), _react2.default.createElement( TrComponent, _extends({ className: theadTrProps.className, style: theadTrProps.style }, theadTrProps.rest), allVisibleColumns.map(makeHeader) ) ); }; var makeFilter = function makeFilter(column, i) { var resizedCol = resized.find(function (x) { return x.id === column.id; }) || {}; var width = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var theadFilterThProps = _utils2.default.splitProps(getTheadFilterThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _utils2.default.splitProps(column.getHeaderProps(finalState, undefined, column, _this2)); var classes = [column.headerClassName, theadFilterThProps.className, columnHeaderProps.className]; var styles = _extends({}, column.headerStyle, theadFilterThProps.style, columnHeaderProps.style); var rest = _extends({}, theadFilterThProps.rest, columnHeaderProps.rest); var filter = filtered.find(function (filter) { return filter.id === column.id; }); var ResolvedFilterComponent = column.Filter || FilterComponent; var isFilterable = _utils2.default.getFirstDefined(column.filterable, filterable, false); return _react2.default.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: (0, _classnames2.default)(classes), style: _extends({}, styles, { flex: width + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }) }, rest), isFilterable ? _utils2.default.normalizeComponent(ResolvedFilterComponent, { column: column, filter: filter, onChange: function onChange(value) { return _this2.filterColumn(column, value); } }, _defaultProps2.default.column.Filter) : null ); }; var makeFilters = function makeFilters() { var theadFilterProps = _utils2.default.splitProps(getTheadFilterProps(finalState, undefined, undefined, _this2)); var theadFilterTrProps = _utils2.default.splitProps(getTheadFilterTrProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement( TheadComponent, _extends({ className: (0, _classnames2.default)('-filters', theadFilterProps.className), style: _extends({}, theadFilterProps.style, { minWidth: rowMinWidth + 'px' }) }, theadFilterProps.rest), _react2.default.createElement( TrComponent, _extends({ className: theadFilterTrProps.className, style: theadFilterTrProps.style }, theadFilterTrProps.rest), allVisibleColumns.map(makeFilter) ) ); }; var makePageRow = function makePageRow(row, i) { var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var rowInfo = { original: row[originalKey], row: row, index: row[indexKey], viewIndex: rowIndex += 1, pageSize: pageSize, page: page, level: path.length, nestingPath: path.concat([i]), aggregated: row[aggregatedKey], groupedByPivot: row[groupedByPivotKey], subRows: row[subRowsKey] }; var isExpanded = _utils2.default.get(expanded, rowInfo.nestingPath); var trGroupProps = getTrGroupProps(finalState, rowInfo, undefined, _this2); var trProps = _utils2.default.splitProps(getTrProps(finalState, rowInfo, undefined, _this2)); return _react2.default.createElement( TrGroupComponent, _extends({ key: rowInfo.nestingPath.join('_') }, trGroupProps), _react2.default.createElement( TrComponent, _extends({ className: (0, _classnames2.default)(trProps.className, row._viewIndex % 2 ? '-even' : '-odd'), style: trProps.style }, trProps.rest), allVisibleColumns.map(function (column, i2) { var resizedCol = resized.find(function (x) { return x.id === column.id; }) || {}; var show = typeof column.show === 'function' ? column.show() : column.show; var width = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tdProps = _utils2.default.splitProps(getTdProps(finalState, rowInfo, column, _this2)); var columnProps = _utils2.default.splitProps(column.getProps(finalState, rowInfo, column, _this2)); var classes = [tdProps.className, column.className, columnProps.className]; var styles = _extends({}, tdProps.style, column.style, columnProps.style); var cellInfo = _extends({}, rowInfo, { isExpanded: isExpanded, column: _extends({}, column), value: rowInfo.row[column.id], pivoted: column.pivoted, expander: column.expander, resized: resized, show: show, width: width, maxWidth: maxWidth, tdProps: tdProps, columnProps: columnProps, classes: classes, styles: styles }); var value = cellInfo.value; var useOnExpanderClick = void 0; var isBranch = void 0; var isPreview = void 0; var onExpanderClick = function onExpanderClick(e) { var newExpanded = _utils2.default.clone(expanded); if (isExpanded) { newExpanded = _utils2.default.set(newExpanded, cellInfo.nestingPath, false); } else { newExpanded = _utils2.default.set(newExpanded, cellInfo.nestingPath, {}); } return _this2.setStateWithData({ expanded: newExpanded }, function () { return onExpandedChange && onExpandedChange(newExpanded, cellInfo.nestingPath, e, cellInfo); }); }; // Default to a standard cell var resolvedCell = _utils2.default.normalizeComponent(column.Cell, cellInfo, value); // Resolve Renderers var ResolvedAggregatedComponent = column.Aggregated || (!column.aggregate ? AggregatedComponent : column.Cell); var ResolvedExpanderComponent = column.Expander || ExpanderComponent; var ResolvedPivotValueComponent = column.PivotValue || PivotValueComponent; var DefaultResolvedPivotComponent = PivotComponent || function (props) { return _react2.default.createElement( 'div', null, _react2.default.createElement(ResolvedExpanderComponent, props), _react2.default.createElement(ResolvedPivotValueComponent, props) ); }; var ResolvedPivotComponent = column.Pivot || DefaultResolvedPivotComponent; // Is this cell expandable? if (cellInfo.pivoted || cellInfo.expander) { // Make it expandable by defualt cellInfo.expandable = true; useOnExpanderClick = true; // If pivoted, has no subRows, and does not have a subComponent, // do not make expandable if (cellInfo.pivoted && !cellInfo.subRows && !SubComponent) { cellInfo.expandable = false; } } if (cellInfo.pivoted) { // Is this column a branch? isBranch = rowInfo.row[pivotIDKey] === column.id && cellInfo.subRows; // Should this column be blank? isPreview = pivotBy.indexOf(column.id) > pivotBy.indexOf(rowInfo.row[pivotIDKey]) && cellInfo.subRows; // Pivot Cell Render Override if (isBranch) { // isPivot resolvedCell = _utils2.default.normalizeComponent(ResolvedPivotComponent, _extends({}, cellInfo, { value: row[pivotValKey] }), row[pivotValKey]); } else if (isPreview) { // Show the pivot preview resolvedCell = _utils2.default.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value); } else { resolvedCell = null; } } else if (cellInfo.aggregated) { resolvedCell = _utils2.default.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value); } if (cellInfo.expander) { resolvedCell = _utils2.default.normalizeComponent(ResolvedExpanderComponent, cellInfo, row[pivotValKey]); if (pivotBy) { if (cellInfo.groupedByPivot) { resolvedCell = null; } if (!cellInfo.subRows && !SubComponent) { resolvedCell = null; } } } var resolvedOnExpanderClick = useOnExpanderClick ? onExpanderClick : function () {}; // If there are multiple onClick events, make sure they don't // override eachother. This should maybe be expanded to handle all // function attributes var interactionProps = { onClick: resolvedOnExpanderClick }; if (tdProps.rest.onClick) { interactionProps.onClick = function (e) { tdProps.rest.onClick(e, function () { return resolvedOnExpanderClick(e); }); }; } if (columnProps.rest.onClick) { interactionProps.onClick = function (e) { columnProps.rest.onClick(e, function () { return resolvedOnExpanderClick(e); }); }; } // Return the cell return _react2.default.createElement( TdComponent // eslint-disable-next-line react/no-array-index-key , _extends({ key: i2 + '-' + column.id, className: (0, _classnames2.default)(classes, !cellInfo.expandable && !show && 'hidden', cellInfo.expandable && 'rt-expandable', (isBranch || isPreview) && 'rt-pivot'), style: _extends({}, styles, { flex: width + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }) }, tdProps.rest, columnProps.rest, interactionProps), resolvedCell ); }) ), rowInfo.subRows && isExpanded && rowInfo.subRows.map(function (d, i) { return makePageRow(d, i, rowInfo.nestingPath); }), SubComponent && !rowInfo.subRows && isExpanded && SubComponent(rowInfo, function () { var newExpanded = _utils2.default.clone(expanded); _utils2.default.set(newExpanded, rowInfo.nestingPath, false); }) ); }; var makePadColumn = function makePadColumn(column, i) { var resizedCol = resized.find(function (x) { return x.id === column.id; }) || {}; var show = typeof column.show === 'function' ? column.show() : column.show; var width = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.minWidth); var flex = width; var maxWidth = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tdProps = _utils2.default.splitProps(getTdProps(finalState, undefined, column, _this2)); var columnProps = _utils2.default.splitProps(column.getProps(finalState, undefined, column, _this2)); var classes = [tdProps.className, column.className, columnProps.className]; var styles = _extends({}, tdProps.style, column.style, columnProps.style); return _react2.default.createElement( TdComponent, _extends({ key: i + '-' + column.id, className: (0, _classnames2.default)(classes, !show && 'hidden'), style: _extends({}, styles, { flex: flex + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }) }, tdProps.rest), _utils2.default.normalizeComponent(PadRowComponent) ); }; var makePadRow = function makePadRow(row, i) { var trGroupProps = getTrGroupProps(finalState, undefined, undefined, _this2); var trProps = _utils2.default.splitProps(getTrProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement( TrGroupComponent, _extends({ key: 'pad-' + i }, trGroupProps), _react2.default.createElement( TrComponent, { className: (0, _classnames2.default)('-padRow', (pageRows.length + i) % 2 ? '-even' : '-odd', trProps.className), style: trProps.style || {} }, allVisibleColumns.map(makePadColumn) ) ); }; var makeColumnFooter = function makeColumnFooter(column, i) { var resizedCol = resized.find(function (x) { return x.id === column.id; }) || {}; var show = typeof column.show === 'function' ? column.show() : column.show; var width = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _utils2.default.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tFootTdProps = _utils2.default.splitProps(getTfootTdProps(finalState, undefined, column, _this2)); var columnProps = _utils2.default.splitProps(column.getProps(finalState, undefined, column, _this2)); var columnFooterProps = _utils2.default.splitProps(column.getFooterProps(finalState, undefined, column, _this2)); var classes = [tFootTdProps.className, column.className, columnProps.className, columnFooterProps.className]; var styles = _extends({}, tFootTdProps.style, column.style, columnProps.style, columnFooterProps.style); return _react2.default.createElement( TdComponent, _extends({ key: i + '-' + column.id, className: (0, _classnames2.default)(classes, !show && 'hidden'), style: _extends({}, styles, { flex: width + ' 0 auto', width: _utils2.default.asPx(width), maxWidth: _utils2.default.asPx(maxWidth) }) }, columnProps.rest, tFootTdProps.rest, columnFooterProps.rest), _utils2.default.normalizeComponent(column.Footer, { data: sortedData, column: column }) ); }; var makeColumnFooters = function makeColumnFooters() { var tFootProps = _utils2.default.splitProps(getTfootProps(finalState, undefined, undefined, _this2)); var tFootTrProps = _utils2.default.splitProps(getTfootTrProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement( TfootComponent, _extends({ className: tFootProps.className, style: _extends({}, tFootProps.style, { minWidth: rowMinWidth + 'px' }) }, tFootProps.rest), _react2.default.createElement( TrComponent, _extends({ className: (0, _classnames2.default)(tFootTrProps.className), style: tFootTrProps.style }, tFootTrProps.rest), allVisibleColumns.map(makeColumnFooter) ) ); }; var makePagination = function makePagination(isTop) { var paginationProps = _utils2.default.splitProps(getPaginationProps(finalState, undefined, undefined, _this2)); return _react2.default.createElement(PaginationComponent, _extends({}, resolvedState, { pages: pages, canPrevious: canPrevious, canNext: canNext, onPageChange: _this2.onPageChange, onPageSizeChange: _this2.onPageSizeChange, className: paginationProps.className, style: paginationProps.style, isTop: isTop }, paginationProps.rest)); }; var makeTable = function makeTable() { return _react2.default.createElement( 'div', _extends({ className: (0, _classnames2.default)('ReactTable', className, rootProps.className), style: _extends({}, style, rootProps.style) }, rootProps.rest), showPagination && showPaginationTop ? _react2.default.createElement( 'div', { className: 'pagination-top' }, makePagination(true) ) : null, _react2.default.createElement( TableComponent, _extends({ className: (0, _classnames2.default)(tableProps.className, currentlyResizing ? 'rt-resizing' : ''), style: tableProps.style }, tableProps.rest), hasHeaderGroups ? makeHeaderGroups() : null, makeHeaders(), hasFilters ? makeFilters() : null, _react2.default.createElement( TbodyComponent, _extends({ className: (0, _classnames2.default)(tBodyProps.className), style: _extends({}, tBodyProps.style, { minWidth: rowMinWidth + 'px' }) }, tBodyProps.rest), pageRows.map(function (d, i) { return makePageRow(d, i); }), padRows.map(makePadRow) ), hasColumnFooter ? makeColumnFooters() : null ), showPagination && showPaginationBottom ? _react2.default.createElement( 'div', { className: 'pagination-bottom' }, makePagination(false) ) : null, !pageRows.length && _react2.default.createElement( NoDataComponent, noDataProps, _utils2.default.normalizeComponent(noDataText) ), _react2.default.createElement(LoadingComponent, _extends({ loading: loading, loadingText: loadingText }, loadingProps)) ); }; // childProps are optionally passed to a function-as-a-child return children ? children(finalState, makeTable, this) : makeTable(); } }]); return ReactTable; }((0, _methods2.default)((0, _lifecycle2.default)(_react.Component))); ReactTable.propTypes = _propTypes2.default; ReactTable.defaultProps = _defaultProps2.default; exports.default = ReactTable; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJSZWFjdFRhYmxlRGVmYXVsdHMiLCJkZWZhdWx0UHJvcHMiLCJSZWFjdFRhYmxlIiwicHJvcHMiLCJnZXRSZXNvbHZlZFN0YXRlIiwiYmluZCIsImdldERhdGFNb2RlbCIsImdldFNvcnRlZERhdGEiLCJmaXJlRmV0Y2hEYXRhIiwiZ2V0UHJvcE9yU3RhdGUiLCJnZXRTdGF0ZU9yUHJvcCIsImZpbHRlckRhdGEiLCJzb3J0RGF0YSIsImdldE1pblJvd3MiLCJvblBhZ2VDaGFuZ2UiLCJvblBhZ2VTaXplQ2hhbmdlIiwic29ydENvbHVtbiIsImZpbHRlckNvbHVtbiIsInJlc2l6ZUNvbHVtblN0YXJ0IiwicmVzaXplQ29sdW1uRW5kIiwicmVzaXplQ29sdW1uTW92aW5nIiwic3RhdGUiLCJwYWdlIiwiZGVmYXVsdFBhZ2UiLCJwYWdlU2l6ZSIsImRlZmF1bHRQYWdlU2l6ZSIsInNvcnRlZCIsImRlZmF1bHRTb3J0ZWQiLCJleHBhbmRlZCIsImRlZmF1bHRFeHBhbmRlZCIsImZpbHRlcmVkIiwiZGVmYXVsdEZpbHRlcmVkIiwicmVzaXplZCIsImRlZmF1bHRSZXNpemVkIiwiY3VycmVudGx5UmVzaXppbmciLCJza2lwTmV4dFNvcnQiLCJyZXNvbHZlZFN0YXRlIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJzdHlsZSIsImdldFByb3BzIiwiZ2V0VGFibGVQcm9wcyIsImdldFRoZWFkR3JvdXBQcm9wcyIsImdldFRoZWFkR3JvdXBUclByb3BzIiwiZ2V0VGhlYWRHcm91cFRoUHJvcHMiLCJnZXRUaGVhZFByb3BzIiwiZ2V0VGhlYWRUclByb3BzIiwiZ2V0VGhlYWRUaFByb3BzIiwiZ2V0VGhlYWRGaWx0ZXJQcm9wcyIsImdldFRoZWFkRmlsdGVyVHJQcm9wcyIsImdldFRoZWFkRmlsdGVyVGhQcm9wcyIsImdldFRib2R5UHJvcHMiLCJnZXRUckdyb3VwUHJvcHMiLCJnZXRUclByb3BzIiwiZ2V0VGRQcm9wcyIsImdldFRmb290UHJvcHMiLCJnZXRUZm9vdFRyUHJvcHMiLCJnZXRUZm9vdFRkUHJvcHMiLCJnZXRQYWdpbmF0aW9uUHJvcHMiLCJnZXRMb2FkaW5nUHJvcHMiLCJnZXROb0RhdGFQcm9wcyIsImdldFJlc2l6ZXJQcm9wcyIsInNob3dQYWdpbmF0aW9uIiwic2hvd1BhZ2luYXRpb25Ub3AiLCJzaG93UGFnaW5hdGlvbkJvdHRvbSIsIm1hbnVhbCIsImxvYWRpbmdUZXh0Iiwibm9EYXRhVGV4dCIsInNvcnRhYmxlIiwibXVsdGlTb3J0IiwicmVzaXphYmxlIiwiZmlsdGVyYWJsZSIsInBpdm90SURLZXkiLCJwaXZvdFZhbEtleSIsInBpdm90QnkiLCJzdWJSb3dzS2V5IiwiYWdncmVnYXRlZEtleSIsIm9yaWdpbmFsS2V5IiwiaW5kZXhLZXkiLCJncm91cGVkQnlQaXZvdEtleSIsImxvYWRpbmciLCJwYWdlcyIsIm9uRXhwYW5kZWRDaGFuZ2UiLCJUYWJsZUNvbXBvbmVudCIsIlRoZWFkQ29tcG9uZW50IiwiVGJvZHlDb21wb25lbnQiLCJUckdyb3VwQ29tcG9uZW50IiwiVHJDb21wb25lbnQiLCJUaENvbXBvbmVudCIsIlRkQ29tcG9uZW50IiwiVGZvb3RDb21wb25lbnQiLCJQYWdpbmF0aW9uQ29tcG9uZW50IiwiTG9hZGluZ0NvbXBvbmVudCIsIlN1YkNvbXBvbmVudCIsIk5vRGF0YUNvbXBvbmVudCIsIlJlc2l6ZXJDb21wb25lbnQiLCJFeHBhbmRlckNvbXBvbmVudCIsIlBpdm90VmFsdWVDb21wb25lbnQiLCJQaXZvdENvbXBvbmVudCIsIkFnZ3JlZ2F0ZWRDb21wb25lbnQiLCJGaWx0ZXJDb21wb25lbnQiLCJQYWRSb3dDb21wb25lbnQiLCJyZXNvbHZlZERhdGEiLCJhbGxWaXNpYmxlQ29sdW1ucyIsImhlYWRlckdyb3VwcyIsImhhc0hlYWRlckdyb3VwcyIsInNvcnRlZERhdGEiLCJzdGFydFJvdyIsImVuZFJvdyIsInBhZ2VSb3dzIiwic2xpY2UiLCJtaW5Sb3dzIiwicGFkUm93cyIsIl8iLCJyYW5nZSIsIk1hdGgiLCJtYXgiLCJsZW5ndGgiLCJoYXNDb2x1bW5Gb290ZXIiLCJzb21lIiwiZCIsIkZvb3RlciIsImhhc0ZpbHRlcnMiLCJyZWN1cnNlUm93c1ZpZXdJbmRleCIsInJvd3MiLCJwYXRoIiwiaW5kZXgiLCJtYXAiLCJyb3ciLCJpIiwicm93V2l0aFZpZXdJbmRleCIsIl92aWV3SW5kZXgiLCJuZXdQYXRoIiwiY29uY2F0IiwiZ2V0IiwiY2FuUHJldmlvdXMiLCJjYW5OZXh0Iiwicm93TWluV2lkdGgiLCJzdW0iLCJyZXNpemVkQ29sdW1uIiwiZmluZCIsIngiLCJpZCIsImdldEZpcnN0RGVmaW5lZCIsInZhbHVlIiwid2lkdGgiLCJtaW5XaWR0aCIsInJvd0luZGV4IiwiZmluYWxTdGF0ZSIsInJvb3RQcm9wcyIsInNwbGl0UHJvcHMiLCJ1bmRlZmluZWQiLCJ0YWJsZVByb3BzIiwidEJvZHlQcm9wcyIsImxvYWRpbmdQcm9wcyIsIm5vRGF0YVByb3BzIiwibWFrZUhlYWRlckdyb3VwIiwiY29sdW1uIiwicmVzaXplZFZhbHVlIiwiY29sIiwiZmxleCIsImNvbHVtbnMiLCJtYXhXaWR0aCIsInRoZWFkR3JvdXBUaFByb3BzIiwiY29sdW1uSGVhZGVyUHJvcHMiLCJnZXRIZWFkZXJQcm9wcyIsImNsYXNzZXMiLCJoZWFkZXJDbGFzc05hbWUiLCJzdHlsZXMiLCJoZWFkZXJTdHlsZSIsInJlc3QiLCJmbGV4U3R5bGVzIiwiYXNQeCIsIm5vcm1hbGl6ZUNvbXBvbmVudCIsIkhlYWRlciIsImRhdGEiLCJtYWtlSGVhZGVyR3JvdXBzIiwidGhlYWRHcm91cFByb3BzIiwidGhlYWRHcm91cFRyUHJvcHMiLCJtYWtlSGVhZGVyIiwicmVzaXplZENvbCIsInNvcnQiLCJzaG93IiwidGhlYWRUaFByb3BzIiwiaXNSZXNpemFibGUiLCJyZXNpemVyIiwiZSIsImlzU29ydGFibGUiLCJkZXNjIiwiaW5jbHVkZXMiLCJzaGlmdEtleSIsIm1ha2VIZWFkZXJzIiwidGhlYWRQcm9wcyIsInRoZWFkVHJQcm9wcyIsIm1ha2VGaWx0ZXIiLCJ0aGVhZEZpbHRlclRoUHJvcHMiLCJmaWx0ZXIiLCJSZXNvbHZlZEZpbHRlckNvbXBvbmVudCIsIkZpbHRlciIsImlzRmlsdGVyYWJsZSIsIm9uQ2hhbmdlIiwibWFrZUZpbHRlcnMiLCJ0aGVhZEZpbHRlclByb3BzIiwidGhlYWRGaWx0ZXJUclByb3BzIiwibWFrZVBhZ2VSb3ciLCJyb3dJbmZvIiwib3JpZ2luYWwiLCJ2aWV3SW5kZXgiLCJsZXZlbCIsIm5lc3RpbmdQYXRoIiwiYWdncmVnYXRlZCIsImdyb3VwZWRCeVBpdm90Iiwic3ViUm93cyIsImlzRXhwYW5kZWQiLCJ0ckdyb3VwUHJvcHMiLCJ0clByb3BzIiwiam9pbiIsImkyIiwidGRQcm9wcyIsImNvbHVtblByb3BzIiwiY2VsbEluZm8iLCJwaXZvdGVkIiwiZXhwYW5kZXIiLCJ1c2VPbkV4cGFuZGVyQ2xpY2siLCJpc0JyYW5jaCIsImlzUHJldmlldyIsIm9uRXhwYW5kZXJDbGljayIsIm5ld0V4cGFuZGVkIiwiY2xvbmUiLCJzZXQiLCJzZXRTdGF0ZVdpdGhEYXRhIiwicmVzb2x2ZWRDZWxsIiwiQ2VsbCIsIlJlc29sdmVkQWdncmVnYXRlZENvbXBvbmVudCIsIkFnZ3JlZ2F0ZWQiLCJhZ2dyZWdhdGUiLCJSZXNvbHZlZEV4cGFuZGVyQ29tcG9uZW50IiwiRXhwYW5kZXIiLCJSZXNvbHZlZFBpdm90VmFsdWVDb21wb25lbnQiLCJQaXZvdFZhbHVlIiwiRGVmYXVsdFJlc29sdmVkUGl2b3RDb21wb25lbnQiLCJSZXNvbHZlZFBpdm90Q29tcG9uZW50IiwiUGl2b3QiLCJleHBhbmRhYmxlIiwiaW5kZXhPZiIsInJlc29sdmVkT25FeHBhbmRlckNsaWNrIiwiaW50ZXJhY3Rpb25Qcm9wcyIsIm9uQ2xpY2siLCJtYWtlUGFkQ29sdW1uIiwibWFrZVBhZFJvdyIsIm1ha2VDb2x1bW5Gb290ZXIiLCJ0Rm9vdFRkUHJvcHMiLCJjb2x1bW5Gb290ZXJQcm9wcyIsImdldEZvb3RlclByb3BzIiwibWFrZUNvbHVtbkZvb3RlcnMiLCJ0Rm9vdFByb3BzIiwidEZvb3RUclByb3BzIiwibWFrZVBhZ2luYXRpb24iLCJwYWdpbmF0aW9uUHJvcHMiLCJpc1RvcCIsIm1ha2VUYWJsZSIsIkNvbXBvbmVudCIsInByb3BUeXBlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUNBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7OztBQUxBOzs7QUFPTyxJQUFNQSxrREFBcUJDLHNCQUEzQjs7SUFFY0MsVTs7O0FBSW5CLHNCQUFhQyxLQUFiLEVBQW9CO0FBQUE7O0FBQUE7O0FBR2xCLFVBQUtDLGdCQUFMLEdBQXdCLE1BQUtBLGdCQUFMLENBQXNCQyxJQUF0QixPQUF4QjtBQUNBLFVBQUtDLFlBQUwsR0FBb0IsTUFBS0EsWUFBTCxDQUFrQkQsSUFBbEIsT0FBcEI7QUFDQSxVQUFLRSxhQUFMLEdBQXFCLE1BQUtBLGFBQUwsQ0FBbUJGLElBQW5CLE9BQXJCO0FBQ0EsVUFBS0csYUFBTCxHQUFxQixNQUFLQSxhQUFMLENBQW1CSCxJQUFuQixPQUFyQjtBQUNBLFVBQUtJLGNBQUwsR0FBc0IsTUFBS0EsY0FBTCxDQUFvQkosSUFBcEIsT0FBdEI7QUFDQSxVQUFLSyxjQUFMLEdBQXNCLE1BQUtBLGNBQUwsQ0FBb0JMLElBQXBCLE9BQXRCO0FBQ0EsVUFBS00sVUFBTCxHQUFrQixNQUFLQSxVQUFMLENBQWdCTixJQUFoQixPQUFsQjtBQUNBLFVBQUtPLFFBQUwsR0FBZ0IsTUFBS0EsUUFBTCxDQUFjUCxJQUFkLE9BQWhCO0FBQ0EsVUFBS1EsVUFBTCxHQUFrQixNQUFLQSxVQUFMLENBQWdCUixJQUFoQixPQUFsQjtBQUNBLFVBQUtTLFlBQUwsR0FBb0IsTUFBS0EsWUFBTCxDQUFrQlQsSUFBbEIsT0FBcEI7QUFDQSxVQUFLVSxnQkFBTCxHQUF3QixNQUFLQSxnQkFBTCxDQUFzQlYsSUFBdEIsT0FBeEI7QUFDQSxVQUFLVyxVQUFMLEdBQWtCLE1BQUtBLFVBQUwsQ0FB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