@sergiomarques/sword-validation
Version:
Field validation tooling and defaults for SWORD Health Web Clients
78 lines (57 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.requiredDate = exports.isNotFuture = exports.validYear = exports.validMonth = exports.validDay = void 0;
var _dayjs = _interopRequireDefault(require("dayjs"));
var _validators = require("vuelidate/lib/validators");
var _utils = require("./scripts/utils.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var validDay = function validDay() {
return _validators.helpers.withParams({
type: 'validDay',
min: 1,
max: 31
}, function (date) {
console.log(date);
var dateSplit = (0, _utils.splitDate)(date);
if (!dateSplit.day) {
return false;
}
var dateRef = (0, _dayjs["default"])().set('month', dateSplit.month - 1);
if (dateSplit.year && dateSplit.year.length === 4) {
dateRef = dateRef.set('year', dateSplit.year);
}
var lastDayInMonth = dateRef.endOf('month').$D;
return lastDayInMonth >= dateSplit.day;
});
};
exports.validDay = validDay;
var validMonth = function validMonth(date) {
var dateSplit = (0, _utils.splitDate)(date);
return !!dateSplit.month;
};
exports.validMonth = validMonth;
var validYear = function validYear(min, max) {
return _validators.helpers.withParams({
type: 'validYear',
min: min,
max: max
}, function (date) {
var year = (0, _utils.splitDate)(date).year;
if (!date || !year || year.length < 4) {
return false;
}
return !!year && min <= year && year <= max;
});
};
exports.validYear = validYear;
var isNotFuture = function isNotFuture(date) {
return date ? !(0, _dayjs["default"])(date).isAfter(new Date()) : false;
};
exports.isNotFuture = isNotFuture;
var requiredDate = function requiredDate(date) {
var dateSplit = (0, _utils.splitDate)(date);
return dateSplit.day && dateSplit.month && dateSplit.year;
};
exports.requiredDate = requiredDate;