UNPKG

dareway-rui

Version:

169 lines (136 loc) 6.67 kB
'use strict'; 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 _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn')); var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf')); var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized')); var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits')); var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty')); var _react = _interopRequireDefault(require('react')); var _propTypes = _interopRequireDefault(require('prop-types')); var _FormContext = _interopRequireDefault(require('../FormContext')); var _FormConstants = require('../FormConstants'); var _validateProps = _interopRequireDefault(require('./validateProps')); var _genDefaultProps = _interopRequireDefault(require('./genDefaultProps')); var _apis = _interopRequireDefault(require('./apis')); var _Constants = require('./Constants'); var _View = require('./View'); var NumberInput = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(NumberInput, _React$Component); function NumberInput(props) { var _this; (0, _classCallCheck2.default)(this, NumberInput); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(NumberInput).call(this, props) ); /** * 标签属性校验 */ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleHTMLChange', function( value, oldValue, event ) { var name = _this.props.name; // 同步redux值 _this.context._saveValueOnChange(name, value); // onChange 时机校验值的合法性; _this.context._checkValue(name); var onChange = _this.props.onChange; if (onChange) { onChange(value, oldValue, event); } }); (0, _validateProps.default)(props); return _this; } /** * 标签必须要实现的接口 */ (0, _createClass2.default)(NumberInput, [ { key: 'componentWillMount', value: function componentWillMount() { // 检查标签嵌套关系 if (!this.context) { throw new Error( '<' .concat(_Constants.TAG_DISPLAY_NAME, ' name="') .concat( this.props.name, '"> \u5FC5\u987B\u5D4C\u5957\u5728 <Form> \u4E2D\u4F7F\u7528\uFF0C\u8BF7\u68C0\u67E5!' ) ); } // 标签名 var name = this.props.name; // 标签动态构建(业务上通过state控制UI的场景) this.context._addFormItem(this.props, { TAG_ATTRS_GENERATOR: _genDefaultProps.default, TAG_TYPE: _FormConstants.TAG_TYPE_NUMBER_INPUT, TAG_API_GENERATOR: _apis.default }); // 连接FormItem的数据与视图 this.ConnectedView = this.context._connectFormItemView(name, _View.NumberInputView); } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { var name = this.props.name; this.context._removeFormItem(name); } }, { key: 'render', value: function render() { var ConnectedView = this.ConnectedView; return _react.default.createElement(ConnectedView, { onHTMLChange: this.handleHTMLChange }); } } ]); return NumberInput; })(_react.default.Component); exports.default = NumberInput; (0, _defineProperty2.default)(NumberInput, 'contextType', _FormContext.default); (0, _defineProperty2.default)(NumberInput, 'TAG_ATTRS_GENERATOR', _genDefaultProps.default); (0, _defineProperty2.default)(NumberInput, 'TAG_TYPE', _FormConstants.TAG_TYPE_NUMBER_INPUT); (0, _defineProperty2.default)(NumberInput, 'TAG_API_GENERATOR', _apis.default); (0, _defineProperty2.default)(NumberInput, 'propTypes', { name: _propTypes.default.string.isRequired, labelValue: _propTypes.default.string, required: _propTypes.default.bool, invalidMessage: _propTypes.default.string, readonly: _propTypes.default.bool, hidden: _propTypes.default.bool, colSpan: _propTypes.default.number, maxLength: _propTypes.default.number, value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]), suffix: _propTypes.default.string, mask: _propTypes.default.string, zeroDisplayAs0: _propTypes.default.bool, align: _propTypes.default.oneOf(['left', 'center', 'right']), fontColor: _propTypes.default.string, bold: _propTypes.default.bool, backgroundColor: _propTypes.default.string, underline: _propTypes.default.bool, oblique: _propTypes.default.bool, border: _propTypes.default.bool, placeholder: _propTypes.default.string, onFocus: _propTypes.default.func, onBlur: _propTypes.default.func, onClick: _propTypes.default.func, onDblClick: _propTypes.default.func, // 注意:NumberInput 组件不对外提供 onKeyDown 和 onEnter 事件 // 避免开发在录入的中间状态下,在 onKeyDown、onEnter 事件中 // 使用 getValue,进而得到错误的结果; // onKeyDown: PropTypes.func, // onEnter: PropTypes.func, onChange: _propTypes.default.func }); //@ sourceMappingURL=index.js.map