UNPKG

@mui/x-date-pickers

Version:

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

149 lines (138 loc) 4.85 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var React = _interopRequireWildcard(require("react")); var _utils = require("@mui/base/utils"); var _utils2 = require("@mui/utils"); var _PickersActionBar = require("../PickersActionBar"); var _pickersLayoutClasses = require("./pickersLayoutClasses"); var _PickersShortcuts = require("../PickersShortcuts"); var _jsxRuntime = require("react/jsx-runtime"); function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function toolbarHasView(toolbarProps) { return toolbarProps.view !== null; } const useUtilityClasses = ownerState => { const { classes, isLandscape } = ownerState; const slots = { root: ['root', isLandscape && 'landscape'], contentWrapper: ['contentWrapper'], toolbar: ['toolbar'], actionBar: ['actionBar'], tabs: ['tabs'], landscape: ['landscape'], shortcuts: ['shortcuts'] }; return (0, _utils2.unstable_composeClasses)(slots, _pickersLayoutClasses.getPickersLayoutUtilityClass, classes); }; const usePickerLayout = props => { const { wrapperVariant, onAccept, onClear, onCancel, onSetToday, view, views, onViewChange, value, onChange, onSelectShortcut, isValid, isLandscape, disabled, readOnly, children, slots, slotProps // TODO: Remove this "as" hack. It get introduced to mark `value` prop in PickersLayoutProps as not required. // The true type should be // - For pickers value: TDate | null // - For range pickers value: [TDate | null, TDate | null] } = props; const classes = useUtilityClasses(props); // Action bar const ActionBar = slots?.actionBar ?? _PickersActionBar.PickersActionBar; const actionBarProps = (0, _utils.useSlotProps)({ elementType: ActionBar, externalSlotProps: slotProps?.actionBar, additionalProps: { onAccept, onClear, onCancel, onSetToday, actions: wrapperVariant === 'desktop' ? [] : ['cancel', 'accept'], className: classes.actionBar }, ownerState: (0, _extends2.default)({}, props, { wrapperVariant }) }); const actionBar = /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionBar, (0, _extends2.default)({}, actionBarProps)); // Toolbar const Toolbar = slots?.toolbar; const toolbarProps = (0, _utils.useSlotProps)({ elementType: Toolbar, externalSlotProps: slotProps?.toolbar, additionalProps: { isLandscape, onChange, value, view, onViewChange, views, disabled, readOnly, className: classes.toolbar }, ownerState: (0, _extends2.default)({}, props, { wrapperVariant }) }); const toolbar = toolbarHasView(toolbarProps) && !!Toolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, (0, _extends2.default)({}, toolbarProps)) : null; // Content const content = children; // Tabs const Tabs = slots?.tabs; const tabs = view && Tabs ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Tabs, (0, _extends2.default)({ view: view, onViewChange: onViewChange, className: classes.tabs }, slotProps?.tabs)) : null; // Shortcuts const Shortcuts = slots?.shortcuts ?? _PickersShortcuts.PickersShortcuts; const shortcutsProps = (0, _utils.useSlotProps)({ elementType: Shortcuts, externalSlotProps: slotProps?.shortcuts, additionalProps: { isValid, isLandscape, onChange: onSelectShortcut, className: classes.shortcuts }, ownerState: { isValid, isLandscape, onChange: onSelectShortcut, className: classes.shortcuts, wrapperVariant } }); const shortcuts = view && !!Shortcuts ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Shortcuts, (0, _extends2.default)({}, shortcutsProps)) : null; return { toolbar, content, tabs, actionBar, shortcuts }; }; var _default = exports.default = usePickerLayout;