tdesign-react
Version:
TDesign Component for React
663 lines (655 loc) • 30.8 kB
JavaScript
/**
* tdesign v1.16.2
* (c) 2025 tdesign
* @license MIT
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var toConsumableArray = require('../_chunks/dep-a7fe58de.js');
var index = require('../_chunks/dep-e88f025c.js');
var defineProperty = require('../_chunks/dep-0fe55884.js');
var slicedToArray = require('../_chunks/dep-5cb0d66d.js');
var React = require('react');
var tdesignIconsReact = require('tdesign-icons-react');
var hooks_useConfig = require('../hooks/useConfig.js');
var hooks_useDefaultProps = require('../hooks/useDefaultProps.js');
var hooks_useGlobalIcon = require('../hooks/useGlobalIcon.js');
var locale_LocalReceiver = require('../locale/LocalReceiver.js');
var form_const = require('./const.js');
var form_defaultProps = require('./defaultProps.js');
var form_FormContext = require('./FormContext.js');
var form_formModel = require('./formModel.js');
var form_hooks_useForm = require('./hooks/useForm.js');
var form_hooks_useFormItemInitialData = require('./hooks/useFormItemInitialData.js');
var form_hooks_useFormItemStyle = require('./hooks/useFormItemStyle.js');
var form_utils_index = require('./utils/index.js');
var isEqual = require('../_chunks/dep-1b7ce2a3.js');
var get = require('../_chunks/dep-b7bd245a.js');
var isFunction = require('../_chunks/dep-967e785f.js');
var set = require('../_chunks/dep-e19c8b39.js');
var unset = require('../_chunks/dep-49529621.js');
var isString = require('../_chunks/dep-b304bc94.js');
var isObject = require('../_chunks/dep-5c8525ea.js');
require('../_chunks/dep-737b8bd8.js');
require('../_chunks/dep-b325182b.js');
require('../config-provider/ConfigContext.js');
require('../_chunks/dep-17dea53e.js');
require('../_chunks/dep-a0cbf081.js');
require('dayjs');
require('../_chunks/dep-481a1ecc.js');
require('../_chunks/dep-474eb386.js');
require('../_chunks/dep-3b256bc0.js');
require('../_chunks/dep-4ce0670e.js');
require('../_chunks/dep-3448f35f.js');
require('../_chunks/dep-b6a3ada9.js');
require('../_chunks/dep-735cd5b9.js');
require('../_chunks/dep-bdafd287.js');
require('../_chunks/dep-4d300b8f.js');
require('../_chunks/dep-3332ad6f.js');
require('../_chunks/dep-98783318.js');
require('../_chunks/dep-fc884a8e.js');
require('../_chunks/dep-008b21d4.js');
require('../_chunks/dep-9193eded.js');
require('../_chunks/dep-afe817f9.js');
require('../_chunks/dep-0b70c7ec.js');
require('../_chunks/dep-a1e3e59b.js');
require('../_chunks/dep-24ab8f68.js');
require('../_chunks/dep-753b7d52.js');
require('../config-provider/ConfigProvider.js');
require('../_chunks/dep-542bd26e.js');
require('../_chunks/dep-c89d3d1e.js');
require('../_chunks/dep-e018b522.js');
require('../_chunks/dep-7f4d0687.js');
require('../_chunks/dep-b23d5e45.js');
require('../_chunks/dep-779273e7.js');
require('../_chunks/dep-40583e7c.js');
require('../_chunks/dep-bb3e9667.js');
require('../_chunks/dep-57675be6.js');
require('../_chunks/dep-831bdf33.js');
require('../_chunks/dep-05f87b98.js');
require('../_chunks/dep-2fca59e9.js');
require('../_chunks/dep-50a2eaa5.js');
require('../_chunks/dep-5dd1b13c.js');
require('../_chunks/dep-eb2203ae.js');
require('../_chunks/dep-7659797a.js');
require('classnames');
require('../_util/parseTNode.js');
require('../_chunks/dep-625279d1.js');
require('../_chunks/dep-4f4b2eb1.js');
require('../_chunks/dep-0398d4b6.js');
require('../_chunks/dep-f0b4efe7.js');
require('../_chunks/dep-002bcd4b.js');
require('../_chunks/dep-2ad01263.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { defineProperty._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var FormItem = /*#__PURE__*/React.forwardRef(function (originalProps, ref) {
var _useLocaleReceiver = locale_LocalReceiver.useLocaleReceiver("form"),
_useLocaleReceiver2 = slicedToArray._slicedToArray(_useLocaleReceiver, 2),
locale = _useLocaleReceiver2[0],
t = _useLocaleReceiver2[1];
var _useConfig = hooks_useConfig["default"](),
classPrefix = _useConfig.classPrefix,
globalFormConfig = _useConfig.form;
var _useGlobalIcon = hooks_useGlobalIcon["default"]({
CheckCircleFilledIcon: tdesignIconsReact.CheckCircleFilledIcon,
CloseCircleFilledIcon: tdesignIconsReact.CloseCircleFilledIcon,
ErrorCircleFilledIcon: tdesignIconsReact.ErrorCircleFilledIcon
}),
CheckCircleFilledIcon = _useGlobalIcon.CheckCircleFilledIcon,
CloseCircleFilledIcon = _useGlobalIcon.CloseCircleFilledIcon,
ErrorCircleFilledIcon = _useGlobalIcon.ErrorCircleFilledIcon;
var _useFormContext = form_FormContext.useFormContext(),
form = _useFormContext.form,
colon = _useFormContext.colon,
layout = _useFormContext.layout,
requiredMarkFromContext = _useFormContext.requiredMark,
requiredMarkPosition = _useFormContext.requiredMarkPosition,
labelAlignFromContext = _useFormContext.labelAlign,
labelWidthFromContext = _useFormContext.labelWidth,
showErrorMessageFromContext = _useFormContext.showErrorMessage,
disabledFromContext = _useFormContext.disabled,
readOnlyFromContext = _useFormContext.readOnly,
resetTypeFromContext = _useFormContext.resetType,
rulesFromContext = _useFormContext.rules,
statusIconFromContext = _useFormContext.statusIcon,
errorMessage = _useFormContext.errorMessage,
formMapRef = _useFormContext.formMapRef,
onFormItemValueChange = _useFormContext.onFormItemValueChange;
var _useFormListContext = form_FormContext.useFormListContext(),
formListName = _useFormListContext.name,
formListRules = _useFormListContext.rules,
formListMapRef = _useFormListContext.formListMapRef,
formOfFormList = _useFormListContext.form;
var props = hooks_useDefaultProps["default"](originalProps, form_defaultProps.formItemDefaultProps);
var children = props.children,
style = props.style,
label = props.label,
name = props.name,
status = props.status,
tips = props.tips,
help = props.help,
valueFormat = props.valueFormat,
initialData = props.initialData,
className = props.className,
shouldUpdate = props.shouldUpdate,
successBorder = props.successBorder,
_props$statusIcon = props.statusIcon,
statusIcon = _props$statusIcon === void 0 ? statusIconFromContext : _props$statusIcon,
_props$rules = props.rules,
innerRules = _props$rules === void 0 ? getInnerRules(name, rulesFromContext, formListName, formListRules) : _props$rules,
_props$labelWidth = props.labelWidth,
labelWidth = _props$labelWidth === void 0 ? labelWidthFromContext : _props$labelWidth,
_props$labelAlign = props.labelAlign,
labelAlign = _props$labelAlign === void 0 ? labelAlignFromContext : _props$labelAlign,
_props$requiredMark = props.requiredMark,
requiredMark = _props$requiredMark === void 0 ? requiredMarkFromContext : _props$requiredMark;
var _useFormListContext2 = form_FormContext.useFormListContext(),
parentFullPath = _useFormListContext2.fullPath;
var fullPath = form_utils_index.concatName(parentFullPath, name);
var _useFormItemInitialDa = form_hooks_useFormItemInitialData["default"](name, fullPath),
getDefaultInitialData = _useFormItemInitialDa.getDefaultInitialData;
var _useState = React.useState({}),
_useState2 = slicedToArray._slicedToArray(_useState, 2),
forceUpdate = _useState2[1];
var _useState3 = React.useState(void 0),
_useState4 = slicedToArray._slicedToArray(_useState3, 2),
freeShowErrorMessage = _useState4[0],
setFreeShowErrorMessage = _useState4[1];
var _useState5 = React.useState([]),
_useState6 = slicedToArray._slicedToArray(_useState5, 2),
errorList = _useState6[0],
setErrorList = _useState6[1];
var _useState7 = React.useState([]),
_useState8 = slicedToArray._slicedToArray(_useState7, 2),
successList = _useState8[0],
setSuccessList = _useState8[1];
var _useState9 = React.useState("validating"),
_useState0 = slicedToArray._slicedToArray(_useState9, 2),
verifyStatus = _useState0[0],
setVerifyStatus = _useState0[1];
var _useState1 = React.useState(false),
_useState10 = slicedToArray._slicedToArray(_useState1, 2),
resetValidating = _useState10[0],
setResetValidating = _useState10[1];
var _useState11 = React.useState(false),
_useState12 = slicedToArray._slicedToArray(_useState11, 2),
needResetField = _useState12[0],
setNeedResetField = _useState12[1];
var _useState13 = React.useState(function () {
return getDefaultInitialData({
children: children,
initialData: initialData
});
}),
_useState14 = slicedToArray._slicedToArray(_useState13, 2),
formValue = _useState14[0],
setFormValue = _useState14[1];
var formItemRef = React.useRef(null);
var innerFormItemsRef = React.useRef([]);
var shouldEmitChangeRef = React.useRef(false);
var shouldValidate = React.useRef(false);
var valueRef = React.useRef(formValue);
var errorListMapRef = React.useRef(/* @__PURE__ */new Map());
var isSameForm = React.useMemo(function () {
return isEqual.isEqual(form, formOfFormList);
}, [form, formOfFormList]);
var snakeName = [].concat(isSameForm ? formListName : void 0, name).filter(function (item) {
return item !== void 0;
}).toString();
var errorMessages = React.useMemo(function () {
return errorMessage !== null && errorMessage !== void 0 ? errorMessage : globalFormConfig.errorMessage;
}, [errorMessage, globalFormConfig]);
var showErrorMessage = React.useMemo(function () {
if (typeof freeShowErrorMessage === "boolean") return freeShowErrorMessage;
if (typeof props.showErrorMessage === "boolean") return props.showErrorMessage;
return showErrorMessageFromContext;
}, [freeShowErrorMessage, props.showErrorMessage, showErrorMessageFromContext]);
var _useFormItemStyle = form_hooks_useFormItemStyle["default"]({
className: className,
help: help,
tips: tips,
snakeName: snakeName,
status: status,
successBorder: successBorder,
errorList: errorList,
successList: successList,
layout: layout,
verifyStatus: verifyStatus,
label: label,
labelWidth: labelWidth,
labelAlign: labelAlign,
requiredMark: requiredMark,
requiredMarkPosition: requiredMarkPosition,
showErrorMessage: showErrorMessage,
innerRules: innerRules
}),
formItemClass = _useFormItemStyle.formItemClass,
formItemLabelClass = _useFormItemStyle.formItemLabelClass,
contentClass = _useFormItemStyle.contentClass,
labelStyle = _useFormItemStyle.labelStyle,
contentStyle = _useFormItemStyle.contentStyle,
helpNode = _useFormItemStyle.helpNode,
extraNode = _useFormItemStyle.extraNode;
var updateFormValue = function updateFormValue(newVal) {
var _form$getInternalHook, _form$getFieldsValue;
var validate2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var shouldEmitChange = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var _ref = (form === null || form === void 0 || (_form$getInternalHook = form.getInternalHooks) === null || _form$getInternalHook === void 0 ? void 0 : _form$getInternalHook.call(form, form_hooks_useForm.HOOK_MARK)) || {},
setPrevStore = _ref.setPrevStore;
setPrevStore === null || setPrevStore === void 0 || setPrevStore(form === null || form === void 0 || (_form$getFieldsValue = form.getFieldsValue) === null || _form$getFieldsValue === void 0 ? void 0 : _form$getFieldsValue.call(form, true));
shouldEmitChangeRef.current = shouldEmitChange;
shouldValidate.current = validate2;
valueRef.current = newVal;
var fieldValue = get.get(form === null || form === void 0 ? void 0 : form.store, fullPath);
if (isEqual.isEqual(fieldValue, newVal)) return;
set.set(form === null || form === void 0 ? void 0 : form.store, fullPath, newVal);
setFormValue(newVal);
};
function getInnerRules(name2, formRules, formListName2, formListRules2) {
if (Array.isArray(name2)) {
return get.get(formRules === null || formRules === void 0 ? void 0 : formRules[formListName2], name2) || get.get(formListRules2, name2) || get.get(formRules, name2.join(".")) || [];
}
return (formRules === null || formRules === void 0 ? void 0 : formRules[name2]) || formListRules2 || [];
}
var renderSuffixIcon = function renderSuffixIcon() {
if (statusIcon === false) return null;
var resultIcon = function resultIcon(iconSlot) {
return /* @__PURE__ */React__default["default"].createElement("span", {
className: "".concat(classPrefix, "-form__status")
}, iconSlot);
};
var getDefaultIcon = function getDefaultIcon() {
var iconMap = {
success: /* @__PURE__ */React__default["default"].createElement(CheckCircleFilledIcon, {
size: "25px"
}),
error: /* @__PURE__ */React__default["default"].createElement(CloseCircleFilledIcon, {
size: "25px"
}),
warning: /* @__PURE__ */React__default["default"].createElement(ErrorCircleFilledIcon, {
size: "25px"
})
};
if (verifyStatus === form_const.ValidateStatus.SUCCESS) {
return resultIcon(iconMap[verifyStatus]);
}
if (errorList && errorList[0]) {
var type = errorList[0].type || "error";
return resultIcon(iconMap[type]);
}
return null;
};
if (/*#__PURE__*/React__default["default"].isValidElement(statusIcon)) {
return resultIcon(/*#__PURE__*/React__default["default"].cloneElement(statusIcon, _objectSpread({
style: {
color: "unset"
}
}, statusIcon.props)));
}
if (statusIcon === true) {
return getDefaultIcon();
}
return null;
};
function analysisValidateResult(_x) {
return _analysisValidateResult.apply(this, arguments);
}
function _analysisValidateResult() {
_analysisValidateResult = index._asyncToGenerator(/*#__PURE__*/index.regenerator.mark(function _callee(trigger) {
var _result$rules;
var result;
return index.regenerator.wrap(function (_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
result = {
successList: [],
errorList: [],
rules: [],
resultList: [],
allowSetValue: false
};
result.rules = trigger === "all" ? innerRules : innerRules.filter(function (item) {
return (item.trigger || "change") === trigger;
});
if ((_result$rules = result.rules) !== null && _result$rules !== void 0 && _result$rules.length) {
_context.next = 1;
break;
}
setResetValidating(false);
return _context.abrupt("return", result);
case 1:
result.allowSetValue = true;
_context.next = 2;
return form_formModel.validate(formValue, result.rules);
case 2:
result.resultList = _context.sent;
result.errorList = result.resultList.filter(function (item) {
return item.result !== true;
}).map(function (item) {
Object.keys(item).forEach(function (key) {
if (!item.message && errorMessages[key]) {
item.message = form_formModel.parseMessage(errorMessages[key], {
validate: item[key],
name: isString.isString(label) ? label : String(name)
});
}
});
return item;
});
result.successList = result.resultList.filter(function (item) {
return item.result === true && item.message && item.type === "success";
});
return _context.abrupt("return", result);
case 3:
case "end":
return _context.stop();
}
}, _callee);
}));
return _analysisValidateResult.apply(this, arguments);
}
function validate() {
return _validate.apply(this, arguments);
}
function _validate() {
_validate = index._asyncToGenerator(/*#__PURE__*/index.regenerator.mark(function _callee2() {
var trigger,
showErrorMessage2,
_yield$analysisValida,
innerSuccessList,
innerErrorList,
validateRules,
resultList,
allowSetValue,
cacheErrorList,
status2,
_innerErrorList$,
_cacheErrorList$,
_args2 = arguments;
return index.regenerator.wrap(function (_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
trigger = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : "all";
showErrorMessage2 = _args2.length > 1 ? _args2[1] : undefined;
if (!innerFormItemsRef.current.length) {
_context2.next = 1;
break;
}
return _context2.abrupt("return", innerFormItemsRef.current.map(function (innerFormItem) {
return innerFormItem === null || innerFormItem === void 0 ? void 0 : innerFormItem.validate(trigger, showErrorMessage2);
}));
case 1:
setResetValidating(true);
setFreeShowErrorMessage(showErrorMessage2);
_context2.next = 2;
return analysisValidateResult(trigger);
case 2:
_yield$analysisValida = _context2.sent;
innerSuccessList = _yield$analysisValida.successList;
innerErrorList = _yield$analysisValida.errorList;
validateRules = _yield$analysisValida.rules;
resultList = _yield$analysisValida.resultList;
allowSetValue = _yield$analysisValida.allowSetValue;
if (innerErrorList.length && trigger !== "all") {
errorListMapRef.current.set(trigger, innerErrorList);
} else {
errorListMapRef.current["delete"](trigger);
}
if (!innerErrorList.length && trigger === "all") {
errorListMapRef.current.clear();
}
cacheErrorList = toConsumableArray._toConsumableArray(errorListMapRef.current.values()).flat();
if (allowSetValue) {
setSuccessList(innerSuccessList);
setErrorList(cacheErrorList.length ? cacheErrorList : innerErrorList);
}
if (validateRules.length) {
status2 = form_const.ValidateStatus.SUCCESS;
if (innerErrorList.length || cacheErrorList.length) {
status2 = (innerErrorList === null || innerErrorList === void 0 || (_innerErrorList$ = innerErrorList[0]) === null || _innerErrorList$ === void 0 ? void 0 : _innerErrorList$.type) || (cacheErrorList === null || cacheErrorList === void 0 || (_cacheErrorList$ = cacheErrorList[0]) === null || _cacheErrorList$ === void 0 ? void 0 : _cacheErrorList$.type) || form_const.ValidateStatus.ERROR;
}
setVerifyStatus(status2);
} else {
setVerifyStatus(form_const.ValidateStatus.VALIDATING);
}
if (needResetField) {
resetHandler();
}
setResetValidating(false);
return _context2.abrupt("return", defineProperty._defineProperty({}, snakeName, innerErrorList.length === 0 ? true : resultList));
case 3:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _validate.apply(this, arguments);
}
function validateOnly() {
return _validateOnly.apply(this, arguments);
}
function _validateOnly() {
_validateOnly = index._asyncToGenerator(/*#__PURE__*/index.regenerator.mark(function _callee3() {
var trigger,
_yield$analysisValida2,
innerErrorList,
resultList,
_args3 = arguments;
return index.regenerator.wrap(function (_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
trigger = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : "all";
_context3.next = 1;
return analysisValidateResult(trigger);
case 1:
_yield$analysisValida2 = _context3.sent;
innerErrorList = _yield$analysisValida2.errorList;
resultList = _yield$analysisValida2.resultList;
return _context3.abrupt("return", defineProperty._defineProperty({}, snakeName, innerErrorList.length === 0 ? true : resultList));
case 2:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return _validateOnly.apply(this, arguments);
}
function handleItemBlur() {
var filterRules = innerRules.filter(function (item) {
return item.trigger === "blur";
});
filterRules.length && validate("blur");
}
function getResetValue(resetType) {
if (resetType === "initial") {
return getDefaultInitialData({
children: children,
initialData: initialData
});
}
var emptyValue;
if (Array.isArray(formValue)) {
emptyValue = [];
} else if (isObject.isObject(formValue)) {
emptyValue = {};
} else if (isString.isString(formValue)) {
emptyValue = "";
}
return emptyValue;
}
function resetField(type) {
if (typeof name === "undefined") return;
var resetType = type || resetTypeFromContext;
var resetValue = getResetValue(resetType);
updateFormValue(resetValue, false);
if (resetValidating) {
setNeedResetField(true);
} else {
resetHandler();
}
}
function resetHandler() {
setNeedResetField(false);
setErrorList([]);
setSuccessList([]);
setVerifyStatus(form_const.ValidateStatus.VALIDATING);
}
function setField(field) {
var value = field.value,
status2 = field.status,
validateMessage = field.validateMessage;
if (typeof status2 !== "undefined") {
setErrorList(validateMessage ? [validateMessage] : []);
setSuccessList(validateMessage ? [validateMessage] : []);
setNeedResetField(false);
setVerifyStatus(status2);
}
if (typeof value !== "undefined") {
updateFormValue(value, typeof status2 === "undefined" ? true : false, true);
}
}
function setValidateMessage(validateMessage) {
var _validateMessage$;
if (!validateMessage || !Array.isArray(validateMessage)) return;
if (validateMessage.length === 0) {
setErrorList([]);
setVerifyStatus(form_const.ValidateStatus.SUCCESS);
return;
}
setErrorList(validateMessage);
var status2 = (validateMessage === null || validateMessage === void 0 || (_validateMessage$ = validateMessage[0]) === null || _validateMessage$ === void 0 ? void 0 : _validateMessage$.type) || form_const.ValidateStatus.ERROR;
setVerifyStatus(status2);
}
function getValidateMessage() {
return errorList;
}
React.useEffect(function () {
var _form$getInternalHook2;
if (!shouldUpdate || !form) return;
var _ref2 = (form === null || form === void 0 || (_form$getInternalHook2 = form.getInternalHooks) === null || _form$getInternalHook2 === void 0 ? void 0 : _form$getInternalHook2.call(form, form_hooks_useForm.HOOK_MARK)) || {},
getPrevStore = _ref2.getPrevStore,
registerWatch = _ref2.registerWatch;
var cancelRegister = registerWatch === null || registerWatch === void 0 ? void 0 : registerWatch(function () {
var _form$getFieldsValue2;
var currStore = (form === null || form === void 0 || (_form$getFieldsValue2 = form.getFieldsValue) === null || _form$getFieldsValue2 === void 0 ? void 0 : _form$getFieldsValue2.call(form, true)) || {};
var updateFlag = shouldUpdate;
if (isFunction.isFunction(shouldUpdate)) updateFlag = shouldUpdate(getPrevStore === null || getPrevStore === void 0 ? void 0 : getPrevStore(), currStore);
if (updateFlag) forceUpdate({});
});
return cancelRegister;
}, [shouldUpdate, form]);
React.useEffect(function () {
if (typeof name === "undefined") return;
if (formListName && isSameForm) {
formListMapRef.current.set(fullPath, formItemRef);
set.set(form === null || form === void 0 ? void 0 : form.store, fullPath, formValue);
return function () {
formListMapRef.current["delete"](fullPath);
unset.unset(form === null || form === void 0 ? void 0 : form.store, fullPath);
};
}
if (!formMapRef) return;
formMapRef.current.set(fullPath, formItemRef);
set.set(form === null || form === void 0 ? void 0 : form.store, fullPath, formValue);
return function () {
formMapRef.current["delete"](fullPath);
unset.unset(form === null || form === void 0 ? void 0 : form.store, fullPath);
};
}, [snakeName, formListName]);
React.useEffect(function () {
var _form$getInternalHook3, _form$getInternalHook4;
form === null || form === void 0 || (_form$getInternalHook3 = form.getInternalHooks) === null || _form$getInternalHook3 === void 0 || (_form$getInternalHook3 = _form$getInternalHook3.call(form, form_hooks_useForm.HOOK_MARK)) === null || _form$getInternalHook3 === void 0 || (_form$getInternalHook4 = _form$getInternalHook3.notifyWatch) === null || _form$getInternalHook4 === void 0 || _form$getInternalHook4.call(_form$getInternalHook3, name);
if (!shouldValidate.current) return;
if (typeof name !== "undefined" && shouldEmitChangeRef.current) {
var fieldValue = form_utils_index.calcFieldValue(fullPath, formValue);
onFormItemValueChange === null || onFormItemValueChange === void 0 || onFormItemValueChange(fieldValue);
}
var filterRules = innerRules.filter(function (item) {
return (item.trigger || "change") === "change";
});
filterRules.length && validate("change");
}, [formValue, snakeName]);
var instance = {
name: name,
fullPath: fullPath,
value: formValue,
initialData: initialData,
isFormList: false,
getValue: function getValue() {
return valueRef.current;
},
setValue: function setValue(newVal) {
return updateFormValue(newVal, true, true);
},
setField: setField,
validate: validate,
validateOnly: validateOnly,
resetField: resetField,
setValidateMessage: setValidateMessage,
getValidateMessage: getValidateMessage,
resetValidate: resetHandler
};
React.useImperativeHandle(ref, function () {
return instance;
});
React.useImperativeHandle(formItemRef, function () {
return instance;
});
if (isFunction.isFunction(children)) return children(form);
return /* @__PURE__ */React__default["default"].createElement("div", {
className: formItemClass,
style: style
}, label && /* @__PURE__ */React__default["default"].createElement("div", {
className: formItemLabelClass,
style: labelStyle
}, /* @__PURE__ */React__default["default"].createElement("label", {
htmlFor: props === null || props === void 0 ? void 0 : props["for"]
}, label), colon && t(locale.colonText)), /* @__PURE__ */React__default["default"].createElement("div", {
className: contentClass(),
style: contentStyle
}, /* @__PURE__ */React__default["default"].createElement("div", {
className: "".concat(classPrefix, "-form__controls-content")
}, React__default["default"].Children.map(children, function (child, index) {
if (!child) return null;
var ctrlKey = "value";
if (/*#__PURE__*/React__default["default"].isValidElement(child)) {
var _child$type;
var componentName = (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName;
if (componentName === "FormItem") {
return /*#__PURE__*/React__default["default"].cloneElement(child, {
ref: function ref(el) {
if (!el) return;
innerFormItemsRef.current[index] = el;
}
});
}
ctrlKey = form_const.TD_CTRL_PROP_MAP.get(componentName) || "value";
var childProps = child.props;
return /*#__PURE__*/React__default["default"].cloneElement(child, _objectSpread(_objectSpread({
disabled: disabledFromContext,
readOnly: readOnlyFromContext
}, childProps), {}, defineProperty._defineProperty(defineProperty._defineProperty(defineProperty._defineProperty({}, ctrlKey, formValue), "onChange", function onChange(value) {
var _childProps$onChange, _childProps$onChange$;
var newValue = valueFormat ? valueFormat(value) : value;
updateFormValue(newValue, true, true);
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
childProps === null || childProps === void 0 || (_childProps$onChange = childProps.onChange) === null || _childProps$onChange === void 0 || (_childProps$onChange$ = _childProps$onChange.call) === null || _childProps$onChange$ === void 0 || _childProps$onChange$.call.apply(_childProps$onChange$, [_childProps$onChange, null, value].concat(args));
}), "onBlur", function onBlur(value) {
var _childProps$onBlur, _childProps$onBlur$ca;
handleItemBlur();
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
args[_key2 - 1] = arguments[_key2];
}
childProps === null || childProps === void 0 || (_childProps$onBlur = childProps.onBlur) === null || _childProps$onBlur === void 0 || (_childProps$onBlur$ca = _childProps$onBlur.call) === null || _childProps$onBlur$ca === void 0 || _childProps$onBlur$ca.call.apply(_childProps$onBlur$ca, [_childProps$onBlur, null, value].concat(args));
})));
}
return child;
}), renderSuffixIcon()), helpNode, extraNode));
});
FormItem.displayName = "FormItem";
exports["default"] = FormItem;
//# sourceMappingURL=FormItem.js.map