@docsvision/material-ui-pickers 3.2.0-beta.9 → 3.2.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DatePicker/DatePicker.d.ts +2 -2
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePickerToolbar.js +1 -1
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/Picker/Picker.js +1 -1
- package/Picker/WrappedKeyboardPicker.js +4 -2
- package/Picker/WrappedPurePicker.js +4 -2
- package/README.md +1 -0
- package/Rifm/Rifm.d.ts +17 -0
- package/Rifm/Rifm.js +174 -0
- package/TimePicker/TimePicker.js +1 -1
- package/TimePicker/TimePickerToolbar.js +1 -1
- package/_helpers/text-field-helper.d.ts +2 -2
- package/_helpers/text-field-helper.js +62 -6
- package/_shared/KeyboardDateInput.js +27 -139
- package/_shared/ModalDialog.d.ts +2 -2
- package/_shared/ModalDialog.js +5 -3
- package/_shared/PickerToolbar.d.ts +1 -1
- package/_shared/PickerToolbar.js +7 -5
- package/_shared/PureDateInput.js +5 -3
- package/_shared/ToolbarButton.d.ts +2 -2
- package/_shared/ToolbarButton.js +4 -2
- package/_shared/ToolbarText.js +9 -7
- package/_shared/hooks/useKeyboardPickerState.js +5 -3
- package/_shared/hooks/useOpenState.js +1 -1
- package/_shared/hooks/usePickerState.js +9 -9
- package/constants/prop-types.js +2 -2
- package/dist/material-ui-pickers.esm.js +3626 -0
- package/dist/material-ui-pickers.esm.js.map +1 -0
- package/dist/material-ui-pickers.js +3651 -0
- package/dist/material-ui-pickers.js.map +1 -0
- package/dist/material-ui-pickers.umd.js +34161 -0
- package/dist/material-ui-pickers.umd.min.js +1 -0
- package/package.json +3 -4
- package/typings/BasePicker.d.ts +1 -1
- package/typings/overrides.d.ts +2 -2
- package/views/Calendar/Calendar.js +3 -2
- package/views/Calendar/CalendarHeader.d.ts +1 -1
- package/views/Calendar/Day.d.ts +1 -1
- package/views/Calendar/Day.js +5 -3
- package/views/Calendar/DayWrapper.js +4 -2
- package/views/Calendar/SlideTransition.d.ts +1 -1
- package/views/Clock/Clock.d.ts +1 -1
- package/views/Clock/ClockNumber.d.ts +1 -1
- package/views/Clock/ClockNumber.js +1 -1
- package/views/Clock/ClockPointer.d.ts +1 -1
- package/views/Month/Month.d.ts +1 -1
- package/views/Month/Month.js +5 -3
- package/views/Year/Year.d.ts +1 -1
- package/views/Year/Year.js +5 -3
- package/wrappers/InlineWrapper.d.ts +2 -0
- package/wrappers/InlineWrapper.js +5 -3
- package/wrappers/ModalWrapper.js +4 -2
- package/wrappers/Wrapper.js +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"material-ui-pickers.js","sources":["../../src/MuiPickersUtilsProvider.tsx","../../src/_shared/hooks/useUtils.ts","../../src/_shared/ToolbarText.tsx","../../src/_shared/ToolbarButton.tsx","../../src/_shared/PickerToolbar.tsx","../../src/_helpers/utils.ts","../../src/_helpers/date-utils.ts","../../src/DatePicker/DatePickerToolbar.tsx","../../src/constants/prop-types.ts","../../src/views/Calendar/Day.tsx","../../src/views/Calendar/DayWrapper.tsx","../../src/views/Calendar/SlideTransition.tsx","../../src/_shared/icons/ArrowLeftIcon.tsx","../../src/_shared/icons/ArrowRightIcon.tsx","../../src/views/Calendar/CalendarHeader.tsx","../../src/_shared/hooks/useKeyDown.ts","../../src/_shared/WithUtils.tsx","../../src/views/Calendar/Calendar.tsx","../../src/_shared/hooks/useViews.tsx","../../src/views/Year/Year.tsx","../../src/constants/dimensions.ts","../../src/wrappers/StaticWrapper.tsx","../../src/_shared/ModalDialog.tsx","../../src/wrappers/ModalWrapper.tsx","../../src/wrappers/InlineWrapper.tsx","../../src/wrappers/Wrapper.tsx","../../src/views/Year/YearView.tsx","../../src/constants/ClockType.ts","../../src/views/Clock/ClockPointer.tsx","../../src/_helpers/time-utils.ts","../../src/views/Clock/Clock.tsx","../../src/views/Clock/ClockNumber.tsx","../../src/views/Clock/ClockNumbers.tsx","../../src/views/Clock/ClockView.tsx","../../src/views/Month/Month.tsx","../../src/views/Month/MonthView.tsx","../../src/_shared/hooks/useIsLandscape.tsx","../../src/Picker/Picker.tsx","../../src/_shared/hooks/useOpenState.ts","../../src/_helpers/text-field-helper.ts","../../src/_shared/hooks/usePickerState.ts","../../src/_shared/PureDateInput.tsx","../../src/Picker/WrappedPurePicker.tsx","../../src/_shared/icons/KeyboardIcon.tsx","../../src/Rifm/Rifm.ts","../../src/_shared/KeyboardDateInput.tsx","../../src/_shared/hooks/useKeyboardPickerState.ts","../../src/Picker/WrappedKeyboardPicker.tsx","../../src/DatePicker/DatePicker.tsx","../../src/TimePicker/TimePickerToolbar.tsx","../../src/TimePicker/TimePicker.tsx","../../src/_shared/icons/TimeIcon.tsx","../../src/_shared/icons/DateRangeIcon.tsx","../../src/DateTimePicker/DateTimePickerTabs.tsx","../../src/DateTimePicker/DateTimePickerToolbar.tsx","../../src/DateTimePicker/DateTimePicker.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from './typings/date';\r\n\r\nexport const MuiPickersContext = React.createContext<IUtils<MaterialUiPickersDate> | null>(null);\r\n\r\nexport interface MuiPickersUtilsProviderProps {\r\n utils: any;\r\n children: React.ReactNode;\r\n locale?: any;\r\n libInstance?: any;\r\n}\r\n\r\nexport const MuiPickersUtilsProvider: React.FC<MuiPickersUtilsProviderProps> = ({\r\n utils: Utils,\r\n children,\r\n locale,\r\n libInstance,\r\n}) => {\r\n const utils = React.useMemo(() => new Utils({ locale, moment: libInstance }), [\r\n Utils,\r\n libInstance,\r\n locale,\r\n ]);\r\n\r\n return <MuiPickersContext.Provider value={utils} children={children} />;\r\n};\r\n\r\nMuiPickersUtilsProvider.propTypes = {\r\n utils: PropTypes.func.isRequired,\r\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\r\n children: PropTypes.oneOfType([\r\n PropTypes.element.isRequired,\r\n PropTypes.arrayOf(PropTypes.element.isRequired),\r\n ]).isRequired,\r\n};\r\n\r\nexport default MuiPickersUtilsProvider;\r\n","import { useContext } from 'react';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\nimport { MuiPickersContext } from '../../MuiPickersUtilsProvider';\r\n\r\nexport const checkUtils = (utils: IUtils<MaterialUiPickersDate> | null | undefined) => {\r\n if (!utils) {\r\n // tslint:disable-next-line\r\n throw new Error(\r\n 'Can not find utils in context. You either a) forgot to wrap your component tree in MuiPickersUtilsProvider; or b) mixed named and direct file imports. Recommendation: use named imports from the module index.'\r\n );\r\n }\r\n};\r\n\r\nexport function useUtils() {\r\n const utils = useContext(MuiPickersContext);\r\n checkUtils(utils);\r\n\r\n return utils!;\r\n}\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\nimport { ExtendMui } from '../typings/extendMui';\r\nimport { makeStyles, fade } from '@material-ui/core/styles';\r\n\r\nexport interface ToolbarTextProps extends ExtendMui<TypographyProps> {\r\n selected?: boolean;\r\n label: string;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => {\r\n const textColor =\r\n theme.palette.type === 'light'\r\n ? theme.palette.primary.contrastText\r\n : theme.palette.getContrastText(theme.palette.background.default);\r\n\r\n return {\r\n toolbarTxt: {\r\n color: fade(textColor, 0.54),\r\n },\r\n toolbarBtnSelected: {\r\n color: textColor,\r\n },\r\n };\r\n },\r\n { name: 'MuiPickersToolbarText' }\r\n);\r\n\r\nconst ToolbarText: React.FunctionComponent<ToolbarTextProps> = ({\r\n selected,\r\n label,\r\n className = null,\r\n ...other\r\n}) => {\r\n const classes = useStyles();\r\n return (\r\n <Typography\r\n children={label}\r\n className={clsx(classes.toolbarTxt, className, {\r\n [classes.toolbarBtnSelected]: selected,\r\n })}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nexport default ToolbarText;\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport ToolbarText from './ToolbarText';\r\nimport Button, { ButtonProps } from '@material-ui/core/Button';\r\nimport { ExtendMui } from '../typings/extendMui';\r\nimport { TypographyProps } from '@material-ui/core/Typography';\r\nimport { createStyles, withStyles, WithStyles } from '@material-ui/core/styles';\r\n\r\nexport interface ToolbarButtonProps\r\n extends ExtendMui<ButtonProps, 'variant'>,\r\n WithStyles<typeof styles> {\r\n variant: TypographyProps['variant'];\r\n selected: boolean;\r\n label: string;\r\n align?: TypographyProps['align'];\r\n typographyClassName?: string;\r\n}\r\n\r\nconst ToolbarButton: React.FunctionComponent<ToolbarButtonProps> = ({\r\n classes,\r\n className = null,\r\n label,\r\n selected,\r\n variant,\r\n align,\r\n typographyClassName,\r\n ...other\r\n}) => {\r\n return (\r\n <Button variant=\"text\" className={clsx(classes.toolbarBtn, className)} {...other}>\r\n <ToolbarText\r\n align={align}\r\n className={typographyClassName}\r\n variant={variant}\r\n label={label}\r\n selected={selected}\r\n />\r\n </Button>\r\n );\r\n};\r\n\r\n(ToolbarButton as any).propTypes = {\r\n selected: PropTypes.bool.isRequired,\r\n label: PropTypes.string.isRequired,\r\n classes: PropTypes.any.isRequired,\r\n className: PropTypes.string,\r\n innerRef: PropTypes.any,\r\n};\r\n\r\nToolbarButton.defaultProps = {\r\n className: '',\r\n};\r\n\r\nexport const styles = createStyles({\r\n toolbarBtn: {\r\n padding: 0,\r\n minWidth: '16px',\r\n textTransform: 'none',\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { name: 'MuiPickersToolbarButton' })(ToolbarButton);\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Toolbar, { ToolbarProps } from '@material-ui/core/Toolbar';\r\nimport { ExtendMui } from '../typings/extendMui';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles(\r\n theme => ({\r\n toolbar: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: 100,\r\n backgroundColor:\r\n theme.palette.type === 'light'\r\n ? theme.palette.primary.main\r\n : theme.palette.background.default,\r\n },\r\n toolbarLandscape: {\r\n height: 'auto',\r\n maxWidth: 150,\r\n padding: 8,\r\n justifyContent: 'flex-start',\r\n },\r\n }),\r\n { name: 'MuiPickersToolbar' }\r\n);\r\n\r\ninterface PickerToolbarProps extends ExtendMui<ToolbarProps> {\r\n isLandscape: boolean;\r\n}\r\n\r\nconst PickerToolbar: React.SFC<PickerToolbarProps> = ({\r\n children,\r\n isLandscape,\r\n className = null,\r\n ...other\r\n}) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n <Toolbar\r\n className={clsx(classes.toolbar, { [classes.toolbarLandscape]: isLandscape }, className)}\r\n {...other}\r\n >\r\n {children}\r\n </Toolbar>\r\n );\r\n};\r\n\r\nexport default PickerToolbar;\r\n","/** Use it instead of .includes method for IE support */\r\nexport function arrayIncludes<T>(array: T[], itemOrItems: T | T[]) {\r\n if (Array.isArray(itemOrItems)) {\r\n return itemOrItems.every(item => array.indexOf(item) !== -1);\r\n }\r\n\r\n return array.indexOf(itemOrItems) !== -1;\r\n}\r\n","import { arrayIncludes } from './utils';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\nimport { DatePickerView } from '../DatePicker/DatePicker';\r\n\r\ninterface FindClosestDateParams {\r\n date: MaterialUiPickersDate;\r\n utils: IUtils<MaterialUiPickersDate>;\r\n minDate: MaterialUiPickersDate;\r\n maxDate: MaterialUiPickersDate;\r\n disableFuture: boolean;\r\n disablePast: boolean;\r\n shouldDisableDate: (date: MaterialUiPickersDate) => boolean;\r\n}\r\n\r\nexport const findClosestEnabledDate = ({\r\n date,\r\n utils,\r\n minDate,\r\n maxDate,\r\n disableFuture,\r\n disablePast,\r\n shouldDisableDate,\r\n}: FindClosestDateParams) => {\r\n const today = utils.startOfDay(utils.date());\r\n\r\n if (disablePast && utils.isBefore(minDate!, today)) {\r\n minDate = today;\r\n }\r\n\r\n if (disableFuture && utils.isAfter(maxDate, today)) {\r\n maxDate = today;\r\n }\r\n\r\n let forward = date;\r\n let backward = date;\r\n if (utils.isBefore(date, minDate)) {\r\n forward = utils.date(minDate);\r\n backward = null;\r\n }\r\n\r\n if (utils.isAfter(date, maxDate)) {\r\n if (backward) {\r\n backward = utils.date(maxDate);\r\n }\r\n\r\n forward = null;\r\n }\r\n\r\n while (forward || backward) {\r\n if (forward && utils.isAfter(forward, maxDate)) {\r\n forward = null;\r\n }\r\n if (backward && utils.isBefore(backward, minDate)) {\r\n backward = null;\r\n }\r\n\r\n if (forward) {\r\n if (!shouldDisableDate(forward)) {\r\n return forward;\r\n }\r\n forward = utils.addDays(forward, 1);\r\n }\r\n\r\n if (backward) {\r\n if (!shouldDisableDate(backward)) {\r\n return backward;\r\n }\r\n backward = utils.addDays(backward, -1);\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const isYearOnlyView = (views: DatePickerView[]) =>\r\n views.length === 1 && views[0] === 'year';\r\n\r\nexport const isYearAndMonthViews = (views: DatePickerView[]) =>\r\n views.length === 2 && arrayIncludes(views, 'month') && arrayIncludes(views, 'year');\r\n\r\nexport const getFormatByViews = (views: DatePickerView[], utils: IUtils<MaterialUiPickersDate>) => {\r\n if (isYearOnlyView(views)) {\r\n return utils.yearFormat;\r\n }\r\n\r\n if (isYearAndMonthViews(views)) {\r\n return utils.yearMonthFormat;\r\n }\r\n\r\n return utils.dateFormat;\r\n};\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport ToolbarButton from '../_shared/ToolbarButton';\r\nimport PickerToolbar from '../_shared/PickerToolbar';\r\nimport { useUtils } from '../_shared/hooks/useUtils';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { ToolbarComponentProps } from '../Picker/Picker';\r\nimport { isYearAndMonthViews, isYearOnlyView } from '../_helpers/date-utils';\r\n\r\nexport const useStyles = makeStyles(\r\n {\r\n toolbar: {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n toolbarLandscape: {\r\n padding: 16,\r\n },\r\n dateLandscape: {\r\n marginRight: 16,\r\n },\r\n },\r\n { name: 'MuiPickersDatePickerRoot' }\r\n);\r\n\r\nexport const DatePickerToolbar: React.FC<ToolbarComponentProps> = ({\r\n date,\r\n views,\r\n setOpenView,\r\n isLandscape,\r\n openView,\r\n}) => {\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n\r\n const isYearOnly = React.useMemo(() => isYearOnlyView(views as any), [views]);\r\n const isYearAndMonth = React.useMemo(() => isYearAndMonthViews(views as any), [views]);\r\n\r\n return (\r\n <PickerToolbar\r\n isLandscape={isLandscape}\r\n className={clsx({\r\n [classes.toolbar]: !isYearOnly,\r\n [classes.toolbarLandscape]: isLandscape,\r\n })}\r\n >\r\n <ToolbarButton\r\n variant={isYearOnly ? 'h3' : 'subtitle1'}\r\n onClick={() => setOpenView('year')}\r\n selected={openView === 'year'}\r\n label={utils.getYearText(date)}\r\n />\r\n\r\n {!isYearOnly && !isYearAndMonth && (\r\n <ToolbarButton\r\n variant=\"h4\"\r\n selected={openView === 'date'}\r\n onClick={() => setOpenView('date')}\r\n align={isLandscape ? 'left' : 'center'}\r\n label={utils.getDatePickerHeaderText(date)}\r\n className={clsx({ [classes.dateLandscape]: isLandscape })}\r\n />\r\n )}\r\n\r\n {isYearAndMonth && (\r\n <ToolbarButton\r\n variant=\"h4\"\r\n onClick={() => setOpenView('month')}\r\n selected={openView === 'month'}\r\n label={utils.getMonthText(date)}\r\n />\r\n )}\r\n </PickerToolbar>\r\n );\r\n};\r\n","import * as PropTypes from 'prop-types';\r\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\r\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\r\n\r\nconst date = PropTypes.oneOfType([\r\n PropTypes.object,\r\n PropTypes.string,\r\n PropTypes.number,\r\n PropTypes.instanceOf(Date),\r\n]);\r\n\r\nconst datePickerView = PropTypes.oneOf(['year', 'month', 'day']);\r\n\r\nexport type ParsableDate = object | string | number | Date | null | undefined;\r\n\r\nexport const DomainPropTypes = { date, datePickerView };\r\n\r\n/* eslint-disable @typescript-eslint/no-object-literal-type-assertion */\r\nexport const timePickerDefaultProps = {\r\n ampm: true,\r\n invalidDateMessage: 'Invalid Time Format',\r\n} as BaseTimePickerProps;\r\n\r\nexport const datePickerDefaultProps = {\r\n minDate: new Date('1900-01-01'),\r\n maxDate: new Date('2200-01-01'),\r\n invalidDateMessage: 'Invalid Date Format',\r\n minDateMessage: 'Date should not be before minimal date',\r\n maxDateMessage: 'Date should not be after maximal date',\r\n allowKeyboardControl: true,\r\n} as BaseDatePickerProps;\r\n\r\nexport const dateTimePickerDefaultProps = {\r\n ...timePickerDefaultProps,\r\n ...datePickerDefaultProps,\r\n showTabs: true,\r\n} as BaseTimePickerProps & BaseDatePickerProps;\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nexport const useStyles = makeStyles(\r\n theme => ({\r\n day: {\r\n width: 36,\r\n height: 36,\r\n fontSize: theme.typography.caption.fontSize,\r\n margin: '0 2px',\r\n color: theme.palette.text.primary,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n padding: 0,\r\n },\r\n hidden: {\r\n opacity: 0,\r\n pointerEvents: 'none',\r\n },\r\n current: {\r\n color: theme.palette.primary.main,\r\n fontWeight: 600,\r\n },\r\n daySelected: {\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n dayDisabled: {\r\n pointerEvents: 'none',\r\n color: theme.palette.text.hint,\r\n },\r\n }),\r\n { name: 'MuiPickersDay' }\r\n);\r\n\r\nexport interface DayProps {\r\n /** Day text */\r\n children: React.ReactNode;\r\n /** Is today */\r\n current?: boolean;\r\n /** Disabled? */\r\n disabled?: boolean;\r\n /** Hidden? */\r\n hidden?: boolean;\r\n /** Selected? */\r\n selected?: boolean;\r\n}\r\n\r\nexport const Day: React.FC<DayProps> = ({\r\n children,\r\n disabled,\r\n hidden,\r\n current,\r\n selected,\r\n ...other\r\n}) => {\r\n const classes = useStyles();\r\n const className = clsx(classes.day, {\r\n [classes.hidden]: hidden,\r\n [classes.current]: current,\r\n [classes.daySelected]: selected,\r\n [classes.dayDisabled]: disabled,\r\n });\r\n\r\n return (\r\n <IconButton className={className} tabIndex={hidden || disabled ? -1 : 0} {...other}>\r\n <Typography variant=\"body2\" color=\"inherit\">\r\n {children}\r\n </Typography>\r\n </IconButton>\r\n );\r\n};\r\n\r\nDay.displayName = 'Day';\r\n\r\nDay.propTypes = {\r\n current: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n hidden: PropTypes.bool,\r\n selected: PropTypes.bool,\r\n};\r\n\r\nDay.defaultProps = {\r\n disabled: false,\r\n hidden: false,\r\n current: false,\r\n selected: false,\r\n};\r\n\r\nexport default Day;\r\n","import * as React from 'react';\r\n\r\nexport interface DayWrapperProps {\r\n value: any;\r\n children: React.ReactNode;\r\n dayInCurrentMonth?: boolean;\r\n disabled?: boolean;\r\n onSelect: (value: any) => void;\r\n}\r\n\r\nconst DayWrapper: React.FC<DayWrapperProps> = ({\r\n children,\r\n value,\r\n disabled,\r\n onSelect,\r\n dayInCurrentMonth,\r\n ...other\r\n}) => {\r\n const handleClick = React.useCallback(() => onSelect(value), [onSelect, value]);\r\n\r\n return (\r\n <div\r\n role=\"presentation\"\r\n onClick={dayInCurrentMonth && !disabled ? handleClick : undefined}\r\n onKeyPress={dayInCurrentMonth && !disabled ? handleClick : undefined}\r\n {...other}\r\n >\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default DayWrapper;\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\r\n\r\nexport type SlideDirection = 'right' | 'left';\r\ninterface SlideTransitionProps {\r\n transKey: React.Key;\r\n className?: string;\r\n slideDirection: SlideDirection;\r\n children: React.ReactChild;\r\n}\r\n\r\nconst animationDuration = 350;\r\nexport const useStyles = makeStyles(\r\n theme => {\r\n const slideTransition = theme.transitions.create('transform', {\r\n duration: animationDuration,\r\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)',\r\n });\r\n\r\n return {\r\n transitionContainer: {\r\n display: 'block',\r\n position: 'relative',\r\n '& > *': {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n left: 0,\r\n },\r\n },\r\n 'slideEnter-left': {\r\n willChange: 'transform',\r\n transform: 'translate(100%)',\r\n },\r\n 'slideEnter-right': {\r\n willChange: 'transform',\r\n transform: 'translate(-100%)',\r\n },\r\n slideEnterActive: {\r\n transform: 'translate(0%)',\r\n transition: slideTransition,\r\n },\r\n slideExit: {\r\n transform: 'translate(0%)',\r\n },\r\n 'slideExitActiveLeft-left': {\r\n willChange: 'transform',\r\n transform: 'translate(-200%)',\r\n transition: slideTransition,\r\n },\r\n 'slideExitActiveLeft-right': {\r\n willChange: 'transform',\r\n transform: 'translate(200%)',\r\n transition: slideTransition,\r\n },\r\n };\r\n },\r\n { name: 'MuiPickersSlideTransition' }\r\n);\r\n\r\nconst SlideTransition: React.SFC<SlideTransitionProps> = ({\r\n children,\r\n transKey,\r\n slideDirection,\r\n className = null,\r\n}) => {\r\n const classes = useStyles();\r\n const transitionClasses = {\r\n exit: classes.slideExit,\r\n enterActive: classes.slideEnterActive,\r\n // @ts-ignore\r\n enter: classes['slideEnter-' + slideDirection],\r\n // @ts-ignore\r\n exitActive: classes['slideExitActiveLeft-' + slideDirection],\r\n };\r\n\r\n return (\r\n <TransitionGroup\r\n className={clsx(classes.transitionContainer, className)}\r\n childFactory={element =>\r\n React.cloneElement(element, {\r\n classNames: transitionClasses,\r\n })\r\n }\r\n >\r\n <CSSTransition\r\n mountOnEnter\r\n unmountOnExit\r\n key={transKey + slideDirection}\r\n timeout={animationDuration}\r\n classNames={transitionClasses}\r\n children={children}\r\n />\r\n </TransitionGroup>\r\n );\r\n};\r\n\r\nexport default SlideTransition;\r\n","import React from 'react';\r\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\r\n\r\nexport const ArrowLeftIcon: React.SFC<SvgIconProps> = props => {\r\n return (\r\n <SvgIcon {...props}>\r\n <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\" />\r\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\" />\r\n </SvgIcon>\r\n );\r\n};\r\n","import React from 'react';\r\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\r\n\r\nexport const ArrowRightIcon: React.SFC<SvgIconProps> = props => {\r\n return (\r\n <SvgIcon {...props}>\r\n <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\" />\r\n <path fill=\"none\" d=\"M0 0h24v24H0V0z\" />\r\n </SvgIcon>\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport SlideTransition, { SlideDirection } from './SlideTransition';\r\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton';\r\nimport { DateType } from '@date-io/type';\r\nimport { useUtils } from '../../_shared/hooks/useUtils';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { ArrowLeftIcon } from '../../_shared/icons/ArrowLeftIcon';\r\nimport { ArrowRightIcon } from '../../_shared/icons/ArrowRightIcon';\r\n\r\nexport interface CalendarHeaderProps {\r\n currentMonth: DateType;\r\n leftArrowIcon?: React.ReactNode;\r\n rightArrowIcon?: React.ReactNode;\r\n leftArrowButtonProps?: Partial<IconButtonProps>;\r\n rightArrowButtonProps?: Partial<IconButtonProps>;\r\n disablePrevMonth?: boolean;\r\n disableNextMonth?: boolean;\r\n slideDirection: SlideDirection;\r\n onMonthChange: (date: MaterialUiPickersDate, direction: SlideDirection) => void | Promise<void>;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => ({\r\n switchHeader: {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n marginTop: theme.spacing(0.5),\r\n marginBottom: theme.spacing(1),\r\n },\r\n transitionContainer: {\r\n width: '100%',\r\n overflow: 'hidden',\r\n height: 23,\r\n },\r\n iconButton: {\r\n zIndex: 1,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n daysHeader: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n maxHeight: 16,\r\n },\r\n dayLabel: {\r\n width: 36,\r\n margin: '0 2px',\r\n textAlign: 'center',\r\n color: theme.palette.text.hint,\r\n },\r\n }),\r\n { name: 'MuiPickersCalendarHeader' }\r\n);\r\n\r\nexport const CalendarHeader: React.SFC<CalendarHeaderProps> = ({\r\n currentMonth,\r\n onMonthChange,\r\n leftArrowIcon,\r\n rightArrowIcon,\r\n leftArrowButtonProps,\r\n rightArrowButtonProps,\r\n disablePrevMonth,\r\n disableNextMonth,\r\n slideDirection,\r\n}) => {\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const rtl = theme.direction === 'rtl';\r\n\r\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(currentMonth), 'left');\r\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(currentMonth), 'right');\r\n\r\n return (\r\n <div>\r\n <div className={classes.switchHeader}>\r\n <IconButton\r\n {...leftArrowButtonProps}\r\n disabled={disablePrevMonth}\r\n onClick={selectPreviousMonth}\r\n className={classes.iconButton}\r\n >\r\n {rtl ? rightArrowIcon : leftArrowIcon}\r\n </IconButton>\r\n\r\n <SlideTransition\r\n slideDirection={slideDirection}\r\n transKey={currentMonth.toString()}\r\n className={classes.transitionContainer}\r\n >\r\n <Typography align=\"center\" variant=\"body1\">\r\n {utils.getCalendarHeaderText(currentMonth)}\r\n </Typography>\r\n </SlideTransition>\r\n\r\n <IconButton\r\n {...rightArrowButtonProps}\r\n disabled={disableNextMonth}\r\n onClick={selectNextMonth}\r\n className={classes.iconButton}\r\n >\r\n {rtl ? leftArrowIcon : rightArrowIcon}\r\n </IconButton>\r\n </div>\r\n\r\n <div className={classes.daysHeader}>\r\n {utils.getWeekdays().map((day, index) => (\r\n <Typography\r\n key={index} // eslint-disable-line react/no-array-index-key\r\n variant=\"caption\"\r\n className={classes.dayLabel}\r\n >\r\n {day}\r\n </Typography>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCalendarHeader.displayName = 'CalendarHeader';\r\n\r\nCalendarHeader.propTypes = {\r\n leftArrowIcon: PropTypes.node,\r\n rightArrowIcon: PropTypes.node,\r\n disablePrevMonth: PropTypes.bool,\r\n disableNextMonth: PropTypes.bool,\r\n};\r\n\r\nCalendarHeader.defaultProps = {\r\n leftArrowIcon: <ArrowLeftIcon />,\r\n rightArrowIcon: <ArrowRightIcon />,\r\n disablePrevMonth: false,\r\n disableNextMonth: false,\r\n};\r\n\r\nexport default CalendarHeader;\r\n","import * as React from 'react';\r\n\r\nexport const useIsomorphicEffect =\r\n typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\r\n\r\ntype KeyHandlers = Record<KeyboardEvent['key'], () => void>;\r\n\r\nexport function runKeyHandler(e: KeyboardEvent, keyHandlers: KeyHandlers) {\r\n const handler = keyHandlers[e.key];\r\n if (handler) {\r\n handler();\r\n // if event was handled prevent other side effects (e.g. page scroll)\r\n e.preventDefault();\r\n }\r\n}\r\n\r\nexport function useKeyDown(active: boolean, keyHandlers: KeyHandlers) {\r\n const keyHandlersRef = React.useRef(keyHandlers);\r\n useIsomorphicEffect(() => {\r\n keyHandlersRef.current = keyHandlers;\r\n });\r\n\r\n React.useEffect(() => {\r\n if (active) {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n runKeyHandler(event, keyHandlers);\r\n };\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => {\r\n window.removeEventListener('keydown', handleKeyDown);\r\n };\r\n }\r\n }, [active, keyHandlers]);\r\n}\r\n","import * as React from 'react';\r\nimport { Omit } from '@material-ui/core';\r\nimport { useUtils } from './hooks/useUtils';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\n\r\nexport interface WithUtilsProps {\r\n utils: IUtils<MaterialUiPickersDate>;\r\n}\r\n\r\nexport const withUtils = () => <P extends WithUtilsProps>(Component: React.ComponentType<P>) => {\r\n const WithUtils: React.SFC<Omit<P, keyof WithUtilsProps>> = props => {\r\n const utils = useUtils();\r\n return <Component utils={utils} {...(props as any)} />;\r\n };\r\n\r\n WithUtils.displayName = `WithUtils(${Component.displayName || Component.name})`;\r\n return WithUtils;\r\n};\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport Day from './Day';\r\nimport DayWrapper from './DayWrapper';\r\nimport CalendarHeader from './CalendarHeader';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport SlideTransition, { SlideDirection } from './SlideTransition';\r\nimport { Theme } from '@material-ui/core';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\nimport { runKeyHandler } from '../../_shared/hooks/useKeyDown';\r\nimport { IconButtonProps } from '@material-ui/core/IconButton';\r\nimport { withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport { findClosestEnabledDate } from '../../_helpers/date-utils';\r\nimport { withUtils, WithUtilsProps } from '../../_shared/WithUtils';\r\n\r\nexport interface OutterCalendarProps {\r\n /** Left arrow icon */\r\n leftArrowIcon?: React.ReactNode;\r\n /** Right arrow icon */\r\n rightArrowIcon?: React.ReactNode;\r\n /** Custom renderer for day */\r\n renderDay?: (\r\n day: MaterialUiPickersDate,\r\n selectedDate: MaterialUiPickersDate,\r\n dayInCurrentMonth: boolean,\r\n dayComponent: JSX.Element\r\n ) => JSX.Element;\r\n /**\r\n * Enables keyboard listener for moving between days in calendar\r\n * @default true\r\n */\r\n allowKeyboardControl?: boolean;\r\n /**\r\n * Props to pass to left arrow button\r\n * @type {Partial<IconButtonProps>}\r\n */\r\n leftArrowButtonProps?: Partial<IconButtonProps>;\r\n /**\r\n * Props to pass to right arrow button\r\n * @type {Partial<IconButtonProps>}\r\n */\r\n rightArrowButtonProps?: Partial<IconButtonProps>;\r\n /** Disable specific date */\r\n shouldDisableDate?: (day: MaterialUiPickersDate) => boolean;\r\n /** Callback firing on month change. Return promise to render spinner till it will not be resolved */\r\n onMonthChange?: (date: MaterialUiPickersDate) => void | Promise<void>;\r\n /** Custom loading indicator */\r\n loadingIndicator?: JSX.Element;\r\n}\r\n\r\nexport interface CalendarProps\r\n extends OutterCalendarProps,\r\n WithUtilsProps,\r\n WithStyles<typeof styles, true> {\r\n /** Calendar Date */\r\n date: MaterialUiPickersDate;\r\n /** Calendar onChange */\r\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n /** Min date */\r\n minDate?: MaterialUiPickersDate;\r\n /** Max date */\r\n maxDate?: MaterialUiPickersDate;\r\n /** Disable past dates */\r\n disablePast?: boolean;\r\n /** Disable future dates */\r\n disableFuture?: boolean;\r\n}\r\n\r\nexport interface CalendarState {\r\n slideDirection: SlideDirection;\r\n currentMonth: MaterialUiPickersDate;\r\n lastDate?: MaterialUiPickersDate;\r\n loadingQueue: number;\r\n}\r\n\r\nconst KeyDownListener = ({ onKeyDown }: { onKeyDown: (e: KeyboardEvent) => void }) => {\r\n React.useEffect(() => {\r\n window.addEventListener('keydown', onKeyDown);\r\n return () => {\r\n window.removeEventListener('keydown', onKeyDown);\r\n };\r\n }, [onKeyDown]);\r\n\r\n return null;\r\n};\r\n\r\nexport class Calendar extends React.Component<CalendarProps, CalendarState> {\r\n static propTypes: any = {\r\n renderDay: PropTypes.func,\r\n shouldDisableDate: PropTypes.func,\r\n allowKeyboardControl: PropTypes.bool,\r\n };\r\n\r\n static defaultProps: Partial<CalendarProps> = {\r\n minDate: new Date('1900-01-01'),\r\n maxDate: new Date('2200-01-01'),\r\n disablePast: false,\r\n disableFuture: false,\r\n allowKeyboardControl: true,\r\n };\r\n\r\n static getDerivedStateFromProps(nextProps: CalendarProps, state: CalendarState) {\r\n const { utils, date: nextDate } = nextProps;\r\n\r\n if (!utils.isEqual(nextDate, state.lastDate)) {\r\n const nextMonth = utils.getMonth(nextDate);\r\n const lastDate = state.lastDate || nextDate;\r\n const lastMonth = utils.getMonth(lastDate);\r\n\r\n return {\r\n lastDate: nextDate,\r\n currentMonth: nextProps.utils.startOfMonth(nextDate),\r\n // prettier-ignore\r\n slideDirection: nextMonth === lastMonth\r\n ? state.slideDirection\r\n : utils.isAfterDay(nextDate, lastDate)\r\n ? 'left'\r\n : 'right'\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n state: CalendarState = {\r\n slideDirection: 'left',\r\n currentMonth: this.props.utils.startOfMonth(this.props.date),\r\n loadingQueue: 0,\r\n };\r\n\r\n componentDidMount() {\r\n const { date, minDate, maxDate, utils, disablePast, disableFuture } = this.props;\r\n\r\n if (this.shouldDisableDate(date)) {\r\n const closestEnabledDate = findClosestEnabledDate({\r\n date,\r\n utils,\r\n minDate: utils.date(minDate),\r\n maxDate: utils.date(maxDate),\r\n disablePast: Boolean(disablePast),\r\n disableFuture: Boolean(disableFuture),\r\n shouldDisableDate: this.shouldDisableDate,\r\n });\r\n\r\n this.handleDaySelect(closestEnabledDate, false);\r\n }\r\n }\r\n\r\n private pushToLoadingQueue = () => {\r\n const loadingQueue = this.state.loadingQueue + 1;\r\n this.setState({ loadingQueue });\r\n };\r\n\r\n private popFromLoadingQueue = () => {\r\n let loadingQueue = this.state.loadingQueue;\r\n loadingQueue = loadingQueue <= 0 ? 0 : loadingQueue - 1;\r\n this.setState({ loadingQueue });\r\n };\r\n\r\n handleChangeMonth = (newMonth: MaterialUiPickersDate, slideDirection: SlideDirection) => {\r\n this.setState({ currentMonth: newMonth, slideDirection });\r\n\r\n if (this.props.onMonthChange) {\r\n const returnVal = this.props.onMonthChange(newMonth);\r\n if (returnVal) {\r\n this.pushToLoadingQueue();\r\n returnVal.then(() => {\r\n this.popFromLoadingQueue();\r\n });\r\n }\r\n }\r\n };\r\n\r\n validateMinMaxDate = (day: MaterialUiPickersDate) => {\r\n const { minDate, maxDate, utils, disableFuture, disablePast } = this.props;\r\n const now = utils.date();\r\n const moment = utils.moment;\r\n\r\n return Boolean(\r\n (disableFuture && utils.isAfterDay(day, now)) ||\r\n (disablePast && moment(day).isBefore(now, 'second')) ||\r\n (minDate && utils.isBeforeDay(day, utils.date(minDate))) ||\r\n (maxDate && utils.isAfterDay(day, utils.date(maxDate)))\r\n );\r\n };\r\n\r\n shouldDisablePrevMonth = () => {\r\n const { utils, disablePast, minDate } = this.props;\r\n\r\n const now = utils.date();\r\n const firstEnabledMonth = utils.startOfMonth(\r\n disablePast && utils.isAfter(now, utils.date(minDate)) ? now : utils.date(minDate)\r\n );\r\n\r\n return !utils.isBefore(firstEnabledMonth, this.state.currentMonth);\r\n };\r\n\r\n shouldDisableNextMonth = () => {\r\n const { utils, disableFuture, maxDate } = this.props;\r\n\r\n const now = utils.date();\r\n const lastEnabledMonth = utils.startOfMonth(\r\n disableFuture && utils.isBefore(now, utils.date(maxDate)) ? now : utils.date(maxDate)\r\n );\r\n\r\n return !utils.isAfter(lastEnabledMonth, this.state.currentMonth);\r\n };\r\n\r\n shouldDisableDate = (day: MaterialUiPickersDate) => {\r\n const { shouldDisableDate } = this.props;\r\n\r\n return this.validateMinMaxDate(day) || Boolean(shouldDisableDate && shouldDisableDate(day));\r\n };\r\n\r\n handleDaySelect = (day: MaterialUiPickersDate, isFinish = true) => {\r\n const { date, utils } = this.props;\r\n\r\n this.props.onChange(utils.mergeDateAndTime(day, date), isFinish);\r\n };\r\n\r\n moveToDay = (day: MaterialUiPickersDate) => {\r\n const { utils } = this.props;\r\n\r\n if (day && !this.shouldDisableDate(day)) {\r\n if (utils.getMonth(day) !== utils.getMonth(this.state.currentMonth)) {\r\n this.handleChangeMonth(utils.startOfMonth(day), 'left');\r\n }\r\n\r\n this.handleDaySelect(day, false);\r\n }\r\n };\r\n\r\n handleKeyDown = (event: KeyboardEvent) => {\r\n const { theme, date, utils } = this.props;\r\n\r\n runKeyHandler(event, {\r\n ArrowUp: () => this.moveToDay(utils.addDays(date, -7)),\r\n ArrowDown: () => this.moveToDay(utils.addDays(date, 7)),\r\n ArrowLeft: () => this.moveToDay(utils.addDays(date, theme.direction === 'ltr' ? -1 : 1)),\r\n ArrowRight: () => this.moveToDay(utils.addDays(date, theme.direction === 'ltr' ? 1 : -1)),\r\n });\r\n };\r\n\r\n private renderWeeks = () => {\r\n const { utils, classes } = this.props;\r\n const weeks = utils.getWeekArray(this.state.currentMonth);\r\n\r\n return weeks.map(week => (\r\n <div key={`week-${week[0]!.toString()}`} className={classes.week}>\r\n {this.renderDays(week)}\r\n </div>\r\n ));\r\n };\r\n\r\n private renderDays = (week: MaterialUiPickersDate[]) => {\r\n const { date, renderDay, utils } = this.props;\r\n\r\n const now = utils.date();\r\n const selectedDate = utils.startOfDay(date);\r\n const currentMonthNumber = utils.getMonth(this.state.currentMonth);\r\n\r\n return week.map(day => {\r\n const disabled = this.shouldDisableDate(day);\r\n const isDayInCurrentMonth = utils.getMonth(day) === currentMonthNumber;\r\n\r\n let dayComponent = (\r\n <Day\r\n disabled={disabled}\r\n current={utils.isSameDay(day, now)}\r\n hidden={!isDayInCurrentMonth}\r\n selected={utils.isSameDay(selectedDate, day)}\r\n >\r\n {utils.getDayText(day)}\r\n </Day>\r\n );\r\n\r\n if (renderDay) {\r\n dayComponent = renderDay(day, selectedDate, isDayInCurrentMonth, dayComponent);\r\n }\r\n\r\n return (\r\n <DayWrapper\r\n value={day}\r\n key={day!.toString()}\r\n disabled={disabled}\r\n dayInCurrentMonth={isDayInCurrentMonth}\r\n onSelect={this.handleDaySelect}\r\n >\r\n {dayComponent}\r\n </DayWrapper>\r\n );\r\n });\r\n };\r\n\r\n render() {\r\n const { currentMonth, slideDirection } = this.state;\r\n const {\r\n classes,\r\n allowKeyboardControl,\r\n leftArrowButtonProps,\r\n leftArrowIcon,\r\n rightArrowButtonProps,\r\n rightArrowIcon,\r\n loadingIndicator,\r\n } = this.props;\r\n const loadingElement = loadingIndicator ? loadingIndicator : <CircularProgress />;\r\n\r\n return (\r\n <React.Fragment>\r\n {allowKeyboardControl && <KeyDownListener onKeyDown={this.handleKeyDown} />}\r\n\r\n <CalendarHeader\r\n currentMonth={currentMonth!}\r\n slideDirection={slideDirection}\r\n onMonthChange={this.handleChangeMonth}\r\n leftArrowIcon={leftArrowIcon}\r\n leftArrowButtonProps={leftArrowButtonProps}\r\n rightArrowIcon={rightArrowIcon}\r\n rightArrowButtonProps={rightArrowButtonProps}\r\n disablePrevMonth={this.shouldDisablePrevMonth()}\r\n disableNextMonth={this.shouldDisableNextMonth()}\r\n />\r\n\r\n <SlideTransition\r\n slideDirection={slideDirection}\r\n transKey={currentMonth!.toString()}\r\n className={classes.transitionContainer}\r\n >\r\n <>\r\n {(this.state.loadingQueue > 0 && (\r\n <div className={classes.progressContainer}>{loadingElement}</div>\r\n )) || <div>{this.renderWeeks()}</div>}\r\n </>\r\n </SlideTransition>\r\n </React.Fragment>\r\n );\r\n }\r\n}\r\n\r\nexport const styles = (theme: Theme) => ({\r\n transitionContainer: {\r\n minHeight: 36 * 6,\r\n marginTop: theme.spacing(1.5),\r\n },\r\n progressContainer: {\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n },\r\n week: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n },\r\n});\r\n\r\nexport default withStyles(styles, {\r\n name: 'MuiPickersCalendar',\r\n withTheme: true,\r\n})(withUtils()(Calendar));\r\n","import * as React from 'react';\r\nimport { MaterialUiPickersDate } from '../..';\r\nimport { PickerView } from '../../Picker/Picker';\r\nimport { arrayIncludes } from '../../_helpers/utils';\r\n\r\nexport function useViews(\r\n views: PickerView[],\r\n openTo: PickerView,\r\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void\r\n) {\r\n const [openView, setOpenView] = React.useState(\r\n openTo && arrayIncludes(views, openTo) ? openTo : views[0]\r\n );\r\n\r\n const handleChangeAndOpenNext = React.useCallback(\r\n (date: MaterialUiPickersDate, isFinish?: boolean) => {\r\n const nextViewToOpen = views[views.indexOf(openView!) + 1];\r\n if (isFinish && nextViewToOpen) {\r\n // do not close picker if needs to show next view\r\n onChange(date, false);\r\n setOpenView(nextViewToOpen);\r\n return;\r\n }\r\n\r\n onChange(date, Boolean(isFinish));\r\n },\r\n [onChange, openView, views]\r\n );\r\n\r\n return { handleChangeAndOpenNext, openView, setOpenView };\r\n}\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nexport interface YearProps {\r\n children: React.ReactNode;\r\n disabled?: boolean;\r\n onSelect: (value: any) => void;\r\n selected?: boolean;\r\n value: any;\r\n forwardedRef?: React.Ref<HTMLElement | null>;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => ({\r\n root: {\r\n height: 40,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: 'pointer',\r\n outline: 'none',\r\n '&:focus': {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n },\r\n yearSelected: {\r\n margin: '10px 0',\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n yearDisabled: {\r\n pointerEvents: 'none',\r\n color: theme.palette.text.hint,\r\n },\r\n }),\r\n { name: 'MuiPickersYear' }\r\n);\r\n\r\nexport const Year: React.FC<YearProps> = ({\r\n onSelect,\r\n forwardedRef,\r\n value,\r\n selected,\r\n disabled,\r\n children,\r\n ...other\r\n}) => {\r\n const classes = useStyles();\r\n const handleClick = React.useCallback(() => onSelect(value), [onSelect, value]);\r\n\r\n return (\r\n <Typography\r\n role=\"button\"\r\n component=\"div\"\r\n tabIndex={disabled ? -1 : 0}\r\n onClick={handleClick}\r\n onKeyPress={handleClick}\r\n color={selected ? 'primary' : undefined}\r\n variant={selected ? 'h5' : 'subtitle1'}\r\n children={children}\r\n ref={forwardedRef}\r\n className={clsx(classes.root, {\r\n [classes.yearSelected]: selected,\r\n [classes.yearDisabled]: disabled,\r\n })}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nYear.displayName = 'Year';\r\n\r\nexport default React.forwardRef<HTMLElement, YearProps>((props, ref) => (\r\n <Year {...props} forwardedRef={ref} />\r\n));\r\n","export const DIALOG_WIDTH = 310;\r\n\r\nexport const DIALOG_WIDTH_WIDER = 325;\r\n\r\nexport const VIEW_HEIGHT = 305;\r\n","import * as React from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { DIALOG_WIDTH } from '../constants/dimensions';\r\n\r\nconst useStyles = makeStyles(\r\n theme => ({\r\n staticWrapperRoot: {\r\n overflow: 'hidden',\r\n minWidth: DIALOG_WIDTH,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n }),\r\n { name: 'MuiPickersStaticWrapper' }\r\n);\r\n\r\nexport const StaticWrapper: React.FC = ({ children }) => {\r\n const classes = useStyles();\r\n\r\n return <div className={classes.staticWrapperRoot} children={children} />;\r\n};\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Button from '@material-ui/core/Button';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport Dialog, { DialogProps } from '@material-ui/core/Dialog';\r\nimport { DIALOG_WIDTH } from '../constants/dimensions';\r\nimport { createStyles, WithStyles, withStyles } from '@material-ui/core/styles';\r\n\r\nexport interface ModalDialogProps extends DialogProps {\r\n onAccept: () => void;\r\n onDismiss: () => void;\r\n onClear: () => void;\r\n onSetToday: () => void;\r\n okLabel?: React.ReactNode;\r\n cancelLabel?: React.ReactNode;\r\n clearLabel?: React.ReactNode;\r\n todayLabel?: React.ReactNode;\r\n clearable?: boolean;\r\n showTodayButton?: boolean;\r\n showTabs?: boolean;\r\n wider?: boolean;\r\n}\r\n\r\nexport const ModalDialog: React.SFC<ModalDialogProps & WithStyles<typeof styles>> = ({\r\n children,\r\n classes,\r\n onAccept,\r\n onDismiss,\r\n onClear,\r\n onSetToday,\r\n okLabel,\r\n cancelLabel,\r\n clearLabel,\r\n todayLabel,\r\n clearable,\r\n showTodayButton,\r\n showTabs,\r\n wider,\r\n ...other\r\n}) => (\r\n <Dialog\r\n role=\"dialog\"\r\n onClose={onDismiss}\r\n classes={{\r\n paper: clsx(classes.dialogRoot, {\r\n [classes.dialogRootWider]: wider,\r\n }),\r\n }}\r\n {...other}\r\n >\r\n <DialogContent children={children} className={classes.dialog} />\r\n\r\n <DialogActions\r\n classes={{\r\n root: clsx({\r\n [classes.withAdditionalAction]: clearable || showTodayButton,\r\n }),\r\n }}\r\n >\r\n {clearable && (\r\n <Button color=\"primary\" onClick={onClear}>\r\n {clearLabel}\r\n </Button>\r\n )}\r\n\r\n {!clearable && showTodayButton && (\r\n <Button color=\"primary\" onClick={onSetToday}>\r\n {todayLabel}\r\n </Button>\r\n )}\r\n\r\n {cancelLabel && (\r\n <Button color=\"primary\" onClick={onDismiss}>\r\n {cancelLabel}\r\n </Button>\r\n )}\r\n\r\n {okLabel && (\r\n <Button color=\"primary\" onClick={onAccept}>\r\n {okLabel}\r\n </Button>\r\n )}\r\n </DialogActions>\r\n </Dialog>\r\n);\r\n\r\nModalDialog.displayName = 'ModalDialog';\r\n\r\nexport const styles = createStyles({\r\n dialogRoot: {\r\n minWidth: DIALOG_WIDTH,\r\n // maxWidth: DIALOG_WIDTH_WIDER,\r\n },\r\n dialogRootWider: {\r\n // minWidth: DIALOG_WIDTH_WIDER,\r\n },\r\n dialog: {\r\n '&:first-child': {\r\n padding: 0,\r\n },\r\n },\r\n withAdditionalAction: {\r\n // set justifyContent to default value to fix IE11 layout bug\r\n // see https://github.com/dmtrKovalenko/material-ui-pickers/pull/267\r\n justifyContent: 'flex-start',\r\n\r\n '& > *:first-child': {\r\n marginRight: 'auto',\r\n },\r\n },\r\n});\r\n\r\nexport default withStyles(styles, { name: 'MuiPickersModal' })(ModalDialog);\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport ModalDialog from '../_shared/ModalDialog';\r\nimport { Omit } from '@material-ui/core';\r\nimport { WrapperProps } from './Wrapper';\r\nimport { useKeyDown } from '../_shared/hooks/useKeyDown';\r\nimport { DialogProps as MuiDialogProps } from '@material-ui/core/Dialog';\r\n\r\nexport interface ModalWrapperProps<T = {}> extends WrapperProps<T> {\r\n /**\r\n * \"OK\" label message\r\n * @default \"OK\"\r\n */\r\n okLabel?: React.ReactNode;\r\n /**\r\n * \"CANCEL\" label message\r\n * @default \"CANCEL\"\r\n */\r\n cancelLabel?: React.ReactNode;\r\n /**\r\n * \"CLEAR\" label message\r\n * @default \"CLEAR\"\r\n */\r\n clearLabel?: React.ReactNode;\r\n /**\r\n * \"TODAY\" label message\r\n * @default \"TODAY\"\r\n */\r\n todayLabel?: React.ReactNode;\r\n /**\r\n * If true today button will be displayed <b>Note*</b> that clear button has higher priority\r\n * @default false\r\n */\r\n showTodayButton?: boolean;\r\n /**\r\n * Show clear action in picker dialog\r\n * @default false\r\n */\r\n clearable?: boolean;\r\n /**\r\n * Props to be passed directly to material-ui Dialog\r\n * @type {Partial<MuiDialogProps>}\r\n */\r\n DialogProps?: Partial<Omit<MuiDialogProps, 'classes'>>;\r\n}\r\n\r\nexport const ModalWrapper: React.FC<ModalWrapperProps<any>> = ({\r\n open,\r\n children,\r\n okLabel,\r\n cancelLabel,\r\n clearLabel,\r\n todayLabel,\r\n showTodayButton,\r\n clearable,\r\n DialogProps,\r\n showTabs,\r\n wider,\r\n InputComponent,\r\n DateInputProps,\r\n onClear,\r\n onAccept,\r\n onDismiss,\r\n onSetToday,\r\n ...other\r\n}) => {\r\n useKeyDown(open, {\r\n Enter: onAccept,\r\n });\r\n\r\n return (\r\n <React.Fragment>\r\n <InputComponent {...other} {...DateInputProps} />\r\n\r\n <ModalDialog\r\n wider={wider}\r\n showTabs={showTabs}\r\n open={open}\r\n onClear={onClear}\r\n onAccept={onAccept}\r\n onDismiss={onDismiss}\r\n onSetToday={onSetToday}\r\n clearLabel={clearLabel}\r\n todayLabel={todayLabel}\r\n okLabel={okLabel}\r\n cancelLabel={cancelLabel}\r\n clearable={clearable}\r\n showTodayButton={showTodayButton}\r\n children={children}\r\n {...DialogProps}\r\n />\r\n </React.Fragment>\r\n );\r\n};\r\n\r\nModalWrapper.propTypes = {\r\n okLabel: PropTypes.node,\r\n cancelLabel: PropTypes.node,\r\n clearLabel: PropTypes.node,\r\n clearable: PropTypes.bool,\r\n todayLabel: PropTypes.node,\r\n showTodayButton: PropTypes.bool,\r\n DialogProps: PropTypes.object,\r\n} as any;\r\n\r\nModalWrapper.defaultProps = {\r\n okLabel: 'OK',\r\n cancelLabel: 'Cancel',\r\n clearLabel: 'Clear',\r\n todayLabel: 'Today',\r\n clearable: false,\r\n showTodayButton: false,\r\n};\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport Popover, { PopoverProps as PopoverPropsType } from '@material-ui/core/Popover';\r\nimport { WrapperProps } from './Wrapper';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useKeyDown } from '../_shared/hooks/useKeyDown';\r\nimport { TextFieldProps } from '@material-ui/core/TextField';\r\nimport { DIALOG_WIDTH, DIALOG_WIDTH_WIDER } from '../constants/dimensions';\r\n\r\nexport const useStyles = makeStyles(\r\n {\r\n popoverPaper: {\r\n width: DIALOG_WIDTH,\r\n paddingBottom: 8,\r\n },\r\n popoverPaperWider: {\r\n width: DIALOG_WIDTH_WIDER,\r\n },\r\n },\r\n { name: 'MuiPickersInlineWrapper' }\r\n);\r\n\r\nexport interface InlineWrapperProps<T = TextFieldProps> extends WrapperProps<T> {\r\n /** Popover props passed to material-ui Popover (with variant=\"inline\") */\r\n PopoverProps?: Partial<PopoverPropsType>;\r\n showTodayButton?: boolean;\r\n todayLabel?: string;\r\n}\r\n\r\nexport const InlineWrapper: React.FC<InlineWrapperProps> = ({\r\n open,\r\n wider,\r\n children,\r\n PopoverProps,\r\n onClear,\r\n onDismiss,\r\n onSetToday,\r\n onAccept,\r\n showTabs,\r\n showTodayButton,\r\n todayLabel,\r\n DateInputProps,\r\n InputComponent,\r\n ...other\r\n}) => {\r\n const ref = React.useRef();\r\n const classes = useStyles();\r\n\r\n useKeyDown(open, {\r\n Enter: onAccept,\r\n });\r\n\r\n return (\r\n <React.Fragment>\r\n <InputComponent {...other} {...DateInputProps} inputRef={ref} />\r\n\r\n <Popover\r\n open={open}\r\n onClose={onDismiss}\r\n anchorEl={ref.current}\r\n classes={{\r\n paper: clsx(classes.popoverPaper, { [classes.popoverPaperWider]: wider }),\r\n }}\r\n anchorOrigin={{\r\n vertical: 'bottom',\r\n horizontal: 'center',\r\n }}\r\n transformOrigin={{\r\n vertical: 'top',\r\n horizontal: 'center',\r\n }}\r\n children={children}\r\n {...PopoverProps}\r\n />\r\n </React.Fragment>\r\n );\r\n};\r\n\r\nInlineWrapper.propTypes = {\r\n onOpen: PropTypes.func,\r\n onClose: PropTypes.func,\r\n PopoverProps: PropTypes.object,\r\n} as any;\r\n","import * as React from 'react';\r\nimport { Omit } from '@material-ui/core';\r\nimport { StaticWrapper } from './StaticWrapper';\r\nimport { PureDateInputProps } from '../_shared/PureDateInput';\r\nimport { ModalWrapper, ModalWrapperProps } from './ModalWrapper';\r\nimport { InlineWrapper, InlineWrapperProps } from './InlineWrapper';\r\nimport { KeyboardDateInputProps } from '../_shared/KeyboardDateInput';\r\n\r\nexport type WrapperVariant = 'dialog' | 'inline' | 'static';\r\n\r\nexport interface WrapperProps<T> {\r\n open: boolean;\r\n onAccept: () => void;\r\n onDismiss: () => void;\r\n onClear: () => void;\r\n onSetToday: () => void;\r\n InputComponent: React.FC<T>;\r\n DateInputProps: T;\r\n wider?: boolean;\r\n showTabs?: boolean;\r\n}\r\n\r\ntype OmitInnerWrapperProps<T extends WrapperProps<any>> = Omit<\r\n T,\r\n keyof WrapperProps<any> | 'showTabs'\r\n>;\r\n\r\nexport type ModalRoot = OmitInnerWrapperProps<ModalWrapperProps>;\r\n\r\nexport type InlineRoot = OmitInnerWrapperProps<InlineWrapperProps>;\r\n\r\n// prettier-ignore\r\nexport type ExtendWrapper<TInput extends PureDateInputProps | KeyboardDateInputProps> = {\r\n /**\r\n * Picker container option\r\n * @default 'dialog'\r\n */\r\n variant?: WrapperVariant\r\n} & ModalRoot\r\n & InlineRoot\r\n & Omit<TInput, 'inputValue' | 'onChange' | 'format' | 'validationError' | 'format' | 'forwardedRef'>\r\n\r\nexport function getWrapperFromVariant<T>(\r\n variant?: WrapperVariant\r\n): React.ComponentType<InlineWrapperProps<T> | ModalWrapperProps<T>> {\r\n switch (variant) {\r\n case 'inline':\r\n return InlineWrapper as any;\r\n\r\n case 'static':\r\n return StaticWrapper as any;\r\n\r\n default:\r\n return ModalWrapper as any;\r\n }\r\n}\r\n\r\ntype Props<T> = {\r\n variant?: WrapperVariant;\r\n children?: React.ReactChild;\r\n} & (ModalWrapperProps<T> | InlineWrapperProps<T>);\r\n\r\nexport const VariantContext = React.createContext<WrapperVariant | null>(null);\r\n\r\nexport const Wrapper: <T extends KeyboardDateInputProps | PureDateInputProps>(\r\n p: Props<T>\r\n) => React.ReactElement<Props<T>> = ({ variant, ...props }) => {\r\n const Component = getWrapperFromVariant<typeof props.DateInputProps>(variant);\r\n\r\n return (\r\n <VariantContext.Provider value={variant || 'dialog'}>\r\n <Component {...props} />\r\n </VariantContext.Provider>\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport Year from './Year';\r\nimport { DateType } from '@date-io/type';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useUtils } from '../../_shared/hooks/useUtils';\r\nimport { VariantContext } from '../../wrappers/Wrapper';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\n\r\nexport interface YearSelectionProps {\r\n date: MaterialUiPickersDate;\r\n minDate: DateType;\r\n maxDate: DateType;\r\n onChange: (date: MaterialUiPickersDate, isFinish: boolean) => void;\r\n disablePast?: boolean | null | undefined;\r\n disableFuture?: boolean | null | undefined;\r\n animateYearScrolling?: boolean | null | undefined;\r\n onYearChange?: (date: MaterialUiPickersDate) => void;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n {\r\n container: {\r\n height: 300,\r\n overflowY: 'auto',\r\n },\r\n },\r\n { name: 'MuiPickersYearSelection' }\r\n);\r\n\r\nexport const YearSelection: React.FC<YearSelectionProps> = ({\r\n date,\r\n onChange,\r\n onYearChange,\r\n minDate,\r\n maxDate,\r\n disablePast,\r\n disableFuture,\r\n animateYearScrolling,\r\n}) => {\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n const currentVariant = React.useContext(VariantContext);\r\n const selectedYearRef = React.useRef<HTMLElement>(null);\r\n\r\n React.useEffect(() => {\r\n if (selectedYearRef.current && selectedYearRef.current.scrollIntoView) {\r\n selectedYearRef.current.scrollIntoView({\r\n block: currentVariant === 'static' ? 'nearest' : 'center',\r\n behavior: animateYearScrolling ? 'smooth' : 'auto',\r\n });\r\n }\r\n }, []); // eslint-disable-line\r\n\r\n const currentYear = utils.getYear(date);\r\n const onYearSelect = React.useCallback(\r\n (year: number) => {\r\n const newDate = utils.setYear(date, year);\r\n if (onYearChange) {\r\n onYearChange(newDate);\r\n }\r\n\r\n onChange(newDate, true);\r\n },\r\n [date, onChange, onYearChange, utils]\r\n );\r\n\r\n return (\r\n <div className={classes.container}>\r\n {utils.getYearRange(minDate, maxDate).map(year => {\r\n const yearNumber = utils.getYear(year);\r\n const selected = yearNumber === currentYear;\r\n\r\n return (\r\n <Year\r\n key={utils.getYearText(year)}\r\n selected={selected}\r\n value={yearNumber}\r\n onSelect={onYearSelect}\r\n ref={selected ? selectedYearRef : undefined}\r\n disabled={Boolean(\r\n (disablePast && utils.isBeforeYear(year, utils.date())) ||\r\n (disableFuture && utils.isAfterYear(year, utils.date()))\r\n )}\r\n >\r\n {utils.getYearText(year)}\r\n </Year>\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n","enum ClockType {\r\n HOURS = 'hours',\r\n\r\n MINUTES = 'minutes',\r\n\r\n SECONDS = 'seconds',\r\n}\r\n\r\nexport type ClockViewType = 'hours' | 'minutes' | 'seconds';\r\n\r\nexport default ClockType;\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport ClockType, { ClockViewType } from '../../constants/ClockType';\r\nimport { Theme } from '@material-ui/core';\r\nimport { withStyles, createStyles, WithStyles } from '@material-ui/core/styles';\r\n\r\nexport interface ClockPointerProps extends WithStyles<typeof styles> {\r\n value: number;\r\n hasSelected: boolean;\r\n isInner: boolean;\r\n type: ClockViewType;\r\n}\r\n\r\nexport class ClockPointer extends React.Component<ClockPointerProps> {\r\n public static getDerivedStateFromProps = (\r\n nextProps: ClockPointerProps,\r\n state: ClockPointer['state']\r\n ) => {\r\n if (nextProps.type !== state.previousType) {\r\n return {\r\n toAnimateTransform: true,\r\n previousType: nextProps.type,\r\n };\r\n }\r\n\r\n return {\r\n toAnimateTransform: false,\r\n previousType: nextProps.type,\r\n };\r\n };\r\n\r\n public state = {\r\n toAnimateTransform: false,\r\n previousType: undefined,\r\n };\r\n\r\n public getAngleStyle = () => {\r\n const { value, isInner, type } = this.props;\r\n\r\n const max = type === ClockType.HOURS ? 12 : 60;\r\n let angle = (360 / max) * value;\r\n\r\n if (type === ClockType.HOURS && value > 12) {\r\n angle -= 360; // round up angle to max 360 degrees\r\n }\r\n\r\n return {\r\n height: isInner ? '26%' : '40%',\r\n transform: `rotateZ(${angle}deg)`,\r\n };\r\n };\r\n\r\n public render() {\r\n const { classes, hasSelected } = this.props;\r\n\r\n return (\r\n <div\r\n style={this.getAngleStyle()}\r\n className={clsx(classes.pointer, {\r\n [classes.animateTransform]: this.state.toAnimateTransform,\r\n })}\r\n >\r\n <div\r\n className={clsx(classes.thumb, {\r\n [classes.noPoint]: hasSelected,\r\n })}\r\n />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport const styles = (theme: Theme) =>\r\n createStyles({\r\n pointer: {\r\n width: 2,\r\n backgroundColor: theme.palette.primary.main,\r\n position: 'absolute',\r\n left: 'calc(50% - 1px)',\r\n bottom: '50%',\r\n transformOrigin: 'center bottom 0px',\r\n },\r\n animateTransform: {\r\n transition: theme.transitions.create(['transform', 'height']),\r\n },\r\n thumb: {\r\n width: 4,\r\n height: 4,\r\n backgroundColor: theme.palette.primary.contrastText,\r\n borderRadius: '100%',\r\n position: 'absolute',\r\n top: -21,\r\n left: -15,\r\n border: `14px solid ${theme.palette.primary.main}`,\r\n boxSizing: 'content-box',\r\n },\r\n noPoint: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n });\r\n\r\nexport default withStyles(styles, {\r\n name: 'MuiPickersClockPointer',\r\n})(ClockPointer as React.ComponentType<ClockPointerProps>);\r\n","import { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\n\r\nconst center = {\r\n x: 260 / 2,\r\n y: 260 / 2,\r\n};\r\n\r\nconst basePoint = {\r\n x: center.x,\r\n y: 0,\r\n};\r\n\r\nconst cx = basePoint.x - center.x;\r\nconst cy = basePoint.y - center.y;\r\n\r\nconst rad2deg = (rad: number) => rad * 57.29577951308232;\r\n\r\nconst getAngleValue = (step: number, offsetX: number, offsetY: number) => {\r\n const x = offsetX - center.x;\r\n const y = offsetY - center.y;\r\n\r\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\r\n\r\n let deg = rad2deg(atan);\r\n deg = Math.round(deg / step) * step;\r\n deg %= 360;\r\n\r\n const value = Math.floor(deg / step) || 0;\r\n const delta = Math.pow(x, 2) + Math.pow(y, 2);\r\n const distance = Math.sqrt(delta);\r\n\r\n return { value, distance };\r\n};\r\n\r\nexport const getHours = (offsetX: number, offsetY: number, ampm: boolean) => {\r\n let { value, distance } = getAngleValue(30, offsetX, offsetY);\r\n value = value || 12;\r\n\r\n if (!ampm) {\r\n if (distance < 90) {\r\n value += 12;\r\n value %= 24;\r\n }\r\n } else {\r\n value %= 12;\r\n }\r\n\r\n return value;\r\n};\r\n\r\nexport const getMinutes = (offsetX: number, offsetY: number, step = 1) => {\r\n const angleStep = step * 6;\r\n let { value } = getAngleValue(angleStep, offsetX, offsetY);\r\n value = (value * step) % 60;\r\n\r\n return value;\r\n};\r\n\r\nexport const getMeridiem = (\r\n date: MaterialUiPickersDate,\r\n utils: IUtils<MaterialUiPickersDate>\r\n): 'am' | 'pm' => {\r\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\r\n};\r\n\r\nexport const convertToMeridiem = (\r\n time: MaterialUiPickersDate,\r\n meridiem: 'am' | 'pm',\r\n ampm: boolean,\r\n utils: IUtils<MaterialUiPickersDate>\r\n) => {\r\n if (ampm) {\r\n const currentMeridiem = utils.getHours(time) >= 12 ? 'pm' : 'am';\r\n if (currentMeridiem !== meridiem) {\r\n const hours = meridiem === 'am' ? utils.getHours(time) - 12 : utils.getHours(time) + 12;\r\n\r\n return utils.setHours(time, hours);\r\n }\r\n }\r\n\r\n return time;\r\n};\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport ClockPointer from './ClockPointer';\r\nimport ClockType, { ClockViewType } from '../../constants/ClockType';\r\nimport { getHours, getMinutes } from '../../_helpers/time-utils';\r\nimport { withStyles, createStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\n\r\nexport interface ClockProps extends WithStyles<typeof styles> {\r\n type: ClockViewType;\r\n value: number;\r\n onChange: (value: number, isFinish?: boolean) => void;\r\n ampm?: boolean;\r\n minutesStep?: number;\r\n children: React.ReactElement<any>[];\r\n}\r\n\r\nexport class Clock extends React.Component<ClockProps> {\r\n public static propTypes: any = {\r\n type: PropTypes.oneOf(Object.keys(ClockType).map(key => ClockType[key as any])).isRequired,\r\n value: PropTypes.number.isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\r\n ampm: PropTypes.bool,\r\n minutesStep: PropTypes.number,\r\n innerRef: PropTypes.any,\r\n };\r\n\r\n public static defaultProps = {\r\n ampm: false,\r\n minutesStep: 1,\r\n };\r\n\r\n public isMoving = false;\r\n\r\n public setTime(e: any, isFinish = false) {\r\n let { offsetX, offsetY } = e;\r\n\r\n if (typeof offsetX === 'undefined') {\r\n const rect = e.target.getBoundingClientRect();\r\n\r\n offsetX = e.changedTouches[0].clientX - rect.left;\r\n offsetY = e.changedTouches[0].clientY - rect.top;\r\n }\r\n\r\n const value =\r\n this.props.type === ClockType.SECONDS || this.props.type === ClockType.MINUTES\r\n ? getMinutes(offsetX, offsetY, this.props.minutesStep)\r\n : getHours(offsetX, offsetY, Boolean(this.props.ampm));\r\n\r\n this.props.onChange(value, isFinish);\r\n }\r\n\r\n public handleTouchMove = (e: React.TouchEvent) => {\r\n this.isMoving = true;\r\n this.setTime(e);\r\n };\r\n\r\n public handleTouchEnd = (e: React.TouchEvent) => {\r\n if (this.isMoving) {\r\n this.setTime(e, true);\r\n this.isMoving = false;\r\n }\r\n };\r\n\r\n public handleMove = (e: React.MouseEvent<HTMLDivElement>) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n // MouseEvent.which is deprecated, but MouseEvent.buttons is not supported in Safari\r\n const isButtonPressed =\r\n typeof e.buttons === 'undefined' ? e.nativeEvent.which === 1 : e.buttons === 1;\r\n\r\n if (isButtonPressed) {\r\n this.setTime(e.nativeEvent, false);\r\n }\r\n };\r\n\r\n public handleMouseUp = (e: React.MouseEvent) => {\r\n if (this.isMoving) {\r\n this.isMoving = false;\r\n }\r\n\r\n this.setTime(e.nativeEvent, true);\r\n };\r\n\r\n public hasSelected = () => {\r\n const { type, value } = this.props;\r\n\r\n if (type === ClockType.HOURS) {\r\n return true;\r\n }\r\n\r\n return value % 5 === 0;\r\n };\r\n\r\n public render() {\r\n const { classes, value, children, type, ampm } = this.props;\r\n\r\n const isPointerInner = !ampm && type === ClockType.HOURS && (value < 1 || value > 12);\r\n\r\n return (\r\n <div className={classes.container}>\r\n <div className={classes.clock}>\r\n <div\r\n role=\"menu\"\r\n tabIndex={-1}\r\n className={classes.squareMask}\r\n onTouchMove={this.handleTouchMove}\r\n onTouchEnd={this.handleTouchEnd}\r\n onMouseUp={this.handleMouseUp}\r\n onMouseMove={this.handleMove}\r\n />\r\n\r\n <div className={classes.pin} />\r\n\r\n <ClockPointer\r\n type={type}\r\n value={value}\r\n isInner={isPointerInner}\r\n hasSelected={this.hasSelected()}\r\n />\r\n\r\n {children}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport const styles = (theme: Theme) =>\r\n createStyles({\r\n container: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'flex-end',\r\n margin: `${theme.spacing(2)}px 0 ${theme.spacing(1)}px`,\r\n },\r\n clock: {\r\n backgroundColor: 'rgba(0,0,0,.07)',\r\n borderRadius: '50%',\r\n height: 260,\r\n width: 260,\r\n position: 'relative',\r\n pointerEvents: 'none',\r\n zIndex: 1,\r\n },\r\n squareMask: {\r\n width: '100%',\r\n height: '100%',\r\n position: 'absolute',\r\n pointerEvents: 'auto',\r\n outline: 'none',\r\n touchActions: 'none',\r\n userSelect: 'none',\r\n '&:active': {\r\n cursor: 'move',\r\n },\r\n },\r\n pin: {\r\n width: 6,\r\n height: 6,\r\n borderRadius: '50%',\r\n backgroundColor: theme.palette.primary.main,\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n },\r\n });\r\n\r\nexport default withStyles(styles, {\r\n name: 'MuiPickersClock',\r\n})(Clock as React.ComponentType<ClockProps>);\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst positions: Record<number, [number, number]> = {\r\n 0: [0, 40],\r\n 1: [55, 19.6],\r\n 2: [94.4, 59.5],\r\n 3: [109, 114],\r\n 4: [94.4, 168.5],\r\n 5: [54.5, 208.4],\r\n 6: [0, 223],\r\n 7: [-54.5, 208.4],\r\n 8: [-94.4, 168.5],\r\n 9: [-109, 114],\r\n 10: [-94.4, 59.5],\r\n 11: [-54.5, 19.6],\r\n 12: [0, 5],\r\n 13: [36.9, 49.9],\r\n 14: [64, 77],\r\n 15: [74, 114],\r\n 16: [64, 151],\r\n 17: [37, 178],\r\n 18: [0, 188],\r\n 19: [-37, 178],\r\n 20: [-64, 151],\r\n 21: [-74, 114],\r\n 22: [-64, 77],\r\n 23: [-37, 50],\r\n};\r\n\r\nexport interface ClockNumberProps {\r\n index: number;\r\n label: string;\r\n selected: boolean;\r\n isInner?: boolean;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => {\r\n const size = theme.spacing(4);\r\n\r\n return {\r\n clockNumber: {\r\n width: size,\r\n height: 32,\r\n userSelect: 'none',\r\n position: 'absolute',\r\n left: `calc(50% - ${size / 2}px)`,\r\n display: 'inline-flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n borderRadius: '50%',\r\n color:\r\n theme.palette.type === 'light' ? theme.palette.text.primary : theme.palette.text.hint,\r\n },\r\n clockNumberSelected: {\r\n color: theme.palette.primary.contrastText,\r\n },\r\n };\r\n },\r\n { name: 'MuiPickersClockNumber' }\r\n);\r\n\r\nexport const ClockNumber: React.FC<ClockNumberProps> = ({ selected, label, index, isInner }) => {\r\n const classes = useStyles();\r\n const className = clsx(classes.clockNumber, {\r\n [classes.clockNumberSelected]: selected,\r\n });\r\n\r\n const transformStyle = React.useMemo(() => {\r\n const position = positions[index];\r\n\r\n return {\r\n transform: `translate(${position[0]}px, ${position[1]}px`,\r\n };\r\n }, [index]);\r\n\r\n return (\r\n <Typography\r\n component=\"span\"\r\n className={className}\r\n variant={isInner ? 'body2' : 'body1'}\r\n style={transformStyle}\r\n children={label}\r\n />\r\n );\r\n};\r\n\r\nexport default ClockNumber;\r\n","import * as React from 'react';\r\nimport ClockNumber from './ClockNumber';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\n\r\nexport const getHourNumbers = ({\r\n ampm,\r\n utils,\r\n date,\r\n}: {\r\n ampm: boolean;\r\n utils: IUtils<MaterialUiPickersDate>;\r\n date: MaterialUiPickersDate;\r\n}) => {\r\n const currentHours = utils.getHours(date);\r\n\r\n const hourNumbers: JSX.Element[] = [];\r\n const startHour = ampm ? 1 : 0;\r\n const endHour = ampm ? 12 : 23;\r\n\r\n const isSelected = (hour: number) => {\r\n if (ampm) {\r\n if (hour === 12) {\r\n return currentHours === 12 || currentHours === 0;\r\n }\r\n\r\n return currentHours === hour || currentHours - 12 === hour;\r\n }\r\n\r\n return currentHours === hour;\r\n };\r\n\r\n for (let hour = startHour; hour <= endHour; hour += 1) {\r\n let label = hour.toString();\r\n\r\n if (hour === 0) {\r\n label = '00';\r\n }\r\n\r\n const props = {\r\n index: hour,\r\n label: utils.formatNumber(label),\r\n selected: isSelected(hour),\r\n isInner: !ampm && (hour === 0 || hour > 12),\r\n };\r\n\r\n hourNumbers.push(<ClockNumber key={hour} {...props} />);\r\n }\r\n\r\n return hourNumbers;\r\n};\r\n\r\nexport const getMinutesNumbers = ({\r\n value,\r\n utils,\r\n}: {\r\n value: number;\r\n utils: IUtils<MaterialUiPickersDate>;\r\n}) => {\r\n const f = utils.formatNumber;\r\n\r\n return [\r\n <ClockNumber label={f('00')} selected={value === 0} index={12} key={12} />,\r\n <ClockNumber label={f('05')} selected={value === 5} index={1} key={1} />,\r\n <ClockNumber label={f('10')} selected={value === 10} index={2} key={2} />,\r\n <ClockNumber label={f('15')} selected={value === 15} index={3} key={3} />,\r\n <ClockNumber label={f('20')} selected={value === 20} index={4} key={4} />,\r\n <ClockNumber label={f('25')} selected={value === 25} index={5} key={5} />,\r\n <ClockNumber label={f('30')} selected={value === 30} index={6} key={6} />,\r\n <ClockNumber label={f('35')} selected={value === 35} index={7} key={7} />,\r\n <ClockNumber label={f('40')} selected={value === 40} index={8} key={8} />,\r\n <ClockNumber label={f('45')} selected={value === 45} index={9} key={9} />,\r\n <ClockNumber label={f('50')} selected={value === 50} index={10} key={10} />,\r\n <ClockNumber label={f('55')} selected={value === 55} index={11} key={11} />,\r\n ];\r\n};\r\n","import * as React from 'react';\r\nimport * as PropTypes from 'prop-types';\r\nimport Clock from './Clock';\r\nimport ClockType, { ClockViewType } from '../../constants/ClockType';\r\nimport { useUtils } from '../../_shared/hooks/useUtils';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\r\nimport { convertToMeridiem, getMeridiem } from '../../_helpers/time-utils';\r\n\r\nexport interface TimePickerViewProps {\r\n /** TimePicker value */\r\n date: MaterialUiPickersDate;\r\n /** Clock type */\r\n type: ClockViewType;\r\n /** 12h/24h clock mode */\r\n ampm?: boolean;\r\n /** Minutes step */\r\n minutesStep?: number;\r\n /** On hour change */\r\n onHourChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n /** On minutes change */\r\n onMinutesChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n /** On seconds change */\r\n onSecondsChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n}\r\n\r\nexport const TimePickerView: React.FC<TimePickerViewProps> = ({\r\n type,\r\n onHourChange,\r\n onMinutesChange,\r\n onSecondsChange,\r\n ampm,\r\n date,\r\n minutesStep,\r\n}) => {\r\n const utils = useUtils();\r\n const viewProps = React.useMemo(() => {\r\n switch (type) {\r\n case ClockType.HOURS:\r\n return {\r\n value: utils.getHours(date),\r\n children: getHourNumbers({ date, utils, ampm: Boolean(ampm) }),\r\n onChange: (value: number, isFinish?: boolean) => {\r\n const currentMeridiem = getMeridiem(date, utils);\r\n const updatedTimeWithMeridiem = convertToMeridiem(\r\n utils.setHours(date, value),\r\n currentMeridiem,\r\n Boolean(ampm),\r\n utils\r\n );\r\n\r\n onHourChange(updatedTimeWithMeridiem, isFinish);\r\n },\r\n };\r\n\r\n case ClockType.MINUTES:\r\n const minutesValue = utils.getMinutes(date);\r\n return {\r\n value: minutesValue,\r\n children: getMinutesNumbers({ value: minutesValue, utils }),\r\n onChange: (value: number, isFinish?: boolean) => {\r\n const updatedTime = utils.setMinutes(date, value);\r\n\r\n onMinutesChange(updatedTime, isFinish);\r\n },\r\n };\r\n\r\n case ClockType.SECONDS:\r\n const secondsValue = utils.getSeconds(date);\r\n return {\r\n value: secondsValue,\r\n children: getMinutesNumbers({ value: secondsValue, utils }),\r\n onChange: (value: number, isFinish?: boolean) => {\r\n const updatedTime = utils.setSeconds(date, value);\r\n\r\n onSecondsChange(updatedTime, isFinish);\r\n },\r\n };\r\n\r\n default:\r\n throw new Error('You must provide the type for TimePickerView');\r\n }\r\n }, [ampm, date, onHourChange, onMinutesChange, onSecondsChange, type, utils]);\r\n\r\n return <Clock type={type} ampm={ampm} minutesStep={minutesStep} {...viewProps} />;\r\n};\r\n\r\nTimePickerView.displayName = 'TimePickerView';\r\n\r\nTimePickerView.propTypes = {\r\n date: PropTypes.object.isRequired,\r\n onHourChange: PropTypes.func.isRequired,\r\n onMinutesChange: PropTypes.func.isRequired,\r\n onSecondsChange: PropTypes.func.isRequired,\r\n ampm: PropTypes.bool,\r\n minutesStep: PropTypes.number,\r\n type: PropTypes.oneOf(Object.keys(ClockType).map(key => ClockType[key as any])).isRequired,\r\n} as any;\r\n\r\nTimePickerView.defaultProps = {\r\n ampm: true,\r\n minutesStep: 1,\r\n};\r\n\r\nexport default React.memo(TimePickerView);\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nexport interface MonthProps {\r\n children: React.ReactNode;\r\n disabled?: boolean;\r\n onSelect: (value: any) => void;\r\n selected?: boolean;\r\n value: any;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => ({\r\n root: {\r\n flex: '1 0 33.33%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n cursor: 'pointer',\r\n outline: 'none',\r\n height: 75,\r\n transition: theme.transitions.create('font-size', { duration: '100ms' }),\r\n '&:focus': {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n },\r\n monthSelected: {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n },\r\n monthDisabled: {\r\n pointerEvents: 'none',\r\n color: theme.palette.text.hint,\r\n },\r\n }),\r\n { name: 'MuiPickersMonth' }\r\n);\r\n\r\nexport const Month: React.FC<MonthProps> = ({\r\n selected,\r\n onSelect,\r\n disabled,\r\n value,\r\n children,\r\n ...other\r\n}) => {\r\n const classes = useStyles();\r\n const handleSelection = React.useCallback(() => {\r\n onSelect(value);\r\n }, [onSelect, value]);\r\n\r\n return (\r\n <Typography\r\n role=\"button\"\r\n component=\"div\"\r\n className={clsx(classes.root, {\r\n [classes.monthSelected]: selected,\r\n [classes.monthDisabled]: disabled,\r\n })}\r\n tabIndex={disabled ? -1 : 0}\r\n onClick={handleSelection}\r\n onKeyPress={handleSelection}\r\n color={selected ? 'primary' : undefined}\r\n variant={selected ? 'h5' : 'subtitle1'}\r\n children={children}\r\n {...other}\r\n />\r\n );\r\n};\r\n\r\nMonth.displayName = 'Month';\r\n\r\nexport default Month;\r\n","import * as React from 'react';\r\nimport Month from './Month';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { useUtils } from '../../_shared/hooks/useUtils';\r\nimport { ParsableDate } from '../../constants/prop-types';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\n\r\nexport interface MonthSelectionProps {\r\n date: MaterialUiPickersDate;\r\n minDate?: ParsableDate;\r\n maxDate?: ParsableDate;\r\n onChange: (date: MaterialUiPickersDate, isFinish: boolean) => void;\r\n disablePast?: boolean | null | undefined;\r\n disableFuture?: boolean | null | undefined;\r\n onMonthChange?: (date: MaterialUiPickersDate) => void | Promise<void>;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n {\r\n container: {\r\n width: 310,\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignContent: 'stretch',\r\n },\r\n },\r\n { name: 'MuiPickersMonthSelection' }\r\n);\r\n\r\nexport const MonthSelection: React.FC<MonthSelectionProps> = ({\r\n disablePast,\r\n disableFuture,\r\n minDate,\r\n maxDate,\r\n date,\r\n onMonthChange,\r\n onChange,\r\n}) => {\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n const currentMonth = utils.getMonth(date);\r\n\r\n const shouldDisableMonth = (month: MaterialUiPickersDate) => {\r\n const now = utils.date();\r\n const utilMinDate = utils.date(minDate);\r\n const utilMaxDate = utils.date(maxDate);\r\n\r\n const firstEnabledMonth = utils.startOfMonth(\r\n disablePast && utils.isAfter(now, utilMinDate) ? now : utilMinDate\r\n );\r\n\r\n const lastEnabledMonth = utils.startOfMonth(\r\n disableFuture && utils.isBefore(now, utilMaxDate) ? now : utilMaxDate\r\n );\r\n\r\n const isBeforeFirstEnabled = utils.isBefore(month, firstEnabledMonth);\r\n const isAfterLastEnabled = utils.isAfter(month, lastEnabledMonth);\r\n\r\n return isBeforeFirstEnabled || isAfterLastEnabled;\r\n };\r\n\r\n const onMonthSelect = React.useCallback(\r\n (month: number) => {\r\n const newDate = utils.setMonth(date, month);\r\n\r\n onChange(newDate, true);\r\n if (onMonthChange) {\r\n onMonthChange(newDate);\r\n }\r\n },\r\n [date, onChange, onMonthChange, utils]\r\n );\r\n\r\n return (\r\n <div className={classes.container}>\r\n {utils.getMonthArray(date).map(month => {\r\n const monthNumber = utils.getMonth(month);\r\n const monthText = utils.format(month, 'MMM');\r\n\r\n return (\r\n <Month\r\n key={monthText}\r\n value={monthNumber}\r\n selected={monthNumber === currentMonth}\r\n onSelect={onMonthSelect}\r\n disabled={shouldDisableMonth(month)}\r\n >\r\n {monthText}\r\n </Month>\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { useIsomorphicEffect } from './useKeyDown';\r\nimport { BasePickerProps } from '../../typings/BasePicker';\r\n\r\nconst getOrientation = () =>\r\n typeof window !== 'undefined' &&\r\n window.screen &&\r\n window.screen.orientation &&\r\n Math.abs(window.screen.orientation.angle) === 90\r\n ? 'landscape'\r\n : 'portrait';\r\n\r\nexport function useIsLandscape(customOrientation?: BasePickerProps['orientation']) {\r\n const [orientation, setOrientation] = React.useState<BasePickerProps['orientation']>(\r\n getOrientation()\r\n );\r\n\r\n const eventHandler = React.useCallback(() => setOrientation(getOrientation()), []);\r\n\r\n useIsomorphicEffect(() => {\r\n window.addEventListener('orientationchange', eventHandler);\r\n return () => window.removeEventListener('orientationchange', eventHandler);\r\n }, [eventHandler]);\r\n\r\n const orientationToUse = customOrientation || orientation;\r\n return orientationToUse === 'landscape';\r\n}\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport Calendar from '../views/Calendar/Calendar';\r\nimport { useUtils } from '../_shared/hooks/useUtils';\r\nimport { useViews } from '../_shared/hooks/useViews';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { YearSelection } from '../views/Year/YearView';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\nimport { BasePickerProps } from '../typings/BasePicker';\r\nimport { TimePickerView } from '../views/Clock/ClockView';\r\nimport { MonthSelection } from '../views/Month/MonthView';\r\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\r\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\r\nimport { useIsLandscape } from '../_shared/hooks/useIsLandscape';\r\nimport { datePickerDefaultProps } from '../constants/prop-types';\r\nimport { DIALOG_WIDTH_WIDER, DIALOG_WIDTH, VIEW_HEIGHT } from '../constants/dimensions';\r\nimport { DialogActions, Button } from '@material-ui/core';\r\n\r\nconst viewsMap = {\r\n year: YearSelection,\r\n month: MonthSelection,\r\n date: Calendar,\r\n hours: TimePickerView,\r\n minutes: TimePickerView,\r\n seconds: TimePickerView,\r\n};\r\n\r\nexport type PickerView = keyof typeof viewsMap;\r\n\r\nexport type ToolbarComponentProps = BaseDatePickerProps &\r\n BaseTimePickerProps & {\r\n views: PickerView[];\r\n openView: PickerView;\r\n date: MaterialUiPickersDate;\r\n setOpenView: (view: PickerView) => void;\r\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n // TODO move out, cause it is DateTimePickerOnly\r\n hideTabs?: boolean;\r\n dateRangeIcon?: React.ReactNode;\r\n timeIcon?: React.ReactNode;\r\n isLandscape: boolean;\r\n };\r\n\r\nexport interface PickerViewProps extends BaseDatePickerProps, BaseTimePickerProps {\r\n views: PickerView[];\r\n openTo: PickerView;\r\n disableToolbar?: boolean;\r\n ToolbarComponent: React.ComponentType<ToolbarComponentProps>;\r\n // TODO move out, cause it is DateTimePickerOnly\r\n hideTabs?: boolean;\r\n dateRangeIcon?: React.ReactNode;\r\n timeIcon?: React.ReactNode;\r\n}\r\n\r\ninterface PickerProps extends PickerViewProps {\r\n date: MaterialUiPickersDate;\r\n orientation?: BasePickerProps['orientation'];\r\n onChange: (date: MaterialUiPickersDate, isFinish?: boolean) => void;\r\n showActionsBar?: boolean;\r\n showTodayButton?: boolean;\r\n todayLabel?: string;\r\n showShiftButtons?: boolean;\r\n setShiftFunction?: (days: number) => Date;\r\n shiftButtonValues?: Object;\r\n onSetToday?: () => void;\r\n onSetShift?: (shiftDate: Date) => void;\r\n}\r\n\r\nconst useStyles = makeStyles(\r\n {\r\n container: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n containerLandscape: {\r\n flexDirection: 'row',\r\n },\r\n pickerView: {\r\n overflowX: 'hidden',\r\n minHeight: VIEW_HEIGHT,\r\n minWidth: DIALOG_WIDTH,\r\n maxWidth: DIALOG_WIDTH_WIDER,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n },\r\n pickerViewLandscape: {\r\n padding: '0 8px',\r\n },\r\n },\r\n { name: 'MuiPickersBasePicker' }\r\n);\r\n\r\nconst useButtonsStyles = makeStyles(\r\n {\r\n root: {\r\n minWidth: 32,\r\n },\r\n },\r\n { name: 'MuiButtonBase' }\r\n);\r\n\r\nexport const useDialogActionsStyles = makeStyles({\r\n withAdditionalAction: {},\r\n});\r\n\r\nexport const Picker: React.FunctionComponent<PickerProps> = props => {\r\n const {\r\n date,\r\n ampm,\r\n views,\r\n disableToolbar,\r\n disablePast,\r\n disableFuture,\r\n hideTabs,\r\n onChange,\r\n openTo,\r\n minutesStep,\r\n dateRangeIcon,\r\n timeIcon,\r\n minDate: unparsedMinDate,\r\n maxDate: unparsedMaxDate,\r\n animateYearScrolling,\r\n leftArrowIcon,\r\n rightArrowIcon,\r\n renderDay,\r\n shouldDisableDate,\r\n allowKeyboardControl,\r\n onMonthChange,\r\n onYearChange,\r\n leftArrowButtonProps,\r\n rightArrowButtonProps,\r\n ToolbarComponent,\r\n loadingIndicator,\r\n orientation,\r\n showActionsBar,\r\n onSetToday,\r\n showTodayButton,\r\n todayLabel,\r\n onSetShift,\r\n showShiftButtons,\r\n setShiftFunction,\r\n shiftButtonValues,\r\n } = props;\r\n\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n const buttonClasses = useButtonsStyles();\r\n const dialogActionsClasses = useDialogActionsStyles();\r\n const isLandscape = useIsLandscape(orientation);\r\n const { openView, setOpenView, handleChangeAndOpenNext } = useViews(views, openTo, onChange);\r\n\r\n const minDate = React.useMemo(() => utils.date(unparsedMinDate)!, [unparsedMinDate, utils]);\r\n const maxDate = React.useMemo(() => utils.date(unparsedMaxDate)!, [unparsedMaxDate, utils]);\r\n\r\n let shiftButtons = new Array();\r\n if (showShiftButtons && setShiftFunction && onSetShift && shiftButtonValues) {\r\n for (let key in shiftButtonValues) {\r\n shiftButtons.push(\r\n <Button\r\n color=\"primary\"\r\n onClick={() => onSetShift(setShiftFunction(parseInt(key)))}\r\n key={shiftButtonValues[key]}\r\n >\r\n {parseInt(key) > 0 ? '+' : ''}\r\n {shiftButtonValues[key]}\r\n </Button>\r\n );\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n className={clsx(classes.container, {\r\n [classes.containerLandscape]: isLandscape,\r\n })}\r\n >\r\n {!disableToolbar && (\r\n <ToolbarComponent\r\n date={date}\r\n onChange={onChange}\r\n setOpenView={setOpenView}\r\n openView={openView}\r\n hideTabs={hideTabs}\r\n dateRangeIcon={dateRangeIcon}\r\n timeIcon={timeIcon}\r\n isLandscape={isLandscape}\r\n {...props}\r\n />\r\n )}\r\n\r\n <div className={clsx(classes.pickerView, { [classes.pickerViewLandscape]: isLandscape })}>\r\n {openView === 'year' && (\r\n <YearSelection\r\n date={date}\r\n onChange={handleChangeAndOpenNext}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n onYearChange={onYearChange}\r\n animateYearScrolling={animateYearScrolling}\r\n />\r\n )}\r\n\r\n {openView === 'month' && (\r\n <MonthSelection\r\n date={date}\r\n onChange={handleChangeAndOpenNext}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n onMonthChange={onMonthChange}\r\n />\r\n )}\r\n\r\n {openView === 'date' && (\r\n <Calendar\r\n date={date}\r\n onChange={handleChangeAndOpenNext}\r\n onMonthChange={onMonthChange}\r\n disablePast={disablePast}\r\n disableFuture={disableFuture}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n leftArrowIcon={leftArrowIcon}\r\n leftArrowButtonProps={leftArrowButtonProps}\r\n rightArrowIcon={rightArrowIcon}\r\n rightArrowButtonProps={rightArrowButtonProps}\r\n renderDay={renderDay}\r\n shouldDisableDate={shouldDisableDate}\r\n allowKeyboardControl={allowKeyboardControl}\r\n loadingIndicator={loadingIndicator}\r\n />\r\n )}\r\n\r\n {(openView === 'hours' || openView === 'minutes' || openView === 'seconds') && (\r\n <TimePickerView\r\n date={date}\r\n ampm={ampm}\r\n type={openView}\r\n minutesStep={minutesStep}\r\n onHourChange={handleChangeAndOpenNext}\r\n onMinutesChange={handleChangeAndOpenNext}\r\n onSecondsChange={handleChangeAndOpenNext}\r\n />\r\n )}\r\n </div>\r\n\r\n {showActionsBar && (\r\n <DialogActions\r\n classes={{\r\n root: clsx({\r\n [dialogActionsClasses.withAdditionalAction]: showTodayButton,\r\n }),\r\n }}\r\n >\r\n {showTodayButton && (\r\n <Button color=\"primary\" onClick={onSetToday} key=\"today\">\r\n {todayLabel}\r\n </Button>\r\n )}\r\n\r\n {showShiftButtons && setShiftFunction && shiftButtons}\r\n </DialogActions>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nPicker.defaultProps = {\r\n ...datePickerDefaultProps,\r\n views: Object.keys(viewsMap),\r\n} as any;\r\n","/* eslint-disable react-hooks/rules-of-hooks */\r\nimport { BasePickerProps } from '../../typings/BasePicker';\r\nimport { useCallback, useState, Dispatch, SetStateAction } from 'react';\r\n\r\nexport function useOpenState({ open, onOpen, onClose }: BasePickerProps) {\r\n let setIsOpenState: null | Dispatch<SetStateAction<boolean>> = null;\r\n if (open === undefined || open === null) {\r\n // The component is uncontrolled, so we need to give it its own state.\r\n [open, setIsOpenState] = useState<boolean>(false);\r\n }\r\n\r\n // prettier-ignore\r\n const setIsOpen = useCallback((newIsOpen: boolean) => {\r\n setIsOpenState && setIsOpenState(newIsOpen);\r\n\r\n return newIsOpen\r\n ? onOpen && onOpen()\r\n : onClose && onClose();\r\n }, [onOpen, onClose, setIsOpenState]);\r\n\r\n return { isOpen: open, setIsOpen };\r\n}\r\n","import { DatePickerProps } from '..';\r\nimport { Omit } from '@material-ui/core';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { ParsableDate } from '../constants/prop-types';\r\nimport { BasePickerProps } from '../typings/BasePicker';\r\n\r\nconst replaceAt = (str: string, index: number, replacement: string) => {\r\n replacement = replacement || '';\r\n return str.substr(0, index) + replacement + str.substr(index + replacement.length);\r\n};\r\n\r\nexport const getDisplayDate = (\r\n value: ParsableDate,\r\n format: string,\r\n utils: IUtils<any>,\r\n isEmpty: boolean,\r\n { invalidLabel, emptyLabel, labelFunc }: Omit<BasePickerProps, 'value' | 'onChange'>\r\n) => {\r\n const date = utils.date(value);\r\n if (labelFunc) {\r\n return labelFunc(isEmpty ? null : date, invalidLabel!);\r\n }\r\n\r\n if (isEmpty) {\r\n return emptyLabel || '';\r\n }\r\n\r\n return utils.isValid(date) ? utils.format(date, format) : invalidLabel!;\r\n};\r\n\r\nexport interface BaseValidationProps {\r\n /**\r\n * Message, appearing when date cannot be parsed\r\n * @default 'Invalid Date Format'\r\n */\r\n invalidDateMessage?: React.ReactNode;\r\n}\r\n\r\nexport interface DateValidationProps extends BaseValidationProps {\r\n /**\r\n * Error message, shown if date is less then minimal date\r\n * @default 'Date should not be before minimal date'\r\n */\r\n minDateMessage?: React.ReactNode;\r\n /**\r\n * Error message, shown if date is more then maximal date\r\n * @default 'Date should not be after maximal date'\r\n */\r\n maxDateMessage?: React.ReactNode;\r\n}\r\n\r\nconst getComparisonMaxDate = (utils: IUtils<any>, strictCompareDates: boolean, date: Date) => {\r\n if (strictCompareDates) {\r\n return date;\r\n }\r\n\r\n return utils.endOfDay(date);\r\n};\r\n\r\nconst getComparisonMinDate = (utils: IUtils<any>, strictCompareDates: boolean, date: Date) => {\r\n if (strictCompareDates) {\r\n return date;\r\n }\r\n\r\n return utils.startOfDay(date);\r\n};\r\n\r\nexport const validate = (\r\n value: ParsableDate,\r\n utils: IUtils<any>,\r\n {\r\n maxDate,\r\n minDate,\r\n disablePast,\r\n disableFuture,\r\n maxDateMessage,\r\n minDateMessage,\r\n invalidDateMessage,\r\n strictCompareDates,\r\n }: Omit<DatePickerProps, 'views' | 'openTo'> // DateTimePicker doesn't support\r\n): React.ReactNode => {\r\n const parsedValue = utils.date(value);\r\n\r\n // if null - do not show error\r\n if (value === null) {\r\n return '';\r\n }\r\n\r\n if (!utils.isValid(value)) {\r\n return invalidDateMessage;\r\n }\r\n\r\n if (\r\n maxDate &&\r\n utils.isAfter(\r\n parsedValue,\r\n getComparisonMaxDate(utils, !!strictCompareDates, utils.date(maxDate))\r\n )\r\n ) {\r\n return maxDateMessage;\r\n }\r\n\r\n if (\r\n disableFuture &&\r\n utils.isAfter(parsedValue, getComparisonMaxDate(utils, !!strictCompareDates, utils.date()))\r\n ) {\r\n return maxDateMessage;\r\n }\r\n\r\n if (\r\n minDate &&\r\n utils.isBefore(\r\n parsedValue,\r\n getComparisonMinDate(utils, !!strictCompareDates, utils.date(minDate))\r\n )\r\n ) {\r\n return minDateMessage;\r\n }\r\n if (\r\n disablePast &&\r\n utils.isBefore(parsedValue, getComparisonMinDate(utils, !!strictCompareDates, utils.date()))\r\n ) {\r\n return minDateMessage;\r\n }\r\n\r\n return '';\r\n};\r\n\r\nexport function pick12hOr24hFormat(\r\n userFormat: string | undefined,\r\n ampm: boolean | undefined = true,\r\n formats: { '12h': string; '24h': string }\r\n) {\r\n if (userFormat) {\r\n return userFormat;\r\n }\r\n\r\n return ampm ? formats['12h'] : formats['24h'];\r\n}\r\n\r\nexport function makeMaskFromFormat(format: string, numberMaskChar: string) {\r\n return format.replace(/[a-z]/gi, numberMaskChar);\r\n}\r\n\r\nexport const maskedDateFormatter = (mask: string, numberMaskChar: string) => (\r\n value: string,\r\n oldValue: string,\r\n currentCaretPosition?: number\r\n) => {\r\n const refuse = /[^\\d\\w_]+/gi;\r\n\r\n if (!value || value === '') {\r\n return value;\r\n }\r\n\r\n if (!oldValue) {\r\n oldValue = '';\r\n }\r\n\r\n if (value == oldValue) {\r\n return value;\r\n }\r\n\r\n if (value.length < oldValue.length && currentCaretPosition != null) {\r\n value =\r\n value.slice(0, currentCaretPosition) +\r\n '_' +\r\n value.slice(currentCaretPosition, oldValue.length);\r\n }\r\n\r\n let refusedOldValue = oldValue.replace(refuse, '');\r\n let refusedNewValue = value.replace(refuse, '');\r\n let refusedMaskSymbols = mask.replace(refuse, '');\r\n\r\n const minLength =\r\n refusedOldValue.length > refusedNewValue.length\r\n ? refusedNewValue.length\r\n : refusedOldValue.length;\r\n\r\n let startPos = 0;\r\n let endPosShift = 0;\r\n while (startPos < minLength) {\r\n if (refusedNewValue[startPos] == refusedOldValue[startPos]) {\r\n startPos++;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n while (\r\n endPosShift < minLength &&\r\n startPos < refusedNewValue.length - endPosShift &&\r\n startPos < refusedOldValue.length - endPosShift\r\n ) {\r\n if (\r\n refusedNewValue[refusedNewValue.length - endPosShift - 1] ==\r\n refusedOldValue[refusedOldValue.length - endPosShift - 1]\r\n ) {\r\n endPosShift++;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n let endStartPos = refusedNewValue.length - endPosShift;\r\n endStartPos = endStartPos < startPos ? startPos : endStartPos;\r\n\r\n let firstPart = refusedNewValue.slice(0, startPos);\r\n let addedPart = refusedNewValue.slice(startPos, endStartPos);\r\n let endPart = refusedNewValue.slice(endStartPos, refusedNewValue.length);\r\n\r\n let maxSymbolsInEnd = refusedMaskSymbols.length - firstPart.length - addedPart.length;\r\n while (maxSymbolsInEnd > endPart.length) {\r\n addedPart += numberMaskChar;\r\n maxSymbolsInEnd--;\r\n }\r\n let entireRefusedString =\r\n firstPart + addedPart + endPart.slice(endPart.length - maxSymbolsInEnd, endPart.length);\r\n\r\n // Do nothing ?...\r\n entireRefusedString = entireRefusedString.slice(0, refusedMaskSymbols.length);\r\n\r\n let i = 0;\r\n let n = 0;\r\n let result = '';\r\n while (i < mask.length) {\r\n const maskChar = mask[i];\r\n if (maskChar === numberMaskChar && n < entireRefusedString.length) {\r\n const parsedChar = entireRefusedString[n];\r\n result += parsedChar;\r\n n += 1;\r\n } else {\r\n result += maskChar;\r\n }\r\n i += 1;\r\n }\r\n\r\n return result;\r\n};\r\n","import { useUtils } from './useUtils';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { MaterialUiPickersDate } from '../..';\r\nimport { useOpenState } from './useOpenState';\r\nimport { BasePickerProps } from '../../typings/BasePicker';\r\nimport { getDisplayDate, validate } from '../../_helpers/text-field-helper';\r\nimport { useCallback, useDebugValue, useEffect, useMemo, useState, useRef } from 'react';\r\n\r\nexport interface StateHookOptions {\r\n getDefaultFormat: () => string;\r\n}\r\n\r\nconst useValueToDate = (\r\n utils: IUtils<MaterialUiPickersDate>,\r\n { value, initialFocusedDate }: BasePickerProps\r\n) => {\r\n const nowRef = useRef(utils.date());\r\n const date = utils.date(value || initialFocusedDate || nowRef.current);\r\n\r\n return date && utils.isValid(date) ? date : nowRef.current;\r\n};\r\n\r\nfunction useDateValues(props: BasePickerProps, options: StateHookOptions) {\r\n const utils = useUtils();\r\n const date = useValueToDate(utils, props);\r\n const format = props.format || options.getDefaultFormat();\r\n\r\n return { date, format };\r\n}\r\n\r\nexport function usePickerState(props: BasePickerProps, options: StateHookOptions) {\r\n const { autoOk, disabled, onAccept, onChange, onError, value, variant } = props;\r\n\r\n const utils = useUtils();\r\n const { isOpen, setIsOpen } = useOpenState(props);\r\n const { date, format } = useDateValues(props, options);\r\n const [pickerDate, setPickerDate] = useState(date);\r\n\r\n useEffect(() => {\r\n // if value was changed in closed state - treat it as accepted\r\n if (!isOpen && !utils.isEqual(pickerDate, date)) {\r\n setPickerDate(date);\r\n }\r\n }, [date, isOpen, pickerDate, utils]);\r\n\r\n const acceptDate = useCallback(\r\n (acceptedDate: MaterialUiPickersDate) => {\r\n setIsOpen(false);\r\n onChange(acceptedDate);\r\n\r\n if (onAccept) {\r\n onAccept(acceptedDate);\r\n }\r\n },\r\n [onAccept, onChange, setIsOpen]\r\n );\r\n\r\n const wrapperProps = useMemo(\r\n () => ({\r\n format,\r\n open: isOpen,\r\n onClear: () => acceptDate(null),\r\n onAccept: () => acceptDate(pickerDate),\r\n onSetToday: () => setPickerDate(utils.date()),\r\n onDismiss: () => {\r\n setIsOpen(false);\r\n },\r\n }),\r\n [acceptDate, format, isOpen, pickerDate, setIsOpen, utils]\r\n );\r\n\r\n const pickerProps = useMemo(\r\n () => ({\r\n date: pickerDate,\r\n onChange: (newDate: MaterialUiPickersDate, isFinish = true) => {\r\n setPickerDate(newDate);\r\n\r\n if (isFinish && autoOk) {\r\n acceptDate(newDate);\r\n } else if (variant === 'inline' || variant === 'static') {\r\n onChange(newDate);\r\n }\r\n },\r\n onSetToday: () => {\r\n let newDate = utils.date();\r\n setPickerDate(newDate);\r\n\r\n if (autoOk) {\r\n acceptDate(newDate);\r\n } else if (variant === 'inline' || variant === 'static') {\r\n onChange(newDate);\r\n }\r\n },\r\n onSetShift: (shiftDate: Date) => {\r\n let newDate = utils.date(shiftDate);\r\n\r\n if (autoOk) {\r\n acceptDate(newDate);\r\n } else if (variant === 'inline' || variant === 'static') {\r\n onChange(newDate);\r\n }\r\n },\r\n }),\r\n [acceptDate, autoOk, onChange, pickerDate, variant]\r\n );\r\n\r\n const validationError = validate(value, utils, props);\r\n useEffect(() => {\r\n if (validationError && onError) {\r\n onError(validationError, value);\r\n }\r\n }, [onError, validationError, value]);\r\n\r\n const inputValue = getDisplayDate(date, format, utils, value === null, props);\r\n const inputProps = useMemo(\r\n () => ({\r\n inputValue,\r\n validationError,\r\n onClick: () => !disabled && setIsOpen(true),\r\n }),\r\n [disabled, inputValue, setIsOpen, validationError]\r\n );\r\n\r\n const pickerState = { pickerProps, inputProps, wrapperProps };\r\n\r\n useDebugValue(pickerState);\r\n return pickerState;\r\n}\r\n","import * as React from 'react';\r\nimport TextField, { BaseTextFieldProps, TextFieldProps } from '@material-ui/core/TextField';\r\nimport { ExtendMui } from '../typings/extendMui';\r\n\r\nexport interface PureDateInputProps\r\n extends ExtendMui<BaseTextFieldProps, 'variant' | 'onError' | 'onChange' | 'value'> {\r\n /** Pass material-ui text field variant down, bypass internal variant prop */\r\n inputVariant?: TextFieldProps['variant'];\r\n /** Override input component */\r\n TextFieldComponent?: React.ComponentType<TextFieldProps>;\r\n InputProps?: TextFieldProps['InputProps'];\r\n inputValue: string;\r\n validationError?: React.ReactNode;\r\n}\r\n\r\nexport const PureDateInput: React.FC<PureDateInputProps> = ({\r\n inputValue,\r\n inputVariant,\r\n validationError,\r\n InputProps,\r\n TextFieldComponent = TextField,\r\n ...other\r\n}) => {\r\n const PureDateInputProps = React.useMemo(\r\n () => ({\r\n ...InputProps,\r\n readOnly: true,\r\n }),\r\n [InputProps]\r\n );\r\n\r\n return (\r\n <TextFieldComponent\r\n error={Boolean(validationError)}\r\n helperText={validationError}\r\n {...other}\r\n // do not overridable\r\n value={inputValue}\r\n variant={inputVariant as any}\r\n InputProps={PureDateInputProps}\r\n />\r\n );\r\n};\r\n\r\nPureDateInput.displayName = 'PureDateInput';\r\n","import * as React from 'react';\r\nimport { Picker } from './Picker';\r\nimport { BasePickerProps } from '../typings/BasePicker';\r\nimport { MakePickerOptions } from './WrappedKeyboardPicker';\r\nimport { ExtendWrapper, Wrapper } from '../wrappers/Wrapper';\r\nimport { usePickerState } from '../_shared/hooks/usePickerState';\r\nimport { DateValidationProps } from '../_helpers/text-field-helper';\r\nimport { PureDateInput, PureDateInputProps } from '../_shared/PureDateInput';\r\n\r\nexport type WrappedPurePickerProps = DateValidationProps &\r\n BasePickerProps &\r\n ExtendWrapper<PureDateInputProps>;\r\n\r\nexport function makePurePicker<T extends any>({\r\n useOptions,\r\n getCustomProps,\r\n DefaultToolbarComponent,\r\n}: MakePickerOptions<WrappedPurePickerProps & T>): React.FC<WrappedPurePickerProps & T> {\r\n function WrappedPurePicker(props: WrappedPurePickerProps & T) {\r\n const {\r\n allowKeyboardControl,\r\n ampm,\r\n hideTabs,\r\n animateYearScrolling,\r\n autoOk,\r\n disableFuture,\r\n disablePast,\r\n format,\r\n forwardedRef,\r\n initialFocusedDate,\r\n invalidDateMessage,\r\n labelFunc,\r\n leftArrowIcon,\r\n leftArrowButtonProps,\r\n maxDate,\r\n maxDateMessage,\r\n minDate,\r\n onOpen,\r\n onClose,\r\n minDateMessage,\r\n strictCompareDates,\r\n minutesStep,\r\n onAccept,\r\n onChange,\r\n onMonthChange,\r\n onYearChange,\r\n renderDay,\r\n views,\r\n openTo,\r\n rightArrowIcon,\r\n rightArrowButtonProps,\r\n shouldDisableDate,\r\n dateRangeIcon,\r\n emptyLabel,\r\n invalidLabel,\r\n timeIcon,\r\n value,\r\n variant,\r\n orientation,\r\n disableToolbar,\r\n loadingIndicator,\r\n ToolbarComponent = DefaultToolbarComponent,\r\n showActionsBar,\r\n showTodayButton,\r\n todayLabel,\r\n showShiftButtons,\r\n setShiftFunction,\r\n shiftButtonValues,\r\n ...other\r\n } = props;\r\n\r\n const injectedProps = getCustomProps ? getCustomProps(props) : {};\r\n\r\n const options = useOptions(props);\r\n const { pickerProps, inputProps, wrapperProps } = usePickerState(props, options);\r\n\r\n return (\r\n <Wrapper\r\n variant={variant}\r\n InputComponent={PureDateInput}\r\n DateInputProps={inputProps}\r\n showTodayButton={showTodayButton}\r\n todayLabel={todayLabel}\r\n {...wrapperProps}\r\n {...injectedProps}\r\n {...other}\r\n >\r\n <Picker\r\n {...pickerProps}\r\n orientation={orientation}\r\n disableToolbar={disableToolbar}\r\n ToolbarComponent={ToolbarComponent}\r\n hideTabs={hideTabs}\r\n ampm={ampm}\r\n views={views}\r\n openTo={openTo}\r\n allowKeyboardControl={allowKeyboardControl}\r\n minutesStep={minutesStep}\r\n animateYearScrolling={animateYearScrolling}\r\n disableFuture={disableFuture}\r\n disablePast={disablePast}\r\n leftArrowIcon={leftArrowIcon}\r\n leftArrowButtonProps={leftArrowButtonProps}\r\n maxDate={maxDate}\r\n minDate={minDate}\r\n strictCompareDates={strictCompareDates}\r\n onMonthChange={onMonthChange}\r\n onYearChange={onYearChange}\r\n renderDay={renderDay}\r\n dateRangeIcon={dateRangeIcon}\r\n timeIcon={timeIcon}\r\n rightArrowIcon={rightArrowIcon}\r\n rightArrowButtonProps={rightArrowButtonProps}\r\n shouldDisableDate={shouldDisableDate}\r\n loadingIndicator={loadingIndicator}\r\n showActionsBar={showActionsBar}\r\n showTodayButton={showTodayButton}\r\n todayLabel={todayLabel}\r\n showShiftButtons={showShiftButtons}\r\n setShiftFunction={setShiftFunction}\r\n shiftButtonValues={shiftButtonValues}\r\n />\r\n </Wrapper>\r\n );\r\n }\r\n\r\n return WrappedPurePicker;\r\n}\r\n","import React from 'react';\r\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\r\n\r\nexport const KeyboardIcon: React.SFC<SvgIconProps> = props => {\r\n return (\r\n <SvgIcon {...props}>\r\n <path d=\"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\" />\r\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n </SvgIcon>\r\n );\r\n};\r\n","import * as React from 'react';\r\n\r\ntype Props = {\r\n value: string;\r\n maskChar: string;\r\n onChange: (value: string) => void;\r\n format: (str: string, oldValue: string, currentCaretPosition?: number) => string;\r\n mask?: boolean;\r\n replace?: (value: string) => string;\r\n accept?: RegExp;\r\n letterPosition?: number;\r\n children: (value: {\r\n value: string;\r\n onChange: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>;\r\n }) => any;\r\n};\r\n\r\nexport const Rifm = (props: Props) => {\r\n const [, refresh] = React.useReducer(c => c + 1, 0);\r\n const valueRef = React.useRef<any>(null);\r\n const { replace, maskChar } = props;\r\n const [previousValue, setPreviousValue] = React.useState({ value: '' });\r\n const userValue = replace\r\n ? replace(props.format(props.value, previousValue.value))\r\n : props.format(props.value, previousValue.value);\r\n\r\n const currentPreviousValue = previousValue.value;\r\n\r\n // state of delete button see comments below about inputType support\r\n const isDeleleteButtonDownRef = React.useRef(false);\r\n\r\n const onChange = (evt: any) => {\r\n const eventValue = evt.target.value;\r\n const selectionStart = evt.target.selectionStart;\r\n\r\n valueRef.current = [\r\n eventValue, // eventValue\r\n evt.target, // input\r\n eventValue.length > userValue.length, // isSizeIncreaseOperation\r\n isDeleleteButtonDownRef.current, // isDeleleteButtonDown\r\n selectionStart, // selectionStart\r\n userValue === props.format(eventValue, currentPreviousValue, selectionStart), // isNoOperation\r\n props.value, // value for which the input event was emitted\r\n ];\r\n\r\n // The main trick is to update underlying input with non formatted value (= eventValue)\r\n // that allows us to calculate right cursor position after formatting (see getCursorPosition)\r\n // then we format new value and call props.onChange with masked/formatted value\r\n // and finally we are able to set cursor position into right place\r\n refresh(null);\r\n };\r\n\r\n // React prints warn on server in non production mode about useLayoutEffect usage\r\n // in both cases it's noop\r\n if (typeof window !== 'undefined') {\r\n React.useLayoutEffect(() => {\r\n if (valueRef.current == null) return;\r\n\r\n let [\r\n eventValue,\r\n input,\r\n isSizeIncreaseOperation,\r\n isDeleleteButtonDown,\r\n selectionStart,\r\n // No operation means that value itself hasn't been changed, BTW cursor, selection etc can be changed\r\n isNoOperation,\r\n valueAtChange,\r\n ] = valueRef.current;\r\n valueRef.current = null;\r\n\r\n // A calendar selection can replace the controlled value in the same React batch as an\r\n // input event from the mask. In that case the event describes an obsolete value and must\r\n // not overwrite the date selected in the calendar.\r\n if (props.value !== valueAtChange) {\r\n refresh(null);\r\n return;\r\n }\r\n\r\n // this usually occurs on deleting special symbols like ' here 123'123.00\r\n // in case of isDeleleteButtonDown cursor should move differently vs backspace\r\n const deleteWasNoOp = isDeleleteButtonDown && isNoOperation;\r\n\r\n // Create string from only accepted symbols\r\n const clean = (str: string) => (str.match(props.accept || /\\d|\\w/g) || []).join('');\r\n\r\n const valueBeforeSelectionStart = clean(eventValue.substr(0, input.selectionStart));\r\n\r\n // trying to find cursor position in formatted value having knowledge about valueBeforeSelectionStart\r\n // This works because we assume that format doesn't change the order of accepted symbols.\r\n // Imagine we have formatter which adds ' symbol between numbers, and by default we refuse all non numeric symbols\r\n // for example we had input = 1'2|'4 (| means cursor position) then user entered '3' symbol\r\n // inputValue = 1'23'|4 so valueBeforeSelectionStart = 123 and formatted value = 1'2'3'4\r\n // calling getCursorPosition(\"1'2'3'4\") will give us position after 3, 1'2'3|'4\r\n // so for formatting just this function to determine cursor position after formatting is enough\r\n // with masking we need to do some additional checks see `mask` below\r\n const getCursorPosition = (val: any) => {\r\n let start = 0;\r\n let cleanPos = 0;\r\n\r\n for (let i = 0; i !== valueBeforeSelectionStart.length; ++i) {\r\n let newPos = val.indexOf(valueBeforeSelectionStart[i], start) + 1;\r\n\r\n let newCleanPos = clean(val).indexOf(valueBeforeSelectionStart[i], cleanPos) + 1;\r\n\r\n // this skips position change if accepted symbols order was broken\r\n // For example fixes edge case with fixed point numbers:\r\n // You have '0|.00', then press 1, it becomes 01|.00 and after format 1.00, this breaks our assumption\r\n // that order of accepted symbols is not changed after format,\r\n // so here we don't update start position if other accepted symbols was inbetween current and new position\r\n if (newCleanPos - cleanPos > 1) {\r\n newPos = start;\r\n newCleanPos = cleanPos;\r\n }\r\n\r\n cleanPos = Math.max(newCleanPos, cleanPos);\r\n start = Math.max(start, newPos);\r\n }\r\n return start;\r\n };\r\n\r\n //let start = getCursorPosition(eventValue);\r\n\r\n // // Masking part, for masks if size of mask is above some value\r\n // // we need to replace symbols instead of do nothing as like in format\r\n // if (props.mask === true && isSizeIncreaseOperation && !isNoOperation) {\r\n // const c = clean(eventValue.substr(start))[0];\r\n // start = eventValue.indexOf(c, start);\r\n\r\n // eventValue = `${eventValue.substr(0, start)}${eventValue.substr(\r\n // start + 1\r\n // )}`;\r\n // }\r\n\r\n const formattedValue = props.format(eventValue, currentPreviousValue, selectionStart);\r\n let replacedValue = replace ? replace(formattedValue) : formattedValue;\r\n\r\n let start = getCursorPosition(formattedValue);\r\n let inputCharPosition = start - 1;\r\n if (inputCharPosition > -1) {\r\n if (\r\n props.letterPosition &&\r\n props.letterPosition > -1 &&\r\n replacedValue[inputCharPosition].match(/[a-zA-Z]/) &&\r\n (inputCharPosition < props.letterPosition || inputCharPosition > props.letterPosition + 1)\r\n ) {\r\n replacedValue = currentPreviousValue;\r\n } else if (\r\n props.letterPosition &&\r\n props.letterPosition > -1 &&\r\n replacedValue[inputCharPosition].match(/\\d/) &&\r\n (inputCharPosition >= props.letterPosition &&\r\n inputCharPosition <= props.letterPosition + 1)\r\n ) {\r\n replacedValue = currentPreviousValue;\r\n }\r\n }\r\n\r\n if (userValue === replacedValue) {\r\n // if nothing changed for formatted value, just refresh so userValue will be used at render\r\n refresh(null);\r\n } else {\r\n props.onChange(replacedValue);\r\n }\r\n\r\n return () => {\r\n // Visually improves working with masked values,\r\n // like cursor jumping over refused symbols\r\n // as an example date mask: was \"5|1-24-3\" then user pressed \"6\"\r\n // it becomes \"56-|12-43\" with this code, and \"56|-12-43\" without\r\n if (\r\n props.mask != null &&\r\n (isSizeIncreaseOperation || (isDeleleteButtonDown && !deleteWasNoOp))\r\n ) {\r\n while (\r\n formattedValue[start] &&\r\n clean(formattedValue[start]) === '' &&\r\n formattedValue[start] != maskChar\r\n ) {\r\n start += 1;\r\n }\r\n }\r\n\r\n //input.selectionStart = input.selectionEnd = start + (deleteWasNoOp ? 1 : 0);\r\n };\r\n });\r\n }\r\n\r\n React.useEffect(() => {\r\n // until https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported\r\n // by all major browsers (now supported by: +chrome, +safari, ?edge, !firefox)\r\n // there is no way I found to distinguish in onChange\r\n // backspace or delete was called in some situations\r\n // firefox track https://bugzilla.mozilla.org/show_bug.cgi?id=1447239\r\n const handleKeyDown = (evt: KeyboardEvent) => {\r\n if (evt.code === 'Delete') {\r\n isDeleleteButtonDownRef.current = true;\r\n }\r\n };\r\n\r\n const handleKeyUp = (evt: KeyboardEvent) => {\r\n if (evt.code === 'Delete') {\r\n isDeleleteButtonDownRef.current = false;\r\n }\r\n };\r\n\r\n document.addEventListener('keydown', handleKeyDown);\r\n document.addEventListener('keyup', handleKeyUp);\r\n\r\n return () => {\r\n document.removeEventListener('keydown', handleKeyDown);\r\n document.removeEventListener('keyup', handleKeyUp);\r\n };\r\n }, []);\r\n\r\n let value = valueRef.current != null ? valueRef.current[0] : userValue;\r\n // value = props.format(value, currentPreviousValue);\r\n previousValue.value = value;\r\n\r\n return props.children({\r\n value: value,\r\n onChange,\r\n });\r\n};\r\n","import * as React from 'react';\r\nimport InputAdornment, { InputAdornmentProps } from '@material-ui/core/InputAdornment';\r\nimport TextField, { BaseTextFieldProps, TextFieldProps } from '@material-ui/core/TextField';\r\nimport { IconButton } from '@material-ui/core';\r\nimport { ExtendMui } from '../typings/extendMui';\r\nimport { KeyboardIcon } from './icons/KeyboardIcon';\r\nimport { IconButtonProps } from '@material-ui/core/IconButton';\r\nimport { makeMaskFromFormat, maskedDateFormatter } from '../_helpers/text-field-helper';\r\nimport { useState } from 'react';\r\nimport { Rifm } from '../Rifm/Rifm';\r\n\r\nexport interface KeyboardDateInputProps\r\n extends ExtendMui<BaseTextFieldProps, 'variant' | 'onError' | 'onChange' | 'value'> {\r\n format: string;\r\n onChange: (value: string | null) => void;\r\n onBlur?: () => void;\r\n onClick?: () => void;\r\n validationError?: React.ReactNode;\r\n inputValue: string;\r\n InputProps?: TextFieldProps['InputProps'];\r\n /** Override input component */\r\n TextFieldComponent?: React.ComponentType<TextFieldProps>;\r\n /** Icon displaying for open picker button */\r\n keyboardIcon?: React.ReactNode;\r\n /** Pass material-ui text field variant down, bypass internal variant prop */\r\n inputVariant?: TextFieldProps['variant'];\r\n /**\r\n * Custom mask. Can be used to override generate from format. (e.g. __/__/____ __:__)\r\n */\r\n mask?: string;\r\n /**\r\n * Char string that will be replaced with number (for \"_\" mask will be \"__/__/____\")\r\n * @default '_'\r\n */\r\n maskChar?: string;\r\n /**\r\n * Refuse values regexp\r\n * @default /[^\\d]+/gi\r\n */\r\n refuse?: RegExp;\r\n /**\r\n * Props to pass to keyboard input adornment\r\n * @type {Partial<InputAdornmentProps>}\r\n */\r\n InputAdornmentProps?: Partial<InputAdornmentProps>;\r\n /**\r\n * Props to pass to keyboard adornment button\r\n * @type {Partial<IconButtonProps>}\r\n */\r\n KeyboardButtonProps?: Partial<IconButtonProps>;\r\n /** Custom formatter to be passed into Rifm component */\r\n rifmFormatter?: (str: string) => string;\r\n /**\r\n * Show errors only when input blur\r\n */\r\n showErrorOnBlur?: boolean;\r\n}\r\n\r\nconst KeyboardDateInput: React.FunctionComponent<KeyboardDateInputProps> = ({\r\n inputValue,\r\n showErrorOnBlur = false,\r\n inputVariant,\r\n validationError,\r\n KeyboardButtonProps,\r\n InputAdornmentProps,\r\n onClick,\r\n onChange,\r\n onBlur,\r\n onFocus,\r\n InputProps,\r\n mask,\r\n maskChar = '_',\r\n refuse = /[^\\d_]+/gi,\r\n format,\r\n keyboardIcon,\r\n disabled,\r\n rifmFormatter,\r\n TextFieldComponent = TextField,\r\n ...other\r\n}) => {\r\n const inputMask = mask || makeMaskFromFormat(format, maskChar);\r\n const letterPosition = format.indexOf('a');\r\n // prettier-ignore\r\n const formatter = React.useCallback(\r\n maskedDateFormatter(inputMask, maskChar),\r\n [mask, maskChar]\r\n );\r\n\r\n const position =\r\n InputAdornmentProps && InputAdornmentProps.position ? InputAdornmentProps.position : 'end';\r\n\r\n const handleChange = (text: string) => {\r\n const finalString = text === '' || text === inputMask ? null : text;\r\n onChange(finalString);\r\n };\r\n\r\n const replace = (text: string): string => {\r\n return text;\r\n };\r\n\r\n const [showErrorFlag, handleBlur] = useState(showErrorOnBlur ? true : false);\r\n\r\n return (\r\n <Rifm\r\n value={inputValue}\r\n onChange={handleChange}\r\n format={rifmFormatter || formatter}\r\n replace={replace}\r\n mask={true}\r\n maskChar={maskChar}\r\n letterPosition={letterPosition}\r\n >\r\n {({ onChange, value }) => (\r\n <TextFieldComponent\r\n disabled={disabled}\r\n error={Boolean(validationError) && !showErrorFlag}\r\n helperText={!showErrorFlag && validationError}\r\n {...other}\r\n value={value}\r\n onChange={onChange}\r\n // onInput={changeInputStringValue}\r\n // onKeyUp={handleKeyUp}\r\n // onMouseUp={handleClick}\r\n onBlur={() => {\r\n if (onBlur) {\r\n onBlur();\r\n }\r\n if (showErrorOnBlur) { \r\n handleBlur(false);\r\n }\r\n }}\r\n onFocus={(ev: any) => {\r\n if (onFocus) {\r\n onFocus(ev);\r\n }\r\n if (showErrorOnBlur) {\r\n handleBlur(true);\r\n }\r\n }}\r\n variant={inputVariant as any}\r\n InputProps={{\r\n ...InputProps,\r\n [`${position}Adornment`]: (\r\n <InputAdornment position={position} {...InputAdornmentProps}>\r\n <IconButton disabled={disabled} {...KeyboardButtonProps} onClick={onClick}>\r\n {keyboardIcon}\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n )}\r\n </Rifm>\r\n );\r\n};\r\n\r\nKeyboardDateInput.defaultProps = {\r\n keyboardIcon: <KeyboardIcon />,\r\n};\r\n\r\nexport default KeyboardDateInput;\r\n","import { useUtils } from './useUtils';\r\nimport { Omit } from '@material-ui/core';\r\nimport { IUtils } from '@date-io/core/IUtils';\r\nimport { BasePickerProps } from '../../typings/BasePicker';\r\nimport { MaterialUiPickersDate } from '../../typings/date';\r\nimport { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { getDisplayDate } from '../../_helpers/text-field-helper';\r\nimport { StateHookOptions, usePickerState } from './usePickerState';\r\n\r\nexport interface BaseKeyboardPickerProps extends Omit<BasePickerProps, 'onChange'> {\r\n /** String value for controlling value with pure input string. Overrides value prop */\r\n inputValue?: string;\r\n /** Keyboard onChange callback */\r\n onChange: (date: MaterialUiPickersDate | null, value?: string | null) => void;\r\n}\r\n\r\nfunction parseInputString(value: string, utils: IUtils<any>, format: string) {\r\n try {\r\n return utils.parse(value, format);\r\n } catch {\r\n return null;\r\n }\r\n}\r\n\r\nexport function useKeyboardPickerState(props: BaseKeyboardPickerProps, options: StateHookOptions) {\r\n const { format = options.getDefaultFormat(), inputValue, onChange, value } = props;\r\n const utils = useUtils();\r\n\r\n const displayDate = getDisplayDate(value, format, utils, value === null, props);\r\n const [innerInputValue, setInnerInputValue] = useState(displayDate);\r\n const dateValue = inputValue ? parseInputString(inputValue, utils, format) : value;\r\n\r\n useEffect(() => {\r\n if (value === null || utils.isValid(value)) {\r\n setInnerInputValue(displayDate);\r\n }\r\n }, [displayDate, setInnerInputValue, utils, value]);\r\n\r\n const handleKeyboardChange = useCallback(\r\n (date: MaterialUiPickersDate) => {\r\n const formattedValue = date === null ? null : utils.format(date, format);\r\n setInnerInputValue(formattedValue || '');\r\n onChange(date, formattedValue);\r\n },\r\n [format, onChange, utils]\r\n );\r\n\r\n const { inputProps: innerInputProps, wrapperProps, pickerProps } = usePickerState(\r\n // Extend props interface\r\n { ...props, value: dateValue, onChange: handleKeyboardChange },\r\n options\r\n );\r\n\r\n const inputProps = useMemo(\r\n () => ({\r\n ...innerInputProps, // reuse validation and open/close logic\r\n format: wrapperProps.format,\r\n inputValue: inputValue || innerInputValue,\r\n onChange: (value: string | null) => {\r\n setInnerInputValue(value || '');\r\n const date = value === null ? null : utils.parse(value, wrapperProps.format);\r\n\r\n onChange(date, value);\r\n },\r\n }),\r\n [innerInputProps, innerInputValue, inputValue, onChange, utils, wrapperProps.format]\r\n );\r\n\r\n return {\r\n inputProps,\r\n wrapperProps,\r\n pickerProps,\r\n };\r\n}\r\n","import * as React from 'react';\r\nimport KeyboardDateInput, { KeyboardDateInputProps } from '../_shared/KeyboardDateInput';\r\nimport { Picker, ToolbarComponentProps } from './Picker';\r\nimport { ExtendWrapper, Wrapper } from '../wrappers/Wrapper';\r\nimport { StateHookOptions } from '../_shared/hooks/usePickerState';\r\nimport { DateValidationProps } from '../_helpers/text-field-helper';\r\nimport {\r\n BaseKeyboardPickerProps,\r\n useKeyboardPickerState,\r\n} from '../_shared/hooks/useKeyboardPickerState';\r\n\r\nexport type WrappedKeyboardPickerProps = DateValidationProps &\r\n BaseKeyboardPickerProps &\r\n ExtendWrapper<KeyboardDateInputProps>;\r\n\r\nexport interface MakePickerOptions<T> {\r\n useOptions: (props: any) => StateHookOptions;\r\n getCustomProps?: (props: T) => Partial<T>;\r\n DefaultToolbarComponent: React.ComponentType<ToolbarComponentProps>;\r\n}\r\n\r\n// Mostly duplicate of ./WrappedPurePicker.tsx to enable tree-shaking of keyboard logic\r\n// TODO investigate how to reduce duplications\r\nexport function makeKeyboardPicker<T extends any>({\r\n useOptions,\r\n getCustomProps,\r\n DefaultToolbarComponent,\r\n}: MakePickerOptions<WrappedKeyboardPickerProps & T>): React.FC<WrappedKeyboardPickerProps & T> {\r\n function WrappedKeyboardPicker(props: WrappedKeyboardPickerProps & T) {\r\n const {\r\n allowKeyboardControl,\r\n ampm,\r\n hideTabs,\r\n animateYearScrolling,\r\n autoOk,\r\n disableFuture,\r\n disablePast,\r\n format,\r\n forwardedRef,\r\n initialFocusedDate,\r\n invalidDateMessage,\r\n labelFunc,\r\n leftArrowIcon,\r\n leftArrowButtonProps,\r\n maxDate,\r\n maxDateMessage,\r\n minDate,\r\n onOpen,\r\n onClose,\r\n minDateMessage,\r\n strictCompareDates,\r\n minutesStep,\r\n onAccept,\r\n onChange,\r\n onMonthChange,\r\n onYearChange,\r\n renderDay,\r\n views,\r\n openTo,\r\n rightArrowIcon,\r\n rightArrowButtonProps,\r\n shouldDisableDate,\r\n value,\r\n dateRangeIcon,\r\n emptyLabel,\r\n invalidLabel,\r\n timeIcon,\r\n orientation,\r\n variant,\r\n disableToolbar,\r\n loadingIndicator,\r\n showActionsBar,\r\n showTodayButton,\r\n todayLabel,\r\n ToolbarComponent = DefaultToolbarComponent,\r\n showShiftButtons,\r\n setShiftFunction,\r\n shiftButtonValues,\r\n ...other\r\n } = props;\r\n\r\n const injectedProps = getCustomProps ? getCustomProps(props) : {};\r\n\r\n const options = useOptions(props);\r\n const { pickerProps, inputProps, wrapperProps } = useKeyboardPickerState(props, options);\r\n\r\n return (\r\n <Wrapper\r\n variant={variant}\r\n InputComponent={KeyboardDateInput}\r\n DateInputProps={inputProps}\r\n {...injectedProps}\r\n {...wrapperProps}\r\n {...other}\r\n >\r\n <Picker\r\n {...pickerProps}\r\n ToolbarComponent={ToolbarComponent}\r\n disableToolbar={disableToolbar}\r\n hideTabs={hideTabs}\r\n orientation={orientation}\r\n showActionsBar={showActionsBar}\r\n showTodayButton={showTodayButton}\r\n todayLabel={todayLabel}\r\n ampm={ampm}\r\n views={views}\r\n openTo={openTo}\r\n allowKeyboardControl={allowKeyboardControl}\r\n minutesStep={minutesStep}\r\n animateYearScrolling={animateYearScrolling}\r\n disableFuture={disableFuture}\r\n disablePast={disablePast}\r\n leftArrowIcon={leftArrowIcon}\r\n leftArrowButtonProps={leftArrowButtonProps}\r\n maxDate={maxDate}\r\n minDate={minDate}\r\n strictCompareDates={strictCompareDates}\r\n onMonthChange={onMonthChange}\r\n onYearChange={onYearChange}\r\n renderDay={renderDay}\r\n dateRangeIcon={dateRangeIcon}\r\n timeIcon={timeIcon}\r\n rightArrowIcon={rightArrowIcon}\r\n rightArrowButtonProps={rightArrowButtonProps}\r\n shouldDisableDate={shouldDisableDate}\r\n loadingIndicator={loadingIndicator}\r\n showShiftButtons={showShiftButtons}\r\n setShiftFunction={setShiftFunction}\r\n shiftButtonValues={shiftButtonValues}\r\n />\r\n </Wrapper>\r\n );\r\n }\r\n\r\n return WrappedKeyboardPicker;\r\n}\r\n","import { useUtils } from '../_shared/hooks/useUtils';\r\nimport { DatePickerToolbar } from './DatePickerToolbar';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\nimport { getFormatByViews } from '../_helpers/date-utils';\r\nimport { OutterCalendarProps } from '../views/Calendar/Calendar';\r\nimport { datePickerDefaultProps, ParsableDate } from '../constants/prop-types';\r\nimport { WrappedPurePickerProps, makePurePicker } from '../Picker/WrappedPurePicker';\r\nimport { makeKeyboardPicker, WrappedKeyboardPickerProps } from '../Picker/WrappedKeyboardPicker';\r\n\r\nexport type DatePickerView = 'year' | 'date' | 'month';\r\n\r\nexport interface BaseDatePickerProps extends OutterCalendarProps {\r\n /**\r\n * Min selectable date\r\n * @default Date(1900-01-01)\r\n */\r\n minDate?: ParsableDate;\r\n /**\r\n * Max selectable date\r\n * @default Date(2200-01-01)\r\n */\r\n maxDate?: ParsableDate;\r\n\r\n /**\r\n * Compare dates by the exact timestamp, instead of start/end of date\r\n * @default false\r\n */\r\n strictCompareDates?: boolean;\r\n\r\n /**\r\n * Disable past dates\r\n * @default false\r\n */\r\n disablePast?: boolean;\r\n /**\r\n * Disable future dates\r\n * @default false\r\n */\r\n disableFuture?: boolean;\r\n /**\r\n * To animate scrolling to current year (using scrollIntoView)\r\n * @default false\r\n */\r\n animateYearScrolling?: boolean;\r\n /** Callback firing on year change */\r\n onYearChange?: (date: MaterialUiPickersDate) => void;\r\n}\r\n\r\nexport interface DatePickerViewsProps extends BaseDatePickerProps {\r\n /**\r\n * Array of views to show\r\n * @type {Array<\"year\" | \"date\" | \"month\">}\r\n */\r\n views?: DatePickerView[];\r\n /** Open to DatePicker */\r\n openTo?: DatePickerView;\r\n}\r\n\r\nexport type DatePickerProps = WrappedPurePickerProps & DatePickerViewsProps;\r\n\r\nexport type KeyboardDatePickerProps = WrappedKeyboardPickerProps & DatePickerViewsProps;\r\n\r\nconst defaultProps = {\r\n ...datePickerDefaultProps,\r\n openTo: 'date' as DatePickerView,\r\n views: ['year', 'date'] as DatePickerView[],\r\n showActionsBar: false,\r\n todayLabel: 'TODAY',\r\n};\r\n\r\nfunction useOptions(props: DatePickerViewsProps) {\r\n const utils = useUtils();\r\n\r\n return {\r\n getDefaultFormat: () => getFormatByViews(props.views!, utils),\r\n };\r\n}\r\n\r\nexport const DatePicker = makePurePicker<DatePickerViewsProps>({\r\n useOptions,\r\n DefaultToolbarComponent: DatePickerToolbar,\r\n});\r\n\r\nexport const KeyboardDatePicker = makeKeyboardPicker<DatePickerViewsProps>({\r\n useOptions,\r\n DefaultToolbarComponent: DatePickerToolbar,\r\n});\r\n\r\nDatePicker.defaultProps = defaultProps;\r\n\r\nKeyboardDatePicker.defaultProps = defaultProps;\r\n","import * as React from 'react';\r\nimport clsx from 'clsx';\r\nimport ClockType from '../constants/ClockType';\r\nimport ToolbarText from '../_shared/ToolbarText';\r\nimport ToolbarButton from '../_shared/ToolbarButton';\r\nimport PickerToolbar from '../_shared/PickerToolbar';\r\nimport { arrayIncludes } from '../_helpers/utils';\r\nimport { useUtils } from '../_shared/hooks/useUtils';\r\nimport { MaterialUiPickersDate } from '../typings/date';\r\nimport { ToolbarComponentProps } from '../Picker/Picker';\r\nimport { useTheme, makeStyles } from '@material-ui/core/styles';\r\nimport { convertToMeridiem, getMeridiem } from '../_helpers/time-utils';\r\n\r\nexport const useStyles = makeStyles(\r\n {\r\n toolbarLandscape: {\r\n flexWrap: 'wrap',\r\n },\r\n toolbarAmpmLeftPadding: {\r\n paddingLeft: 50,\r\n },\r\n separator: {\r\n margin: '0 4px 0 2px',\r\n cursor: 'default',\r\n },\r\n hourMinuteLabel: {\r\n display: 'flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'flex-end',\r\n },\r\n hourMinuteLabelLandscape: {\r\n marginTop: 'auto',\r\n },\r\n hourMinuteLabelReverse: {\r\n flexDirection: 'row-reverse',\r\n },\r\n ampmSelection: {\r\n marginLeft: 20,\r\n marginRight: -20,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n },\r\n ampmLandscape: {\r\n margin: '4px 0 auto',\r\n flexDirection: 'row',\r\n justifyContent: 'space-around',\r\n flexBasis: '100%',\r\n },\r\n ampmSelectionWithSeconds: {\r\n marginLeft: 15,\r\n marginRight: 10,\r\n },\r\n ampmLabel: {\r\n fontSize: 18,\r\n },\r\n },\r\n { name: 'MuiPickersTimePickerToolbar' }\r\n);\r\n\r\nexport function useMeridiemMode(\r\n date: MaterialUiPickersDate,\r\n ampm: boolean | undefined,\r\n onChange: (date: MaterialUiPickersDate, isFinished?: boolean | undefined) => void\r\n) {\r\n const utils = useUtils();\r\n const meridiemMode = getMeridiem(date, utils);\r\n\r\n const handleMeridiemChange = React.useCallback(\r\n (mode: 'am' | 'pm') => {\r\n const timeWithMeridiem = convertToMeridiem(date, mode, Boolean(ampm), utils);\r\n onChange(timeWithMeridiem, false);\r\n },\r\n [ampm, date, onChange, utils]\r\n );\r\n\r\n return { meridiemMode, handleMeridiemChange };\r\n}\r\n\r\nconst TimePickerToolbar: React.FC<ToolbarComponentProps> = ({\r\n date,\r\n views,\r\n ampm,\r\n openView,\r\n onChange,\r\n isLandscape,\r\n setOpenView,\r\n}) => {\r\n const utils = useUtils();\r\n const theme = useTheme();\r\n const classes = useStyles();\r\n const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange);\r\n\r\n const clockTypographyVariant = isLandscape ? 'h3' : 'h2';\r\n\r\n return (\r\n <PickerToolbar\r\n isLandscape={isLandscape}\r\n className={clsx({\r\n [classes.toolbarLandscape]: isLandscape,\r\n [classes.toolbarAmpmLeftPadding]: ampm && !isLandscape,\r\n })}\r\n >\r\n <div\r\n className={clsx(classes.hourMinuteLabel, {\r\n [classes.hourMinuteLabelLandscape]: isLandscape,\r\n [classes.hourMinuteLabelReverse]: theme.direction === 'rtl',\r\n })}\r\n >\r\n {arrayIncludes(views, 'hours') && (\r\n <ToolbarButton\r\n variant={clockTypographyVariant}\r\n onClick={() => setOpenView(ClockType.HOURS)}\r\n selected={openView === ClockType.HOURS}\r\n label={utils.getHourText(date, Boolean(ampm))}\r\n />\r\n )}\r\n\r\n {arrayIncludes(views, ['hours', 'minutes']) && (\r\n <ToolbarText\r\n label=\":\"\r\n variant={clockTypographyVariant}\r\n selected={false}\r\n className={classes.separator}\r\n />\r\n )}\r\n\r\n {arrayIncludes(views, 'minutes') && (\r\n <ToolbarButton\r\n variant={clockTypographyVariant}\r\n onClick={() => setOpenView(ClockType.MINUTES)}\r\n selected={openView === ClockType.MINUTES}\r\n label={utils.getMinuteText(date)}\r\n />\r\n )}\r\n\r\n {arrayIncludes(views, ['minutes', 'seconds']) && (\r\n <ToolbarText variant=\"h2\" label=\":\" selected={false} className={classes.separator} />\r\n )}\r\n\r\n {arrayIncludes(views, 'seconds') && (\r\n <ToolbarButton\r\n variant=\"h2\"\r\n onClick={() => setOpenView(ClockType.SECONDS)}\r\n selected={openView === ClockType.SECONDS}\r\n label={utils.getSecondText(date)}\r\n />\r\n )}\r\n </div>\r\n\r\n {ampm && (\r\n <div\r\n className={clsx(classes.ampmSelection, {\r\n [classes.ampmLandscape]: isLandscape,\r\n [classes.ampmSelectionWithSeconds]: arrayIncludes(views, 'seconds'),\r\n })}\r\n >\r\n <ToolbarButton\r\n disableRipple\r\n variant=\"subtitle1\"\r\n selected={meridiemMode === 'am'}\r\n typographyClassName={classes.ampmLabel}\r\n label={utils.getMeridiemText('am')}\r\n onClick={() => handleMeridiemChange('am')}\r\n />\r\n\r\n <ToolbarButton\r\n disableRipple\r\n variant=\"subtitle1\"\r\n selected={meridiemMode === 'pm'}\r\n typographyClassName={classes.ampmLabel}\r\n label={utils.getMeridiemText('pm')}\r\n onClick={() => handleMeridiemChange('pm')}\r\n />\r\n </div>\r\n )}\r\n </PickerToolbar>\r\n );\r\n};\r\n\r\nexport default TimePickerToolbar;\r\n","import TimePickerToolbar from './TimePickerToolbar';\r\nimport { useUtils } from '../_shared/hooks/useUtils';\r\nimport { timePickerDefaultProps } from '../constants/prop-types';\r\nimport { pick12hOr24hFormat } from '../_helpers/text-field-helper';\r\nimport { WrappedPurePickerProps, makePurePicker } from '../Picker/WrappedPurePicker';\r\nimport { makeKeyboardPicker, WrappedKeyboardPickerProps } from '../Picker/WrappedKeyboardPicker';\r\n\r\ntype TimePickerView = 'hours' | 'minutes' | 'seconds';\r\n\r\nexport interface BaseTimePickerProps {\r\n /**\r\n * 12h/24h view for hour selection clock\r\n * @default true\r\n */\r\n ampm?: boolean;\r\n /**\r\n * Step over minutes\r\n * @default 1\r\n */\r\n minutesStep?: number;\r\n}\r\n\r\nexport interface TimePickerViewsProps extends BaseTimePickerProps {\r\n /** Array of views to show */\r\n views?: ('hours' | 'minutes' | 'seconds')[];\r\n /** Open to timepicker */\r\n openTo?: 'hours' | 'minutes' | 'seconds';\r\n}\r\n\r\nexport type TimePickerProps = WrappedPurePickerProps & TimePickerViewsProps;\r\n\r\nexport type KeyboardTimePickerProps = WrappedKeyboardPickerProps & TimePickerViewsProps;\r\n\r\nconst defaultProps = {\r\n ...timePickerDefaultProps,\r\n openTo: 'hours' as TimePickerView,\r\n views: ['hours', 'minutes'] as TimePickerView[],\r\n};\r\n\r\nfunction useOptions(props: TimePickerProps | KeyboardTimePickerProps) {\r\n const utils = useUtils();\r\n\r\n return {\r\n getDefaultFormat: () =>\r\n pick12hOr24hFormat(props.format, props.ampm, {\r\n '12h': utils.time12hFormat,\r\n '24h': utils.time24hFormat,\r\n }),\r\n };\r\n}\r\n\r\nexport const TimePicker = makePurePicker<TimePickerViewsProps>({\r\n useOptions,\r\n DefaultToolbarComponent: TimePickerToolbar,\r\n});\r\n\r\nexport const KeyboardTimePicker = makeKeyboardPicker<TimePickerViewsProps>({\r\n useOptions,\r\n DefaultToolbarComponent: TimePickerToolbar,\r\n getCustomProps: props => ({\r\n refuse: props.ampm ? /[^\\dap]+/gi : /[^\\d]+/gi,\r\n }),\r\n});\r\n\r\nTimePicker.defaultProps = defaultProps;\r\n\r\nKeyboardTimePicker.defaultProps = defaultProps;\r\n","import React from 'react';\r\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\r\n\r\nexport const TimeIcon: React.SFC<SvgIconProps> = props => {\r\n return (\r\n <SvgIcon {...props}>\r\n <path 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\" />\r\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n <path d=\"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\" />\r\n </SvgIcon>\r\n );\r\n};\r\n","import React from 'react';\r\nimport SvgIcon, { SvgIconProps } from '@material-ui/core/SvgIcon';\r\n\r\nexport const DateRangeIcon: React.SFC<SvgIconProps> = props => {\r\n return (\r\n <SvgIcon {...props}>\r\n <path 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\" />\r\n <path fill=\"none\" d=\"M0 0h24v24H0z\" />\r\n </SvgIcon>\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { TimeIcon } from '../_shared/icons/TimeIcon';\r\nimport { DateTimePickerView } from './DateTimePicker';\r\nimport { DateRangeIcon } from '../_shared/icons/DateRangeIcon';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\n\r\nconst viewToTabIndex = (openView: DateTimePickerView) => {\r\n if (openView === 'date' || openView === 'year') {\r\n return 'date';\r\n }\r\n\r\n return 'time';\r\n};\r\n\r\nconst tabIndexToView = (tab: DateTimePickerView) => {\r\n if (tab === 'date') {\r\n return 'date';\r\n }\r\n\r\n return 'hours';\r\n};\r\n\r\nexport interface DateTimePickerTabsProps {\r\n view: DateTimePickerView;\r\n onChange: (view: DateTimePickerView) => void;\r\n dateRangeIcon?: React.ReactNode;\r\n timeIcon?: React.ReactNode;\r\n}\r\n\r\nexport const useStyles = makeStyles(\r\n theme => {\r\n // prettier-ignore\r\n const tabsBackground = theme.palette.type === 'light'\r\n ? theme.palette.primary.main\r\n : theme.palette.background.default;\r\n\r\n return {\r\n tabs: {\r\n color: theme.palette.getContrastText(tabsBackground),\r\n backgroundColor: tabsBackground,\r\n },\r\n };\r\n },\r\n { name: 'MuiPickerDTTabs' }\r\n);\r\n\r\nexport const DateTimePickerTabs: React.SFC<DateTimePickerTabsProps> = ({\r\n view,\r\n onChange,\r\n dateRangeIcon,\r\n timeIcon,\r\n}) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const indicatorColor = theme.palette.type === 'light' ? 'secondary' : 'primary';\r\n const handleChange = (e: React.ChangeEvent<{}>, value: DateTimePickerView) => {\r\n if (value !== viewToTabIndex(view)) {\r\n onChange(tabIndexToView(value));\r\n }\r\n };\r\n\r\n return (\r\n <Paper>\r\n <Tabs\r\n variant=\"fullWidth\"\r\n value={viewToTabIndex(view)}\r\n onChange={handleChange}\r\n className={classes.tabs}\r\n indicatorColor={indicatorColor}\r\n >\r\n <Tab value=\"date\" icon={<>{dateRangeIcon}</>} />\r\n <Tab value=\"time\" icon={<>{timeIcon}</>} />\r\n </Tabs>\r\n </Paper>\r\n );\r\n};\r\n\r\nDateTimePickerTabs.defaultProps = {\r\n dateRangeIcon: <DateRangeIcon />,\r\n timeIcon: <TimeIcon />,\r\n};\r\n\r\nexport default DateTimePickerTabs;\r\n","import * as React from 'react';\r\nimport ToolbarText from '../_shared/ToolbarText';\r\nimport PickerToolbar from '../_shared/PickerToolbar';\r\nimport ToolbarButton from '../_shared/ToolbarButton';\r\nimport DateTimePickerTabs from './DateTimePickerTabs';\r\nimport { Grid } from '@material-ui/core';\r\nimport { useUtils } from '../_shared/hooks/useUtils';\r\nimport { DateTimePickerView } from './DateTimePicker';\r\nimport { ToolbarComponentProps } from '../Picker/Picker';\r\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\r\nimport { useMeridiemMode } from '../TimePicker/TimePickerToolbar';\r\n\r\nexport const useStyles = makeStyles(\r\n _ => ({\r\n toolbar: {\r\n paddingLeft: 16,\r\n paddingRight: 16,\r\n justifyContent: 'space-around',\r\n },\r\n separator: {\r\n margin: '0 4px 0 2px',\r\n cursor: 'default',\r\n },\r\n }),\r\n { name: 'MuiPickerDTToolbar' }\r\n);\r\n\r\nexport const DateTimePickerToolbar: React.FC<ToolbarComponentProps> = ({\r\n date,\r\n openView,\r\n setOpenView,\r\n ampm,\r\n hideTabs,\r\n dateRangeIcon,\r\n timeIcon,\r\n onChange,\r\n}) => {\r\n const utils = useUtils();\r\n const classes = useStyles();\r\n const showTabs = !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667;\r\n const { meridiemMode, handleMeridiemChange } = useMeridiemMode(date, ampm, onChange);\r\n const theme = useTheme();\r\n const rtl = theme.direction === 'rtl';\r\n\r\n return (\r\n <>\r\n <PickerToolbar isLandscape={false} className={classes.toolbar}>\r\n <Grid container justify=\"center\" wrap=\"nowrap\">\r\n <Grid item container xs={5} justify=\"flex-start\" direction=\"column\">\r\n <div>\r\n <ToolbarButton\r\n variant=\"subtitle1\"\r\n onClick={() => setOpenView('year')}\r\n selected={openView === 'year'}\r\n label={utils.getYearText(date)}\r\n />\r\n </div>\r\n <div>\r\n <ToolbarButton\r\n variant=\"h4\"\r\n onClick={() => setOpenView('date')}\r\n selected={openView === 'date'}\r\n label={utils.getDateTimePickerHeaderText(date)}\r\n />\r\n </div>\r\n </Grid>\r\n\r\n <Grid\r\n item\r\n container\r\n xs={6}\r\n justify=\"center\"\r\n alignItems=\"flex-end\"\r\n direction={rtl ? 'row-reverse' : 'row'}\r\n >\r\n <ToolbarButton\r\n variant=\"h3\"\r\n onClick={() => setOpenView('hours')}\r\n selected={openView === 'hours'}\r\n label={utils.getHourText(date, ampm!)}\r\n />\r\n\r\n <ToolbarText variant=\"h3\" label=\":\" className={classes.separator} />\r\n\r\n <ToolbarButton\r\n variant=\"h3\"\r\n onClick={() => setOpenView('minutes')}\r\n selected={openView === 'minutes'}\r\n label={utils.getMinuteText(date)}\r\n />\r\n </Grid>\r\n\r\n {ampm && (\r\n <Grid item container xs={1} direction=\"column\" justify=\"flex-end\">\r\n <ToolbarButton\r\n variant=\"subtitle1\"\r\n selected={meridiemMode === 'am'}\r\n label={utils.getMeridiemText('am')}\r\n onClick={() => handleMeridiemChange('am')}\r\n />\r\n\r\n <ToolbarButton\r\n variant=\"subtitle1\"\r\n selected={meridiemMode === 'pm'}\r\n label={utils.getMeridiemText('pm')}\r\n onClick={() => handleMeridiemChange('pm')}\r\n />\r\n </Grid>\r\n )}\r\n </Grid>\r\n </PickerToolbar>\r\n\r\n {showTabs && (\r\n <DateTimePickerTabs\r\n dateRangeIcon={dateRangeIcon}\r\n timeIcon={timeIcon}\r\n view={openView as DateTimePickerView}\r\n onChange={setOpenView}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\n","import { useUtils } from '../_shared/hooks/useUtils';\r\nimport { BaseDatePickerProps } from '../DatePicker/DatePicker';\r\nimport { BaseTimePickerProps } from '../TimePicker/TimePicker';\r\nimport { DateTimePickerToolbar } from './DateTimePickerToolbar';\r\nimport { pick12hOr24hFormat } from '../_helpers/text-field-helper';\r\nimport { dateTimePickerDefaultProps } from '../constants/prop-types';\r\nimport { WrappedPurePickerProps, makePurePicker } from '../Picker/WrappedPurePicker';\r\nimport { makeKeyboardPicker, WrappedKeyboardPickerProps } from '../Picker/WrappedKeyboardPicker';\r\n\r\nexport type DateTimePickerView = 'year' | 'date' | 'month' | 'hours' | 'minutes';\r\n\r\nexport type BaseDateTimePickerProps = BaseTimePickerProps & BaseDatePickerProps;\r\n\r\nexport interface DateTimePickerViewsProps extends BaseDateTimePickerProps {\r\n /** Array of views to show */\r\n views?: ('year' | 'date' | 'month' | 'hours' | 'minutes')[];\r\n /** Open to DatePicker */\r\n openTo?: 'year' | 'date' | 'month' | 'hours' | 'minutes';\r\n /** To show tabs */\r\n hideTabs?: boolean;\r\n /** Date tab icon */\r\n dateRangeIcon?: React.ReactNode;\r\n /** Time tab icon */\r\n timeIcon?: React.ReactNode;\r\n}\r\n\r\nexport type DateTimePickerProps = WrappedPurePickerProps & DateTimePickerViewsProps;\r\n\r\nexport type KeyboardDateTimePickerProps = WrappedKeyboardPickerProps & DateTimePickerViewsProps;\r\n\r\nconst defaultProps = {\r\n ...dateTimePickerDefaultProps,\r\n showActionsBar: false,\r\n todayLabel: 'TODAY',\r\n wider: true,\r\n orientation: 'portrait' as const,\r\n openTo: 'date' as DateTimePickerView,\r\n views: ['year', 'date', 'hours', 'minutes'] as DateTimePickerView[],\r\n};\r\n\r\nfunction useOptions(props: DateTimePickerProps | KeyboardDateTimePickerProps) {\r\n const utils = useUtils();\r\n\r\n if (props.orientation !== 'portrait') {\r\n throw new Error('We are not supporting custom orientation for DateTimePicker yet :(');\r\n }\r\n\r\n return {\r\n getDefaultFormat: () =>\r\n pick12hOr24hFormat(props.format, props.ampm, {\r\n '12h': utils.dateTime12hFormat,\r\n '24h': utils.dateTime24hFormat,\r\n }),\r\n };\r\n}\r\n\r\nexport const DateTimePicker = makePurePicker<DateTimePickerProps>({\r\n useOptions,\r\n DefaultToolbarComponent: DateTimePickerToolbar,\r\n});\r\n\r\nexport const KeyboardDateTimePicker = makeKeyboardPicker<KeyboardDateTimePickerProps>({\r\n useOptions,\r\n DefaultToolbarComponent: DateTimePickerToolbar,\r\n getCustomProps: props => ({\r\n refuse: props.ampm ? /[^\\dap]+/gi : /[^\\d]+/gi,\r\n }),\r\n});\r\n\r\nDateTimePicker.defaultProps = defaultProps;\r\n\r\nKeyboardDateTimePicker.defaultProps = defaultProps;\r\n"],"names":["MuiPickersContext","React","MuiPickersUtilsProvider","_a","Utils","children","locale","libInstance","utils","moment","Provider","value","propTypes","PropTypes","isRequired","checkUtils","Error","useUtils","useContext","useStyles","makeStyles","theme","textColor","palette","type","primary","contrastText","getContrastText","background","default","toolbarTxt","color","fade","toolbarBtnSelected","name","ToolbarText","selected","label","_c","className","other","classes","Typography","clsx","_b","ToolbarButton","variant","align","typographyClassName","Button","toolbarBtn","innerRef","defaultProps","styles","createStyles","padding","minWidth","textTransform","withStyles","toolbar","display","flexDirection","alignItems","justifyContent","height","backgroundColor","main","toolbarLandscape","maxWidth","PickerToolbar","isLandscape","Toolbar","arrayIncludes","array","itemOrItems","Array","isArray","every","item","indexOf","findClosestEnabledDate","date","minDate","maxDate","disableFuture","disablePast","shouldDisableDate","today","startOfDay","isBefore","isAfter","forward","backward","addDays","isYearOnlyView","views","length","isYearAndMonthViews","getFormatByViews","yearFormat","yearMonthFormat","dateFormat","dateLandscape","marginRight","DatePickerToolbar","setOpenView","openView","isYearOnly","isYearAndMonth","onClick","getYearText","getDatePickerHeaderText","getMonthText","Date","datePickerView","timePickerDefaultProps","ampm","invalidDateMessage","datePickerDefaultProps","minDateMessage","maxDateMessage","allowKeyboardControl","dateTimePickerDefaultProps","__assign","showTabs","day","width","fontSize","typography","caption","margin","text","fontWeight","fontWeightMedium","hidden","opacity","pointerEvents","current","daySelected","dayDisabled","hint","Day","disabled","IconButton","tabIndex","displayName","DayWrapper","onSelect","dayInCurrentMonth","handleClick","role","undefined","onKeyPress","animationDuration","slideTransition","transitions","create","duration","easing","transitionContainer","position","top","right","left","willChange","transform","slideEnterActive","transition","slideExit","SlideTransition","transKey","slideDirection","transitionClasses","exit","enterActive","enter","exitActive","TransitionGroup","childFactory","element","classNames","CSSTransition","mountOnEnter","unmountOnExit","key","timeout","ArrowLeftIcon","props","SvgIcon","d","fill","ArrowRightIcon","switchHeader","marginTop","spacing","marginBottom","overflow","iconButton","zIndex","paper","daysHeader","maxHeight","dayLabel","textAlign","CalendarHeader","currentMonth","onMonthChange","leftArrowIcon","rightArrowIcon","leftArrowButtonProps","rightArrowButtonProps","disablePrevMonth","disableNextMonth","useTheme","rtl","direction","selectNextMonth","getNextMonth","selectPreviousMonth","getPreviousMonth","toString","getCalendarHeaderText","getWeekdays","map","index","useIsomorphicEffect","window","runKeyHandler","e","keyHandlers","handler","preventDefault","useKeyDown","active","keyHandlersRef","handleKeyDown_1","event","addEventListener","removeEventListener","withUtils","Component","WithUtils","KeyDownListener","onKeyDown","__extends","_this","startOfMonth","loadingQueue","state","setState","newMonth","returnVal","pushToLoadingQueue","then","popFromLoadingQueue","now","Boolean","isAfterDay","isBeforeDay","firstEnabledMonth","lastEnabledMonth","validateMinMaxDate","isFinish","onChange","mergeDateAndTime","getMonth","handleChangeMonth","handleDaySelect","ArrowUp","moveToDay","ArrowDown","ArrowLeft","ArrowRight","weeks","getWeekArray","week","renderDays","renderDay","selectedDate","currentMonthNumber","isDayInCurrentMonth","dayComponent","isSameDay","getDayText","Calendar","nextProps","nextDate","isEqual","lastDate","nextMonth","lastMonth","closestEnabledDate","loadingIndicator","loadingElement","CircularProgress","handleKeyDown","shouldDisablePrevMonth","shouldDisableNextMonth","progressContainer","renderWeeks","minHeight","withTheme","useViews","openTo","handleChangeAndOpenNext","nextViewToOpen","root","cursor","outline","yearSelected","yearDisabled","Year","forwardedRef","component","ref","DIALOG_WIDTH","DIALOG_WIDTH_WIDER","VIEW_HEIGHT","staticWrapperRoot","StaticWrapper","ModalDialog","onAccept","onDismiss","onClear","onSetToday","okLabel","cancelLabel","clearLabel","todayLabel","clearable","showTodayButton","wider","Dialog","onClose","dialogRoot","dialogRootWider","DialogContent","dialog","DialogActions","withAdditionalAction","ModalWrapper","open","DialogProps","InputComponent","DateInputProps","Enter","popoverPaper","paddingBottom","popoverPaperWider","InlineWrapper","PopoverProps","inputRef","Popover","anchorEl","anchorOrigin","vertical","horizontal","transformOrigin","onOpen","getWrapperFromVariant","VariantContext","Wrapper","container","overflowY","YearSelection","onYearChange","animateYearScrolling","currentVariant","selectedYearRef","scrollIntoView","block","behavior","currentYear","getYear","onYearSelect","year","newDate","setYear","getYearRange","yearNumber","isBeforeYear","isAfterYear","ClockType","toAnimateTransform","previousType","isInner","max","HOURS","angle","ClockPointer","hasSelected","style","getAngleStyle","pointer","animateTransform","thumb","noPoint","bottom","borderRadius","border","boxSizing","center","x","y","basePoint","cx","cy","rad2deg","rad","getAngleValue","step","offsetX","offsetY","atan","Math","atan2","deg","round","floor","delta","pow","distance","sqrt","getHours","getMinutes","angleStep","getMeridiem","convertToMeridiem","time","meridiem","currentMeridiem","hours","setHours","isMoving","setTime","stopPropagation","isButtonPressed","buttons","nativeEvent","which","Clock","rect","target","getBoundingClientRect","changedTouches","clientX","clientY","SECONDS","MINUTES","minutesStep","isPointerInner","clock","squareMask","onTouchMove","handleTouchMove","onTouchEnd","handleTouchEnd","onMouseUp","handleMouseUp","onMouseMove","handleMove","pin","Object","keys","touchActions","userSelect","positions","size","clockNumber","clockNumberSelected","ClockNumber","transformStyle","getHourNumbers","currentHours","hourNumbers","startHour","endHour","isSelected","hour","formatNumber","push","getMinutesNumbers","f","TimePickerView","onHourChange","onMinutesChange","onSecondsChange","viewProps","updatedTimeWithMeridiem","minutesValue","updatedTime","setMinutes","secondsValue","getSeconds","setSeconds","flex","monthSelected","monthDisabled","Month","handleSelection","flexWrap","alignContent","MonthSelection","shouldDisableMonth","month","utilMinDate","utilMaxDate","isBeforeFirstEnabled","isAfterLastEnabled","onMonthSelect","setMonth","getMonthArray","monthNumber","monthText","format","getOrientation","screen","orientation","abs","useIsLandscape","customOrientation","setOrientation","eventHandler","orientationToUse","viewsMap","minutes","seconds","containerLandscape","pickerView","overflowX","pickerViewLandscape","useButtonsStyles","useDialogActionsStyles","Picker","disableToolbar","hideTabs","dateRangeIcon","timeIcon","unparsedMinDate","unparsedMaxDate","ToolbarComponent","showActionsBar","onSetShift","showShiftButtons","setShiftFunction","shiftButtonValues","buttonClasses","dialogActionsClasses","_d","shiftButtons","parseInt","useOpenState","setIsOpenState","setIsOpen","useCallback","newIsOpen","isOpen","getDisplayDate","isEmpty","invalidLabel","emptyLabel","labelFunc","isValid","getComparisonMaxDate","strictCompareDates","endOfDay","getComparisonMinDate","validate","parsedValue","pick12hOr24hFormat","userFormat","formats","makeMaskFromFormat","numberMaskChar","replace","maskedDateFormatter","mask","oldValue","currentCaretPosition","refuse","slice","refusedOldValue","refusedNewValue","refusedMaskSymbols","minLength","startPos","endPosShift","endStartPos","firstPart","addedPart","endPart","maxSymbolsInEnd","entireRefusedString","i","n","result","maskChar","parsedChar","useValueToDate","initialFocusedDate","nowRef","useRef","useDateValues","options","getDefaultFormat","usePickerState","autoOk","onError","pickerDate","setPickerDate","useEffect","acceptDate","acceptedDate","wrapperProps","useMemo","pickerProps","shiftDate","validationError","inputValue","inputProps","pickerState","useDebugValue","PureDateInput","inputVariant","InputProps","TextFieldComponent","PureDateInputProps","readOnly","error","helperText","makePurePicker","useOptions","getCustomProps","DefaultToolbarComponent","WrappedPurePicker","injectedProps","KeyboardIcon","Rifm","refresh","valueRef","previousValue","setPreviousValue","userValue","currentPreviousValue","isDeleleteButtonDownRef","evt","eventValue","selectionStart","input","isSizeIncreaseOperation","isDeleleteButtonDown","isNoOperation","valueAtChange","deleteWasNoOp","clean","str","match","accept","join","valueBeforeSelectionStart","substr","getCursorPosition","val","start","cleanPos","newPos","newCleanPos","formattedValue","replacedValue","inputCharPosition","letterPosition","code","handleKeyUp","document","KeyboardDateInput","showErrorOnBlur","KeyboardButtonProps","InputAdornmentProps","onBlur","onFocus","keyboardIcon","rifmFormatter","_e","inputMask","formatter","handleChange","finalString","_f","showErrorFlag","handleBlur","ev","InputAdornment","parseInputString","parse","useKeyboardPickerState","displayDate","innerInputValue","setInnerInputValue","dateValue","handleKeyboardChange","innerInputProps","makeKeyboardPicker","WrappedKeyboardPicker","DatePicker","KeyboardDatePicker","toolbarAmpmLeftPadding","paddingLeft","separator","hourMinuteLabel","hourMinuteLabelLandscape","hourMinuteLabelReverse","ampmSelection","marginLeft","ampmLandscape","flexBasis","ampmSelectionWithSeconds","ampmLabel","useMeridiemMode","meridiemMode","handleMeridiemChange","mode","timeWithMeridiem","TimePickerToolbar","clockTypographyVariant","getHourText","getMinuteText","getSecondText","disableRipple","getMeridiemText","time12hFormat","time24hFormat","TimePicker","KeyboardTimePicker","TimeIcon","DateRangeIcon","viewToTabIndex","tabIndexToView","tab","tabsBackground","tabs","DateTimePickerTabs","view","indicatorColor","Paper","Tabs","Tab","icon","_","paddingRight","DateTimePickerToolbar","innerHeight","Grid","justify","wrap","xs","getDateTimePickerHeaderText","dateTime12hFormat","dateTime24hFormat","DateTimePicker","KeyboardDateTimePicker"],"mappings":"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"}
|