@alifd/meet-react
Version:
Fusion Mobile React UI System Component
56 lines (55 loc) • 2.31 kB
TypeScript
/// <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;