UNPKG

choerodon-ui

Version:

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

60 lines (46 loc) 2.09 kB
"use strict"; 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