UNPKG

maycur-business

Version:

maycur business react components of web

797 lines (645 loc) 33.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; require("maycur-antd/lib/skeleton/style/css"); var _skeleton = _interopRequireDefault(require("maycur-antd/lib/skeleton")); require("maycur-antd/lib/row/style/css"); var _row = _interopRequireDefault(require("maycur-antd/lib/row")); var _react = _interopRequireWildcard(require("react")); var _PureJs = _interopRequireDefault(require("../PureJs")); var _utils = _interopRequireDefault(require("../utils/utils")); var _FormChefCommon = _interopRequireDefault(require("../FormChefCommon")); var _FormTombStone = _interopRequireWildcard(require("../FormTombStone")); var _formDishDefault = _interopRequireDefault(require("./formDishDefault")); var _generateValidator = _interopRequireDefault(require("./generateValidator")); var _lodash = _interopRequireDefault(require("lodash")); function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } var H5 = 'H5', WEB = 'WEB'; var RootFormDish = null; var platform = H5; var AssociationSort = _PureJs["default"].AssociationSort; function defineDish(obj) { RootFormDish = obj; } function definePlatform(_platform) { platform = _platform; } var FormChef = function FormChef(option) { return function (WrappedComponent) { var defaultFormOption = { cookerOption: {}, formReadyLock: true, preDefinedFormulas: [], formMode: 'EDIT', //NOTE EDIT:编辑,VIEW:查看模式 formFields: [], isValueMap: false //谨慎使用 }; var formOption = Object.assign({}, defaultFormOption, option); var FormDish = formOption.FormDish ? formOption.FormDish : RootFormDish; var WrapperFormChef = /*#__PURE__*/ function (_Component) { _inherits(WrapperFormChef, _Component); function WrapperFormChef(_props) { var _this; _classCallCheck(this, WrapperFormChef); _this = _possibleConstructorReturn(this, _getPrototypeOf(WrapperFormChef).call(this, _props)); _this.formMapFields = function (props) { var _this$state = _this.state, formFields = _this$state.formFields, formReady = _this$state.formReady; var formValue = props.formValue; var modifyFieldValues = {}; if (formReady && formFields && formFields.length > 0 && formValue) { _lodash["default"].forEach(formFields, function (item) { var matchedField = _this.fields[item.identifier]; if (matchedField && !_lodash["default"].isEqual(matchedField.value, formValue[item.identifier])) { modifyFieldValues[item.identifier] = formValue[item.identifier]; } }); if (!_lodash["default"].isEmpty(modifyFieldValues)) { _this.setFieldsValue(modifyFieldValues, { modifyFromProps: true }); } } }; _this.updateFormFields = function (fields) { //只有在编辑页面的时候,需要根据条件里面的只读性(isFieldReadOnly)设置到formFields的isReadonly属性上 if (formOption.formMode === 'EDIT') { var effectedFieldValues = {}; _lodash["default"].forEach(fields, function (field) { field.property.isReadonly = field.property.isFieldReadOnly; if (field.detailTableFields) { _lodash["default"].forEach(field.detailTableFields, function (detailField) { detailField.property.isReadonly = detailField.property.isFieldReadOnly; }); } if (field.property.isFieldHide && _this.getFieldValue([field.identifier])) { effectedFieldValues[field.identifier] = undefined; } }); _this.setFieldsValue(effectedFieldValues); } _this.setState({ formFields: fields }); }; _this.getFieldError = function (name) { var matchField = _this.fields[name]; if (matchField) { return matchField.validateError; } }; _this.setFormReady = function (val) { if (formOption.formReadyLock) { _this.setState({ formReady: !!val }); } }; _this.setFieldsValue = function (changeValues) { var modifyOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; if (!changeValues || _lodash["default"].isEmpty(changeValues)) return; var blockChangeEffect = modifyOption.blockChangeEffect, modifyFromProps = modifyOption.modifyFromProps; var formReady = _this.state.formReady; var formData = _this.fetchFormData(); //是否触发条件公式 if (formOption.formMode === 'EDIT') _this.fieldChangeOnCondition(formData, changeValues); var identifierList = []; _this.modifyFormData(_objectSpread({}, formData, {}, changeValues), modifyFromProps ? false : true); //NOTE 触发watch函数 /* 触发观察函数 */ //如果表单是查看模式或者formReady=false的情况,不触发观察函数 if (formOption.formMode === 'EDIT' && formReady) { _lodash["default"].forEach(changeValues, function (value, key) { identifierList.push(key); if (key in _this.fields) { var fieldInstance = _this.fields[key]; fieldInstance.validate(); _lodash["default"].forEach(fieldInstance.watch, function (item) { if (typeof item === 'function') { item(value, formData[key]); } }); } }); } //如果表单是查看模式||formReady=false||blockChangeEffect(明确改值不需要联动)的情况,不触发表单联动 if (!blockChangeEffect && formOption.formMode === 'EDIT' && formReady) { var modifyValues = {}; /* 表单联动触发 */ _lodash["default"].forEach(changeValues, function (val, key) { var formulaEffectData = _this.formChefParser.triggerFormula(key, val); modifyValues = _objectSpread({}, modifyValues, {}, formulaEffectData); }); if (!_lodash["default"].isEmpty(modifyValues)) { _this.setFieldsValue(modifyValues); } } }; _this.modifyFormData = function (formData) { var needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; var formChange = _this.props.formChange; _lodash["default"].forEach(formData, function (val, key) { if (_this.fields[key]) { _this.fields[key].setValue(val); } }); if (formOption.isValueMap && needUpdate) { //props的更改已经让组件render过一次 var onChange = _this.props.onChange; if (typeof onChange === 'function') onChange(_this.fetchFormData()); /* 表单值改变回调函数 */ if (typeof formChange === 'function') formChange(formData); } else { if (needUpdate) _this.forceUpdate(); } }; _this.fetchFormData = function () { var formData = {}; _lodash["default"].forEach(_this.fields, function (field, name) { formData[name] = field.value; }); return formData; }; _this.getFieldDecorator = function (name, rule) { return function (fieldElem) { var matcheField = _this.fields[name]; if (matcheField) { if (_this.validators) _this.validators.addRule(name, rule); return _react["default"].cloneElement(fieldElem, { value: matcheField.value, onChange: function onChange(val) { _this.setFieldsValue(_defineProperty({}, name, val)); }, ref: function ref(_ref) { matcheField.componentInstance = _ref; } }); } else { return null; } }; }; _this.setFieldWatch = function (fieldName, fn) { if (typeof fn === 'function' && fieldName && fieldName in _this.fields) { var fieldInstacne = _this.fields[fieldName]; fieldInstacne.setWatch(fn); } }; _this.cookForm = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; /* publicProps:表单级别的公共props每个field都应该接受 privateProps:字段级别的props,包含所有field的私有props,需要过滤后传入对应的字段组件 params:用于方法本身的一些逻辑参数 */ var publicProps = options.publicProps, privateProps = options.privateProps, bottomExtra = options.bottomExtra, topExtra = options.topExtra; var _this$state2 = _this.state, formFields = _this$state2.formFields, formReady = _this$state2.formReady; var FormNode = null, Node = null, formRows = null; if (!_lodash["default"].isEmpty(formFields) && formReady) { if (platform === WEB) { formRows = _utils["default"].generateRows(formFields); Node = formRows.map(function (item, index) { var fieldList = item.fieldList; var rowKey = fieldList && fieldList[0].identifier || index; return _react["default"].createElement(_row["default"], { key: rowKey, gutter: 24 }, fieldList.map(function (field) { return _react["default"].createElement(FormDish, { FormBuild: FormChef, key: field.identifier || index, form: _this.instance, field: field, publicProps: publicProps, privateProps: privateProps }); })); }); } else { Node = formFields.map(function (field, index) { if (field.property.isFieldHide) return null; return _react["default"].createElement(FormDish, { FormBuild: FormChef, key: field.identifier || index, form: _this.instance, field: field, publicProps: publicProps, privateProps: privateProps }); }); } FormNode = _react["default"].createElement("section", { className: "mk-form" }, topExtra ? topExtra : null, Node, bottomExtra ? bottomExtra : null); } else { var stoneLength = formFields && formFields.length > 5 ? formFields.length : 5; var stoneList = Array.from(Array(stoneLength).keys()); if (platform === WEB) { FormNode = _react["default"].createElement("section", { className: "mk-form" }, stoneList.map(function (key) { return _react["default"].createElement(_row["default"], { key: key, gutter: 24 }, _react["default"].createElement(_skeleton["default"], { paragraph: { rows: 1 }, title: { width: '100px' }, active: true })); })); } else { FormNode = _react["default"].createElement(_FormTombStone["default"], null); } } ; return FormNode; }; _this.formInstantiate = /*#__PURE__*/ function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee(orgFormFields) { var formFields; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(!orgFormFields && _lodash["default"].isEmpty(orgFormFields))) { _context.next = 2; break; } return _context.abrupt("return"); case 2: formFields = formOption.formMode === 'EDIT' ? _this.dynamicFormCtrl.init(orgFormFields) : orgFormFields; _context.next = 5; return new Promise(function (resolve, reject) { _this.setState({ formFields: formFields }, function () { resolve(); }); }); case 5: _this.validators = (0, _generateValidator["default"])(formFields, formOption.cookerOption.validateMessages); _this.fieldInstantiate(formFields); if (formOption.formMode === 'EDIT') _this.buildFormulaParser({ formFields: formFields }); case 8: case "end": return _context.stop(); } } }, _callee); })); return function (_x) { return _ref2.apply(this, arguments); }; }(); _this.initData = function (data) { var isNew = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; if (!data) return; var formFields = _this.state.formFields; var formData = {}; _lodash["default"].forEach(formFields, function (field) { if (_lodash["default"].has(data, field.identifier)) { formData[field.identifier] = data[field.identifier]; } }); _this.fieldChangeOnCondition(formData, formData, formFields, true); _this.formChefParser.updateParserPool({ pool: _objectSpread({}, formData) }); _this.setFormReady(true); _this.modifyFormData(formData); if (isNew && formOption.formMode === 'EDIT') { //默认值的获取方式有些是要通过后台去请求,所以默认值的步骤独立出去 _this.formDefaultProcess(formFields); } }; _this.fieldChangeOnCondition = function (formData, changedFields, _formFields, isFirstUpdate) { if (_this.dynamicFormCtrl && _this.dynamicFormCtrl.hasCondition) { var formFields = _this.state.formFields; _this.dynamicFormCtrl && _this.dynamicFormCtrl.onFieldChange(_formFields || formFields, formData, changedFields, isFirstUpdate); } }; _this.buildFormulaParser = function () { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var formFields = data.formFields || _this.state.formFields; if (formFields && formFields.length > 0) { var formulaRules = []; _this.formChefParser.buildFormFormula(formFields, formOption.preDefinedFormulas); var externalRequestFields = _lodash["default"].filter(formFields, function (field) { return ['AssociationInput', 'ExternalOptionInput'].includes(field.type); }); if (externalRequestFields && externalRequestFields.length) { // 构建一个类似的有向无环图 // 碧桂园的轻表单里基本全是数据互联组件,组件之间互相依赖,会发很多重复的请求。因此将这些依赖关系排个序,按序发请求 // 设置为隐藏的数据互联,在其显示时,在didmount中触发请求 var _externalRequestFields = _lodash["default"].clone(externalRequestFields); var hideExternalRequestFields = _lodash["default"].remove(_externalRequestFields, function (item) { return item.property.isFieldHide; }); // const dispatch = request.getReduxDispatch(); // dispatch({ type: 'base/setState', payload: { hideExternalRequestFields } }); _this.associationSort = new AssociationSort(); _this.associationSort.buildGraph(_externalRequestFields); _lodash["default"].each(externalRequestFields, function (field, fIndex) { _lodash["default"].each(field.cascadeDataRelations, function (cascadeField, cIndex) { formulaRules.push({ targetField: field.identifier, referField: cascadeField.value, // 受影响字段 formula: "clear".concat(fIndex).concat(cIndex, "()"), // maycur-business中同名方法会被覆盖 setFunctionList: _defineProperty({}, "clear".concat(fIndex).concat(cIndex), function clear() { // 初始化请求已完成 if (_this.associationInit) { var _formFields2 = _this.state.formConfig.formFields; var target = _lodash["default"].find(_formFields2, { identifier: field.identifier }); if (target && !target.property.isFieldHide) { _this.setFieldsValue(_defineProperty({}, "".concat(field.identifier), undefined)); _this.getAssociationFieldDefaultValue(field); } } }), privateParser: true }); }); }); } else { _this.associationSort = null; } _this.formChefParser.genFormula(formulaRules); _this.associationSort && _this.associationSort.traversalSortedList(_this.getAssociationFieldDefaultValue).then(function () { _this.associationInit = true; })["catch"](function () {}); } }; _this.formDefaultProcess = function () { var formFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var fieldsValue = {}; _lodash["default"].forEach(formFields, function (field) { var fieldInstance = _this.fields[field.identifier]; if (fieldInstance) { var v = fieldInstance.getDefault(); if (v && v.then && typeof v.then === 'function') { v.then(function (r) { if (r && r.hasDefault && fieldInstance.value !== undefined) { _this.setDefaultValues(_defineProperty({}, field.identifier, r.value)); } }); } else if (v && v.hasDefault) { fieldsValue[field.identifier] = v.value; } } }); _this.setFieldsValue(fieldsValue); }; _this.setDefaultValues = function () { var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; if (_this.rcFormRef) { var fieldsValue = {}; _lodash["default"].forEach(data, function (val, key) { var fieldValue = _this.rcFormRef.getFieldValue(key); if (fieldValue === undefined) fieldsValue[key] = val; }); if (_lodash["default"].isEmpty(fieldsValue)) _this.rcFormRef.setFieldsValue(fieldsValue); } }; _this.fieldInstantiate = function () { var formFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; _lodash["default"].forEach(formFields, function (field) { var fieldInstance = new _formDishDefault["default"]({ config: field }); fieldInstance.setValidator(_this.validators); _this.fields[field.identifier] = fieldInstance; }); }; _this.validateFields = function (cb) { var formData = _this.fetchFormData(); var firstField; _this.validators.validate(formData, { formFields: _this.state.formFields }, function (errors, fields) { if (errors) { _lodash["default"].forEach(errors, function (err) { var message = err.message, field = err.field; if (_this.fields[field]) { _this.fields[field].validateError = message; if (!firstField) firstField = _this.fields[field]; } }); } else { _lodash["default"].forEach(_this.fields, function (field) { field.validateError = undefined; }); } if (typeof cb === 'function') cb(errors, fields); _this.forceUpdate(); if (firstField) firstField.scroll(); }); }; _this.rebuildForm = /*#__PURE__*/ function () { var _ref3 = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee2(formFields) { var prevFormData; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: prevFormData = _this.fetchFormData(); _context2.next = 3; return _this.reset(); case 3: _context2.next = 5; return _this.formInstantiate(formFields); case 5: _this.initData(prevFormData, true); case 6: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x2) { return _ref3.apply(this, arguments); }; }(); _this.reset = function () { _this.fields = {}; _this.validators = undefined; return new Promise(function (resolve) { _this.setState({ formReady: false, formFields: [] }, function () { resolve(); }); }); }; _this.monitorFormValue = function () {} // const { formValue } = this.props; // const { formFields } = this.state; // let syncFormValue = {}; // const createFormField = formOption.createFormField || rcCreateFormField; // _.forEach(formFields, field => { // if (_.has(formValue, field.identifier)) { // syncFormValue[field.identifier] = createFormField({ value: formValue[field.identifier] }); // } // }) // if (!_.isEmpty(syncFormValue)) { // this.rcFormRef.updateFields(syncFormValue); // } // TODO 获取数据互联的默认值 ; _this.getAssociationFieldDefaultValue = /*#__PURE__*/ function () { var _ref4 = _asyncToGenerator( /*#__PURE__*/ regeneratorRuntime.mark(function _callee3(field) { var _field$property, targetUrl, dataSource, _formOption$extra, extra, isInTable, emitter, _api, _this$props$privatePr, privateProps, _privateProps$field$i, fetchFormData, receiptType, selectionIndex, _detailIdentifier, detailIdentifier, api, options; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: // 重新发请求,获取数据互联组件的默认值 _field$property = field.property, targetUrl = _field$property.dataLinkApi, dataSource = _field$property.dataSource; _formOption$extra = formOption.extra, extra = _formOption$extra === void 0 ? {} : _formOption$extra; isInTable = extra.isInTable, emitter = extra.emitter, _api = extra.api; _this$props$privatePr = _this.props.privateProps, privateProps = _this$props$privatePr === void 0 ? {} : _this$props$privatePr; _privateProps$field$i = privateProps[field.identifier], fetchFormData = _privateProps$field$i.fetchFormData, receiptType = _privateProps$field$i.receiptType, selectionIndex = _privateProps$field$i.selectionIndex, _detailIdentifier = _privateProps$field$i.detailIdentifier; detailIdentifier = _detailIdentifier; api = _api && _api.fetchAssociateData, options = { params: { fetchFormData: fetchFormData, receiptType: receiptType, detailIdentifier: detailIdentifier, selectionIndex: selectionIndex } }; if (field.type === 'ExternalOptionInput') { api = _api && _api.fetchExternalOptionData; options.params.externalReferenceCode = dataSource; } else { options.params.targetUrl = targetUrl; } _context3.next = 10; return api(options).then(function (data) { if (data) { if (isInTable) { emitter.emit("".concat(field.identifier, "-").concat(_this.props['data-row-key']), data); } else { emitter.emit(field.identifier, data); } } }); case 10: case "end": return _context3.stop(); } } }, _callee3); })); return function (_x3) { return _ref4.apply(this, arguments); }; }(); _this.state = { formReady: formOption.formReadyLock ? false : true, formFields: [] }; _this.fields = {}; _this.validators = undefined; _this.dynamicFormCtrl = new _FormChefCommon["default"].DynamicFormCtrl({ updateFormFields: _this.updateFormFields }); _this.formChefParser = new _FormChefCommon["default"].formChefParser(); _this.instance = { initData: _this.initData, cookForm: _this.cookForm, formInstantiate: _this.formInstantiate, setWatch: _this.setFieldWatch, setFieldsValue: _this.setFieldsValue, getFieldDecorator: _this.getFieldDecorator, getFieldError: _this.getFieldError, validateFields: _this.validateFields, rebuildForm: _this.rebuildForm }; return _this; } _createClass(WrapperFormChef, [{ key: "componentWillReceiveProps", value: function componentWillReceiveProps(nextProps) { if (formOption.isValueMap) { this.formMapFields(nextProps); } } }, { key: "render", value: function render() { var _this$state3 = this.state, formReady = _this$state3.formReady, formFields = _this$state3.formFields; return _react["default"].createElement(WrappedComponent, _extends({}, this.props, { FormBuild: FormChef, FormDish: formReady ? FormDish : _FormTombStone.TombStone, formState: { formReady: formReady, formFields: formFields }, form: this.instance })); } }]); return WrapperFormChef; }(_react.Component); WrapperFormChef.displayName = 'FormChef'; return WrapperFormChef; }; }; FormChef.defineDish = defineDish; FormChef.definePlatform = definePlatform; var _default = FormChef; exports["default"] = _default;