UNPKG

tdesign-react

Version:
898 lines (890 loc) 39.9 kB
/** * tdesign v1.15.1 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var toConsumableArray = require('../_chunks/dep-e4e1901e.js'); var _typeof = require('../_chunks/dep-667ac7af.js'); var index = require('../_chunks/dep-65ef8e09.js'); var defineProperty = require('../_chunks/dep-0006fcfa.js'); var slicedToArray = require('../_chunks/dep-8e4d656d.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 flattenDeep = require('../_chunks/dep-751520ce.js'); var get = require('../_chunks/dep-0c8c9057.js'); var isEqual = require('../_chunks/dep-eb6d55c1.js'); var isFunction = require('../_chunks/dep-ec8d2dca.js'); var unset = require('../_chunks/dep-bc1e6194.js'); var merge = require('../_chunks/dep-f32c03f1.js'); var set = require('../_chunks/dep-79a54369.js'); var isString = require('../_chunks/dep-4ed9eda4.js'); var isObject = require('../_chunks/dep-fc596d16.js'); require('../_chunks/dep-00b49251.js'); require('../config-provider/ConfigContext.js'); require('../_chunks/dep-1df1dad8.js'); require('../_chunks/dep-5b5ab11b.js'); require('dayjs'); require('../_chunks/dep-31c4bc3d.js'); require('../_chunks/dep-eea2872a.js'); require('../_chunks/dep-25585736.js'); require('../_chunks/dep-62e73936.js'); require('../_chunks/dep-64577888.js'); require('../_chunks/dep-71455db7.js'); require('../_chunks/dep-9e5a468d.js'); require('../_chunks/dep-f26edb7b.js'); require('../_chunks/dep-f33c1939.js'); require('../_chunks/dep-21ece627.js'); require('../_chunks/dep-25e4aa84.js'); require('../_chunks/dep-e1fbe1c3.js'); require('../_chunks/dep-df2b541f.js'); require('../_chunks/dep-edd366db.js'); require('../_chunks/dep-a56c4939.js'); require('../_chunks/dep-6c297e20.js'); require('../_chunks/dep-b7ad4d54.js'); require('../_chunks/dep-a2cb9299.js'); require('../_chunks/dep-f981815b.js'); require('../config-provider/ConfigProvider.js'); require('../_chunks/dep-ab2f63ec.js'); require('../_chunks/dep-a48c7e8b.js'); require('../_chunks/dep-3d4656ee.js'); require('../_chunks/dep-0ffc9d96.js'); require('../_chunks/dep-efe6d243.js'); require('../_chunks/dep-4b18243f.js'); require('../_chunks/dep-bff2c990.js'); require('../_chunks/dep-002fcc1e.js'); require('../_chunks/dep-2ffa3ff1.js'); require('../_chunks/dep-6283cbd9.js'); require('../_chunks/dep-69792df2.js'); require('../_chunks/dep-59671c87.js'); require('../tree/Tree.js'); require('react-transition-group'); require('classnames'); require('../tree/TreeItem.js'); require('../_chunks/dep-8fa3a4c2.js'); require('../loading/index.js'); require('../loading/Loading.js'); require('../_chunks/dep-381fa848.js'); require('../common/Portal.js'); require('react-dom'); require('../hooks/useLayoutEffect.js'); require('../loading/gradient.js'); require('../_chunks/dep-dc4ce063.js'); require('../hooks/useDomRefCallback.js'); require('../loading/defaultProps.js'); require('../loading/plugin.js'); require('../_util/react-render.js'); require('../common/PluginContainer.js'); require('../hooks/useRipple.js'); require('../hooks/useAnimation.js'); require('../checkbox/index.js'); require('../_chunks/dep-e136a981.js'); require('../_util/forwardRefWithStatics.js'); require('hoist-non-react-statics'); require('../common/Check.js'); require('../_util/helper.js'); require('../_chunks/dep-840b1644.js'); require('../_chunks/dep-255ceed8.js'); require('../_chunks/dep-79629634.js'); require('../_chunks/dep-66114ce9.js'); require('../_chunks/dep-62d1dd66.js'); require('../_chunks/dep-7a148045.js'); require('../hooks/useControlled.js'); require('../_util/noop.js'); require('../_chunks/dep-c16f1dc4.js'); require('../checkbox/defaultProps.js'); require('../tree/hooks/useTreeConfig.js'); require('../tree/hooks/useDraggable.js'); require('../tree/hooks/TreeDraggableContext.js'); require('../_util/createHookContext.js'); require('../hooks/usePersistFn.js'); require('../_chunks/dep-1438af5a.js'); require('../_chunks/dep-a231fdc5.js'); require('../_chunks/dep-cf14666e.js'); require('../_util/composeRefs.js'); require('../tree/hooks/useControllable.js'); require('../tree/hooks/useStore.js'); require('../_chunks/dep-509940b2.js'); require('mitt'); require('../_chunks/dep-5180cc1e.js'); require('../_chunks/dep-1e4197a4.js'); require('../_chunks/dep-3398c1f2.js'); require('../_chunks/dep-e57bdc8f.js'); require('../_chunks/dep-22b1740a.js'); require('../_chunks/dep-373af7a2.js'); require('../_chunks/dep-fc29b8b5.js'); require('../_chunks/dep-d5e8c967.js'); require('../_chunks/dep-9a375a19.js'); require('../_chunks/dep-d915c90f.js'); require('../_chunks/dep-221787fe.js'); require('../_chunks/dep-95a6dd1c.js'); require('../_chunks/dep-bfc07219.js'); require('../_chunks/dep-0192b053.js'); require('../_chunks/dep-40e87384.js'); require('../_chunks/dep-014b9b78.js'); require('../_chunks/dep-297a4933.js'); require('../hooks/useUpdateLayoutEffect.js'); require('../hooks/useIsFirstRender.js'); require('../hooks/usePrevious.js'); require('../_util/parseTNode.js'); require('../tree/hooks/useTreeVirtualScroll.js'); require('../hooks/useVirtualScroll.js'); require('../_chunks/dep-abdd786a.js'); require('../hooks/useEventCallback.js'); require('../tree/defaultProps.js'); require('../upload/upload.js'); require('../upload/themes/NormalFile.js'); require('../_chunks/dep-f4d844cc.js'); require('../link/index.js'); require('../link/Link.js'); require('../link/defaultProps.js'); require('../upload/themes/DraggerFile.js'); require('../hooks/useCommonClassName.js'); require('../upload/hooks/useDrag.js'); require('../image-viewer/index.js'); require('../image-viewer/ImageViewer.js'); require('../_chunks/dep-928dc549.js'); require('../_chunks/dep-e75d22fc.js'); require('../hooks/useImagePreviewUrl.js'); require('../image/index.js'); require('../image/Image.js'); require('../_chunks/dep-adacb8cb.js'); require('../image/defaultProps.js'); require('../space/index.js'); require('../space/Space.js'); require('react-is'); require('../space/defaultProps.js'); require('../tooltip/index.js'); require('../tooltip/Tooltip.js'); require('../popup/index.js'); require('../popup/Popup.js'); require('../_util/ref.js'); require('../_util/isFragment.js'); require('../hooks/useAttach.js'); require('../hooks/useMutationObserver.js'); require('../hooks/useLatest.js'); require('../hooks/usePopper.js'); require('@popperjs/core'); require('react-fast-compare'); require('../hooks/useWindowSize.js'); require('../popup/defaultProps.js'); require('../popup/hooks/useTrigger.js'); require('../_util/listener.js'); require('../popup/utils/transition.js'); require('../popup/PopupPlugin.js'); require('../tooltip/defaultProps.js'); require('../tooltip/TooltipLite.js'); require('../hooks/useSwitch.js'); require('../dialog/index.js'); require('../dialog/Dialog.js'); require('../hooks/useDeepEffect.js'); require('../hooks/useSetState.js'); require('../dialog/defaultProps.js'); require('../dialog/DialogCard.js'); require('../button/index.js'); require('../button/Button.js'); require('../button/defaultProps.js'); require('../dialog/hooks/useDialogDrag.js'); require('../hooks/useMouseEvent.js'); require('../dialog/hooks/useDialogEsc.js'); require('../dialog/hooks/useDialogPosition.js'); require('../dialog/hooks/useLockStyle.js'); require('../_chunks/dep-b73b8db7.js'); require('../dialog/utils.js'); require('../dialog/plugin.js'); require('../image-viewer/hooks/useIconMap.js'); require('../image-viewer/hooks/useIndex.js'); require('../image-viewer/hooks/useMirror.js'); require('../image-viewer/hooks/usePosition.js'); require('../image-viewer/hooks/useRotate.js'); require('../image-viewer/hooks/useScale.js'); require('../image-viewer/utils.js'); require('../image-viewer/defaultProps.js'); require('../image-viewer/hooks/useImageScale.js'); require('../image-viewer/hooks/useList.js'); require('../image-viewer/hooks/useViewerScale.js'); require('../upload/themes/ImageCard.js'); require('../upload/themes/MultipleFlowList.js'); require('../upload/hooks/useUpload.js'); require('../_chunks/dep-5eba010c.js'); require('../upload/defaultProps.js'); require('../upload/themes/CustomFile.js'); require('../tag/CheckTag.js'); require('../_chunks/dep-4406837c.js'); require('../tag/defaultProps.js'); require('../tag/Tag.js'); require('../_chunks/dep-4d5c26af.js'); require('../tag-input/TagInput.js'); require('../hooks/useDragSorter.js'); require('../input/index.js'); require('../input/Input.js'); require('../input/InputGroup.js'); require('../input/defaultProps.js'); require('../input/useLengthLimit.js'); require('../tag-input/defaultProps.js'); require('../tag-input/useHover.js'); require('../tag-input/useTagList.js'); require('../tag/index.js'); require('../tag/CheckTagGroup.js'); require('../tag-input/useTagScroll.js'); require('../range-input/RangeInput.js'); require('../range-input/defaultProps.js'); require('../transfer/Transfer.js'); require('../transfer/TransferList.js'); require('../transfer/utils.js'); require('../pagination/index.js'); require('../pagination/Pagination.js'); require('../select/index.js'); require('../select/base/Select.js'); require('../common/FakeArrow.js'); require('../select-input/index.js'); require('../select-input/SelectInput.js'); require('../select-input/useSingle.js'); require('../select-input/useMultiple.js'); require('../tag-input/index.js'); require('../select-input/useOverlayInnerStyle.js'); require('../select-input/defaultProps.js'); require('../select/defaultProps.js'); require('../_chunks/dep-e83bd2ab.js'); require('../select/base/OptionGroup.js'); require('../select/base/Option.js'); require('../select/base/PopupContent.js'); require('../select/hooks/usePanelVirtualScroll.js'); require('../input-number/index.js'); require('../input-number/InputNumber.js'); require('../input-number/useInputNumber.js'); require('../input-number/defaultProps.js'); require('../input-adornment/InputAdornment.js'); require('../pagination/hooks/useBoundaryJumper.js'); require('../pagination/hooks/usePrevNextJumper.js'); require('../pagination/hooks/usePageNumber.js'); require('../pagination/hooks/useTotal.js'); require('../pagination/validators.js'); require('../pagination/defaultProps.js'); require('../pagination/PaginationMini.js'); require('../transfer/defaultProps.js'); require('../date-picker/DateRangePicker.js'); require('../_chunks/dep-0227e11a.js'); require('../_chunks/dep-1d328330.js'); require('../_chunks/dep-193875c0.js'); require('../_chunks/dep-2f64b46d.js'); require('../range-input/index.js'); require('../range-input/RangeInputPopup.js'); require('../date-picker/defaultProps.js'); require('../date-picker/hooks/useRange.js'); require('../date-picker/hooks/useRangeValue.js'); require('../date-picker/panel/RangePanel.js'); require('../date-picker/panel/PanelContent.js'); require('../date-picker/base/Header.js'); require('../date-picker/base/Table.js'); require('../date-picker/base/Cell.js'); require('../time-picker/index.js'); require('../time-picker/TimePicker.js'); require('../_chunks/dep-47323e89.js'); require('../time-picker/hooks/useTimePickerTextConfig.js'); require('../hooks/useDebounce.js'); require('../hooks/usePropsRef.js'); require('../time-picker/TimeRangePicker.js'); require('../time-picker/panel/TimePickerPanel.js'); require('../time-picker/defaultProps.js'); require('../date-picker/panel/ExtraContent.js'); require('../date-picker/base/Footer.js'); require('../date-picker/hooks/useTableData.js'); require('../date-picker/hooks/useDisableDate.js'); require('../date-picker/utils.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, 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 _useFormItemInitialDa = form_hooks_useFormItemInitialData["default"](name), 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 () { var fieldName = flattenDeep.flattenDeep([formListName, name]); var storeValue = get.get(form === null || form === void 0 ? void 0 : form.store, fieldName); return storeValue !== null && storeValue !== void 0 ? storeValue : 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 isUpdatedRef = 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; isUpdatedRef.current = true; shouldValidate.current = validate2; valueRef.current = newVal; var fieldName = [].concat(name); var fieldValue = formValue; if (formListName) { fieldName = [].concat(formListName, name); fieldValue = get.get(form === null || form === void 0 ? void 0 : form.store, fieldName); } fieldName = fieldName.filter(function (item) { return item !== void 0; }); if (!fieldName) return; if (isEqual.isEqual(fieldValue, newVal)) return; set.set(form === null || form === void 0 ? void 0 : form.store, fieldName, 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(name, formItemRef); return function () { formListMapRef.current["delete"](name); unset.unset(form === null || form === void 0 ? void 0 : form.store, name); }; } if (!formMapRef) return; formMapRef.current.set(name, formItemRef); return function () { formMapRef.current["delete"](name); unset.unset(form === null || form === void 0 ? void 0 : form.store, name); }; }, [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) { if (formListName && isSameForm) { var formListValue = merge.merge([], form_utils_index.calcFieldValue(name, formValue)); var fieldValue = form_utils_index.calcFieldValue(formListName, formListValue); onFormItemValueChange === null || onFormItemValueChange === void 0 || onFormItemValueChange(_objectSpread({}, fieldValue)); } else { var _fieldValue = form_utils_index.calcFieldValue(name, formValue); onFormItemValueChange === null || onFormItemValueChange === void 0 || onFormItemValueChange(_objectSpread({}, _fieldValue)); } } var filterRules = innerRules.filter(function (item) { return (item.trigger || "change") === "change"; }); filterRules.length && validate("change"); }, [formValue, snakeName]); var instance = { name: name, value: formValue, isUpdated: isUpdatedRef.current, 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)) { if (child.type === FormItem) { return /*#__PURE__*/React__default["default"].cloneElement(child, { ref: function ref(el) { if (!el) return; innerFormItemsRef.current[index] = el; } }); } if (_typeof._typeof(child.type) === "object") { ctrlKey = form_hooks_useFormItemInitialData.ctrlKeyMap.get(child.type) || "value"; } var childProps = child.props; return /*#__PURE__*/React__default["default"].cloneElement(child, _objectSpread(_objectSpread({ disabled: disabledFromContext }, 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