75 lines
2.4 KiB
JavaScript
75 lines
2.4 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.isYearOnlyView = exports.isYearAndMonthViews = exports.datePickerValueManager = void 0;
|
|
exports.useDatePickerDefaultizedProps = useDatePickerDefaultizedProps;
|
|
|
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
|
|
var _styles = require("@mui/material/styles");
|
|
|
|
var _useUtils = require("../internals/hooks/useUtils");
|
|
|
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
|
|
const isYearOnlyView = views => views.length === 1 && views[0] === 'year';
|
|
|
|
exports.isYearOnlyView = isYearOnlyView;
|
|
|
|
const isYearAndMonthViews = views => views.length === 2 && views.indexOf('month') !== -1 && views.indexOf('year') !== -1;
|
|
|
|
exports.isYearAndMonthViews = isYearAndMonthViews;
|
|
|
|
const getFormatAndMaskByViews = (views, utils) => {
|
|
if (isYearOnlyView(views)) {
|
|
return {
|
|
inputFormat: utils.formats.year
|
|
};
|
|
}
|
|
|
|
if (isYearAndMonthViews(views)) {
|
|
return {
|
|
disableMaskedInput: true,
|
|
inputFormat: utils.formats.monthAndYear
|
|
};
|
|
}
|
|
|
|
return {
|
|
inputFormat: utils.formats.keyboardDate
|
|
};
|
|
};
|
|
|
|
function useDatePickerDefaultizedProps(props, name) {
|
|
var _themeProps$views;
|
|
|
|
const utils = (0, _useUtils.useUtils)();
|
|
const defaultDates = (0, _useUtils.useDefaultDates)(); // This is technically unsound if the type parameters appear in optional props.
|
|
// Optional props can be filled by `useThemeProps` with types that don't match the type parameters.
|
|
|
|
const themeProps = (0, _styles.useThemeProps)({
|
|
props,
|
|
name
|
|
});
|
|
const views = (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'];
|
|
return (0, _extends2.default)({
|
|
openTo: 'day',
|
|
disableFuture: false,
|
|
disablePast: false
|
|
}, getFormatAndMaskByViews(views, utils), themeProps, {
|
|
views,
|
|
minDate: (0, _dateUtils.parseNonNullablePickerDate)(utils, themeProps.minDate, defaultDates.minDate),
|
|
maxDate: (0, _dateUtils.parseNonNullablePickerDate)(utils, themeProps.maxDate, defaultDates.maxDate)
|
|
});
|
|
}
|
|
|
|
const datePickerValueManager = {
|
|
emptyValue: null,
|
|
getTodayValue: utils => utils.date(),
|
|
parseInput: _dateUtils.parsePickerInputValue,
|
|
areValuesEqual: (utils, a, b) => utils.isEqual(a, b)
|
|
};
|
|
exports.datePickerValueManager = datePickerValueManager; |