choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
96 lines (73 loc) • 2.75 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 _isNil = _interopRequireDefault(require("lodash/isNil"));
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 originMessages = getProp('defaultValidationMessages') || {};
var _ref = !(0, _isNil["default"])(originMessages.label) && originMessages.label !== label ? {} : originMessages,
_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
;