@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
95 lines (94 loc) • 5.23 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import DateInputFoundation, { DateInputAdapter, DateInputFoundationProps, RangeType, InsetInputChangeProps, InsetInputChangeFoundationProps } from '@douyinfe/semi-foundation/lib/cjs/datePicker/inputFoundation';
import { noop } from '@douyinfe/semi-foundation/lib/cjs/utils/function';
import { ValueType } from '@douyinfe/semi-foundation/lib/cjs/datePicker/foundation';
import BaseComponent, { BaseProps } from '../_base/baseComponent';
export interface DateInputProps extends DateInputFoundationProps, BaseProps {
insetLabel?: React.ReactNode;
prefix?: React.ReactNode;
onClick?: (e: React.MouseEvent<HTMLInputElement>) => void;
onChange?: (value: string, e: React.MouseEvent<HTMLInputElement>) => void;
onEnterPress?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
onBlur?: (e: React.MouseEvent<HTMLInputElement>) => void;
onFocus?: (e: React.MouseEvent<HTMLInputElement>, rangeType?: RangeType) => void;
onClear?: (e: React.MouseEvent<HTMLDivElement>) => void;
onInsetInputChange?: (options: InsetInputChangeProps) => void;
value?: Date[];
inputRef?: React.RefObject<HTMLInputElement>;
rangeInputStartRef?: React.RefObject<HTMLInputElement>;
rangeInputEndRef?: React.RefObject<HTMLInputElement>;
showClearIgnoreDisabled?: boolean;
}
export default class DateInput extends BaseComponent<DateInputProps, {}> {
static propTypes: {
borderless: PropTypes.Requireable<boolean>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onEnterPress: PropTypes.Requireable<(...args: any[]) => any>;
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
onClear: PropTypes.Requireable<(...args: any[]) => any>;
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
value: PropTypes.Requireable<any[]>;
disabled: PropTypes.Requireable<boolean>;
type: PropTypes.Requireable<"date" | "month" | "dateTime" | "dateRange" | "year" | "monthRange" | "dateTimeRange">;
showClear: PropTypes.Requireable<boolean>;
format: PropTypes.Requireable<string>;
inputStyle: PropTypes.Requireable<object>;
inputReadOnly: PropTypes.Requireable<boolean>;
insetLabel: PropTypes.Requireable<PropTypes.ReactNodeLike>;
validateStatus: PropTypes.Requireable<string>;
prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
prefixCls: PropTypes.Requireable<string>;
dateFnsLocale: PropTypes.Validator<object>;
placeholder: PropTypes.Requireable<NonNullable<string | any[]>>;
rangeInputFocus: PropTypes.Requireable<NonNullable<string | boolean>>;
rangeInputStartRef: PropTypes.Requireable<object>;
rangeInputEndRef: PropTypes.Requireable<object>;
rangeSeparator: PropTypes.Requireable<string>;
insetInput: PropTypes.Requireable<NonNullable<boolean | object>>;
insetInputValue: PropTypes.Requireable<object>;
defaultPickerValue: PropTypes.Requireable<NonNullable<string | number | object>>;
};
static defaultProps: {
borderless: boolean;
showClear: boolean;
onClick: typeof noop;
onChange: typeof noop;
onEnterPress: typeof noop;
onBlur: typeof noop;
onClear: typeof noop;
onFocus: typeof noop;
type: string;
inputStyle: {};
inputReadOnly: boolean;
prefixCls: "semi-datepicker";
rangeSeparator: " ~ ";
};
foundation: DateInputFoundation;
constructor(props: DateInputProps);
get adapter(): DateInputAdapter;
componentDidMount(): void;
componentWillUnmount(): void;
formatText(value: ValueType): string;
handleChange: (value: string, e: React.ChangeEvent<HTMLInputElement>) => void;
handleEnterPress: (e: React.KeyboardEvent<HTMLInputElement>) => void;
handleInputClear: (e: React.MouseEvent<HTMLDivElement>) => void;
handleRangeInputChange: (rangeStart: string, rangeEnd: string, e: React.ChangeEvent) => void;
handleRangeInputClear: React.MouseEventHandler<HTMLDivElement>;
handleRangeInputEnterPress: (e: React.KeyboardEvent<HTMLInputElement>, rangeStart: string, rangeEnd: string) => void;
handleRangeInputEndKeyPress: (e: React.KeyboardEvent<HTMLInputElement>) => void;
handleRangeInputFocus: (e: React.MouseEvent<HTMLElement>, rangeType: RangeType) => void;
handleRangeStartFocus: React.MouseEventHandler<HTMLElement>;
handleInsetInputChange: (options: InsetInputChangeFoundationProps) => void;
getRangeInputValue: (rangeStart: string, rangeEnd: string) => string;
renderRangePrefix(): React.JSX.Element;
renderRangeSeparator(rangeStart: string, rangeEnd: string): React.JSX.Element;
renderRangeClearBtn(rangeStart: string, rangeEnd: string): React.JSX.Element;
renderRangeSuffix(suffix: React.ReactNode): React.JSX.Element;
renderRangeInput(rangeProps: DateInputProps): React.JSX.Element;
isRenderMultipleInputs(): boolean;
renderInputInset(): React.JSX.Element;
renderTriggerInput(): React.JSX.Element;
render(): React.JSX.Element;
}