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