UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

56 lines (55 loc) 2.31 kB
/// <reference types="react" /> import { Component, ReactNode } from 'react'; import { OpUnitType } from 'dayjs'; import { LocaleType as SelectDrawerLocaleType, SelectDrawerProps } from '../../select-drawer'; import { TimePickerProps } from '../../time-picker'; import { LocaledComponentProps } from '../../locale'; import { BasicSizeType } from '../../utils/types'; import { DateRange, LocaleType as DatePickerLocaleType } from '../types'; type NoLocaleSelectDrawer = Omit<Omit<SelectDrawerProps, 'onOk'>, 'locale'>; type RangePickerLocale = DatePickerLocaleType & SelectDrawerLocaleType; export interface BaseDateRangePickerProps extends NoLocaleSelectDrawer, LocaledComponentProps<RangePickerLocale> { prefix?: string; value?: DateRange; defaultValue?: DateRange; validRange?: DateRange; format?: string; size?: BasicSizeType; align?: 'left' | 'right'; iconType?: string; placeholder?: string; disabled?: boolean; readOnly?: boolean; hasClear?: boolean; showTime?: boolean | TimePickerProps; onClear?: () => void; onChange?: (value?: DateRange | null) => void; onOk?: (value?: DateRange) => void; onVisibleChange?: (visible: boolean) => void; onCancel?: (reason?: string) => void; } interface RangePickerState { step: number; value?: [Date, Date] | null; pickerValue?: [Date, Date]; } declare abstract class BaseRangePicker extends Component<BaseDateRangePickerProps, RangePickerState> { constructor(props: BaseDateRangePickerProps); get rangeType(): OpUnitType; get timeFormat(): string; get format(): string; getPickerValidRange: (step?: number) => [Date, Date]; getPickerValue(props: BaseDateRangePickerProps): [Date, Date]; handleChange: (value: Date) => void; handleFirstStepChange: (value: Date) => void; handleSecondStepChange: (value: Date) => void; scrollTo(step: number, wait?: number): void; handleOk: () => boolean; handleCancel: (reason: any) => boolean; handleClear: () => void; componentDidUpdate(): void; abstract renderFirstChild(value: Date, validRange: DateRange, onChange: any): ReactNode; abstract renderSecondChild(value: Date, validRange: DateRange, onChange: any): ReactNode; render(): JSX.Element; } export default BaseRangePicker;