UNPKG

react-table-6

Version:

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

804 lines (714 loc) 113 kB
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; }; }(); 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; } import React, { Component } from 'react'; import classnames from 'classnames'; // import _ from './utils'; import Lifecycle from './lifecycle'; import Methods from './methods'; import defaultProps from './defaultProps'; import propTypes from './propTypes'; export var ReactTableDefaults = defaultProps; 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 = _.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] && _.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 = _.sum(allVisibleColumns.map(function (d) { var resizedColumn = resized.find(function (x) { return x.id === d.id; }) || {}; return _.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 = _.splitProps(getProps(finalState, undefined, undefined, this)); var tableProps = _.splitProps(getTableProps(finalState, undefined, undefined, this)); var tBodyProps = _.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 = _.sum(column.columns.map(function (col) { return col.width || resizedValue(col) ? 0 : col.minWidth; })); var width = _.sum(column.columns.map(function (col) { return _.getFirstDefined(resizedValue(col), col.width, col.minWidth); })); var maxWidth = _.sum(column.columns.map(function (col) { return _.getFirstDefined(resizedValue(col), col.width, col.maxWidth); })); var theadGroupThProps = _.splitProps(getTheadGroupThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _.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: _.asPx(width), maxWidth: _.asPx(maxWidth) }; return React.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: classnames(classes), style: _extends({}, styles, flexStyles) }, rest), _.normalizeComponent(column.Header, { data: sortedData, column: column }) ); }; var makeHeaderGroups = function makeHeaderGroups() { var theadGroupProps = _.splitProps(getTheadGroupProps(finalState, undefined, undefined, _this2)); var theadGroupTrProps = _.splitProps(getTheadGroupTrProps(finalState, undefined, undefined, _this2)); return React.createElement( TheadComponent, _extends({ className: classnames('-headerGroups', theadGroupProps.className), style: _extends({}, theadGroupProps.style, { minWidth: rowMinWidth + 'px' }) }, theadGroupProps.rest), React.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 = _.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var theadThProps = _.splitProps(getTheadThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _.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 = _.getFirstDefined(column.resizable, resizable, false); var resizer = isResizable ? React.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 = _.getFirstDefined(column.sortable, sortable, false); return React.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: classnames(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: _.asPx(width), maxWidth: _.asPx(maxWidth) }), toggleSort: function toggleSort(e) { if (isSortable) _this2.sortColumn(column, multiSort ? e.shiftKey : false); } }, rest), React.createElement( 'div', { className: classnames(isResizable && 'rt-resizable-header-content') }, _.normalizeComponent(column.Header, { data: sortedData, column: column }) ), resizer ); }; var makeHeaders = function makeHeaders() { var theadProps = _.splitProps(getTheadProps(finalState, undefined, undefined, _this2)); var theadTrProps = _.splitProps(getTheadTrProps(finalState, undefined, undefined, _this2)); return React.createElement( TheadComponent, _extends({ className: classnames('-header', theadProps.className), style: _extends({}, theadProps.style, { minWidth: rowMinWidth + 'px' }) }, theadProps.rest), React.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 = _.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var theadFilterThProps = _.splitProps(getTheadFilterThProps(finalState, undefined, column, _this2)); var columnHeaderProps = _.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 = _.getFirstDefined(column.filterable, filterable, false); return React.createElement( ThComponent, _extends({ key: i + '-' + column.id, className: classnames(classes), style: _extends({}, styles, { flex: width + ' 0 auto', width: _.asPx(width), maxWidth: _.asPx(maxWidth) }) }, rest), isFilterable ? _.normalizeComponent(ResolvedFilterComponent, { column: column, filter: filter, onChange: function onChange(value) { return _this2.filterColumn(column, value); } }, defaultProps.column.Filter) : null ); }; var makeFilters = function makeFilters() { var theadFilterProps = _.splitProps(getTheadFilterProps(finalState, undefined, undefined, _this2)); var theadFilterTrProps = _.splitProps(getTheadFilterTrProps(finalState, undefined, undefined, _this2)); return React.createElement( TheadComponent, _extends({ className: classnames('-filters', theadFilterProps.className), style: _extends({}, theadFilterProps.style, { minWidth: rowMinWidth + 'px' }) }, theadFilterProps.rest), React.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 = _.get(expanded, rowInfo.nestingPath); var trGroupProps = getTrGroupProps(finalState, rowInfo, undefined, _this2); var trProps = _.splitProps(getTrProps(finalState, rowInfo, undefined, _this2)); return React.createElement( TrGroupComponent, _extends({ key: rowInfo.nestingPath.join('_') }, trGroupProps), React.createElement( TrComponent, _extends({ className: classnames(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 = _.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tdProps = _.splitProps(getTdProps(finalState, rowInfo, column, _this2)); var columnProps = _.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 = _.clone(expanded); if (isExpanded) { newExpanded = _.set(newExpanded, cellInfo.nestingPath, false); } else { newExpanded = _.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 = _.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 React.createElement( 'div', null, React.createElement(ResolvedExpanderComponent, props), React.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 = _.normalizeComponent(ResolvedPivotComponent, _extends({}, cellInfo, { value: row[pivotValKey] }), row[pivotValKey]); } else if (isPreview) { // Show the pivot preview resolvedCell = _.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value); } else { resolvedCell = null; } } else if (cellInfo.aggregated) { resolvedCell = _.normalizeComponent(ResolvedAggregatedComponent, cellInfo, value); } if (cellInfo.expander) { resolvedCell = _.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 React.createElement( TdComponent // eslint-disable-next-line react/no-array-index-key , _extends({ key: i2 + '-' + column.id, className: classnames(classes, !cellInfo.expandable && !show && 'hidden', cellInfo.expandable && 'rt-expandable', (isBranch || isPreview) && 'rt-pivot'), style: _extends({}, styles, { flex: width + ' 0 auto', width: _.asPx(width), maxWidth: _.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 = _.clone(expanded); _.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 = _.getFirstDefined(resizedCol.value, column.width, column.minWidth); var flex = width; var maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tdProps = _.splitProps(getTdProps(finalState, undefined, column, _this2)); var columnProps = _.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 React.createElement( TdComponent, _extends({ key: i + '-' + column.id, className: classnames(classes, !show && 'hidden'), style: _extends({}, styles, { flex: flex + ' 0 auto', width: _.asPx(width), maxWidth: _.asPx(maxWidth) }) }, tdProps.rest), _.normalizeComponent(PadRowComponent) ); }; var makePadRow = function makePadRow(row, i) { var trGroupProps = getTrGroupProps(finalState, undefined, undefined, _this2); var trProps = _.splitProps(getTrProps(finalState, undefined, undefined, _this2)); return React.createElement( TrGroupComponent, _extends({ key: 'pad-' + i }, trGroupProps), React.createElement( TrComponent, { className: classnames('-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 = _.getFirstDefined(resizedCol.value, column.width, column.minWidth); var maxWidth = _.getFirstDefined(resizedCol.value, column.width, column.maxWidth); var tFootTdProps = _.splitProps(getTfootTdProps(finalState, undefined, column, _this2)); var columnProps = _.splitProps(column.getProps(finalState, undefined, column, _this2)); var columnFooterProps = _.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 React.createElement( TdComponent, _extends({ key: i + '-' + column.id, className: classnames(classes, !show && 'hidden'), style: _extends({}, styles, { flex: width + ' 0 auto', width: _.asPx(width), maxWidth: _.asPx(maxWidth) }) }, columnProps.rest, tFootTdProps.rest, columnFooterProps.rest), _.normalizeComponent(column.Footer, { data: sortedData, column: column }) ); }; var makeColumnFooters = function makeColumnFooters() { var tFootProps = _.splitProps(getTfootProps(finalState, undefined, undefined, _this2)); var tFootTrProps = _.splitProps(getTfootTrProps(finalState, undefined, undefined, _this2)); return React.createElement( TfootComponent, _extends({ className: tFootProps.className, style: _extends({}, tFootProps.style, { minWidth: rowMinWidth + 'px' }) }, tFootProps.rest), React.createElement( TrComponent, _extends({ className: classnames(tFootTrProps.className), style: tFootTrProps.style }, tFootTrProps.rest), allVisibleColumns.map(makeColumnFooter) ) ); }; var makePagination = function makePagination(isTop) { var paginationProps = _.splitProps(getPaginationProps(finalState, undefined, undefined, _this2)); return React.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 React.createElement( 'div', _extends({ className: classnames('ReactTable', className, rootProps.className), style: _extends({}, style, rootProps.style) }, rootProps.rest), showPagination && showPaginationTop ? React.createElement( 'div', { className: 'pagination-top' }, makePagination(true) ) : null, React.createElement( TableComponent, _extends({ className: classnames(tableProps.className, currentlyResizing ? 'rt-resizing' : ''), style: tableProps.style }, tableProps.rest), hasHeaderGroups ? makeHeaderGroups() : null, makeHeaders(), hasFilters ? makeFilters() : null, React.createElement( TbodyComponent, _extends({ className: classnames(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 ? React.createElement( 'div', { className: 'pagination-bottom' }, makePagination(false) ) : null, !pageRows.length && React.createElement( NoDataComponent, noDataProps, _.normalizeComponent(noDataText) ), React.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; }(Methods(Lifecycle(Component))); ReactTable.propTypes = propTypes; ReactTable.defaultProps = defaultProps; export default ReactTable; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImNsYXNzbmFtZXMiLCJfIiwiTGlmZWN5Y2xlIiwiTWV0aG9kcyIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlJlYWN0VGFibGVEZWZhdWx0cyIsIlJlYWN0VGFibGUiLCJwcm9wcyIsImdldFJlc29sdmVkU3RhdGUiLCJiaW5kIiwiZ2V0RGF0YU1vZGVsIiwiZ2V0U29ydGVkRGF0YSIsImZpcmVGZXRjaERhdGEiLCJnZXRQcm9wT3JTdGF0ZSIsImdldFN0YXRlT3JQcm9wIiwiZmlsdGVyRGF0YSIsInNvcnREYXRhIiwiZ2V0TWluUm93cyIsIm9uUGFnZUNoYW5nZSIsIm9uUGFnZVNpemVDaGFuZ2UiLCJzb3J0Q29sdW1uIiwiZmlsdGVyQ29sdW1uIiwicmVzaXplQ29sdW1uU3RhcnQiLCJyZXNpemVDb2x1bW5FbmQiLCJyZXNpemVDb2x1bW5Nb3ZpbmciLCJzdGF0ZSIsInBhZ2UiLCJkZWZhdWx0UGFnZSIsInBhZ2VTaXplIiwiZGVmYXVsdFBhZ2VTaXplIiwic29ydGVkIiwiZGVmYXVsdFNvcnRlZCIsImV4cGFuZGVkIiwiZGVmYXVsdEV4cGFuZGVkIiwiZmlsdGVyZWQiLCJkZWZhdWx0RmlsdGVyZWQiLCJyZXNpemVkIiwiZGVmYXVsdFJlc2l6ZWQiLCJjdXJyZW50bHlSZXNpemluZyIsInNraXBOZXh0U29ydCIsInJlc29sdmVkU3RhdGUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiZ2V0UHJvcHMiLCJnZXRUYWJsZVByb3BzIiwiZ2V0VGhlYWRHcm91cFByb3BzIiwiZ2V0VGhlYWRHcm91cFRyUHJvcHMiLCJnZXRUaGVhZEdyb3VwVGhQcm9wcyIsImdldFRoZWFkUHJvcHMiLCJnZXRUaGVhZFRyUHJvcHMiLCJnZXRUaGVhZFRoUHJvcHMiLCJnZXRUaGVhZEZpbHRlclByb3BzIiwiZ2V0VGhlYWRGaWx0ZXJUclByb3BzIiwiZ2V0VGhlYWRGaWx0ZXJUaFByb3BzIiwiZ2V0VGJvZHlQcm9wcyIsImdldFRyR3JvdXBQcm9wcyIsImdldFRyUHJvcHMiLCJnZXRUZFByb3BzIiwiZ2V0VGZvb3RQcm9wcyIsImdldFRmb290VHJQcm9wcyIsImdldFRmb290VGRQcm9wcyIsImdldFBhZ2luYXRpb25Qcm9wcyIsImdldExvYWRpbmdQcm9wcyIsImdldE5vRGF0YVByb3BzIiwiZ2V0UmVzaXplclByb3BzIiwic2hvd1BhZ2luYXRpb24iLCJzaG93UGFnaW5hdGlvblRvcCIsInNob3dQYWdpbmF0aW9uQm90dG9tIiwibWFudWFsIiwibG9hZGluZ1RleHQiLCJub0RhdGFUZXh0Iiwic29ydGFibGUiLCJtdWx0aVNvcnQiLCJyZXNpemFibGUiLCJmaWx0ZXJhYmxlIiwicGl2b3RJREtleSIsInBpdm90VmFsS2V5IiwicGl2b3RCeSIsInN1YlJvd3NLZXkiLCJhZ2dyZWdhdGVkS2V5Iiwib3JpZ2luYWxLZXkiLCJpbmRleEtleSIsImdyb3VwZWRCeVBpdm90S2V5IiwibG9hZGluZyIsInBhZ2VzIiwib25FeHBhbmRlZENoYW5nZSIsIlRhYmxlQ29tcG9uZW50IiwiVGhlYWRDb21wb25lbnQiLCJUYm9keUNvbXBvbmVudCIsIlRyR3JvdXBDb21wb25lbnQiLCJUckNvbXBvbmVudCIsIlRoQ29tcG9uZW50IiwiVGRDb21wb25lbnQiLCJUZm9vdENvbXBvbmVudCIsIlBhZ2luYXRpb25Db21wb25lbnQiLCJMb2FkaW5nQ29tcG9uZW50IiwiU3ViQ29tcG9uZW50IiwiTm9EYXRhQ29tcG9uZW50IiwiUmVzaXplckNvbXBvbmVudCIsIkV4cGFuZGVyQ29tcG9uZW50IiwiUGl2b3RWYWx1ZUNvbXBvbmVudCIsIlBpdm90Q29tcG9uZW50IiwiQWdncmVnYXRlZENvbXBvbmVudCIsIkZpbHRlckNvbXBvbmVudCIsIlBhZFJvd0NvbXBvbmVudCIsInJlc29sdmVkRGF0YSIsImFsbFZpc2libGVDb2x1bW5zIiwiaGVhZGVyR3JvdXBzIiwiaGFzSGVhZGVyR3JvdXBzIiwic29ydGVkRGF0YSIsInN0YXJ0Um93IiwiZW5kUm93IiwicGFnZVJvd3MiLCJzbGljZSIsIm1pblJvd3MiLCJwYWRSb3dzIiwicmFuZ2UiLCJNYXRoIiwibWF4IiwibGVuZ3RoIiwiaGFzQ29sdW1uRm9vdGVyIiwic29tZSIsImQiLCJGb290ZXIiLCJoYXNGaWx0ZXJzIiwicmVjdXJzZVJvd3NWaWV3SW5kZXgiLCJyb3dzIiwicGF0aCIsImluZGV4IiwibWFwIiwicm93IiwiaSIsInJvd1dpdGhWaWV3SW5kZXgiLCJfdmlld0luZGV4IiwibmV3UGF0aCIsImNvbmNhdCIsImdldCIsImNhblByZXZpb3VzIiwiY2FuTmV4dCIsInJvd01pbldpZHRoIiwic3VtIiwicmVzaXplZENvbHVtbiIsImZpbmQiLCJ4IiwiaWQiLCJnZXRGaXJzdERlZmluZWQiLCJ2YWx1ZSIsIndpZHRoIiwibWluV2lkdGgiLCJyb3dJbmRleCIsImZpbmFsU3RhdGUiLCJyb290UHJvcHMiLCJzcGxpdFByb3BzIiwidW5kZWZpbmVkIiwidGFibGVQcm9wcyIsInRCb2R5UHJvcHMiLCJsb2FkaW5nUHJvcHMiLCJub0RhdGFQcm9wcyIsIm1ha2VIZWFkZXJHcm91cCIsImNvbHVtbiIsInJlc2l6ZWRWYWx1ZSIsImNvbCIsImZsZXgiLCJjb2x1bW5zIiwibWF4V2lkdGgiLCJ0aGVhZEdyb3VwVGhQcm9wcyIsImNvbHVtbkhlYWRlclByb3BzIiwiZ2V0SGVhZGVyUHJvcHMiLCJjbGFzc2VzIiwiaGVhZGVyQ2xhc3NOYW1lIiwic3R5bGVzIiwiaGVhZGVyU3R5bGUiLCJyZXN0IiwiZmxleFN0eWxlcyIsImFzUHgiLCJub3JtYWxpemVDb21wb25lbnQiLCJIZWFkZXIiLCJkYXRhIiwibWFrZUhlYWRlckdyb3VwcyIsInRoZWFkR3JvdXBQcm9wcyIsInRoZWFkR3JvdXBUclByb3BzIiwibWFrZUhlYWRlciIsInJlc2l6ZWRDb2wiLCJzb3J0Iiwic2hvdyIsInRoZWFkVGhQcm9wcyIsImlzUmVzaXphYmxlIiwicmVzaXplciIsImUiLCJpc1NvcnRhYmxlIiwiZGVzYyIsImluY2x1ZGVzIiwic2hpZnRLZXkiLCJtYWtlSGVhZGVycyIsInRoZWFkUHJvcHMiLCJ0aGVhZFRyUHJvcHMiLCJtYWtlRmlsdGVyIiwidGhlYWRGaWx0ZXJUaFByb3BzIiwiZmlsdGVyIiwiUmVzb2x2ZWRGaWx0ZXJDb21wb25lbnQiLCJGaWx0ZXIiLCJpc0ZpbHRlcmFibGUiLCJvbkNoYW5nZSIsIm1ha2VGaWx0ZXJzIiwidGhlYWRGaWx0ZXJQcm9wcyIsInRoZWFkRmlsdGVyVHJQcm9wcyIsIm1ha2VQYWdlUm93Iiwicm93SW5mbyIsIm9yaWdpbmFsIiwidmlld0luZGV4IiwibGV2ZWwiLCJuZXN0aW5nUGF0aCIsImFnZ3JlZ2F0ZWQiLCJncm91cGVkQnlQaXZvdCIsInN1YlJvd3MiLCJpc0V4cGFuZGVkIiwidHJHcm91cFByb3BzIiwidHJQcm9wcyIsImpvaW4iLCJpMiIsInRkUHJvcHMiLCJjb2x1bW5Qcm9wcyIsImNlbGxJbmZvIiwicGl2b3RlZCIsImV4cGFuZGVyIiwidXNlT25FeHBhbmRlckNsaWNrIiwiaXNCcmFuY2giLCJpc1ByZXZpZXciLCJvbkV4cGFuZGVyQ2xpY2siLCJuZXdFeHBhbmRlZCIsImNsb25lIiwic2V0Iiwic2V0U3RhdGVXaXRoRGF0YSIsInJlc29sdmVkQ2VsbCIsIkNlbGwiLCJSZXNvbHZlZEFnZ3JlZ2F0ZWRDb21wb25lbnQiLCJBZ2dyZWdhdGVkIiwiYWdncmVnYXRlIiwiUmVzb2x2ZWRFeHBhbmRlckNvbXBvbmVudCIsIkV4cGFuZGVyIiwiUmVzb2x2ZWRQaXZvdFZhbHVlQ29tcG9uZW50IiwiUGl2b3RWYWx1ZSIsIkRlZmF1bHRSZXNvbHZlZFBpdm90Q29tcG9uZW50IiwiUmVzb2x2ZWRQaXZvdENvbXBvbmVudCIsIlBpdm90IiwiZXhwYW5kYWJsZSIsImluZGV4T2YiLCJyZXNvbHZlZE9uRXhwYW5kZXJDbGljayIsImludGVyYWN0aW9uUHJvcHMiLCJvbkNsaWNrIiwibWFrZVBhZENvbHVtbiIsIm1ha2VQYWRSb3ciLCJtYWtlQ29sdW1uRm9vdGVyIiwidEZvb3RUZFByb3BzIiwiY29sdW1uRm9vdGVyUHJvcHMiLCJnZXRGb290ZXJQcm9wcyIsIm1ha2VDb2x1bW5Gb290ZXJzIiwidEZvb3RQcm9wcyIsInRGb290VHJQcm9wcyIsIm1ha2VQYWdpbmF0aW9uIiwicGFnaW5hdGlvblByb3BzIiwiaXNUb3AiLCJtYWtlVGFibGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQWlDLE9BQWpDO0FBQ0EsT0FBT0MsVUFBUCxNQUF1QixZQUF2QjtBQUNBO0FBQ0EsT0FBT0MsQ0FBUCxNQUFjLFNBQWQ7QUFDQSxPQUFPQyxTQUFQLE1BQXNCLGFBQXRCO0FBQ0EsT0FBT0MsT0FBUCxNQUFvQixXQUFwQjtBQUNBLE9BQU9DLFlBQVAsTUFBeUIsZ0JBQXpCO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixhQUF0Qjs7QUFFQSxPQUFPLElBQU1DLHFCQUFxQkYsWUFBM0I7O0lBRWNHLFU7OztBQUluQixzQkFBYUMsS0FBYixFQUFvQjtBQUFBOztBQUFBOztBQUdsQixVQUFLQyxnQkFBTCxHQUF3QixNQUFLQSxnQkFBTCxDQUFzQkMsSUFBdEIsT0FBeEI7QUFDQSxVQUFLQyxZQUFMLEdBQW9CLE1BQUtBLFlBQUwsQ0FBa0JELElBQWxCLE9BQXBCO0FBQ0EsVUFBS0UsYUFBTCxHQUFxQixNQUFLQSxhQUFMLENBQW1CRixJQUFuQixPQUFyQjtBQUNBLFVBQUtHLGFBQUwsR0FBcUIsTUFBS0EsYUFBTCxDQUFtQkgsSUFBbkIsT0FBckI7QUFDQSxVQUFLSSxjQUFMLEdBQXNCLE1BQUtBLGNBQUwsQ0FBb0JKLElBQXBCLE9BQXRCO0FBQ0EsVUFBS0ssY0FBTCxHQUFzQixNQUFLQSxjQUFMLENBQW9CTCxJQUFwQixPQUF0QjtBQUNBLFVBQUtNLFVBQUwsR0FBa0IsTUFBS0EsVUFBTCxDQUFnQk4sSUFBaEIsT0FBbEI7QUFDQSxVQUFLTyxRQUFMLEdBQWdCLE1BQUtBLFFBQUwsQ0FBY1AsSUFBZCxPQUFoQjtBQUNB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