@mui/x-date-pickers-pro
Version:
The Pro plan edition of the MUI X Date and Time Picker components.
92 lines (91 loc) • 4.08 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useDesktopRangePicker = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var React = _interopRequireWildcard(require("react"));
var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
var _xLicense = require("@mui/x-license");
var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
var _internals = require("@mui/x-date-pickers/internals");
var _useRangePosition = require("../useRangePosition");
var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
var _dateFieldsUtils = require("../../utils/date-fields-utils");
var _createRangePickerStepNavigation = require("../../utils/createRangePickerStepNavigation");
var _jsxRuntime = require("react/jsx-runtime");
const _excluded = ["props", "steps"],
_excluded2 = ["ownerState"];
const useDesktopRangePicker = _ref => {
let {
props,
steps
} = _ref,
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1NDYwNDAwMDAwMA==");
const {
slots,
slotProps,
inputRef,
localeText
} = props;
const fieldType = (0, _dateFieldsUtils.getRangeFieldType)(slots.field);
const viewContainerRole = fieldType === 'single-input' ? 'dialog' : 'tooltip';
const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props);
const getStepNavigation = (0, _createRangePickerStepNavigation.createRangePickerStepNavigation)({
steps,
rangePositionResponse
});
const {
providerProps,
renderCurrentView,
ownerState
} = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
props,
variant: 'desktop',
autoFocusView: viewContainerRole === 'dialog',
viewContainerRole,
localeText,
getStepNavigation,
onPopperExited: (0, _useEventCallback.default)(() => rangePositionResponse.setRangePosition(props.defaultRangePosition ?? 'start'))
}));
const Field = slots.field;
const _useSlotProps = (0, _useSlotProps2.default)({
elementType: Field,
externalSlotProps: slotProps?.field,
ownerState,
additionalProps: {
'data-active-range-position': providerProps.contextValue.open ? rangePositionResponse.rangePosition : undefined
}
}),
fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
slots: slots,
slotProps: slotProps,
inputRef: inputRef,
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
value: rangePositionResponse,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerPopper, {
slots: slots,
slotProps: slotProps,
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
slots: slots,
slotProps: slotProps,
children: renderCurrentView()
}))
})]
})
})
}));
if (process.env.NODE_ENV !== "production") renderPicker.displayName = "renderPicker";
return {
renderPicker
};
};
exports.useDesktopRangePicker = useDesktopRangePicker;
;