@kne/react-form-antd
Version:
把 @kne/react-form 表单校验逻辑应用到antd
870 lines (823 loc) • 28.7 kB
JavaScript
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