UNPKG

@e-group/material-lab

Version:

EGroup Team Lab - Incubator for EGroup Team experimental React components.

110 lines (78 loc) 2.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.inDateRange = exports.isAfterValid = exports.isBeforeValid = exports.isSameDayValid = exports.isWithinIntervalValid = exports.getValidatedMonths = exports.getValidDate = exports.getDaysInMonth = exports.chunks = exports.identity = void 0; var _dateFns = require("date-fns"); const identity = x => x; exports.identity = identity; const chunks = (array, size) => Array.from({ length: Math.ceil(array.length / size) }, (v, i) => array.slice(i * size, i * size + size)); exports.chunks = chunks; const getDaysInMonth = date => { const startWeek = (0, _dateFns.startOfWeek)((0, _dateFns.startOfMonth)(date)); const endWeek = (0, _dateFns.endOfWeek)((0, _dateFns.endOfMonth)(date)); const days = []; for (let curr = startWeek; (0, _dateFns.isBefore)(curr, endWeek);) { days.push(curr); curr = (0, _dateFns.addDays)(curr, 1); } return days; }; // Date exports.getDaysInMonth = getDaysInMonth; const getValidDate = (date, defaultValue) => { if (date) { const parsed = (0, _dateFns.toDate)(new Date(date)); if ((0, _dateFns.isValid)(parsed)) return parsed; } return defaultValue; }; exports.getValidDate = getValidDate; const getValidatedMonths = (minDate, maxDate, startDate, endDate) => { if (startDate && endDate) { const newStart = (0, _dateFns.max)([startDate, minDate]); const newEnd = (0, _dateFns.min)([endDate, maxDate]); return [newStart, (0, _dateFns.isSameMonth)(newStart, newEnd) ? (0, _dateFns.addMonths)(newStart, 1) : newEnd]; } return [startDate, endDate]; }; exports.getValidatedMonths = getValidatedMonths; const isWithinIntervalValid = (date, startDate, endDate) => { if (startDate && endDate && (0, _dateFns.isBefore)(startDate, endDate)) { return (0, _dateFns.isWithinInterval)(date, { start: startDate, end: endDate }); } return false; }; exports.isWithinIntervalValid = isWithinIntervalValid; const isSameDayValid = (dateLeft, dateRight) => { if (dateLeft && dateRight) { return (0, _dateFns.isSameDay)(dateLeft, dateRight); } return false; }; exports.isSameDayValid = isSameDayValid; const isBeforeValid = (date, dateToCompare) => { if (date && dateToCompare) { return (0, _dateFns.isBefore)(date, dateToCompare); } return false; }; exports.isBeforeValid = isBeforeValid; const isAfterValid = (date, dateToCompare) => { if (date && dateToCompare) { return (0, _dateFns.isAfter)(date, dateToCompare); } return false; }; exports.isAfterValid = isAfterValid; const inDateRange = (day, startDate, endDate) => { if (startDate && endDate) { return isWithinIntervalValid(day, startDate, endDate) || isSameDayValid(day, startDate) || isSameDayValid(day, endDate); } return false; }; exports.inDateRange = inDateRange;