UNPKG

@kne/react-form-antd

Version:

把 @kne/react-form 表单校验逻辑应用到antd

870 lines (823 loc) 28.7 kB
var React = require('react'); var classnames = require('classnames'); var ReactForm = require('@kne/react-form'); var reactFormHelper = require('@kne/react-form-helper'); var merge = require('lodash/merge'); var antd = require('antd'); var reactIntl = require('@kne/react-intl'); var icons = require('@ant-design/icons'); var dayjs = require('dayjs'); var useControlValue = require('@kne/use-control-value'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames); var ReactForm__default = /*#__PURE__*/_interopDefaultLegacy(ReactForm); var merge__default = /*#__PURE__*/_interopDefaultLegacy(merge); var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs); var useControlValue__default = /*#__PURE__*/_interopDefaultLegacy(useControlValue); function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; } var globalParams = { type: 'default', size: 'middle', rules: {}, formModal: {}, resetButton: {}, submitButton: {}, field: {} }; var preset = (function (props) { var defaultProps = {}; merge__default["default"](globalParams, props); Object.keys(globalParams.field).forEach(function (name) { defaultProps[name] = (globalParams.field[name] || {}).defaultProps; }); reactFormHelper.preset({ field: defaultProps, globalProps: globalParams.globalProps }); ReactForm.preset(globalParams.rules); }); var _excluded$5 = ["className", "cache", "enterSubmit", "scrollToError", "scrollProps", "type", "size", "children"]; var ScrollToError = reactFormHelper.widget.ScrollToError, EnterSubmit = reactFormHelper.widget.EnterSubmit, FormStore = reactFormHelper.widget.FormStore, MaxLabelProvider = reactFormHelper.widget.MaxLabelProvider, SizeProvider = reactFormHelper.widget.SizeProvider; var Form = React.forwardRef(function (originProps, ref) { var className = originProps.className, cache = originProps.cache, _originProps$enterSub = originProps.enterSubmit, enterSubmit = _originProps$enterSub === void 0 ? false : _originProps$enterSub, _originProps$scrollTo = originProps.scrollToError, scrollToError = _originProps$scrollTo === void 0 ? true : _originProps$scrollTo, _originProps$scrollPr = originProps.scrollProps, scrollProps = _originProps$scrollPr === void 0 ? { block: 'center' } : _originProps$scrollPr, children = originProps.children, props = _objectWithoutPropertiesLoose(originProps, _excluded$5); var baseClass = 'react-form'; var computedClass = baseClass; var _Object$assign = Object.assign({ type: 'default', size: 'middle' }, globalParams, originProps), type = _Object$assign.type, size = _Object$assign.size; if (type !== 'default') { computedClass += "--" + type; } if (size !== 'middle') { computedClass += "--" + size; } var maxLabel = /*#__PURE__*/React__default["default"].createElement(MaxLabelProvider, null, children); return /*#__PURE__*/React__default["default"].createElement("form", { className: classnames__default["default"](baseClass, computedClass, className), onSubmit: function onSubmit(e) { e.preventDefault(); e.stopPropagation(); } }, /*#__PURE__*/React__default["default"].createElement(SizeProvider, { value: { size: size } }, /*#__PURE__*/React__default["default"].createElement(ReactForm__default["default"], _extends({}, props, { ref: ref }), cache ? /*#__PURE__*/React__default["default"].createElement(FormStore, { cache: cache }) : null, scrollToError ? /*#__PURE__*/React__default["default"].createElement(ScrollToError, { scrollProps: scrollProps }) : null, enterSubmit ? /*#__PURE__*/React__default["default"].createElement(EnterSubmit, null, maxLabel) : maxLabel))); }); var locale$1 = { PleaseSelect: '请选择{label}', PleaseInput: '请输入{label}', StartTime: '开始时间', EndTime: '结束时间', StartDate: '开始日期', EndDate: '结束日期', SoFar: '至今' }; var locale = { PleaseSelect: 'Please select {label}', PleaseInput: 'Please enter {label}', StartTime: 'Start Time', EndTime: 'End Time', StartDate: 'Start Date', EndDate: 'End Date', SoFar: 'Present' }; var _excluded$4 = ["locale"]; var localeMap = { 'zh-CN': locale$1, 'en-US': locale }; var withLocale = function withLocale(WrappedComponent) { var WithLocaleComponent = function WithLocaleComponent(_ref) { var _ref$locale = _ref.locale, locale = _ref$locale === void 0 ? 'zh-CN' : _ref$locale, props = _objectWithoutPropertiesLoose(_ref, _excluded$4); var messages = localeMap[locale] || locale$1; return /*#__PURE__*/React__default["default"].createElement(reactIntl.IntlProvider, { locale: locale, messages: messages }, /*#__PURE__*/React__default["default"].createElement(WrappedComponent, props)); }; WithLocaleComponent.displayName = "withLocale(" + (WrappedComponent.displayName || WrappedComponent.name || 'Component') + ")"; return WithLocaleComponent; }; var useOnChange$b = reactFormHelper.hooks.useOnChange; var TreeSelectInner = function TreeSelectInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'treeSelect' }, props); var render = useOnChange$b(Object.assign({ placeholder: formatMessage({ id: 'PleaseSelect' }, { label: mergedProps.label || '' }) }, mergedProps)); return render(antd.TreeSelect); }; TreeSelectInner.Field = antd.TreeSelect; TreeSelectInner.TreeNode = antd.TreeSelect.TreeNode; var _TreeSelect = withLocale(TreeSelectInner); var useOnChange$a = reactFormHelper.hooks.useOnChange; var RangePicker$1 = antd.TimePicker.RangePicker; var TimePickerInner = function TimePickerInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'timePicker' }, props); var render = useOnChange$a(Object.assign({ placeholder: formatMessage({ id: 'PleaseSelect' }, { label: mergedProps.label || '' }) }, mergedProps)); return render(antd.TimePicker); }; TimePickerInner.Field = antd.TimePicker; var RangePickerInner$1 = function RangePickerInner(props) { var _useIntl2 = reactIntl.useIntl(), formatMessage = _useIntl2.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'rangeTimePicker' }, props); var render = useOnChange$a(Object.assign({ placeholder: formatMessage({ id: 'PleaseSelect' }, { label: mergedProps.label || '' }) }, mergedProps)); return render(RangePicker$1); }; RangePickerInner$1.Field = RangePicker$1; var _TimePicker = withLocale(TimePickerInner); _TimePicker.RangePicker = withLocale(RangePickerInner$1); var useDecorator$2 = reactFormHelper.hooks.useDecorator; var TextAreaInner = function TextAreaInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'textArea' }, props); var render = useDecorator$2(Object.assign({ placeholder: formatMessage({ id: 'PleaseInput' }, { label: mergedProps.label }) }, mergedProps)); return render(antd.Input.TextArea); }; TextAreaInner.Field = antd.Input.TextArea; var TextArea = withLocale(TextAreaInner); var useOnChange$9 = reactFormHelper.hooks.useOnChange, useCheckedToValue$1 = reactFormHelper.hooks.useCheckedToValue; var withChecked$1 = reactFormHelper.hoc.withChecked; var WithSwitch = withChecked$1(antd.Switch); var Switch = function Switch(props) { props = Object.assign({}, { fieldName: 'switch' }, props); var checkedProps = useCheckedToValue$1(props); var render = useOnChange$9(checkedProps); return render(WithSwitch); }; Switch.Field = antd.Switch; var useOnChange$8 = reactFormHelper.hooks.useOnChange; var SelectInner = function SelectInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'select' }, props); var render = useOnChange$8(Object.assign({ placeholder: formatMessage({ id: 'PleaseSelect' }, { label: mergedProps.label || '' }) }, mergedProps)); return render(antd.Select); }; SelectInner.Field = antd.Select; SelectInner.Option = antd.Select.Option; SelectInner.OptGroup = antd.Select.OptGroup; var _Select = withLocale(SelectInner); var _excluded$3 = ["onChange"]; var useOnChange$7 = reactFormHelper.hooks.useOnChange; var RadioGroup = function RadioGroup(_ref) { var onChange = _ref.onChange, props = _objectWithoutPropertiesLoose(_ref, _excluded$3); props = Object.assign({}, { fieldName: 'radioGroup' }, props); var handler = React.useCallback(function (e) { onChange && onChange(e.target.value); }, [onChange]); return /*#__PURE__*/React__default["default"].createElement(antd.Radio.Group, _extends({}, props, { onChange: handler })); }; var _RadioGroup = function _RadioGroup(props) { var render = useOnChange$7(props); return render(RadioGroup); }; _RadioGroup.Field = RadioGroup; _RadioGroup.Radio = antd.Radio; var useDecorator$1 = reactFormHelper.hooks.useDecorator; var InputNumberFieldInner = function InputNumberFieldInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'inputNumber', autoComplete: 'off' }, props); var render = useDecorator$1(Object.assign({ placeholder: formatMessage({ id: 'PleaseInput' }, { label: mergedProps.label }) }, mergedProps)); return render(antd.InputNumber); }; InputNumberFieldInner.Field = antd.InputNumber; var InputNumberField = withLocale(InputNumberFieldInner); var useDecorator = reactFormHelper.hooks.useDecorator; var InputFieldInner = function InputFieldInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'input', autoComplete: 'off' }, props); var render = useDecorator(Object.assign({ placeholder: formatMessage({ id: 'PleaseInput' }, { label: mergedProps.label }) }, mergedProps)); return render(antd.Input); }; InputFieldInner.Field = antd.Input; var PasswordInner = function PasswordInner(props) { var _useIntl2 = reactIntl.useIntl(), formatMessage = _useIntl2.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'password', autoComplete: 'off' }, props); var render = useDecorator(Object.assign({ placeholder: formatMessage({ id: 'PleaseInput' }, { label: mergedProps.label }) }, mergedProps)); return render(antd.Input.Password); }; PasswordInner.Field = antd.Input.Password; var InputField = withLocale(InputFieldInner); InputField.Password = withLocale(PasswordInner); var _excluded$2 = ["soFarText", "soFarValue", "picker"]; var useOnChange$6 = reactFormHelper.hooks.useOnChange; var PickerTodayInner = function PickerTodayInner(_ref) { var soFarText = _ref.soFarText, _ref$soFarValue = _ref.soFarValue, soFarValue = _ref$soFarValue === void 0 ? 'soFar' : _ref$soFarValue, _ref$picker = _ref.picker, picker = _ref$picker === void 0 ? 'date' : _ref$picker, props = _objectWithoutPropertiesLoose(_ref, _excluded$2); var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var _useControlValue = useControlValue__default["default"](props), data = _useControlValue[0], onChange = _useControlValue[1]; var _useState = React.useState(false), openStart = _useState[0], setOpenStart = _useState[1]; var _useState2 = React.useState(false), openEnd = _useState2[0], setOpenEnd = _useState2[1]; var _useState3 = React.useState(null), tempStart = _useState3[0], setTempStart = _useState3[1]; // 临时存储开始时间 var _useState4 = React.useState(null), tempEnd = _useState4[0], setTempEnd = _useState4[1]; // 临时存储结束时间 var _useState5 = React.useState(false), hovering = _useState5[0], setHovering = _useState5[1]; // hover 状态 var containerRef = React.useRef(null); var isSwitchingRef = React.useRef(false); // 标记是否正在切换到结束时间选择 var soFarLabel = soFarText || formatMessage({ id: 'SoFar' }); // 根据 picker 类型获取格式化字符串 var formatPattern = React.useMemo(function () { var patterns = { date: 'YYYY-MM-DD', week: 'YYYY-wo', month: 'YYYY-MM', year: 'YYYY' }; return patterns[picker] || 'YYYY-MM-DD'; }, [picker]); // 判断是否有值 var hasValue = React.useMemo(function () { var _ref2 = data || [], start = _ref2[0], end = _ref2[1]; return !!(start || end); }, [data]); // 判断是否为"至今" var isSoFar = React.useMemo(function () { var _ref3 = data || [], end = _ref3[1]; return end === soFarValue; }, [data, soFarValue]); // 解析数据 var parsedValue = React.useMemo(function () { var _ref4 = data || [], start = _ref4[0], end = _ref4[1]; return { start: start ? dayjs__default["default"](start) : null, end: isSoFar ? null : end ? dayjs__default["default"](end) : null }; }, [data, isSoFar]); // 显示文本 - 弹窗打开时显示临时值,关闭后显示实际值 var displayText = React.useMemo(function () { // 开始时间:有临时值时显示临时值 var startText = tempStart ? tempStart.format(formatPattern) : parsedValue.start ? parsedValue.start.format(formatPattern) : ''; // 结束时间:有临时值时显示临时值 var endText = tempEnd ? tempEnd.format(formatPattern) : isSoFar ? soFarLabel : parsedValue.end ? parsedValue.end.format(formatPattern) : ''; return { start: startText, end: endText }; }, [parsedValue, isSoFar, soFarLabel, tempStart, tempEnd, formatPattern]); // 点击整个Input框时,先弹出开始时间选择 var handleInputClick = React.useCallback(function () { var _ref5 = data || [], start = _ref5[0]; setTempStart(start ? dayjs__default["default"](start) : null); setOpenStart(true); setOpenEnd(false); }, [data]); // 清除值 var handleClear = React.useCallback(function (e) { e.stopPropagation(); onChange([]); setTempStart(null); setTempEnd(null); setOpenStart(false); setOpenEnd(false); }, [onChange]); // 处理开始时间变化 var handleStartChange = React.useCallback(function (date) { setTempStart(date); isSwitchingRef.current = true; // 标记正在切换 setOpenStart(false); setTimeout(function () { setOpenEnd(true); isSwitchingRef.current = false; }, 100); }, []); // 处理结束时间变化(选择日期时实时更新显示,选择后确认值) var handleEndChange = React.useCallback(function (date) { if (date) { // 选择了有效日期,确认值 if (!tempStart) return; onChange([tempStart.toISOString(), date.toISOString()]); setOpenEnd(false); setTempStart(null); setTempEnd(null); } else { // 清空选择 setTempEnd(null); } }, [tempStart, onChange]); // 点击"至今"按钮 var handleSoFarClick = React.useCallback(function () { if (!tempStart) return; onChange([tempStart.toISOString(), soFarValue]); setOpenEnd(false); setTempStart(null); setTempEnd(null); }, [tempStart, onChange, soFarValue]); // 处理开始时间弹窗关闭(未完成选择) var handleStartOpenChange = React.useCallback(function (open) { if (!open) { setOpenStart(false); // 如果不是正在切换到结束时间,则清空临时状态 if (!isSwitchingRef.current) { setTempStart(null); } } }, []); // 处理结束时间弹窗关闭(未完成选择) var handleEndOpenChange = React.useCallback(function (open) { if (!open) { setOpenEnd(false); // 关闭结束时间弹窗时,不修改field值 setTempStart(null); setTempEnd(null); } }, []); // 结束时间面板变化时更新临时值(用于实时显示) var handleEndPanelChange = React.useCallback(function (date) { setTempEnd(date); }, []); // 空的 footer(用于开始时间,保持高度一致) var renderEmptyFooter = React.useCallback(function () { return /*#__PURE__*/React__default["default"].createElement("div", { style: { height: 40 } }); }, []); // 带至今按钮的 footer var renderExtraFooter = React.useCallback(function () { var isCurrentSoFar = !tempStart && isSoFar; return /*#__PURE__*/React__default["default"].createElement("div", { style: { textAlign: 'right' } }, /*#__PURE__*/React__default["default"].createElement(antd.Button, { type: isCurrentSoFar ? 'primary' : 'default', onClick: handleSoFarClick }, soFarLabel)); }, [isSoFar, tempStart, handleSoFarClick, soFarLabel]); // 结束时间的可选日期(不能早于开始时间) var endDisabledDate = React.useCallback(function (current) { if (!tempStart) return false; var startOfMap = { date: 'day', week: 'week', month: 'month', year: 'year' }; var unit = startOfMap[picker] || 'day'; return current && current < tempStart.startOf(unit); }, [tempStart, picker]); return /*#__PURE__*/React__default["default"].createElement("div", { className: "date-picker-today-container", ref: containerRef }, /*#__PURE__*/React__default["default"].createElement("div", { className: "date-picker-today-inputs", onClick: handleInputClick, onMouseEnter: function onMouseEnter() { return setHovering(true); }, onMouseLeave: function onMouseLeave() { return setHovering(false); } }, /*#__PURE__*/React__default["default"].createElement("div", { className: "date-picker-today-start" }, /*#__PURE__*/React__default["default"].createElement("input", { readOnly: true, placeholder: formatMessage({ id: 'StartDate' }), value: displayText.start, className: "ant-input" })), /*#__PURE__*/React__default["default"].createElement("span", { className: "date-picker-today-separator" }, "~"), /*#__PURE__*/React__default["default"].createElement("div", { className: "date-picker-today-end" }, /*#__PURE__*/React__default["default"].createElement("input", { readOnly: true, placeholder: formatMessage({ id: 'EndDate' }), value: displayText.end, className: "ant-input " + (isSoFar ? 'so-far-active' : '') })), /*#__PURE__*/React__default["default"].createElement("span", { className: "date-picker-today-suffix" }, hasValue && hovering ? /*#__PURE__*/React__default["default"].createElement(icons.CloseCircleFilled, { className: "date-picker-today-clear", onClick: handleClear }) : /*#__PURE__*/React__default["default"].createElement(icons.CalendarOutlined, null))), /*#__PURE__*/React__default["default"].createElement(antd.DatePicker, { picker: picker, open: openStart, onOpenChange: handleStartOpenChange, value: tempStart || parsedValue.start, onChange: handleStartChange, renderExtraFooter: renderEmptyFooter, showNow: false, getPopupContainer: function getPopupContainer() { return containerRef.current || document.body; }, style: { width: 0, height: 0, visibility: 'hidden', position: 'absolute' }, placement: "bottomLeft" }), /*#__PURE__*/React__default["default"].createElement(antd.DatePicker, { picker: picker, open: openEnd, onOpenChange: handleEndOpenChange, value: tempEnd || parsedValue.end, onChange: handleEndChange, onPanelChange: handleEndPanelChange, disabledDate: endDisabledDate, renderExtraFooter: renderExtraFooter, showNow: false, getPopupContainer: function getPopupContainer() { return containerRef.current || document.body; }, style: { width: 0, height: 0, visibility: 'hidden', position: 'absolute' }, placement: "bottomLeft" })); }; var PickerToday = withLocale(PickerTodayInner); var RangePickerToday = function RangePickerToday(props) { props = Object.assign({}, { fieldName: 'rangePickerToday' }, props); var render = useOnChange$6(props); return render(PickerToday); }; RangePickerToday.Field = PickerToday; var useOnChange$5 = reactFormHelper.hooks.useOnChange; var MonthPicker = antd.DatePicker.MonthPicker, RangePicker = antd.DatePicker.RangePicker, WeekPicker = antd.DatePicker.WeekPicker; var DatePickerInner = function DatePickerInner(props) { var _useIntl = reactIntl.useIntl(), formatMessage = _useIntl.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'datePicker' }, props); var render = useOnChange$5(Object.assign({ placeholder: formatMessage({ id: 'PleaseSelect' }, { label: mergedProps.label || '' }) }, mergedProps)); return render(antd.DatePicker); }; DatePickerInner.Field = antd.DatePicker; var MonthPickerInner = function MonthPickerInner(props) { var _useIntl2 = reactIntl.useIntl(), formatMessage = _useIntl2.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'monthDatePicker' }, props); var render = useOnChange$5(Object.assign({ placeholder: [formatMessage({ id: 'StartTime' }), formatMessage({ id: 'EndTime' })] }, mergedProps)); return render(MonthPicker); }; MonthPickerInner.Field = MonthPicker; var RangePickerInner = function RangePickerInner(props) { var _useIntl3 = reactIntl.useIntl(), formatMessage = _useIntl3.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'rangeDatePicker' }, props); var render = useOnChange$5(Object.assign({ placeholder: [formatMessage({ id: 'StartTime' }), formatMessage({ id: 'EndTime' })] }, mergedProps)); return render(RangePicker); }; RangePickerInner.Field = RangePicker; var WeekPickerInner = function WeekPickerInner(props) { var _useIntl4 = reactIntl.useIntl(), formatMessage = _useIntl4.formatMessage; var mergedProps = Object.assign({}, { fieldName: 'weekDatePicker' }, props); var render = useOnChange$5(Object.assign({ placeholder: [formatMessage({ id: 'StartTime' }), formatMessage({ id: 'EndTime' })] }, mergedProps)); return render(WeekPicker); }; WeekPickerInner.Field = WeekPicker; var _DatePicker = withLocale(DatePickerInner); _DatePicker.MonthPicker = withLocale(MonthPickerInner); _DatePicker.RangePicker = withLocale(RangePickerInner); _DatePicker.WeekPicker = withLocale(WeekPickerInner); var useOnChange$4 = reactFormHelper.hooks.useOnChange; var _CheckboxGroup = antd.Checkbox.Group; var CheckboxGroup = function CheckboxGroup(props) { props = Object.assign({}, { fieldName: 'checkboxGroup' }, props); var render = useOnChange$4(props); return render(_CheckboxGroup); }; CheckboxGroup.Checkbox = antd.Checkbox; CheckboxGroup.Field = _CheckboxGroup; var useOnChange$3 = reactFormHelper.hooks.useOnChange, useCheckedToValue = reactFormHelper.hooks.useCheckedToValue; var withChecked = reactFormHelper.hoc.withChecked; var WithCheckbox = withChecked(antd.Checkbox); var Checkbox = function Checkbox(props) { props = Object.assign({}, { fieldName: 'checkbox' }, props); var checkedProps = useCheckedToValue(Object.assign({}, props, { onChange: function onChange(e) { e.target.type = 'checkbox'; props.onChange && props.onChange(e); } })); var render = useOnChange$3(checkedProps); return render(WithCheckbox); }; Checkbox.Field = antd.Checkbox; var useOnChange$2 = reactFormHelper.hooks.useOnChange; var Cascader = function Cascader(props) { props = Object.assign({}, { fieldName: 'cascader' }, props); var render = useOnChange$2(props); return render(antd.Cascader); }; Cascader.Field = antd.Cascader; var useOnChange$1 = reactFormHelper.hooks.useOnChange; var Rate = function Rate(props) { props = Object.assign({}, { fieldName: 'rate' }, props); var render = useOnChange$1(Object.assign({}, props)); return render(antd.Rate); }; Rate.Field = antd.Rate; var useOnChange = reactFormHelper.hooks.useOnChange; var Slider = function Slider(props) { props = Object.assign({}, { fieldName: 'slider' }, props); var render = useOnChange(Object.assign({}, props)); return render(antd.Slider); }; Slider.Field = antd.Slider; var ResetButton = function ResetButton(props) { var resetProps = ReactForm.useReset(); return /*#__PURE__*/React__default["default"].createElement(antd.Button, _extends({}, resetProps, props)); }; var _excluded$1 = ["type", "realtime", "disabled"], _excluded2 = ["isPass", "isLoading"]; var SubmitButton = function SubmitButton(_ref) { var _ref$type = _ref.type, type = _ref$type === void 0 ? 'primary' : _ref$type, realtime = _ref.realtime, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, props = _objectWithoutPropertiesLoose(_ref, _excluded$1); var _useSubmit = ReactForm.useSubmit(props), isPass = _useSubmit.isPass, isLoading = _useSubmit.isLoading, submitProps = _objectWithoutPropertiesLoose(_useSubmit, _excluded2); return /*#__PURE__*/React__default["default"].createElement(antd.Button, _extends({ type: type, loading: isLoading, disabled: disabled || (realtime ? !isPass : false) }, props, submitProps)); }; var _excluded = ["onClick"]; var useCacheRemove = reactFormHelper.hooks.useCacheRemove; var CancelButton = function CancelButton(_ref) { var _onClick = _ref.onClick, props = _objectWithoutPropertiesLoose(_ref, _excluded); var remove = useCacheRemove(); return /*#__PURE__*/React__default["default"].createElement(antd.Button, _extends({}, props, { onClick: function onClick() { remove(); _onClick && _onClick.apply(void 0, [].slice.call(arguments)); } })); }; var FormAntd = Form; var fields = { TreeSelect: _TreeSelect, TimePicker: _TimePicker, TextArea: TextArea, Switch: Switch, Select: _Select, RadioGroup: _RadioGroup, InputNumber: InputNumberField, Input: InputField, DatePickerToday: RangePickerToday, DatePicker: _DatePicker, CheckboxGroup: CheckboxGroup, Checkbox: Checkbox, Cascader: Cascader, Rate: Rate, Slider: Slider }; Object.defineProperty(exports, 'hoc', { enumerable: true, get: function () { return reactFormHelper.hoc; } }); Object.defineProperty(exports, 'hooks', { enumerable: true, get: function () { return reactFormHelper.hooks; } }); Object.defineProperty(exports, 'utils', { enumerable: true, get: function () { return reactFormHelper.utils; } }); Object.defineProperty(exports, 'widget', { enumerable: true, get: function () { return reactFormHelper.widget; } }); exports.CancelButton = CancelButton; exports.Cascader = Cascader; exports.Checkbox = Checkbox; exports.CheckboxGroup = CheckboxGroup; exports.DatePicker = _DatePicker; exports.DatePickerToday = RangePickerToday; exports.FormAntd = FormAntd; exports.Input = InputField; exports.InputNumber = InputNumberField; exports.RadioGroup = _RadioGroup; exports.Rate = Rate; exports.ResetButton = ResetButton; exports.Select = _Select; exports.Slider = Slider; exports.SubmitButton = SubmitButton; exports.Switch = Switch; exports.TextArea = TextArea; exports.TimePicker = _TimePicker; exports.TreeSelect = _TreeSelect; exports["default"] = Form; exports.fields = fields; exports.preset = preset; Object.keys(ReactForm).forEach(function (k) { if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, { enumerable: true, get: function () { return ReactForm[k]; } }); }); //# sourceMappingURL=index.js.map