1 | import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
2 | import React__default, { createElement, Fragment } from 'react';
|
3 | import 'prop-types';
|
4 | import { u as useUtils } from './useUtils-cfb96ac9.js';
|
5 | import 'clsx';
|
6 | import '@babel/runtime/helpers/esm/extends';
|
7 | import '@babel/runtime/helpers/esm/objectWithoutProperties';
|
8 | import '@material-ui/core/Typography';
|
9 | import { makeStyles, useTheme } from '@material-ui/core/styles';
|
10 | import { 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';
|
11 | import '@material-ui/core/Button';
|
12 | import '@material-ui/core/Toolbar';
|
13 | import './Wrapper-241966d7.js';
|
14 | import './Calendar-11ae61f6.js';
|
15 | import '@material-ui/core/TextField';
|
16 | import '@material-ui/core/IconButton';
|
17 | import '@material-ui/core/InputAdornment';
|
18 | import 'rifm';
|
19 | import SvgIcon from '@material-ui/core/SvgIcon';
|
20 | import '@babel/runtime/helpers/esm/slicedToArray';
|
21 | import { a as dateTimePickerDefaultProps } from './Picker-ccd9ba90.js';
|
22 | import '@babel/runtime/helpers/esm/classCallCheck';
|
23 | import '@babel/runtime/helpers/esm/createClass';
|
24 | import '@babel/runtime/helpers/esm/possibleConstructorReturn';
|
25 | import '@babel/runtime/helpers/esm/getPrototypeOf';
|
26 | import '@babel/runtime/helpers/esm/inherits';
|
27 | import './Day.js';
|
28 | import 'react-transition-group';
|
29 | import '@material-ui/core/CircularProgress';
|
30 | import '@material-ui/core/DialogActions';
|
31 | import '@material-ui/core/DialogContent';
|
32 | import '@material-ui/core/Dialog';
|
33 | import '@material-ui/core/Popover';
|
34 | import './Clock-48fde975.js';
|
35 | import './ClockView.js';
|
36 | import { u as useMeridiemMode } from './TimePickerToolbar-81100fab.js';
|
37 | import Grid from '@material-ui/core/Grid';
|
38 | import Tab from '@material-ui/core/Tab';
|
39 | import Tabs from '@material-ui/core/Tabs';
|
40 | import Paper from '@material-ui/core/Paper';
|
41 |
|
42 | var 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 |
|
53 | var 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 |
|
62 | var viewToTabIndex = function viewToTabIndex(openView) {
|
63 | if (openView === 'date' || openView === 'year') {
|
64 | return 'date';
|
65 | }
|
66 |
|
67 | return 'time';
|
68 | };
|
69 |
|
70 | var tabIndexToView = function tabIndexToView(tab) {
|
71 | if (tab === 'date') {
|
72 | return 'date';
|
73 | }
|
74 |
|
75 | return 'hours';
|
76 | };
|
77 |
|
78 | var useStyles = makeStyles(function (theme) {
|
79 |
|
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 | });
|
90 | var 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 | };
|
119 | DateTimePickerTabs.defaultProps = {
|
120 | dateRangeIcon: createElement(DateRangeIcon, null),
|
121 | timeIcon: createElement(TimeIcon, null)
|
122 | };
|
123 |
|
124 | var 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 | });
|
139 | var 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 |
|
238 | function 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 |
|
240 | function _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 |
|
242 | var defaultProps = _objectSpread({}, dateTimePickerDefaultProps, {
|
243 | wider: true,
|
244 | orientation: 'portrait',
|
245 | openTo: 'date',
|
246 | views: ['year', 'date', 'hours', 'minutes']
|
247 | });
|
248 |
|
249 | function 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 |
|
266 | var DateTimePicker = makePickerWithState({
|
267 | useOptions: useOptions,
|
268 | Input: PureDateInput,
|
269 | useState: usePickerState,
|
270 | DefaultToolbarComponent: DateTimePickerToolbar
|
271 | });
|
272 | var 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 | });
|
283 | DateTimePicker.defaultProps = defaultProps;
|
284 | KeyboardDateTimePicker.defaultProps = defaultProps;
|
285 |
|
286 | export { DateTimePicker, KeyboardDateTimePicker };
|
287 |
|