UNPKG

@mui/x-date-pickers

Version:

The community edition of the Date and Time Picker components (MUI X).

61 lines (57 loc) 1.69 kB
"use strict"; 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;