choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
90 lines (69 loc) • 3.14 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = stepMismatch;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _moment = require("moment");
var _utils = require("../../utils");
var _ValidationResult = _interopRequireDefault(require("../ValidationResult"));
var _localeContext = require("../../locale-context");
function isStepMismatch(value, step, min, max, range, isBigNumber) {
if (range) {
var nearStepValues;
(0, _utils.toRangeValue)(value, range).every(function (item) {
if (!(0, _utils.isEmpty)(item)) {
nearStepValues = (0, _utils.getNearStepValues)((0, _moment.isMoment)(item) ? item : Number(item), step, min, max, isBigNumber);
}
return !nearStepValues;
});
return nearStepValues;
}
return (0, _utils.getNearStepValues)((0, _moment.isMoment)(value) ? value : Number(value), step, min, max, isBigNumber);
}
function stepMismatch(value, validatorBaseProps, getProp) {
if (!(0, _utils.isEmpty)(value)) {
var step = getProp('step');
if (step !== undefined) {
var nonStrictStep = getProp('nonStrictStep');
if (nonStrictStep === false) {
var min = getProp('min');
var max = getProp('max');
var range = getProp('range');
var stringMode = getProp('stringMode');
var nearStepValues = isStepMismatch(value, step, min, max, range, stringMode);
if (nearStepValues !== undefined) {
var format = getProp('format');
var _nearStepValues = (0, _slicedToArray2["default"])(nearStepValues, 2),
before = _nearStepValues[0],
after = _nearStepValues[1];
var injectionOptions = {
0: (0, _moment.isMoment)(before) ? before.format(format) : before,
1: (0, _moment.isMoment)(after) ? after.format(format) : after
};
var ruleName = nearStepValues.length === 2 ? 'stepMismatchBetween' : 'stepMismatch';
var key = nearStepValues.length === 2 ? 'step_mismatch_between' : 'step_mismatch';
var _ref = getProp('defaultValidationMessages') || {},
_ref$ruleName = _ref[ruleName],
validationMessage = _ref$ruleName === void 0 ? (0, _localeContext.$l)('Validator', key) : _ref$ruleName;
return new _ValidationResult["default"]({
validationProps: (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, validatorBaseProps), {}, {
step: step,
min: min,
max: max,
range: range
}),
validationMessage: validationMessage,
injectionOptions: injectionOptions,
value: (0, _moment.isMoment)(value) ? value.format(format) : value,
ruleName: ruleName
});
}
}
}
}
return true;
}
//# sourceMappingURL=stepMismatch.js.map
;