/**
* @file DatePicker
* @description 时间选择器组件
* @author fex
*/
///
import React from 'react';
import moment from 'moment';
import 'moment/locale/zh-cn';
import { ThemeProps } from 'amis-core';
import { LocaleProps } from 'amis-core';
export type ShortCutDate = {
label: string;
date: moment.Moment;
};
export type ShortCutDateRange = {
label: string;
startDate?: moment.Moment;
endDate?: moment.Moment;
};
export type ShortCuts = {
label: string;
value: string;
} | ShortCutDate | ShortCutDateRange;
export interface DateProps extends LocaleProps, ThemeProps {
viewMode: 'years' | 'months' | 'days' | 'time' | 'quarters';
className?: string;
popoverClassName?: string;
placeholder?: string;
inputFormat?: string;
timeFormat?: string;
format?: string;
closeOnSelect: boolean;
disabled?: boolean;
minDate?: moment.Moment;
maxDate?: moment.Moment;
clearable?: boolean;
defaultValue?: any;
utc?: boolean;
onChange: (value: any) => void;
value?: any;
shortcuts: string | Array;
overlayPlacement: string;
dateFormat?: string;
timeConstraints?: {
hours?: {
min: number;
max: number;
step: number;
};
minutes?: {
min: number;
max: number;
step: number;
};
seconds: {
min: number;
max: number;
step: number;
};
};
popOverContainer?: any;
label?: string | false;
borderMode?: 'full' | 'half' | 'none';
embed?: boolean;
schedules?: Array<{
startTime: Date;
endTime: Date;
content: any;
className?: string;
}>;
scheduleClassNames?: Array;
largeMode?: boolean;
todayActiveStyle?: React.CSSProperties;
onScheduleClick?: (scheduleData: any) => void;
useMobileUI?: boolean;
mobileCalendarMode?: 'picker' | 'calendar';
onFocus?: Function;
onBlur?: Function;
onRef?: any;
}
export interface DatePickerState {
isOpened: boolean;
isFocused: boolean;
value: moment.Moment | undefined;
inputValue: string | undefined;
}
export declare class DatePicker extends React.Component {
static defaultProps: {
viewMode: "time" | "years" | "months" | "days";
shortcuts: string;
closeOnSelect: boolean;
overlayPlacement: string;
scheduleClassNames: string[];
};
state: DatePickerState;
constructor(props: DateProps);
dom: HTMLDivElement;
inputRef: React.RefObject;
inputValueCache: string;
componentDidMount(): void;
componentDidUpdate(prevProps: DateProps): void;
focus(): void;
handleFocus(e: React.SyntheticEvent): void;
handleBlur(e: React.SyntheticEvent): void;
handleKeyPress(e: React.KeyboardEvent): void;
handleClick(): void;
handlePopOverClick(e: React.MouseEvent): void;
open(fn?: () => void): void;
close(): void;
clearValue(e: React.MouseEvent): void;
clear(): void;
reset(resetValue?: any): void;
handleChange(value: moment.Moment): void;
inputChange(e: React.ChangeEvent): void;
onInputBlur(): void;
selectRannge(item: any): void;
checkIsValidDate(currentDate: moment.Moment): boolean;
getTarget(): HTMLDivElement;
getParent(): HTMLDivElement;
domRef: (ref: HTMLDivElement) => void;
getAvailableShortcuts(key: string): any;
renderShortCuts(shortcuts: string | Array): JSX.Element | null;
render(): JSX.Element;
}
declare const _default: {
new (props: Omit & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps): {
ref: any;
childRef(ref: any): void;
getWrappedInstance(): any;
render(): JSX.Element;
context: any;
setState(state: {} | ((prevState: Readonly<{}>, props: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps> & Readonly<{
children?: import("react").ReactNode;
}>;
state: Readonly<{}>;
refs: {
[key: string]: import("react").ReactInstance;
};
componentDidMount?(): void;
shouldComponentUpdate?(nextProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
componentWillUnmount?(): void;
componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
componentDidUpdate?(prevProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps, keyof ThemeProps> & import("amis-core/lib/theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
};
displayName: string;
contextType: import("react").Context;
ComposedComponent: import("react").ComponentType & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps> & {
themeKey?: string | undefined;
}>;
} & import("hoist-non-react-statics").NonReactStatics & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps> & {
themeKey?: string | undefined;
}, {}> & {
ComposedComponent: import("react").ComponentType & {
locale?: string | undefined;
translate?: ((str: string, ...args: any[]) => string) | undefined;
} & ThemeProps> & {
themeKey?: string | undefined;
};
};
export default _default;