UNPKG

@sergiomarques/sword-validation

Version:

Field validation tooling and defaults for SWORD Health Web Clients

78 lines (57 loc) 1.95 kB
"use strict"; 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;