choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
81 lines (62 loc) • 2.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = stepMismatch;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _moment = require("moment");
var _isEmpty = _interopRequireDefault(require("../../_util/isEmpty"));
var _ValidationResult = _interopRequireDefault(require("../ValidationResult"));
var _localeContext = require("../../locale-context");
var _utils = require("../../number-field/utils");
var _formatReactTemplate = require("../../formatter/formatReactTemplate");
var _utils2 = require("../../field/utils");
function isStepMismatch(value, step, min, max, range) {
if (range) {
var nearStepValues;
(0, _utils2.toRangeValue)(value, range).every(function (item) {
if (!(0, _isEmpty["default"])(item)) {
nearStepValues = (0, _utils.getNearStepValues)((0, _moment.isMoment)(item) ? item : Number(item), step, min, max);
}
return !nearStepValues;
});
return nearStepValues;
}
if (!(0, _isEmpty["default"])(value)) {
return (0, _utils.getNearStepValues)((0, _moment.isMoment)(value) ? value : Number(value), step, min, max);
}
}
function stepMismatch(value, props) {
var step = props.step,
min = props.min,
max = props.max,
defaultValidationMessages = props.defaultValidationMessages,
range = props.range,
format = props.format,
nonStrictStep = props.nonStrictStep;
if (step !== undefined && nonStrictStep === false) {
var nearStepValues = isStepMismatch(value, step, min, max, range);
if (nearStepValues !== undefined) {
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 _defaultValidationMes = defaultValidationMessages[ruleName],
validationMessage = _defaultValidationMes === void 0 ? (0, _localeContext.$l)('Validator', key) : _defaultValidationMes;
return new _ValidationResult["default"]({
validationMessage: (0, _formatReactTemplate.formatReactTemplate)(validationMessage, injectionOptions),
injectionOptions: injectionOptions,
value: (0, _moment.isMoment)(value) ? value.format(format) : value,
ruleName: ruleName
});
}
}
return true;
}
//# sourceMappingURL=stepMismatch.js.map