@integec/grid-tools
Version:
Integ Grid Tools
98 lines (74 loc) • 3.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validEmailRegex = exports.isTypeValid = exports.clearValidations = exports.validate = exports.emptyValidations = undefined;
var _find = require('ramda/src/find');
var _find2 = _interopRequireDefault(_find);
var _map = require('ramda/src/map');
var _map2 = _interopRequireDefault(_map);
var _filter = require('ramda/src/filter');
var _filter2 = _interopRequireDefault(_filter);
var _compose = require('ramda/src/compose');
var _compose2 = _interopRequireDefault(_compose);
var _isEmpty = require('ramda/src/isEmpty');
var _isEmpty2 = _interopRequireDefault(_isEmpty);
var _isNil = require('ramda/src/isNil');
var _isNil2 = _interopRequireDefault(_isNil);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var emptyValidations = exports.emptyValidations = [];
// {
// test: ({ mode, userName }) =>
// mode === 'new' && (R.isNil(userName) || R.isEmpty(userName)),
// type: 'userName',
// text: 'User Name must be entered',
// },
var requiredData = function requiredData(_ref) {
var extractData = _ref.extractData;
return function (data) {
return function (header) {
var required = header.isKey || header.isRequired;
var inputData = extractData({ header: header, rowData: data });
var notEntered = (0, _isNil2.default)(inputData) || (0, _isEmpty2.default)(inputData);
return required && notEntered ? { text: header.display + ' must be entered', type: header.ident } : undefined;
};
};
};
var validate = exports.validate = function validate(_ref2) {
var spec = _ref2.spec,
editorProps = _ref2.editorProps,
_ref2$data = _ref2.data,
data = _ref2$data === undefined ? {} : _ref2$data;
var headers = editorProps.headers;
var defaultValidation = (0, _compose2.default)((0, _filter2.default)(function (v) {
return !(0, _isNil2.default)(v);
}), (0, _map2.default)(requiredData(editorProps)(data)))(headers);
if (spec) {
var customValidations = (0, _compose2.default)((0, _filter2.default)(function (v) {
return v !== null;
}), (0, _map2.default)(function (v) {
return v.test(data) ? v : null;
}))(spec);
// add default valiations basically number as number + and key cannot be nulls
return [].concat(_toConsumableArray(defaultValidation), _toConsumableArray(customValidations));
}
return defaultValidation.length === 0 ? emptyValidations : defaultValidation;
};
var clearValidations = exports.clearValidations = function clearValidations(_ref3) {
var validations = _ref3.validations,
type = _ref3.type;
return (0, _filter2.default)(function (v) {
return v.type !== type;
}, validations);
};
var isTypeValid = exports.isTypeValid = function isTypeValid(_ref4) {
var validations = _ref4.validations,
type = _ref4.type;
return (0, _isNil2.default)((0, _find2.default)(function (v) {
return v.type === type;
}, validations));
};
/* eslint-disable*/
var validEmailRegex = exports.validEmailRegex = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
//# sourceMappingURL=validation-util.js.map