@material-ui/pickers
Version:
React components, that implements material design pickers for material-ui v4
145 lines (140 loc) • 4.78 kB
JavaScript
import { createElement, useCallback } from 'react';
import { u as useUtils } from './useUtils-cfb96ac9.js';
import clsx from 'clsx';
import { makeStyles, useTheme } from '@material-ui/core/styles';
import { P as PickerToolbar, T as ToolbarButton, c as ToolbarText } from './makePickerWithState-5a79cb8a.js';
import { a as arrayIncludes } from './Wrapper-241966d7.js';
import { b as ClockType, g as getMeridiem, c as convertToMeridiem } from './Clock-48fde975.js';
var useStyles = makeStyles({
toolbarLandscape: {
flexWrap: 'wrap'
},
toolbarAmpmLeftPadding: {
paddingLeft: 50
},
separator: {
margin: '0 4px 0 2px',
cursor: 'default'
},
hourMinuteLabel: {
display: 'flex',
justifyContent: 'flex-end',
alignItems: 'flex-end'
},
hourMinuteLabelAmpmLandscape: {
marginTop: 'auto'
},
hourMinuteLabelReverse: {
flexDirection: 'row-reverse'
},
ampmSelection: {
marginLeft: 20,
marginRight: -20,
display: 'flex',
flexDirection: 'column'
},
ampmLandscape: {
margin: '4px 0 auto',
flexDirection: 'row',
justifyContent: 'space-around',
flexBasis: '100%'
},
ampmSelectionWithSeconds: {
marginLeft: 15,
marginRight: 10
},
ampmLabel: {
fontSize: 18
}
}, {
name: 'MuiPickersTimePickerToolbar'
});
function useMeridiemMode(date, ampm, onChange) {
var utils = useUtils();
var meridiemMode = getMeridiem(date, utils);
var handleMeridiemChange = useCallback(function (mode) {
var timeWithMeridiem = convertToMeridiem(date, mode, Boolean(ampm), utils);
onChange(timeWithMeridiem, false);
}, [ampm, date, onChange, utils]);
return {
meridiemMode: meridiemMode,
handleMeridiemChange: handleMeridiemChange
};
}
var TimePickerToolbar = function TimePickerToolbar(_ref) {
var date = _ref.date,
views = _ref.views,
ampm = _ref.ampm,
openView = _ref.openView,
onChange = _ref.onChange,
isLandscape = _ref.isLandscape,
setOpenView = _ref.setOpenView;
var utils = useUtils();
var theme = useTheme();
var classes = useStyles();
var _useMeridiemMode = useMeridiemMode(date, ampm, onChange),
meridiemMode = _useMeridiemMode.meridiemMode,
handleMeridiemChange = _useMeridiemMode.handleMeridiemChange;
var clockTypographyVariant = isLandscape ? 'h3' : 'h2';
return createElement(PickerToolbar, {
isLandscape: isLandscape,
className: clsx(isLandscape ? classes.toolbarLandscape : ampm && classes.toolbarAmpmLeftPadding)
}, createElement("div", {
className: clsx(classes.hourMinuteLabel, ampm && isLandscape && classes.hourMinuteLabelAmpmLandscape, {
rtl: classes.hourMinuteLabelReverse
}[theme.direction])
}, arrayIncludes(views, 'hours') && createElement(ToolbarButton, {
variant: clockTypographyVariant,
onClick: function onClick() {
return setOpenView(ClockType.HOURS);
},
selected: openView === ClockType.HOURS,
label: utils.getHourText(date, Boolean(ampm))
}), arrayIncludes(views, ['hours', 'minutes']) && createElement(ToolbarText, {
label: ":",
variant: clockTypographyVariant,
selected: false,
className: classes.separator
}), arrayIncludes(views, 'minutes') && createElement(ToolbarButton, {
variant: clockTypographyVariant,
onClick: function onClick() {
return setOpenView(ClockType.MINUTES);
},
selected: openView === ClockType.MINUTES,
label: utils.getMinuteText(date)
}), arrayIncludes(views, ['minutes', 'seconds']) && createElement(ToolbarText, {
variant: "h2",
label: ":",
selected: false,
className: classes.separator
}), arrayIncludes(views, 'seconds') && createElement(ToolbarButton, {
variant: "h2",
onClick: function onClick() {
return setOpenView(ClockType.SECONDS);
},
selected: openView === ClockType.SECONDS,
label: utils.getSecondText(date)
})), ampm && createElement("div", {
className: clsx(classes.ampmSelection, isLandscape && classes.ampmLandscape, arrayIncludes(views, 'seconds') && classes.ampmSelectionWithSeconds)
}, createElement(ToolbarButton, {
disableRipple: true,
variant: "subtitle1",
selected: meridiemMode === 'am',
typographyClassName: classes.ampmLabel,
label: utils.getMeridiemText('am'),
onClick: function onClick() {
return handleMeridiemChange('am');
}
}), createElement(ToolbarButton, {
disableRipple: true,
variant: "subtitle1",
selected: meridiemMode === 'pm',
typographyClassName: classes.ampmLabel,
label: utils.getMeridiemText('pm'),
onClick: function onClick() {
return handleMeridiemChange('pm');
}
})));
};
export { TimePickerToolbar as T, useMeridiemMode as u };
//# sourceMappingURL=TimePickerToolbar-81100fab.js.map