redux-form-validators
Version:
Simple validations with redux-form / react-final-form
55 lines (47 loc) • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.inclusionExclusion = inclusionExclusion;
exports["default"] = void 0;
var _validators = _interopRequireDefault(require("./validators"));
var _helpers = require("./helpers");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var inclusion = (0, _helpers.memoize)(function (options) {
return inclusionExclusion(true, options);
});
var _default = inclusion;
exports["default"] = _default;
function inclusionExclusion(inclusion, _ref) {
var inc = _ref["in"],
within = _ref.within,
caseSensitive = _ref.caseSensitive,
message = _ref.message,
msg = _ref.msg,
ifCond = _ref["if"],
unless = _ref.unless,
allowBlank = _ref.allowBlank;
msg = msg || message;
within = [].concat(within || inc).map(function (val) {
return '' + val;
});
return (0, _helpers.prepare)(ifCond, unless, allowBlank, function (value) {
var cs = caseSensitive != null ? caseSensitive : _validators["default"].defaultOptions.caseSensitive;
var array = within;
if (!cs) {
value = value.toLowerCase();
array = array.map(function (val) {
return val.toLowerCase();
});
}
if (inclusion) {
if (array.indexOf(value) < 0) {
return _validators["default"].formatMessage((0, _helpers.prepareMsg)(msg, 'inclusion'));
}
} else {
if (array.indexOf(value) >= 0) {
return _validators["default"].formatMessage((0, _helpers.prepareMsg)(msg, 'exclusion'));
}
}
});
}