Files
Iliyan Angelov 306b20e24a Frontend start
2025-09-14 00:54:48 +03:00

196 lines
7.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _extends from "@babel/runtime/helpers/esm/extends";
var _excluded = ["ampm", "parsedValue", "isMobileKeyboardViewOpen", "onChange", "openView", "setOpenView", "toggleMobileKeyboardView", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "views"];
import * as React from 'react';
import { styled, useThemeProps } from '@mui/material/styles';
import { unstable_composeClasses as composeClasses } from '@mui/material';
import { PickersToolbarText } from '../internals/components/PickersToolbarText';
import { PickersToolbar } from '../internals/components/PickersToolbar';
import { pickersToolbarClasses } from '../internals/components/pickersToolbarClasses';
import { PickersToolbarButton } from '../internals/components/PickersToolbarButton';
import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
import { getDateTimePickerToolbarUtilityClass } from './dateTimePickerToolbarClasses';
import { resolveViewTypeFromView } from './shared';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
var useUtilityClasses = function useUtilityClasses(ownerState) {
var classes = ownerState.classes;
var slots = {
root: ['root'],
dateContainer: ['dateContainer'],
timeContainer: ['timeContainer'],
separator: ['separator']
};
return composeClasses(slots, getDateTimePickerToolbarUtilityClass, classes);
};
var DateTimePickerToolbarRoot = styled(PickersToolbar, {
name: 'MuiDateTimePickerToolbar',
slot: 'Root',
overridesResolver: function overridesResolver(props, styles) {
return styles.root;
}
})(function (_ref) {
var theme = _ref.theme;
return _defineProperty({
paddingLeft: 16,
paddingRight: 16,
justifyContent: 'space-around',
position: 'relative'
}, "& .".concat(pickersToolbarClasses.penIconButton), _extends({
position: 'absolute',
top: 8
}, theme.direction === 'rtl' ? {
left: 8
} : {
right: 8
}));
});
var DateTimePickerToolbarDateContainer = styled('div', {
name: 'MuiDateTimePickerToolbar',
slot: 'DateContainer',
overridesResolver: function overridesResolver(props, styles) {
return styles.dateContainer;
}
})({
display: 'flex',
flexDirection: 'column',
alignItems: 'flex-start'
});
var DateTimePickerToolbarTimeContainer = styled('div', {
name: 'MuiDateTimePickerToolbar',
slot: 'TimeContainer',
overridesResolver: function overridesResolver(props, styles) {
return styles.timeContainer;
}
})({
display: 'flex'
});
var DateTimePickerToolbarSeparator = styled(PickersToolbarText, {
name: 'MuiDateTimePickerToolbar',
slot: 'Separator',
overridesResolver: function overridesResolver(props, styles) {
return styles.separator;
}
})({
margin: '0 4px 0 2px',
cursor: 'default'
});
/**
* @ignore - internal component.
*/
export function DateTimePickerToolbar(inProps) {
var props = useThemeProps({
props: inProps,
name: 'MuiDateTimePickerToolbar'
});
var ampm = props.ampm,
parsedValue = props.parsedValue,
isMobileKeyboardViewOpen = props.isMobileKeyboardViewOpen,
onChange = props.onChange,
openView = props.openView,
setOpenView = props.setOpenView,
toggleMobileKeyboardView = props.toggleMobileKeyboardView,
toolbarFormat = props.toolbarFormat,
_props$toolbarPlaceho = props.toolbarPlaceholder,
toolbarPlaceholder = _props$toolbarPlaceho === void 0 ? '' : _props$toolbarPlaceho,
toolbarTitleProp = props.toolbarTitle,
views = props.views,
other = _objectWithoutProperties(props, _excluded);
var ownerState = props;
var utils = useUtils();
var localeText = useLocaleText();
var classes = useUtilityClasses(ownerState);
var toolbarTitle = toolbarTitleProp != null ? toolbarTitleProp : localeText.dateTimePickerDefaultToolbarTitle;
var formatHours = function formatHours(time) {
return ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
};
var dateText = React.useMemo(function () {
if (!parsedValue) {
return toolbarPlaceholder;
}
if (toolbarFormat) {
return utils.formatByString(parsedValue, toolbarFormat);
}
return utils.format(parsedValue, 'shortDate');
}, [parsedValue, toolbarFormat, toolbarPlaceholder, utils]);
return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({
toolbarTitle: toolbarTitle,
isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,
toggleMobileKeyboardView: toggleMobileKeyboardView,
className: classes.root,
viewType: resolveViewTypeFromView(openView)
}, other, {
isLandscape: false,
ownerState: ownerState,
children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {
className: classes.dateContainer,
ownerState: ownerState,
children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {
tabIndex: -1,
variant: "subtitle1",
onClick: function onClick() {
return setOpenView('year');
},
selected: openView === 'year',
value: parsedValue ? utils.format(parsedValue, 'year') : ''
}), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {
tabIndex: -1,
variant: "h4",
onClick: function onClick() {
return setOpenView('day');
},
selected: openView === 'day',
value: dateText
})]
}), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {
className: classes.timeContainer,
ownerState: ownerState,
children: [views.includes('hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {
variant: "h3",
onClick: function onClick() {
return setOpenView('hours');
},
selected: openView === 'hours',
value: parsedValue ? formatHours(parsedValue) : '--'
}), views.includes('minutes') && /*#__PURE__*/_jsxs(React.Fragment, {
children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {
variant: "h3",
value: ":",
className: classes.separator,
ownerState: ownerState
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
variant: "h3",
onClick: function onClick() {
return setOpenView('minutes');
},
selected: openView === 'minutes',
value: parsedValue ? utils.format(parsedValue, 'minutes') : '--'
})]
}), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {
children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {
variant: "h3",
value: ":",
className: classes.separator,
ownerState: ownerState
}), /*#__PURE__*/_jsx(PickersToolbarButton, {
variant: "h3",
onClick: function onClick() {
return setOpenView('seconds');
},
selected: openView === 'seconds',
value: parsedValue ? utils.format(parsedValue, 'seconds') : '--'
})]
})]
})]
}));
}