@mui/x-date-pickers-pro
Version:
The Pro plan edition of the MUI X Date and Time Picker components.
52 lines (51 loc) • 2.3 kB
JavaScript
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useTextFieldProps = useTextFieldProps;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var React = _interopRequireWildcard(require("react"));
var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
var _hooks = require("@mui/x-date-pickers/hooks");
var _internals = require("@mui/x-date-pickers/internals");
var _useNullablePickerRangePositionContext = require("../../hooks/useNullablePickerRangePositionContext");
function useTextFieldProps({
slotProps,
ownerState,
position,
allowTriggerShifting
}) {
const pickerContext = (0, _internals.useNullablePickerContext)();
const translations = (0, _hooks.usePickerTranslations)();
const pickerFieldUIContext = React.useContext(_internals.PickerFieldUIContext);
const rangePositionContext = (0, _useNullablePickerRangePositionContext.useNullablePickerRangePositionContext)();
const textFieldProps = (0, _useSlotProps.default)({
elementType: _PickersTextField.PickersTextField,
externalSlotProps: (0, _internals.mergeSlotProps)(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
additionalProps: {
// TODO: Decide if we also want to set the default labels on standalone fields.
label: pickerContext ? translations[position] : undefined,
focused: pickerContext?.open ? rangePositionContext?.rangePosition === position : undefined
},
ownerState: (0, _extends2.default)({}, ownerState, {
position
})
});
if (!textFieldProps.InputProps) {
textFieldProps.InputProps = {};
}
if (pickerContext) {
if (!allowTriggerShifting) {
if (position === 'start') {
textFieldProps.InputProps.ref = pickerContext.triggerRef;
}
} else if (rangePositionContext?.rangePosition === position) {
textFieldProps.InputProps.ref = pickerContext.triggerRef;
}
}
textFieldProps.InputProps['data-multi-input'] = position;
return textFieldProps;
}
;