@root-systems/redux-form-validators
Version:
Simple validations with redux-form
93 lines (73 loc) • 2.89 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DEFAULT_ALLOW_BLANK = undefined;
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
exports.regFormat = regFormat;
exports.prepare = prepare;
exports.trunc = trunc;
exports.isNumber = isNumber;
exports.formatMessage = formatMessage;
exports.memoize = memoize;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactIntl = require('react-intl');
var _format = require('./format');
var _format2 = _interopRequireDefault(_format);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DEFAULT_ALLOW_BLANK = exports.DEFAULT_ALLOW_BLANK = false;
function regFormat(options, reg, messageId) {
options.msg = options.msg || options.message || messageId;
options.with = reg;
return (0, _format2.default)(options);
}
function prepare(ifCond, unlessCond, allowBlank, func) {
return function () {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var allValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
value = '' + value;
if (allowBlank && !value.trim()) {
return;
}
if (('function' !== typeof ifCond || ifCond(allValues, value)) && ('function' !== typeof unlessCond || !unlessCond(allValues, value))) {
return func(value, allValues);
}
};
}
function trunc(num) {
return Math.trunc ? Math.trunc(num) : num < 0 ? Math.ceil(num) : Math.floor(num);
}
function isNumber(num) {
return !isNaN(num) && '' !== ('' + num).trim();
}
function formatMessage(msg) {
if (null == msg) return null;
return 'string' === typeof msg ? _react2.default.createElement(_reactIntl.FormattedMessage, { id: msg }) : _react2.default.createElement(_reactIntl.FormattedMessage, msg.props || msg);
}
function memoize(func) {
if (!func.cache) {
func.cache = {};
}
return function (options) {
var key = stringify(options);
return HAS_PROP.call(func.cache, key) ? func.cache[key] : func.cache[key] = func(options);
};
}
// private
var HAS_PROP = {}.hasOwnProperty;
var TO_STRING = {}.toString;
function stringify(options) {
var arr = [];
var value = void 0;
for (var k in options) {
if (HAS_PROP.call(options, k)) {
value = options[k];
arr.push(k, _react2.default.isValidElement(value) ? stringify(value.props) : isObject(value) ? stringify(value) : value);
}
}
return arr.toString();
}
function isObject(obj) {
return 'object' === (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) && '[object Object]' === TO_STRING.call(obj) && null !== obj;
}
;