UNPKG

dareway-rui

Version:

216 lines (174 loc) 8.46 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 _util = require('../../../taglib/common/util'); var _CardMask = _interopRequireDefault(require('../../../taglib/mask/string/CardMask')); var _YzbmMask = _interopRequireDefault(require('../../../taglib/mask/string/YzbmMask')); var StringInput = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(StringInput, _React$Component); function StringInput(props) { var _this; (0, _classCallCheck2.default)(this, StringInput); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(StringInput).call(this, props) ); /** * 标签属性校验 */ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleFocus', function( value, event ) { var name = _this.props.name; _this.context._savaOldValue4SimulateOnHTMLChange(name, value); var onFocus = _this.props.onFocus; if (onFocus) { onFocus(value, event); } }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleBlur', function( value, oldValueForOnChange, event ) { var name = _this.props.name; // 模拟 onHTMLChange var onChange = _this.props.onChange; if (oldValueForOnChange !== value) { // onChange 时机校验值的合法性; _this.context._checkValue(name); if (onChange) { onChange(value, oldValueForOnChange, event); } } var onBlur = _this.props.onBlur; if (onBlur) { onBlur(value, event); } }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleReactChange', function( value, event ) { var _this$props = _this.props, name = _this$props.name, maxLength = _this$props.maxLength, mask = _this$props.mask; var newValue = null; if (mask === 'card') { newValue = _CardMask.default.format(value); } else if (mask === 'yzbm') { newValue = _YzbmMask.default.format(value); } else { newValue = (0, _util.filterValueByMaxLength)(value, maxLength); } _this.context._saveValueOnChange(name, newValue); }); (0, _validateProps.default)(props); return _this; } /** * 标签必须要实现的接口 */ (0, _createClass2.default)(StringInput, [ { 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_STRING_INPUT, TAG_API_GENERATOR: _apis.default }); // 连接FormItem的数据与视图 this.ConnectedView = this.context._connectFormItemView(name, _View.StringInputView); } }, { 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, { onFocus: this.handleFocus, onBlur: this.handleBlur, onReactChange: this.handleReactChange }); } } ]); return StringInput; })(_react.default.Component); exports.default = StringInput; (0, _defineProperty2.default)(StringInput, 'contextType', _FormContext.default); (0, _defineProperty2.default)(StringInput, 'TAG_ATTRS_GENERATOR', _genDefaultProps.default); (0, _defineProperty2.default)(StringInput, 'TAG_TYPE', _FormConstants.TAG_TYPE_STRING_INPUT); (0, _defineProperty2.default)(StringInput, 'TAG_API_GENERATOR', _apis.default); (0, _defineProperty2.default)(StringInput, '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]), mask: _propTypes.default.string, 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, // 注意:StringInput 组件不对外提供 onKeyDown 和 onEnter 事件 // 避免开发在录入的中间状态下,在 onKeyDown、onEnter 事件中 // 使用 getValue,进而得到错误的结果; // onKeyDown: PropTypes.func, onEnter: _propTypes.default.func, onChange: _propTypes.default.func }); //@ sourceMappingURL=index.js.map