react-table-6
Version:
A fast, lightweight, opinionated table and datagrid built on React
804 lines (714 loc) • 113 kB
JavaScript
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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