UNPKG

rsuite

Version:

A suite of react components

327 lines (209 loc) 9.73 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.disabledTime = disabledTime; exports.getMonthView = getMonthView; exports.getDateMask = getDateMask; exports.copyTime = copyTime; exports.reverseDateRangeOmitTime = reverseDateRangeOmitTime; exports.getReversedTimeMeridian = exports.shouldOnlyRenderTime = exports.shouldRenderDate = exports.shouldRenderMonth = exports.shouldRenderTime = exports.omitHideDisabledProps = exports.calendarOnlyProps = exports.differenceInCalendarMonths = exports.set = exports.isValid = exports.isMatch = exports.subDays = exports.startOfWeek = exports.startOfMonth = exports.startOfISOWeek = exports.startOfDay = exports.setYear = exports.setSeconds = exports.setMonth = exports.setMinutes = exports.setHours = exports.setDate = exports.parseISO = exports.parse = exports.isSameSecond = exports.isSameMonth = exports.isSameDay = exports.isEqual = exports.isBefore = exports.isAfter = exports.getYear = exports.getSeconds = exports.getMonth = exports.getMinutes = exports.getHours = exports.getDaysInMonth = exports.getDay = exports.getDate = exports.format = exports.endOfWeek = exports.endOfMonth = exports.endOfISOWeek = exports.endOfDay = exports.compareAsc = exports.addMonths = exports.addDays = void 0; var _pick = _interopRequireDefault(require("lodash/pick")); var _omitBy = _interopRequireDefault(require("lodash/omitBy")); var _getHours = _interopRequireDefault(require("date-fns/getHours")); exports.getHours = _getHours.default; var _setHours = _interopRequireDefault(require("date-fns/setHours")); exports.setHours = _setHours.default; var _getDay = _interopRequireDefault(require("date-fns/getDay")); exports.getDay = _getDay.default; var _getMinutes = _interopRequireDefault(require("date-fns/getMinutes")); exports.getMinutes = _getMinutes.default; var _getSeconds = _interopRequireDefault(require("date-fns/getSeconds")); exports.getSeconds = _getSeconds.default; var _addDays = _interopRequireDefault(require("date-fns/addDays")); exports.addDays = _addDays.default; var _set = _interopRequireDefault(require("date-fns/set")); exports.set = _set.default; var _addMonths = _interopRequireDefault(require("date-fns/addMonths")); exports.addMonths = _addMonths.default; var _compareAsc = _interopRequireDefault(require("date-fns/compareAsc")); exports.compareAsc = _compareAsc.default; var _endOfDay = _interopRequireDefault(require("date-fns/endOfDay")); exports.endOfDay = _endOfDay.default; var _endOfISOWeek = _interopRequireDefault(require("date-fns/endOfISOWeek")); exports.endOfISOWeek = _endOfISOWeek.default; var _endOfMonth = _interopRequireDefault(require("date-fns/endOfMonth")); exports.endOfMonth = _endOfMonth.default; var _endOfWeek = _interopRequireDefault(require("date-fns/endOfWeek")); exports.endOfWeek = _endOfWeek.default; var _format = _interopRequireDefault(require("date-fns/format")); exports.format = _format.default; var _getDate = _interopRequireDefault(require("date-fns/getDate")); exports.getDate = _getDate.default; var _getDaysInMonth = _interopRequireDefault(require("date-fns/getDaysInMonth")); exports.getDaysInMonth = _getDaysInMonth.default; var _getMonth = _interopRequireDefault(require("date-fns/getMonth")); exports.getMonth = _getMonth.default; var _getYear = _interopRequireDefault(require("date-fns/getYear")); exports.getYear = _getYear.default; var _isAfter = _interopRequireDefault(require("date-fns/isAfter")); exports.isAfter = _isAfter.default; var _isBefore = _interopRequireDefault(require("date-fns/isBefore")); exports.isBefore = _isBefore.default; var _isEqual = _interopRequireDefault(require("date-fns/isEqual")); exports.isEqual = _isEqual.default; var _isSameDay = _interopRequireDefault(require("date-fns/isSameDay")); exports.isSameDay = _isSameDay.default; var _isSameMonth = _interopRequireDefault(require("date-fns/isSameMonth")); exports.isSameMonth = _isSameMonth.default; var _isSameSecond = _interopRequireDefault(require("date-fns/isSameSecond")); exports.isSameSecond = _isSameSecond.default; var _parse = _interopRequireDefault(require("date-fns/parse")); exports.parse = _parse.default; var _parseISO = _interopRequireDefault(require("date-fns/parseISO")); exports.parseISO = _parseISO.default; var _setDate = _interopRequireDefault(require("date-fns/setDate")); exports.setDate = _setDate.default; var _setMinutes = _interopRequireDefault(require("date-fns/setMinutes")); exports.setMinutes = _setMinutes.default; var _setMonth = _interopRequireDefault(require("date-fns/setMonth")); exports.setMonth = _setMonth.default; var _setSeconds = _interopRequireDefault(require("date-fns/setSeconds")); exports.setSeconds = _setSeconds.default; var _setYear = _interopRequireDefault(require("date-fns/setYear")); exports.setYear = _setYear.default; var _startOfDay = _interopRequireDefault(require("date-fns/startOfDay")); exports.startOfDay = _startOfDay.default; var _startOfISOWeek = _interopRequireDefault(require("date-fns/startOfISOWeek")); exports.startOfISOWeek = _startOfISOWeek.default; var _startOfMonth = _interopRequireDefault(require("date-fns/startOfMonth")); exports.startOfMonth = _startOfMonth.default; var _startOfWeek = _interopRequireDefault(require("date-fns/startOfWeek")); exports.startOfWeek = _startOfWeek.default; var _subDays = _interopRequireDefault(require("date-fns/subDays")); exports.subDays = _subDays.default; var _isMatch = _interopRequireDefault(require("date-fns/isMatch")); exports.isMatch = _isMatch.default; var _isValid = _interopRequireDefault(require("date-fns/isValid")); exports.isValid = _isValid.default; var _differenceInCalendarMonths = _interopRequireDefault(require("date-fns/differenceInCalendarMonths")); exports.differenceInCalendarMonths = _differenceInCalendarMonths.default; var disabledTimeProps = ['disabledHours', 'disabledMinutes', 'disabledSeconds']; var hideTimeProps = ['hideHours', 'hideMinutes', 'hideSeconds']; var calendarOnlyProps = disabledTimeProps.concat(hideTimeProps); exports.calendarOnlyProps = calendarOnlyProps; function validTime(calendarProps, date) { if (!date) { return false; } return Object.keys(calendarProps).some(function (key) { if (/(Hours)/.test(key)) { return calendarProps[key]((0, _getHours.default)(date), date); } if (/(Minutes)/.test(key)) { return calendarProps[key]((0, _getMinutes.default)(date), date); } if (/(Seconds)/.test(key)) { return calendarProps[key]((0, _getSeconds.default)(date), date); } return false; }); } /** * Verify that the time is valid. * @param props * @param date */ function disabledTime(props, date) { var calendarProps = (0, _pick.default)(props, disabledTimeProps); return validTime(calendarProps, date); } var omitHideDisabledProps = function omitHideDisabledProps(props) { return (0, _omitBy.default)(props, function (_val, key) { return key.startsWith('disabled') || key.startsWith('hide'); }); }; exports.omitHideDisabledProps = omitHideDisabledProps; var shouldRenderTime = function shouldRenderTime(format) { return /([Hhms])/.test(format); }; exports.shouldRenderTime = shouldRenderTime; var shouldRenderMonth = function shouldRenderMonth(format) { return /[Yy]/.test(format) && /[ML]/.test(format); }; exports.shouldRenderMonth = shouldRenderMonth; var shouldRenderDate = function shouldRenderDate(format) { return /[Yy]/.test(format) && /[ML]/.test(format) && /[Dd]/.test(format); }; // for date-fns v1 and v2 exports.shouldRenderDate = shouldRenderDate; var shouldOnlyRenderTime = function shouldOnlyRenderTime(format) { return /([Hhms])/.test(format) && !/([YyMDd])/.test(format); }; // for date-fns v1 and v2 /** * Get all weeks of this month * @params monthDate * @return date[] */ exports.shouldOnlyRenderTime = shouldOnlyRenderTime; function getMonthView(monthDate, isoWeek) { var firstDayOfMonth = (0, _getDay.default)(monthDate); var distance = 0 - firstDayOfMonth; if (isoWeek) { distance = 1 - firstDayOfMonth; if (firstDayOfMonth === 0) { distance = -6; } } var firstWeekendDate = (0, _addDays.default)(monthDate, distance); var weeks = [firstWeekendDate]; var nextWeekendDate = (0, _addDays.default)(firstWeekendDate, 7); weeks.push(nextWeekendDate); while (weeks.length < 6) { nextWeekendDate = (0, _addDays.default)(nextWeekendDate, 7); weeks.push(nextWeekendDate); } return weeks; } function getDateMask(formatStr) { return Array.from(formatStr).map(function (i) { return i.match(/[A-Za-z]/) ? /[\d|A-Za-z]/ : i; }); } /** * Copy the time of one date to another */ function copyTime(_ref) { var from = _ref.from, to = _ref.to; return (0, _set.default)(to, { hours: (0, _getHours.default)(from), minutes: (0, _getMinutes.default)(from), seconds: (0, _getSeconds.default)(from) }); } /** * Swap two dates without swapping the time. */ function reverseDateRangeOmitTime(dateRange) { var start = dateRange[0], end = dateRange[1]; if (start && end) { return [copyTime({ from: start, to: end }), copyTime({ from: end, to: start })]; } return dateRange; } /** * Get the time with AM and PM reversed. */ var getReversedTimeMeridian = function getReversedTimeMeridian(date) { var clonedDate = new Date(date.valueOf()); var hours = (0, _getHours.default)(clonedDate); var nextHours = hours >= 12 ? hours - 12 : hours + 12; return (0, _setHours.default)(clonedDate, nextHours); }; exports.getReversedTimeMeridian = getReversedTimeMeridian;