UNPKG

@flatbiz/antd

Version:
134 lines (130 loc) 4.88 kB
/*! @flatjs/forge MIT @flatbiz/antd */ import { _ as _objectWithoutProperties, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BYm17lo8.js'; import { useMemo } from 'react'; import { InputNumber } from 'antd'; import { isNotEmptyArray, isEmptyArray, isUndefinedOrNull } from '@flatbiz/utils'; import { F as FlexLayout } from './flex-layout-BaDncU_Z.js'; import { F as FormItemWrapper } from './form-item-wrapper-BneADBjX.js'; import { jsx, jsxs } from 'react/jsx-runtime'; var _excluded = ["minFormItemName", "maxFormItemName", "required", "requiredRuleMessage", "rangeRuleMessage", "minInputNumberProps", "maxInputNumberProps", "isInputEqual"]; /** * 数字输入范围组件 */ var NumberRangeFormItem = function NumberRangeFormItem(props) { var minFormItemName = props.minFormItemName, maxFormItemName = props.maxFormItemName, required = props.required, requiredRuleMessage = props.requiredRuleMessage, rangeRuleMessage = props.rangeRuleMessage, minInputNumberProps = props.minInputNumberProps, maxInputNumberProps = props.maxInputNumberProps, isInputEqual = props.isInputEqual, otherProps = _objectWithoutProperties(props, _excluded); var rangeRuleMessageList = useMemo(function () { if (!rangeRuleMessage) return ['最小值输入不能超过最大值', '最大值输入不能低于最小值']; if (isNotEmptyArray(rangeRuleMessage)) { return [rangeRuleMessage[0], rangeRuleMessage[1] || rangeRuleMessage[0]]; } return [rangeRuleMessage, rangeRuleMessage]; }, [rangeRuleMessage]); var requiredRuleMessageList = useMemo(function () { if (!requiredRuleMessage || isEmptyArray(requiredRuleMessage)) return []; if (isNotEmptyArray(requiredRuleMessage)) { return [requiredRuleMessage[0], requiredRuleMessage[1] || requiredRuleMessage[0]]; } return [requiredRuleMessage, requiredRuleMessage]; }, [requiredRuleMessage]); var minRules = [{ required: required, message: requiredRuleMessageList[0] || '' }, function (_ref) { var getFieldValue = _ref.getFieldValue; return { validator: function validator(_, value) { if (isUndefinedOrNull(value)) { return Promise.resolve(); } var maxValue = getFieldValue(maxFormItemName); if (isUndefinedOrNull(maxValue)) { return Promise.resolve(); } if (isInputEqual) { if (value <= maxValue) { return Promise.resolve(); } } else { if (value < maxValue) { return Promise.resolve(); } } return Promise.reject(new Error(rangeRuleMessageList[0])); } }; }]; var maxRules = [{ required: required, message: requiredRuleMessageList[1] || '' }, function (_ref2) { var getFieldValue = _ref2.getFieldValue; return { validator: function validator(_, value) { if (isUndefinedOrNull(value)) { return Promise.resolve(); } var minValue = getFieldValue(minFormItemName); if (isUndefinedOrNull(minValue)) { return Promise.resolve(); } if (isInputEqual) { if (value >= minValue) { return Promise.resolve(); } } else { if (value > minValue) { return Promise.resolve(); } } return Promise.reject(new Error(rangeRuleMessageList[1])); } }; }]; return /*#__PURE__*/jsx(FormItemWrapper, _objectSpread2(_objectSpread2({}, otherProps), {}, { required: required, children: /*#__PURE__*/jsxs(FlexLayout, { fullIndex: [0, 1], direction: "horizontal", gap: 10, children: [/*#__PURE__*/jsx(FormItemWrapper, { name: minFormItemName, dependencies: [maxFormItemName], rules: minRules, style: { margin: 0 }, children: /*#__PURE__*/jsx(InputNumber, _objectSpread2(_objectSpread2({ placeholder: "\u8BF7\u8F93\u5165" }, minInputNumberProps), {}, { style: _objectSpread2({ width: '100%' }, minInputNumberProps === null || minInputNumberProps === void 0 ? void 0 : minInputNumberProps.style) })) }), /*#__PURE__*/jsx(FormItemWrapper, { name: maxFormItemName, dependencies: [minFormItemName], rules: maxRules, style: { margin: 0 }, children: /*#__PURE__*/jsx(InputNumber, _objectSpread2(_objectSpread2({ placeholder: "\u8BF7\u8F93\u5165" }, maxInputNumberProps), {}, { style: _objectSpread2({ width: '100%' }, maxInputNumberProps === null || maxInputNumberProps === void 0 ? void 0 : maxInputNumberProps.style) })) })] }) })); }; export { NumberRangeFormItem as N }; //# sourceMappingURL=number-range-D8E6asPy.js.map