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