UNPKG

react-day-picker

Version:

Flexible date picker component for React

82 lines (75 loc) 2.38 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.dayMatchesModifier = dayMatchesModifier; exports.getModifiersForDay = getModifiersForDay; var _DateUtils = require('./DateUtils'); var _Helpers = require('./Helpers'); /** * Return `true` if a date matches the specified modifier. * * @export * @param {Date} day * @param {Any} modifier * @return {Boolean} */ function dayMatchesModifier(day, modifier) { if (!modifier) { return false; } var arr = Array.isArray(modifier) ? modifier : [modifier]; return arr.some(function (mod) { if (!mod) { return false; } if (mod instanceof Date) { return (0, _DateUtils.isSameDay)(day, mod); } if ((0, _Helpers.isRangeOfDates)(mod)) { return (0, _DateUtils.isDayInRange)(day, mod); } if (mod.after && mod.before && (0, _DateUtils.isDayAfter)(mod.before, mod.after)) { return (0, _DateUtils.isDayAfter)(day, mod.after) && (0, _DateUtils.isDayBefore)(day, mod.before); } if (mod.after && mod.before && ((0, _DateUtils.isDayAfter)(mod.after, mod.before) || (0, _DateUtils.isSameDay)(mod.after, mod.before))) { return (0, _DateUtils.isDayAfter)(day, mod.after) || (0, _DateUtils.isDayBefore)(day, mod.before); } if (mod.after) { return (0, _DateUtils.isDayAfter)(day, mod.after); } if (mod.before) { return (0, _DateUtils.isDayBefore)(day, mod.before); } if (mod.daysOfWeek) { return mod.daysOfWeek.some(function (dayOfWeek) { return day.getDay() === dayOfWeek; }); } if (typeof mod === 'function') { return mod(day); } return false; }); } /** * Return the modifiers matching the given day for the given * object of modifiers. * * @export * @param {Date} day * @param {Object} [modifiersObj={}] * @return {Array} */ function getModifiersForDay(day) { var modifiersObj = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return Object.keys(modifiersObj).reduce(function (modifiers, modifierName) { var value = modifiersObj[modifierName]; if (dayMatchesModifier(day, value)) { modifiers.push(modifierName); } return modifiers; }, []); } exports.default = { dayMatchesModifier: dayMatchesModifier, getModifiersForDay: getModifiersForDay }; //# sourceMappingURL=ModifiersUtils.js.map