UNPKG

dareway-rui

Version:

154 lines (121 loc) 5.9 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 _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 _validateProps = _interopRequireDefault(require('./validateProps')); var _genDefaultProps = _interopRequireDefault(require('./genDefaultProps')); var _apis = _interopRequireDefault(require('./apis')); var _FormConstants = require('../FormConstants'); var _Constants = require('./Constants'); var _View = require('./View'); var CollapsibleBlock = /*#__PURE__*/ (function(_React$Component) { (0, _inherits2.default)(CollapsibleBlock, _React$Component); function CollapsibleBlock(props) { var _this; (0, _classCallCheck2.default)(this, CollapsibleBlock); _this = (0, _possibleConstructorReturn2.default)( this, (0, _getPrototypeOf2.default)(CollapsibleBlock).call(this, props) ); /** * 标签属性校验 */ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'handleChange', function( collapsed ) { // 与 redux 同步 var name = _this.props.name; _this.context._setCollapsed(name, collapsed); // 触发用户定义事件 var _this$props = _this.props, onCollapse = _this$props.onCollapse, onExpand = _this$props.onExpand; if (collapsed) { if (onCollapse) { onCollapse(); } } else { if (onExpand) { onExpand(); } } }); (0, _validateProps.default)(props); return _this; } /** * 标签必须要实现的接口 */ (0, _createClass2.default)(CollapsibleBlock, [ { 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_COLLAPSIBLE_BLOCK, TAG_API_GENERATOR: _apis.default }); // 连接FormItem的数据与视图 this.ConnectedView = this.context._connectFormItemView(name, _View.CollapsibleBlockView); } }, { 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, (0, _extends2.default)({}, this.props, { onChange: this.handleChange }) ); } } ]); return CollapsibleBlock; })(_react.default.Component); exports.default = CollapsibleBlock; (0, _defineProperty2.default)(CollapsibleBlock, 'contextType', _FormContext.default); (0, _defineProperty2.default)(CollapsibleBlock, 'TAG_ATTRS_GENERATOR', _genDefaultProps.default); (0, _defineProperty2.default)(CollapsibleBlock, 'TAG_TYPE', _FormConstants.TAG_TYPE_COLLAPSIBLE_BLOCK); (0, _defineProperty2.default)(CollapsibleBlock, 'TAG_API_GENERATOR', _apis.default); (0, _defineProperty2.default)(CollapsibleBlock, 'propTypes', { name: _propTypes.default.string, value: _propTypes.default.string, collapsed: _propTypes.default.bool, onExpand: _propTypes.default.func, onCollapse: _propTypes.default.func }); //@ sourceMappingURL=index.js.map