UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

39 lines (38 loc) 1.59 kB
/// <reference types="react" /> import { OpUnitType } from 'dayjs'; import { Component } from 'react'; import { LocaleContextProps } from '../../locale/context'; import { PickerColumnData } from '../../picker'; import { AvailableDate, DateCheckOptions } from '../../utils/date'; import { BaseComponentAttributes } from '../../utils/types'; export interface BasePickerProps extends BaseComponentAttributes { id?: any; value?: AvailableDate; defaultValue?: AvailableDate; disabledDate?: (value: Date, type: string) => boolean; onChange?: (value: Date) => void; validRange?: [Date, Date]; } interface BasePickerState { value: Date; } export type StepType = OpUnitType; declare abstract class BasePicker<T extends BasePickerProps = BasePickerProps> extends Component<T, BasePickerState> { constructor(props: T); abstract getStep(): StepType; abstract getDisableType(): string; abstract getDataSource(locale: LocaleContextProps): PickerColumnData[][]; abstract toDate(...values: any[]): Date; abstract toValues(d: Date): any[]; abstract getRangeCheck(): DateCheckOptions; componentDidUpdate(prevProps: T): void; get value(): Date; get validRange(): T["validRange"]; filterDataSource(source: PickerColumnData[], changeDate: (d: Date, it: PickerColumnData) => void, type: 'month' | 'year' | 'day' | 'hour' | 'minute'): PickerColumnData[]; getAvailableDate(d: Date): Date; handleChange(values: any[]): void; render(): JSX.Element; private hasAvailable; private isAvailable; } export default BasePicker;