@flatbiz/antd
Version:
134 lines (130 loc) • 4.88 kB
JavaScript
/*! @flatjs/forge MIT @flatbiz/antd */
import { _ as _objectWithoutProperties, b as _objectSpread2 } from './_rollupPluginBabelHelpers-BspM60Sw.js';
import { useMemo } from 'react';
import { InputNumber } from 'antd';
import { isNotEmptyArray, isEmptyArray, isUndefinedOrNull } from '@flatbiz/utils';
import { F as FlexLayout } from './flex-layout-BGtMe7zr.js';
import { F as FormItemWrapper } from './form-item-wrapper-Ci7-5IKi.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-DUyTW0V1.js.map