UNPKG

choerodon-ui

Version:

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

187 lines (139 loc) 6.13 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = uniqueError; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _isString = _interopRequireDefault(require("lodash/isString")); var _ValidationResult = _interopRequireDefault(require("../ValidationResult")); var _localeContext = require("../../locale-context"); var _isEmpty = _interopRequireDefault(require("../../_util/isEmpty")); var _utils = require("../../data-set/utils"); var _enum = require("../../data-set/enum"); function uniqueError(_x, _x2) { return _uniqueError.apply(this, arguments); } function _uniqueError() { _uniqueError = (0, _asyncToGenerator2["default"])( /*#__PURE__*/ _regenerator["default"].mark(function _callee(value, props) { var dataSet, record, unique, name, multiple, range, defaultValidationMessages, myField, dirty, fields, invalid, newConfig, results, ruleName, _defaultValidationMes, validationMessage; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: dataSet = props.dataSet, record = props.record, unique = props.unique, name = props.name, multiple = props.multiple, range = props.range, defaultValidationMessages = props.defaultValidationMessages; if (!(!(0, _isEmpty["default"])(value) && dataSet && record && unique && name && !multiple && !range)) { _context.next = 26; break; } myField = record.getField(name); if (!(myField && myField.get('type') === _enum.FieldType.object)) { _context.next = 7; break; } value = value[myField.get('valueField')]; if (!(0, _isEmpty["default"])(value)) { _context.next = 7; break; } return _context.abrupt("return", true); case 7: if (!myField) { _context.next = 26; break; } dirty = myField.dirty; fields = (0, _defineProperty2["default"])({}, name, value); if (!((0, _isString["default"])(unique) && (0, _toConsumableArray2["default"])(record.fields.entries()).some(function (_ref) { var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), fieldName = _ref2[0], field = _ref2[1]; if (fieldName !== name && field && field.get('unique') === unique && !field.get('multiple') && !field.get('range')) { var otherValue = record.get(fieldName); if ((0, _isEmpty["default"])(otherValue)) { return true; } if (!dirty && field.dirty) { dirty = true; } if (field && field.get('type') === _enum.FieldType.object) { var otherObjectValue = otherValue[field.get('valueField')]; if ((0, _isEmpty["default"])(otherObjectValue)) { return true; } fields[fieldName] = otherObjectValue; } else { fields[fieldName] = otherValue; } } return false; }))) { _context.next = 12; break; } return _context.abrupt("return", true); case 12: if (dirty) { _context.next = 14; break; } return _context.abrupt("return", true); case 14: invalid = dataSet.data.some(function (item) { return item !== record && Object.keys(fields).every(function (field) { var dataSetField = record.getField(name); if (dataSetField && dataSetField.get('type') === _enum.FieldType.object) { var valueField = dataSetField.get('valueField'); return fields[field] === item.get(field)[valueField]; } return fields[field] === item.get(field); }); }); if (invalid) { _context.next = 22; break; } newConfig = (0, _utils.axiosConfigAdapter)('validate', dataSet, { unique: [fields] }); if (!newConfig.url) { _context.next = 22; break; } _context.next = 20; return dataSet.axios(newConfig); case 20: results = _context.sent; invalid = [].concat(results).some(function (result) { return !result; }); case 22: if (!invalid) { _context.next = 26; break; } ruleName = 'uniqueError'; _defaultValidationMes = defaultValidationMessages[ruleName], validationMessage = _defaultValidationMes === void 0 ? (0, _localeContext.$l)('Validator', 'unique') : _defaultValidationMes; return _context.abrupt("return", new _ValidationResult["default"]({ validationMessage: validationMessage, value: value, ruleName: ruleName })); case 26: return _context.abrupt("return", true); case 27: case "end": return _context.stop(); } } }, _callee); })); return _uniqueError.apply(this, arguments); } //# sourceMappingURL=uniqueError.js.map