import type { Dayjs } from 'dayjs'; import dayjsGenerateConfig from 'rc-picker/lib/generate/dayjs'; import genPurePanel from '../_util/PurePanel'; import generatePicker from './generatePicker'; import type { RangePickerProps as BaseRangePickerProps, PickerProps, PickerPropsWithMultiple, } from './generatePicker/interface'; export type DatePickerProps = PickerPropsWithMultiple< Dayjs, PickerProps, ValueType >; export type MonthPickerProps = Omit< DatePickerProps, 'picker' >; export type WeekPickerProps = Omit, 'picker'>; export type RangePickerProps = BaseRangePickerProps; const DatePicker = generatePicker(dayjsGenerateConfig); export type DatePickerType = typeof DatePicker & { _InternalPanelDoNotUseOrYouWillBeFired: typeof PurePanel; _InternalRangePanelDoNotUseOrYouWillBeFired: typeof PureRangePanel; generatePicker: typeof generatePicker; }; // We don't care debug panel /* istanbul ignore next */ const PurePanel = genPurePanel(DatePicker, 'picker', null); (DatePicker as DatePickerType)._InternalPanelDoNotUseOrYouWillBeFired = PurePanel; const PureRangePanel = genPurePanel(DatePicker.RangePicker, 'picker', null); (DatePicker as DatePickerType)._InternalRangePanelDoNotUseOrYouWillBeFired = PureRangePanel; (DatePicker as DatePickerType).generatePicker = generatePicker; export default DatePicker as DatePickerType;