UNPKG

@6thquake/react-material

Version:

React components that implement Google's Material Design.

186 lines (145 loc) 6.58 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _withStyles = _interopRequireDefault(require("../../styles/withStyles")); var _TablePagination = _interopRequireDefault(require("../../TablePagination")); var _IconButton = _interopRequireDefault(require("../../IconButton")); var _FirstPage = _interopRequireDefault(require("@material-ui/icons/FirstPage")); var _KeyboardArrowLeft = _interopRequireDefault(require("@material-ui/icons/KeyboardArrowLeft")); var _KeyboardArrowRight = _interopRequireDefault(require("@material-ui/icons/KeyboardArrowRight")); var _LastPage = _interopRequireDefault(require("@material-ui/icons/LastPage")); var actionsStyles = function actionsStyles(theme) { return { root: { flexShrink: 0, color: theme.palette.text.secondary, marginLeft: theme.spacing(2.5) } }; }; /** * @ignore - internal component. */ var TablePaginationActions = /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(TablePaginationActions, _React$Component); function TablePaginationActions() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, TablePaginationActions); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(TablePaginationActions)).call.apply(_getPrototypeOf2, [this].concat(args))); _this.handleFirstPageButtonClick = function (event) { _this.props.onChangePage(event, 0); }; _this.handleBackButtonClick = function (event) { _this.props.onChangePage(event, _this.props.page - 1); }; _this.handleNextButtonClick = function (event) { _this.props.onChangePage(event, _this.props.page + 1); }; _this.handleLastPageButtonClick = function (event) { _this.props.onChangePage(event, Math.max(0, Math.ceil(_this.props.count / _this.props.rowsPerPage) - 1)); }; return _this; } (0, _createClass2.default)(TablePaginationActions, [{ key: "render", value: function render() { var _this$props = this.props, classes = _this$props.classes, count = _this$props.count, page = _this$props.page, rowsPerPage = _this$props.rowsPerPage, theme = _this$props.theme; return _react.default.createElement("div", { className: classes.root }, _react.default.createElement(_IconButton.default, { onClick: this.handleFirstPageButtonClick, disabled: page === 0, "aria-label": "First Page" }, theme.direction === 'rtl' ? _react.default.createElement(_LastPage.default, null) : _react.default.createElement(_FirstPage.default, null)), _react.default.createElement(_IconButton.default, { onClick: this.handleBackButtonClick, disabled: page === 0, "aria-label": "Previous Page" }, theme.direction === 'rtl' ? _react.default.createElement(_KeyboardArrowRight.default, null) : _react.default.createElement(_KeyboardArrowLeft.default, null)), _react.default.createElement(_IconButton.default, { onClick: this.handleNextButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "Next Page" }, theme.direction === 'rtl' ? _react.default.createElement(_KeyboardArrowLeft.default, null) : _react.default.createElement(_KeyboardArrowRight.default, null)), _react.default.createElement(_IconButton.default, { onClick: this.handleLastPageButtonClick, disabled: page >= Math.ceil(count / rowsPerPage) - 1, "aria-label": "Last Page" }, theme.direction === 'rtl' ? _react.default.createElement(_FirstPage.default, null) : _react.default.createElement(_LastPage.default, null))); } }]); return TablePaginationActions; }(_react.default.Component); TablePaginationActions.propTypes = { classes: _propTypes.default.object.isRequired, count: _propTypes.default.number.isRequired, onChangePage: _propTypes.default.func.isRequired, page: _propTypes.default.number.isRequired, rowsPerPage: _propTypes.default.number.isRequired, theme: _propTypes.default.object.isRequired }; var TablePaginationActionsWrapped = (0, _withStyles.default)(actionsStyles, { withTheme: true })(TablePaginationActions); var style = function style(theme) { return { root: { width: '100%' } }; }; var Pagination = /*#__PURE__*/ function (_React$Component2) { (0, _inherits2.default)(Pagination, _React$Component2); function Pagination(props) { var _this2; (0, _classCallCheck2.default)(this, Pagination); _this2 = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf3.default)(Pagination).call(this, props)); _this2.state = {}; return _this2; } (0, _createClass2.default)(Pagination, [{ key: "render", value: function render() { var _this$props2 = this.props, count = _this$props2.count, rowsPerPage = _this$props2.rowsPerPage, threshold = _this$props2.threshold, classes = _this$props2.classes; var pageLength = Math.ceil(count / rowsPerPage); var C = pageLength > (threshold || 5) ? TablePaginationActionsWrapped : null; var customProps = {}; if (C) { customProps.ActionsComponent = C; } return _react.default.createElement(_TablePagination.default, (0, _extends2.default)({ classes: { root: classes.root } }, customProps, this.props)); } }]); return Pagination; }(_react.default.Component); var _default = (0, _withStyles.default)(style)(Pagination); exports.default = _default;