@indec/form-builder
Version:
Form builder
102 lines (101 loc) • 3.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _dateFns = require("date-fns");
var _questionTypes = _interopRequireDefault(require("../constants/questionTypes"));
var _isObject = _interopRequireDefault(require("./isObject"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var isString = function isString(value) {
return typeof value === 'string';
};
var dateNotEquals = function dateNotEquals(a, b) {
return !(0, _dateFns.isEqual)(a, b);
};
var dateOperators = {
lt: _dateFns.isBefore,
gt: _dateFns.isAfter,
eq: _dateFns.isEqual,
ne: dateNotEquals
};
var validateDateRange = function validateDateRange(dates, endDate, operator) {
var isValid = false;
var secondDate = endDate ? new Date(endDate) : '';
isValid = Object.values(dates).some(function (date) {
if (!date && !secondDate) {
return true;
}
return dateOperators[operator](new Date(date), secondDate);
});
return {
isValid: isValid
};
};
var operations = {
eq: function eq(a, b, questionType) {
if ((0, _isObject["default"])(a)) {
if (questionType === _questionTypes["default"].DATE) {
var _validateDateRange = validateDateRange(a, b, 'eq'),
isValid = _validateDateRange.isValid;
return isValid;
}
return Object.values(a).some(function (value) {
return value === b;
});
}
return a === b;
},
ne: function ne(a, b, questionType) {
if ((0, _isObject["default"])(a)) {
if (questionType === _questionTypes["default"].DATE) {
var _validateDateRange2 = validateDateRange(a, b, 'ne'),
isValid = _validateDateRange2.isValid;
return isValid;
}
return Object.values(a).some(function (value) {
return value === b;
});
}
return a !== b;
},
gt: function gt(a, b, questionType) {
if ((0, _isObject["default"])(a)) {
if (questionType === _questionTypes["default"].DATE) {
var _validateDateRange3 = validateDateRange(a, b, 'gt'),
isValid = _validateDateRange3.isValid;
return isValid;
}
return Object.values(a).some(function (value) {
return value === b;
});
}
return isString(a) ? a.length > b : a > b;
},
gte: function gte(a, b) {
return isString(a) ? a.length >= b : a >= b;
},
lt: function lt(a, b, questionType) {
if ((0, _isObject["default"])(a)) {
if (questionType === _questionTypes["default"].DATE) {
var _validateDateRange4 = validateDateRange(a, b, 'lt'),
isValid = _validateDateRange4.isValid;
return isValid;
}
return Object.values(a).some(function (value) {
return value === b;
});
}
return isString(a) ? a.length < b : a < b;
},
lte: function lte(a, b) {
return isString(a) ? a.length <= b : a <= b;
},
"in": function _in(a, b) {
return a.includes(b);
},
nin: function nin(a, b) {
return !a.includes(b);
}
};
var _default = exports["default"] = operations;