UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

239 lines (203 loc) 7.3 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _KeyCode = _interopRequireDefault(require("./KeyCode")); function _createSuper(Derived) { function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } return function () { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (isNativeReflectConstruct()) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } var BUILT_IN_PLACEMENTS = { bottomLeft: { points: ['tl', 'tl'], offset: [0, 0], overflow: { adjustX: 0, adjustY: 1 } }, topLeft: { points: ['bl', 'tl'], offset: [0, -4], overflow: { adjustX: 0, adjustY: 1 } }, bottomRight: { points: ['tr', 'br'], offset: [0, 4], overflow: { adjustX: 0, adjustY: 1 } } }; var Options = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(Options, _Component); var _super = _createSuper(Options); function Options(props) { var _this; (0, _classCallCheck2["default"])(this, Options); _this = _super.call(this, props); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "buildOptionText", function (value) { return "".concat(value, " ").concat(_this.props.locale.items_per_page); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSize", function (value) { _this.props.changeSize(Number(value)); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChange", function (e) { _this.setState({ goInputText: e.target.value }); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "go", function (e) { var val = _this.state.goInputText; if (val === '') { return; } val = Number(val); if (isNaN(val)) { val = _this.state.current; } if (e.keyCode === _KeyCode["default"].ENTER || e.type === 'click') { _this.setState({ goInputText: '', current: _this.props.quickGo(val) }); } }); _this.state = { current: props.current, goInputText: '' }; return _this; } (0, _createClass2["default"])(Options, [{ key: "render", value: function render() { var props = this.props; var state = this.state; var locale = props.locale; 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 Select = props.selectComponentClass; var changeSelect = null; var goInput = null; var gotoButton = null; var label = null; if (!(changeSize || quickGo)) { return null; } if (changeSize && Select) { var Option = Select.Option; var pageSize = props.pageSize || props.pageSizeOptions[0]; var options = props.pageSizeOptions.map(function (opt, i) { return _react["default"].createElement(Option, { key: i, value: opt }, buildOptionText(opt)); }); changeSelect = _react["default"].createElement(Select, { prefixCls: props.selectPrefixCls, showSearch: false, className: "".concat(prefixCls, "-size-changer"), optionLabelProp: "children", dropdownMatchSelectWidth: false, value: pageSize.toString(), onChange: this.changeSize, builtinPlacements: BUILT_IN_PLACEMENTS, getPopupContainer: function getPopupContainer(triggerNode) { return triggerNode.parentNode; }, border: false }, options); } if (quickGo) { if (goButton) { if (typeof goButton === 'boolean') { gotoButton = _react["default"].createElement("button", { type: "button", onClick: this.go, onKeyUp: this.go }, locale.jump_to_confirm); } else { gotoButton = _react["default"].createElement("span", { onClick: this.go, onKeyUp: this.go }, goButton); } } goInput = _react["default"].createElement("div", { className: "".concat(prefixCls, "-quick-jumper") }, locale.jump_to, _react["default"].createElement("input", { type: "text", value: state.goInputText, onChange: this.handleChange, onKeyUp: this.go }), locale.page, gotoButton); } if (props.changeSizeLabel) { label = _react["default"].createElement("span", { className: "".concat(prefixCls, "-label") }, locale.label_items_per_page); } return _react["default"].createElement("li", { className: "".concat(prefixCls) }, label, changeSelect, goInput); } }]); return Options; }(_react.Component); exports["default"] = Options; (0, _defineProperty2["default"])(Options, "propTypes", { changeSize: _propTypes["default"].func, quickGo: _propTypes["default"].func, selectComponentClass: _propTypes["default"].func, current: _propTypes["default"].number, pageSizeOptions: _propTypes["default"].arrayOf(_propTypes["default"].string), pageSize: _propTypes["default"].number, buildOptionText: _propTypes["default"].func, locale: _propTypes["default"].object }); (0, _defineProperty2["default"])(Options, "defaultProps", { pageSizeOptions: ['10', '20', '30', '40'] }); //# sourceMappingURL=Options.js.map