"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _proField = _interopRequireDefault(require("@ant-design/pro-field")); var _proUtils = require("@ant-design/pro-utils"); var _react = _interopRequireWildcard(require("react")); var _EditOrReadOnlyContext = require("../../BaseForm/EditOrReadOnlyContext"); var _createField = require("../../BaseForm/createField"); var _jsxRuntime = require("react/jsx-runtime"); var _excluded = ["fieldProps", "children", "labelCol", "label", "autoFocus", "isDefaultDom", "render", "proFieldProps", "renderFormItem", "valueType", "initialValue", "onChange", "valueEnum", "params", "name", "dependenciesValues", "cacheForSwr", "valuePropName"]; var BaseProFormField = function BaseProFormField(props) { var fieldProps = props.fieldProps, children = props.children, labelCol = props.labelCol, label = props.label, autoFocus = props.autoFocus, isDefaultDom = props.isDefaultDom, render = props.render, proFieldProps = props.proFieldProps, renderFormItem = props.renderFormItem, valueType = props.valueType, initialValue = props.initialValue, _onChange = props.onChange, valueEnum = props.valueEnum, params = props.params, name = props.name, dependenciesValues = props.dependenciesValues, _props$cacheForSwr = props.cacheForSwr, cacheForSwr = _props$cacheForSwr === void 0 ? false : _props$cacheForSwr, _props$valuePropName = props.valuePropName, valuePropName = _props$valuePropName === void 0 ? 'value' : _props$valuePropName, restProps = (0, _objectWithoutProperties2.default)(props, _excluded); var modeContext = (0, _react.useContext)(_EditOrReadOnlyContext.EditOrReadOnlyContext); var propsParams = (0, _react.useMemo)(function () { // 使用dependencies时 dependenciesValues是有值的 // 此时如果存在request,注入dependenciesValues return dependenciesValues && restProps.request ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), dependenciesValues || {}) : params; }, [dependenciesValues, params, restProps.request]); var memoUnChange = (0, _proUtils.useRefFunction)(function () { if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) { var _fieldProps$onChange; for (var _len = arguments.length, restParams = new Array(_len), _key = 0; _key < _len; _key++) { restParams[_key] = arguments[_key]; } fieldProps === null || fieldProps === void 0 || (_fieldProps$onChange = fieldProps.onChange) === null || _fieldProps$onChange === void 0 || _fieldProps$onChange.call.apply(_fieldProps$onChange, [fieldProps].concat(restParams)); return; } }); var memoFieldProps = (0, _react.useMemo)(function () { return (0, _objectSpread2.default)((0, _objectSpread2.default)({ autoFocus: autoFocus }, fieldProps), {}, { onChange: memoUnChange }); }, [autoFocus, fieldProps, memoUnChange]); var childrenRender = (0, _react.useMemo)(function () { // 防止 formItem 的值被吃掉 if (children) { if ( /*#__PURE__*/_react.default.isValidElement(children)) { return /*#__PURE__*/_react.default.cloneElement(children, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, restProps), {}, { onChange: function onChange() { for (var _len2 = arguments.length, restParams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { restParams[_key2] = arguments[_key2]; } if (fieldProps !== null && fieldProps !== void 0 && fieldProps.onChange) { var _fieldProps$onChange2; fieldProps === null || fieldProps === void 0 || (_fieldProps$onChange2 = fieldProps.onChange) === null || _fieldProps$onChange2 === void 0 || _fieldProps$onChange2.call.apply(_fieldProps$onChange2, [fieldProps].concat(restParams)); return; } _onChange === null || _onChange === void 0 || _onChange.apply(void 0, restParams); } }, (children === null || children === void 0 ? void 0 : children.props) || {})); } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, { children: children }); } return; }, [children, fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange, _onChange, restProps]); if (childrenRender) { return childrenRender; } return /*#__PURE__*/(0, _jsxRuntime.jsx)(_proField.default, (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({ text: fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps[valuePropName], render: render, renderFormItem: renderFormItem, valueType: valueType || 'text', cacheForSwr: cacheForSwr, fieldProps: memoFieldProps, valueEnum: (0, _proUtils.runFunction)(valueEnum) }, proFieldProps), restProps), {}, { mode: (proFieldProps === null || proFieldProps === void 0 ? void 0 : proFieldProps.mode) || modeContext.mode || 'edit', params: propsParams })); }; var ProFormField = (0, _createField.createField)( /*#__PURE__*/(0, _react.memo)(BaseProFormField, function (prevProps, nextProps) { return (0, _proUtils.isDeepEqualReact)(nextProps, prevProps, ['onChange', 'onBlur']); })); var _default = exports.default = ProFormField;