choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
60 lines (46 loc) • 2.09 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = valueMissing;
var _mobx = require("mobx");
var _isEmpty = _interopRequireDefault(require("../../_util/isEmpty"));
var _ValidationResult = _interopRequireDefault(require("../ValidationResult"));
var _localeContext = require("../../locale-context");
var _formatReactTemplate = require("../../formatter/formatReactTemplate");
var _enum = require("../../data-set/enum");
var _utils = require("../../field/utils");
function isEmptyArray(value) {
return (0, _isEmpty["default"])(value) || (0, _mobx.isArrayLike)(value) && (value.length === 0 || value.every(function (item) {
return isEmptyArray(item);
}));
}
function valueMissing(value, props) {
var required = props.required,
label = props.label,
multiple = props.multiple,
range = props.range,
defaultValidationMessages = props.defaultValidationMessages,
type = props.type,
attachmentCount = props.attachmentCount;
if (required && (isEmptyArray(value) || type === _enum.FieldType.attachment && !attachmentCount || range && (multiple ? value.every(function (item) {
return isEmptyArray((0, _utils.toRangeValue)(item, range));
}) : isEmptyArray((0, _utils.toRangeValue)(value, range))))) {
var injectionOptions = {
label: label
};
var key = label ? 'value_missing' : 'value_missing_no_label';
var ruleName = label ? 'valueMissing' : 'valueMissingNoLabel';
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: value,
ruleName: ruleName
});
}
return true;
}
//# sourceMappingURL=valueMissing.js.map