choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
54 lines (40 loc) • 1.5 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = patternMismatch;
var _isRegExp = _interopRequireDefault(require("lodash/isRegExp"));
var _utils = require("../../utils");
var _ValidationResult = _interopRequireDefault(require("../ValidationResult"));
var _localeContext = require("../../locale-context");
function generatePattern(pattern) {
if ((0, _isRegExp["default"])(pattern)) {
pattern.lastIndex = 0;
return pattern;
}
var begin = pattern.startsWith('^') ? '' : '^';
var end = pattern.endsWith('$') ? '' : '$';
return new RegExp("".concat(begin).concat(pattern).concat(end));
}
function patternMismatch(value, _, getProp) {
if (!(0, _utils.isEmpty)(value)) {
var pattern = getProp('pattern');
if (pattern && !generatePattern(pattern).test(value)) {
var ruleName = 'patternMismatch';
var _ref = getProp('defaultValidationMessages') || {},
_ref$ruleName = _ref[ruleName],
validationMessage = _ref$ruleName === void 0 ? (0, _localeContext.$l)('Validator', 'pattern_mismatch') : _ref$ruleName;
return new _ValidationResult["default"]({
validationProps: {
pattern: pattern
},
validationMessage: validationMessage,
value: value,
ruleName: ruleName
});
}
}
return true;
}
//# sourceMappingURL=patternMismatch.js.map
;