@mui/x-date-pickers
Version:
The community edition of the Date and Time Picker components (MUI X).
61 lines (57 loc) • 1.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.validateDate = void 0;
var _valueManagers = require("../internals/utils/valueManagers");
/**
* Validation props used by the Date Picker, Date Field and Date Calendar components.
*/
/**
* Validation props as received by the validateDate method.
*/
/**
* Name of the props that should be defaulted before being passed to the validateDate method.
*/
const validateDate = ({
props,
value,
timezone,
adapter
}) => {
if (value === null) {
return null;
}
const {
shouldDisableDate,
shouldDisableMonth,
shouldDisableYear,
disablePast,
disableFuture,
minDate,
maxDate
} = props;
const now = adapter.utils.date(undefined, timezone);
switch (true) {
case !adapter.utils.isValid(value):
return 'invalidDate';
case Boolean(shouldDisableDate && shouldDisableDate(value)):
return 'shouldDisableDate';
case Boolean(shouldDisableMonth && shouldDisableMonth(value)):
return 'shouldDisableMonth';
case Boolean(shouldDisableYear && shouldDisableYear(value)):
return 'shouldDisableYear';
case Boolean(disableFuture && adapter.utils.isAfterDay(value, now)):
return 'disableFuture';
case Boolean(disablePast && adapter.utils.isBeforeDay(value, now)):
return 'disablePast';
case Boolean(minDate && adapter.utils.isBeforeDay(value, minDate)):
return 'minDate';
case Boolean(maxDate && adapter.utils.isAfterDay(value, maxDate)):
return 'maxDate';
default:
return null;
}
};
exports.validateDate = validateDate;
validateDate.valueManager = _valueManagers.singleItemValueManager;
;