ngx-custom-validators
Version:
Angular custom directives for validation
35 lines • 4.08 kB
JavaScript
export function isPresent(obj) {
return obj !== undefined && obj !== null;
}
export function isDate(obj) {
try {
const date = new Date(obj);
return !isNaN(date.getTime());
}
catch (e) {
return false;
}
}
export function parseDate(obj) {
try {
// Moment.js
if (obj._d instanceof Date) {
const d = obj._d;
const month = +d.getMonth() + 1;
const day = +d.getDate();
return `${d.getFullYear()}-${formatDayOrMonth(month)}-${formatDayOrMonth(day)}`;
}
// NgbDateStruct
if (typeof obj === 'object' && obj.year != null && obj.month != null && obj.day != null) {
const month = +obj.month;
const day = +obj.day;
return `${obj.year}-${formatDayOrMonth(month)}-${formatDayOrMonth(day)}`;
}
}
catch (e) { }
return obj;
}
function formatDayOrMonth(month) {
return month < 10 ? `0${month}` : month;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8iLCJzb3VyY2VzIjpbInNyYy9hcHAvdXRpbC9sYW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBQyxHQUFRO0lBQzdCLElBQUk7UUFDRixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0tBQy9CO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsR0FBUTtJQUNoQyxJQUFJO1FBQ0YsWUFBWTtRQUNaLElBQUksR0FBRyxDQUFDLEVBQUUsWUFBWSxJQUFJLEVBQUU7WUFDMUIsTUFBTSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQVUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDaEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQ2pGO1FBRUQsZ0JBQWdCO1FBQ2hCLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3ZGLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUN6QixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFDckIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUMxRTtLQUNGO0lBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRztJQUNmLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsS0FBYTtJQUNyQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudChvYmo6IGFueSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqICE9PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKG9iajogYW55KTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKG9iaik7XG4gICAgcmV0dXJuICFpc05hTihkYXRlLmdldFRpbWUoKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGF0ZShvYmo6IGFueSk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgLy8gTW9tZW50LmpzXG4gICAgaWYgKG9iai5fZCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IGQgPSBvYmouX2QgYXMgRGF0ZTtcbiAgICAgIGNvbnN0IG1vbnRoID0gK2QuZ2V0TW9udGgoKSArIDE7XG4gICAgICBjb25zdCBkYXkgPSArZC5nZXREYXRlKCk7XG4gICAgICByZXR1cm4gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke2Zvcm1hdERheU9yTW9udGgobW9udGgpfS0ke2Zvcm1hdERheU9yTW9udGgoZGF5KX1gO1xuICAgIH1cblxuICAgIC8vIE5nYkRhdGVTdHJ1Y3RcbiAgICBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqLnllYXIgIT0gbnVsbCAmJiBvYmoubW9udGggIT0gbnVsbCAmJiBvYmouZGF5ICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IG1vbnRoID0gK29iai5tb250aDtcbiAgICAgIGNvbnN0IGRheSA9ICtvYmouZGF5O1xuICAgICAgcmV0dXJuIGAke29iai55ZWFyfS0ke2Zvcm1hdERheU9yTW9udGgobW9udGgpfS0ke2Zvcm1hdERheU9yTW9udGgoZGF5KX1gO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkgeyB9XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdERheU9yTW9udGgobW9udGg6IG51bWJlcik6IHN0cmluZ3xudW1iZXIge1xuICByZXR1cm4gbW9udGggPCAxMCA/IGAwJHttb250aH1gIDogbW9udGg7XG59XG4iXX0=