forked from Gitlink/forgeplus-react
118 lines
3.8 KiB
JavaScript
118 lines
3.8 KiB
JavaScript
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
import _createClass from "@babel/runtime/helpers/createClass";
|
|
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
|
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
import Immutable from 'immutable';
|
|
import PropTypes from 'prop-types';
|
|
import * as React from 'react';
|
|
import CellMeasurer from './CellMeasurer';
|
|
import CellMeasurerCache from './CellMeasurerCache';
|
|
import { Column, Table } from '../Table';
|
|
import styles from './CellMeasurer.example.css';
|
|
|
|
var DynamicHeightTableColumn =
|
|
/*#__PURE__*/
|
|
function (_React$PureComponent) {
|
|
_inherits(DynamicHeightTableColumn, _React$PureComponent);
|
|
|
|
function DynamicHeightTableColumn() {
|
|
var _getPrototypeOf2;
|
|
|
|
var _this;
|
|
|
|
_classCallCheck(this, DynamicHeightTableColumn);
|
|
|
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
args[_key] = arguments[_key];
|
|
}
|
|
|
|
_this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(DynamicHeightTableColumn)).call.apply(_getPrototypeOf2, [this].concat(args)));
|
|
|
|
_defineProperty(_assertThisInitialized(_this), "_cache", new CellMeasurerCache({
|
|
fixedWidth: true,
|
|
minHeight: 25
|
|
}));
|
|
|
|
_defineProperty(_assertThisInitialized(_this), "_lastRenderedWidth", _this.props.width);
|
|
|
|
_defineProperty(_assertThisInitialized(_this), "_columnCellRenderer", function (_ref) {
|
|
var dataKey = _ref.dataKey,
|
|
parent = _ref.parent,
|
|
rowIndex = _ref.rowIndex;
|
|
var list = _this.props.list;
|
|
var datum = list.get(rowIndex % list.size);
|
|
var content = rowIndex % 5 === 0 ? '' : datum.randomLong;
|
|
return React.createElement(CellMeasurer, {
|
|
cache: _this._cache,
|
|
columnIndex: 0,
|
|
key: dataKey,
|
|
parent: parent,
|
|
rowIndex: rowIndex
|
|
}, React.createElement("div", {
|
|
className: styles.tableColumn,
|
|
style: {
|
|
whiteSpace: 'normal'
|
|
}
|
|
}, content));
|
|
});
|
|
|
|
_defineProperty(_assertThisInitialized(_this), "_rowGetter", function (_ref2) {
|
|
var index = _ref2.index;
|
|
var list = _this.props.list;
|
|
return list.get(index % list.size);
|
|
});
|
|
|
|
return _this;
|
|
}
|
|
|
|
_createClass(DynamicHeightTableColumn, [{
|
|
key: "render",
|
|
value: function render() {
|
|
var width = this.props.width;
|
|
|
|
if (this._lastRenderedWidth !== this.props.width) {
|
|
this._lastRenderedWidth = this.props.width;
|
|
|
|
this._cache.clearAll();
|
|
}
|
|
|
|
return React.createElement(Table, {
|
|
deferredMeasurementCache: this._cache,
|
|
headerHeight: 20,
|
|
height: 400,
|
|
overscanRowCount: 2,
|
|
rowClassName: styles.tableRow,
|
|
rowHeight: this._cache.rowHeight,
|
|
rowGetter: this._rowGetter,
|
|
rowCount: 1000,
|
|
width: width
|
|
}, React.createElement(Column, {
|
|
className: styles.tableColumn,
|
|
dataKey: "name",
|
|
label: "Name",
|
|
width: 125
|
|
}), React.createElement(Column, {
|
|
className: styles.tableColumn,
|
|
dataKey: "color",
|
|
label: "Color",
|
|
width: 75
|
|
}), React.createElement(Column, {
|
|
width: width - 200,
|
|
dataKey: "random",
|
|
label: "Dynamic text",
|
|
cellRenderer: this._columnCellRenderer
|
|
}));
|
|
}
|
|
}]);
|
|
|
|
return DynamicHeightTableColumn;
|
|
}(React.PureComponent);
|
|
|
|
export { DynamicHeightTableColumn as default };
|
|
DynamicHeightTableColumn.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
list: PropTypes.instanceOf(Immutable.List).isRequired,
|
|
width: PropTypes.number.isRequired
|
|
} : {}; |