@51yzone/pc-components
Version:
An enterprise-class UI design language and React-based implementation
57 lines (56 loc) • 2.12 kB
TypeScript
import React from 'react';
import { RangePickerProps } from 'antd/lib/date-picker/generatePicker';
import moment, { Moment } from 'moment';
import PropTypes from 'prop-types';
export declare type RangeType = 'week' | 'lastWeek' | 'day' | 'month' | 'custom' | 'all';
export declare type DateValueType = Moment | null;
export interface Locale {
'date.range.day': string;
'date.range.week': string;
'date.range.lastWeek': string;
'date.range.month': string;
'date.range.all': string;
'date.range.custom': string;
}
export interface DateRangeProps {
locale?: Locale;
maxRangeDays?: number;
prefixCls?: string;
className?: string;
style?: React.CSSProperties;
rangePickerProps?: RangePickerProps<Moment>;
onChange?: (start?: DateValueType, end?: DateValueType) => void;
onDateRangeLoading?: (start?: DateValueType, end?: DateValueType) => void;
}
export interface DateRangeState {
value?: [DateValueType, DateValueType];
dates?: [DateValueType, DateValueType] | null;
showCustom: boolean;
selectValue: RangeType;
}
export default class DateRange extends React.Component<DateRangeProps> {
static defaultProps: {
prefixCls: string;
};
static propTypes: {
rangePickerProps: PropTypes.Requireable<object>;
maxRangeDays: PropTypes.Requireable<number>;
locale: PropTypes.Requireable<object>;
prefixCls: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onDateRangeLoading: PropTypes.Requireable<(...args: any[]) => any>;
};
state: DateRangeState;
getRangeBySelectValue: (value: RangeType) => null[] | moment.Moment[];
handleSelectChange: (value: RangeType) => void;
onChangeRange: (timeRange: [Moment, Moment]) => void;
changeRangeDate: (timeRange: [Moment, Moment] | [
null,
null
]) => void;
componentDidMount(): void;
disabledDate: (current: DateValueType) => boolean;
render(): JSX.Element;
}