UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

96 lines (73 loc) 2.75 kB
"use strict"; 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