UNPKG

9.91 kBJavaScriptView Raw
1import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2import React__default, { createElement, Fragment } from 'react';
3import 'prop-types';
4import { u as useUtils } from './useUtils-cfb96ac9.js';
5import 'clsx';
6import '@babel/runtime/helpers/esm/extends';
7import '@babel/runtime/helpers/esm/objectWithoutProperties';
8import '@material-ui/core/Typography';
9import { makeStyles, useTheme } from '@material-ui/core/styles';
10import { P as PickerToolbar, T as ToolbarButton, c as ToolbarText, m as makePickerWithState, a as PureDateInput, u as usePickerState, K as KeyboardDateInput, b as useKeyboardPickerState, p as pick12hOr24hFormat } from './makePickerWithState-5a79cb8a.js';
11import '@material-ui/core/Button';
12import '@material-ui/core/Toolbar';
13import './Wrapper-241966d7.js';
14import './Calendar-11ae61f6.js';
15import '@material-ui/core/TextField';
16import '@material-ui/core/IconButton';
17import '@material-ui/core/InputAdornment';
18import 'rifm';
19import SvgIcon from '@material-ui/core/SvgIcon';
20import '@babel/runtime/helpers/esm/slicedToArray';
21import { a as dateTimePickerDefaultProps } from './Picker-ccd9ba90.js';
22import '@babel/runtime/helpers/esm/classCallCheck';
23import '@babel/runtime/helpers/esm/createClass';
24import '@babel/runtime/helpers/esm/possibleConstructorReturn';
25import '@babel/runtime/helpers/esm/getPrototypeOf';
26import '@babel/runtime/helpers/esm/inherits';
27import './Day.js';
28import 'react-transition-group';
29import '@material-ui/core/CircularProgress';
30import '@material-ui/core/DialogActions';
31import '@material-ui/core/DialogContent';
32import '@material-ui/core/Dialog';
33import '@material-ui/core/Popover';
34import './Clock-48fde975.js';
35import './ClockView.js';
36import { u as useMeridiemMode } from './TimePickerToolbar-81100fab.js';
37import Grid from '@material-ui/core/Grid';
38import Tab from '@material-ui/core/Tab';
39import Tabs from '@material-ui/core/Tabs';
40import Paper from '@material-ui/core/Paper';
41
42var TimeIcon = function TimeIcon(props) {
43 return React__default.createElement(SvgIcon, props, React__default.createElement("path", {
44 d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
45 }), React__default.createElement("path", {
46 fill: "none",
47 d: "M0 0h24v24H0z"
48 }), React__default.createElement("path", {
49 d: "M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"
50 }));
51};
52
53var DateRangeIcon = function DateRangeIcon(props) {
54 return React__default.createElement(SvgIcon, props, React__default.createElement("path", {
55 d: "M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"
56 }), React__default.createElement("path", {
57 fill: "none",
58 d: "M0 0h24v24H0z"
59 }));
60};
61
62var viewToTabIndex = function viewToTabIndex(openView) {
63 if (openView === 'date' || openView === 'year') {
64 return 'date';
65 }
66
67 return 'time';
68};
69
70var tabIndexToView = function tabIndexToView(tab) {
71 if (tab === 'date') {
72 return 'date';
73 }
74
75 return 'hours';
76};
77
78var useStyles = makeStyles(function (theme) {
79 // prettier-ignore
80 var tabsBackground = theme.palette.type === 'light' ? theme.palette.primary.main : theme.palette.background["default"];
81 return {
82 tabs: {
83 color: theme.palette.getContrastText(tabsBackground),
84 backgroundColor: tabsBackground
85 }
86 };
87}, {
88 name: 'MuiPickerDTTabs'
89});
90var DateTimePickerTabs = function DateTimePickerTabs(_ref) {
91 var view = _ref.view,
92 onChange = _ref.onChange,
93 dateRangeIcon = _ref.dateRangeIcon,
94 timeIcon = _ref.timeIcon;
95 var classes = useStyles();
96 var theme = useTheme();
97 var indicatorColor = theme.palette.type === 'light' ? 'secondary' : 'primary';
98
99 var handleChange = function handleChange(e, value) {
100 if (value !== viewToTabIndex(view)) {
101 onChange(tabIndexToView(value));
102 }
103 };
104
105 return createElement(Paper, null, createElement(Tabs, {
106 variant: "fullWidth",
107 value: viewToTabIndex(view),
108 onChange: handleChange,
109 className: classes.tabs,
110 indicatorColor: indicatorColor
111 }, createElement(Tab, {
112 value: "date",
113 icon: createElement(Fragment, null, dateRangeIcon)
114 }), createElement(Tab, {
115 value: "time",
116 icon: createElement(Fragment, null, timeIcon)
117 })));
118};
119DateTimePickerTabs.defaultProps = {
120 dateRangeIcon: createElement(DateRangeIcon, null),
121 timeIcon: createElement(TimeIcon, null)
122};
123
124var useStyles$1 = makeStyles(function (_) {
125 return {
126 toolbar: {
127 paddingLeft: 16,
128 paddingRight: 16,
129 justifyContent: 'space-around'
130 },
131 separator: {
132 margin: '0 4px 0 2px',
133 cursor: 'default'
134 }
135 };
136}, {
137 name: 'MuiPickerDTToolbar'
138});
139var DateTimePickerToolbar = function DateTimePickerToolbar(_ref) {
140 var date = _ref.date,
141 openView = _ref.openView,
142 setOpenView = _ref.setOpenView,
143 ampm = _ref.ampm,
144 hideTabs = _ref.hideTabs,
145 dateRangeIcon = _ref.dateRangeIcon,
146 timeIcon = _ref.timeIcon,
147 onChange = _ref.onChange;
148 var utils = useUtils();
149 var classes = useStyles$1();
150 var showTabs = !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667;
151
152 var _useMeridiemMode = useMeridiemMode(date, ampm, onChange),
153 meridiemMode = _useMeridiemMode.meridiemMode,
154 handleMeridiemChange = _useMeridiemMode.handleMeridiemChange;
155
156 var theme = useTheme();
157 var rtl = theme.direction === 'rtl';
158 return createElement(Fragment, null, createElement(PickerToolbar, {
159 isLandscape: false,
160 className: classes.toolbar
161 }, createElement(Grid, {
162 container: true,
163 justify: "center",
164 wrap: "nowrap"
165 }, createElement(Grid, {
166 item: true,
167 container: true,
168 xs: 5,
169 justify: "flex-start",
170 direction: "column"
171 }, createElement("div", null, createElement(ToolbarButton, {
172 variant: "subtitle1",
173 onClick: function onClick() {
174 return setOpenView('year');
175 },
176 selected: openView === 'year',
177 label: utils.getYearText(date)
178 })), createElement("div", null, createElement(ToolbarButton, {
179 variant: "h4",
180 onClick: function onClick() {
181 return setOpenView('date');
182 },
183 selected: openView === 'date',
184 label: utils.getDateTimePickerHeaderText(date)
185 }))), createElement(Grid, {
186 item: true,
187 container: true,
188 xs: 6,
189 justify: "center",
190 alignItems: "flex-end",
191 direction: rtl ? 'row-reverse' : 'row'
192 }, createElement(ToolbarButton, {
193 variant: "h3",
194 onClick: function onClick() {
195 return setOpenView('hours');
196 },
197 selected: openView === 'hours',
198 label: utils.getHourText(date, ampm)
199 }), createElement(ToolbarText, {
200 variant: "h3",
201 label: ":",
202 className: classes.separator
203 }), createElement(ToolbarButton, {
204 variant: "h3",
205 onClick: function onClick() {
206 return setOpenView('minutes');
207 },
208 selected: openView === 'minutes',
209 label: utils.getMinuteText(date)
210 })), ampm && createElement(Grid, {
211 item: true,
212 container: true,
213 xs: 1,
214 direction: "column",
215 justify: "flex-end"
216 }, createElement(ToolbarButton, {
217 variant: "subtitle1",
218 selected: meridiemMode === 'am',
219 label: utils.getMeridiemText('am'),
220 onClick: function onClick() {
221 return handleMeridiemChange('am');
222 }
223 }), createElement(ToolbarButton, {
224 variant: "subtitle1",
225 selected: meridiemMode === 'pm',
226 label: utils.getMeridiemText('pm'),
227 onClick: function onClick() {
228 return handleMeridiemChange('pm');
229 }
230 })))), showTabs && createElement(DateTimePickerTabs, {
231 dateRangeIcon: dateRangeIcon,
232 timeIcon: timeIcon,
233 view: openView,
234 onChange: setOpenView
235 }));
236};
237
238function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
239
240function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
241
242var defaultProps = _objectSpread({}, dateTimePickerDefaultProps, {
243 wider: true,
244 orientation: 'portrait',
245 openTo: 'date',
246 views: ['year', 'date', 'hours', 'minutes']
247});
248
249function useOptions(props) {
250 var utils = useUtils();
251
252 if (props.orientation !== 'portrait') {
253 throw new Error('We are not supporting custom orientation for DateTimePicker yet :(');
254 }
255
256 return {
257 getDefaultFormat: function getDefaultFormat() {
258 return pick12hOr24hFormat(props.format, props.ampm, {
259 '12h': utils.dateTime12hFormat,
260 '24h': utils.dateTime24hFormat
261 });
262 }
263 };
264}
265
266var DateTimePicker = makePickerWithState({
267 useOptions: useOptions,
268 Input: PureDateInput,
269 useState: usePickerState,
270 DefaultToolbarComponent: DateTimePickerToolbar
271});
272var KeyboardDateTimePicker = makePickerWithState({
273 useOptions: useOptions,
274 Input: KeyboardDateInput,
275 useState: useKeyboardPickerState,
276 DefaultToolbarComponent: DateTimePickerToolbar,
277 getCustomProps: function getCustomProps(props) {
278 return {
279 refuse: props.ampm ? /[^\dap]+/gi : /[^\d]+/gi
280 };
281 }
282});
283DateTimePicker.defaultProps = defaultProps;
284KeyboardDateTimePicker.defaultProps = defaultProps;
285
286export { DateTimePicker, KeyboardDateTimePicker };
287//# sourceMappingURL=DateTimePicker.js.map