tdesign-react
Version:
TDesign Component for React
898 lines (890 loc) • 39.9 kB
JavaScript
/**
* tdesign v1.15.1
* (c) 2025 tdesign
* @license MIT
*/
;
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