UNPKG

8.01 kBSource Map (JSON)View Raw
1{"version":3,"file":"DatePicker.js","sources":["../../src/DatePicker/DatePickerToolbar.tsx","../../src/DatePicker/DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport clsx from 'clsx';\nimport ToolbarButton from '../_shared/ToolbarButton';\nimport PickerToolbar from '../_shared/PickerToolbar';\nimport { useUtils } from '../_shared/hooks/useUtils';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { ToolbarComponentProps } from '../Picker/Picker';\nimport { isYearAndMonthViews, isYearOnlyView } from '../_helpers/date-utils';\n\nexport const useStyles = makeStyles(\n {\n toolbar: {\n flexDirection: 'column',\n alignItems: 'flex-start',\n },\n toolbarLandscape: {\n padding: 16,\n },\n dateLandscape: {\n marginRight: 16,\n },\n },\n { name: 'MuiPickersDatePickerRoot' }\n);\n\nexport const DatePickerToolbar: React.FC<ToolbarComponentProps> = ({\n date,\n views,\n setOpenView,\n isLandscape,\n openView,\n}) => {\n const utils = useUtils();\n const classes = useStyles();\n\n const isYearOnly = React.useMemo(() => isYearOnlyView(views as any), [views]);\n const isYearAndMonth = React.useMemo(() => isYearAndMonthViews(views as any), [views]);\n\n return (\n <PickerToolbar\n isLandscape={isLandscape}\n className={clsx({\n [classes.toolbar]: !isYearOnly,\n [classes.toolbarLandscape]: isLandscape,\n })}\n >\n <ToolbarButton\n variant={isYearOnly ? 'h3' : 'subtitle1'}\n onClick={() => setOpenView('year')}\n selected={openView === 'year'}\n label={utils.getYearText(date)}\n />\n\n {!isYearOnly && !isYearAndMonth && (\n <ToolbarButton\n variant=\"h4\"\n selected={openView === 'date'}\n onClick={() => setOpenView('date')}\n align={isLandscape ? 'left' : 'center'}\n label={utils.getDatePickerHeaderText(date)}\n className={clsx({ [classes.dateLandscape]: isLandscape })}\n />\n )}\n\n {isYearAndMonth && (\n <ToolbarButton\n variant=\"h4\"\n onClick={() => setOpenView('month')}\n selected={openView === 'month'}\n label={utils.getMonthText(date)}\n />\n )}\n </PickerToolbar>\n );\n};\n","import { useUtils } from '../_shared/hooks/useUtils';\nimport { MaterialUiPickersDate } from '../typings/date';\nimport { DatePickerToolbar } from './DatePickerToolbar';\nimport { PureDateInput } from '../_shared/PureDateInput';\nimport { getFormatByViews } from '../_helpers/date-utils';\nimport { KeyboardDateInput } from '../_shared/KeyboardDateInput';\nimport { OutterCalendarProps } from '../views/Calendar/Calendar';\nimport { usePickerState } from '../_shared/hooks/usePickerState';\nimport { datePickerDefaultProps, ParsableDate } from '../constants/prop-types';\nimport { useKeyboardPickerState } from '../_shared/hooks/useKeyboardPickerState';\nimport {\n WithKeyboardInputProps,\n WithPureInputProps,\n makePickerWithState,\n} from '../Picker/makePickerWithState';\n\nexport type DatePickerView = 'year' | 'date' | 'month';\n\nexport interface BaseDatePickerProps extends OutterCalendarProps {\n /**\n * Min selectable date\n * @default Date(1900-01-01)\n */\n minDate?: ParsableDate;\n /**\n * Max selectable date\n * @default Date(2100-01-01)\n */\n maxDate?: ParsableDate;\n\n /**\n * Compare dates by the exact timestamp, instead of start/end of date\n * @default false\n */\n strictCompareDates?: boolean;\n\n /**\n * Disable past dates\n * @default false\n */\n disablePast?: boolean;\n /**\n * Disable future dates\n * @default false\n */\n disableFuture?: boolean;\n /**\n * To animate scrolling to current year (using scrollIntoView)\n * @default false\n */\n animateYearScrolling?: boolean;\n /** Callback firing on year change @DateIOType */\n onYearChange?: (date: MaterialUiPickersDate) => void;\n}\n\nexport interface DatePickerViewsProps extends BaseDatePickerProps {\n /**\n * Array of views to show\n * @type {Array<\"year\" | \"date\" | \"month\">}\n */\n views?: DatePickerView[];\n /** First view to show in DatePicker */\n openTo?: DatePickerView;\n}\n\nexport type DatePickerProps = WithPureInputProps & DatePickerViewsProps;\n\nexport type KeyboardDatePickerProps = WithKeyboardInputProps & DatePickerViewsProps;\n\nconst defaultProps = {\n ...datePickerDefaultProps,\n openTo: 'date' as DatePickerView,\n views: ['year', 'date'] as DatePickerView[],\n};\n\nfunction useOptions(props: DatePickerViewsProps) {\n const utils = useUtils();\n\n return {\n getDefaultFormat: () => getFormatByViews(props.views!, utils),\n };\n}\n\nexport const DatePicker = makePickerWithState<DatePickerProps>({\n useOptions,\n Input: PureDateInput,\n useState: usePickerState,\n DefaultToolbarComponent: DatePickerToolbar,\n});\n\nexport const KeyboardDatePicker = makePickerWithState<KeyboardDatePickerProps>({\n useOptions,\n Input: KeyboardDateInput,\n useState: useKeyboardPickerState,\n DefaultToolbarComponent: DatePickerToolbar,\n});\n\nDatePicker.defaultProps = defaultProps;\n\nKeyboardDatePicker.defaultProps = defaultProps;\n"],"names":["useStyles","makeStyles","toolbar","flexDirection","alignItems","toolbarLandscape","padding","dateLandscape","marginRight","name","DatePickerToolbar","date","views","setOpenView","isLandscape","openView","utils","useUtils","classes","isYearOnly","React","isYearOnlyView","isYearAndMonth","isYearAndMonthViews","React.createElement","clsx","getYearText","getDatePickerHeaderText","getMonthText","defaultProps","datePickerDefaultProps","openTo","useOptions","props","getDefaultFormat","getFormatByViews","DatePicker","makePickerWithState","Input","PureDateInput","useState","usePickerState","DefaultToolbarComponent","KeyboardDatePicker","KeyboardDateInput","useKeyboardPickerState"],"mappings":"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"}
\No newline at end of file