UNPKG

react-calendar

Version:

Ultimate calendar for your React app.

104 lines (103 loc) 5.01 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.tileProps = exports.tileGroupProps = exports.isView = exports.isViews = exports.isValue = exports.isRef = exports.isMaxDate = exports.isMinDate = exports.isClassName = exports.isCalendarType = void 0; var prop_types_1 = __importDefault(require("prop-types")); var const_1 = require("./const"); var calendarTypes = Object.values(const_1.CALENDAR_TYPES); var allViews = ['century', 'decade', 'year', 'month']; exports.isCalendarType = prop_types_1.default.oneOf(calendarTypes); exports.isClassName = prop_types_1.default.oneOfType([ prop_types_1.default.string, prop_types_1.default.arrayOf(prop_types_1.default.string), ]); function isMinDate(props, propName, componentName) { var _a = props, _b = propName, minDate = _a[_b]; if (!minDate) { return null; } if (!(minDate instanceof Date)) { return new Error("Invalid prop `".concat(propName, "` of type `").concat(typeof minDate, "` supplied to `").concat(componentName, "`, expected instance of `Date`.")); } var maxDate = props.maxDate; if (maxDate && minDate > maxDate) { return new Error("Invalid prop `".concat(propName, "` of type `").concat(typeof minDate, "` supplied to `").concat(componentName, "`, minDate cannot be larger than maxDate.")); } return null; } exports.isMinDate = isMinDate; function isMaxDate(props, propName, componentName) { var _a = props, _b = propName, maxDate = _a[_b]; if (!maxDate) { return null; } if (!(maxDate instanceof Date)) { return new Error("Invalid prop `".concat(propName, "` of type `").concat(typeof maxDate, "` supplied to `").concat(componentName, "`, expected instance of `Date`.")); } var minDate = props.minDate; if (minDate && maxDate < minDate) { return new Error("Invalid prop `".concat(propName, "` of type `").concat(typeof maxDate, "` supplied to `").concat(componentName, "`, maxDate cannot be smaller than minDate.")); } return null; } exports.isMaxDate = isMaxDate; exports.isRef = prop_types_1.default.oneOfType([ prop_types_1.default.func, prop_types_1.default.shape({ current: prop_types_1.default.any, }), ]); exports.isValue = prop_types_1.default.oneOfType([ prop_types_1.default.instanceOf(Date), prop_types_1.default.arrayOf(prop_types_1.default.instanceOf(Date)), ]); exports.isViews = prop_types_1.default.arrayOf(prop_types_1.default.oneOf(allViews)); function isView(props, propName, componentName) { var _a = props, _b = propName, view = _a[_b]; var views = props.views; var allowedViews = views || allViews; if (view !== undefined && (typeof view !== 'string' || allowedViews.indexOf(view) === -1)) { return new Error("Invalid prop `".concat(propName, "` of value `").concat(view, "` supplied to `").concat(componentName, "`, expected one of [").concat(allowedViews .map(function (a) { return "\"".concat(a, "\""); }) .join(', '), "].")); } // Everything is fine return null; } exports.isView = isView; isView.isRequired = function (props, propName, componentName) { var _a = props, _b = propName, view = _a[_b]; if (!view) { return new Error("The prop `".concat(propName, "` is marked as required in `").concat(componentName, "`, but its value is `").concat(view, "`.")); } return isView(props, propName, componentName); }; exports.tileGroupProps = { activeStartDate: prop_types_1.default.instanceOf(Date).isRequired, hover: prop_types_1.default.instanceOf(Date), locale: prop_types_1.default.string, maxDate: isMaxDate, minDate: isMinDate, onClick: prop_types_1.default.func, onMouseOver: prop_types_1.default.func, tileClassName: prop_types_1.default.oneOfType([prop_types_1.default.func, exports.isClassName]), tileContent: prop_types_1.default.oneOfType([prop_types_1.default.func, prop_types_1.default.node]), value: exports.isValue, valueType: prop_types_1.default.string, }; exports.tileProps = { activeStartDate: prop_types_1.default.instanceOf(Date).isRequired, classes: prop_types_1.default.arrayOf(prop_types_1.default.string).isRequired, date: prop_types_1.default.instanceOf(Date).isRequired, locale: prop_types_1.default.string, maxDate: isMaxDate, minDate: isMinDate, onClick: prop_types_1.default.func, onMouseOver: prop_types_1.default.func, style: prop_types_1.default.objectOf(prop_types_1.default.oneOfType([prop_types_1.default.string, prop_types_1.default.number])), tileClassName: prop_types_1.default.oneOfType([prop_types_1.default.func, exports.isClassName]), tileContent: prop_types_1.default.oneOfType([prop_types_1.default.func, prop_types_1.default.node]), tileDisabled: prop_types_1.default.func, };