@ucloud-pccl/react-components
Version:
UCloud pccl react components
162 lines (161 loc) • 6.93 kB
JavaScript
"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 _newArrowCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/newArrowCheck"));
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 _getPrototypeOf2 = _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 _Select = _interopRequireDefault(require("../../components/Select"));
var _Button = _interopRequireDefault(require("../../components/Button"));
var _NumberInput = _interopRequireDefault(require("../../components/NumberInput"));
var _KeyCode = _interopRequireDefault(require("../../interfaces/KeyCode"));
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
var Options = /*#__PURE__*/function (_React$Component) {
function Options(props) {
var _this2 = this;
var _this;
(0, _classCallCheck2.default)(this, Options);
_this = _callSuper(this, Options, [props]);
_this.buildOptionText = function (value) {
(0, _newArrowCheck2.default)(this, _this2);
return "".concat(value, " ").concat(_this.props.locale.itemsPerPage);
}.bind(this);
_this.changeSize = function (value) {
(0, _newArrowCheck2.default)(this, _this2);
_this.props.changeSize(Number(value));
}.bind(this);
_this.handleChange = function (v) {
(0, _newArrowCheck2.default)(this, _this2);
_this.setState({
goInputText: v
});
}.bind(this);
_this.go = function (e) {
(0, _newArrowCheck2.default)(this, _this2);
var val = _this.state.goInputText;
if (val === '') {
return;
}
val = isNaN(val) ? _this.props.current : Number(val);
if (e.keyCode === _KeyCode.default.ENTER || e.type === 'click') {
_this.setState({
goInputText: ''
});
_this.props.quickGo(val);
}
}.bind(this);
_this.state = {
goInputText: ''
};
return _this;
}
(0, _inherits2.default)(Options, _React$Component);
return (0, _createClass2.default)(Options, [{
key: "render",
value: function render() {
var _this3 = this;
var props = this.props;
var state = this.state;
var locale = props.locale;
var size = props.size,
allPages = props.allPages,
select = props.select;
var prefixCls = "".concat(props.rootPrefixCls, "-options");
var changeSize = props.changeSize;
var quickGo = props.quickGo;
var goButton = props.goButton;
var buildOptionText = props.buildOptionText || this.buildOptionText;
var changeSelect = null;
var goInput = null;
var gotoButton = null;
if (!(changeSize || quickGo)) {
return null;
}
if (changeSize && _Select.default) {
var Option = _Select.default.Option;
var pageSize = props.pageSize || props.pageSizeOptions[0];
var options = props.pageSizeOptions.map(function (opt, i) {
(0, _newArrowCheck2.default)(this, _this3);
return /*#__PURE__*/_react.default.createElement(Option, {
key: i,
value: opt
}, buildOptionText(opt));
}.bind(this));
changeSelect = /*#__PURE__*/_react.default.createElement(_Select.default, (0, _extends2.default)({
className: "".concat(prefixCls, "-size-changer"),
value: pageSize.toString(),
onChange: this.changeSize,
size: size
}, select), options);
}
if (quickGo) {
if (goButton) {
if (typeof goButton === 'boolean') {
gotoButton = /*#__PURE__*/_react.default.createElement(_Button.default, {
onClick: this.go,
styleType: "primary",
className: "".concat(prefixCls, "-gobutton"),
onKeyUp: this.go,
size: size
}, locale.jumpToConfirm);
} else {
gotoButton = /*#__PURE__*/_react.default.createElement("span", {
className: "".concat(prefixCls, "-gobutton"),
onClick: this.go,
onKeyUp: this.go
}, goButton);
}
}
goInput = /*#__PURE__*/_react.default.createElement("div", {
className: "".concat(prefixCls, "-quick-jumper")
}, /*#__PURE__*/_react.default.createElement(_NumberInput.default, {
size: size,
min: 1,
max: allPages,
value: state.goInputText,
onChange: this.handleChange,
parser: function (input) {
(0, _newArrowCheck2.default)(this, _this3);
return input.replace(/[^\d]+/g, '');
}.bind(this),
onKeyUp: this.go,
hideHandler: true,
styleType: "pagination",
suffix: /*#__PURE__*/_react.default.createElement("span", {
className: "".concat(prefixCls, "-quick-jumper-text")
}, "/".concat(allPages))
}), gotoButton);
}
return /*#__PURE__*/_react.default.createElement("li", {
className: "".concat(prefixCls)
}, changeSelect, goInput);
}
}]);
}(_react.default.Component);
Options.propTypes = {
changeSize: _propTypes.default.func,
quickGo: _propTypes.default.func,
current: _propTypes.default.number,
pageSizeOptions: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])),
pageSize: _propTypes.default.number,
buildOptionText: _propTypes.default.func,
locale: _propTypes.default.object,
size: _propTypes.default.string,
allPages: _propTypes.default.number,
select: _propTypes.default.object,
rootPrefixCls: _propTypes.default.string,
goButton: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.node])
};
Options.defaultProps = {
pageSizeOptions: ['10', '20', '30', '40']
};
var _default = exports.default = Options;