UNPKG

4.86 kBTypeScriptView Raw
1import React, { ChangeEventHandler, Component, CSSProperties, FormEventHandler, ReactNode } from 'react';
2import PropTypes from 'prop-types';
3import Group from './Group';
4import Search from './Search';
5import TextArea from './TextArea';
6import { Size } from '../_util/enum';
7export interface AbstractInputProps {
8 prefixCls?: string;
9 className?: string;
10 defaultValue?: any;
11 value?: any;
12 tabIndex?: number;
13 style?: CSSProperties;
14 label?: ReactNode;
15 showLengthInfo?: boolean;
16 showPasswordEye?: boolean;
17}
18export interface InputProps extends AbstractInputProps {
19 placeholder?: string;
20 copy?: boolean;
21 type?: string;
22 id?: string;
23 name?: string;
24 size?: Size;
25 maxLength?: number;
26 disabled?: boolean;
27 readOnly?: boolean;
28 addonBefore?: ReactNode;
29 addonAfter?: ReactNode;
30 onPressEnter?: FormEventHandler<HTMLInputElement>;
31 onKeyDown?: FormEventHandler<HTMLInputElement>;
32 onKeyUp?: FormEventHandler<HTMLInputElement>;
33 onChange?: ChangeEventHandler<HTMLInputElement>;
34 onClick?: FormEventHandler<HTMLInputElement>;
35 onFocus?: FormEventHandler<HTMLInputElement>;
36 onBlur?: FormEventHandler<HTMLInputElement>;
37 onInput?: FormEventHandler<HTMLInputElement>;
38 onCopy?: (value: any) => void;
39 autoComplete?: string;
40 prefix?: ReactNode;
41 suffix?: ReactNode;
42 spellCheck?: boolean;
43 autoFocus?: boolean;
44 focused?: boolean;
45 border?: boolean;
46}
47export interface InputState {
48 value?: any;
49 focused?: boolean;
50 showPasswordEye?: boolean;
51 showPassword?: boolean;
52}
53export default class Input extends Component<InputProps, any> {
54 static displayName: string;
55 static Group: typeof Group;
56 static Search: typeof Search;
57 static TextArea: typeof TextArea;
58 static defaultProps: {
59 type: string;
60 disabled: boolean;
61 readOnly: boolean;
62 showLengthInfo: boolean;
63 showPasswordEye: boolean;
64 border: boolean;
65 };
66 static propTypes: {
67 type: PropTypes.Requireable<string>;
68 id: PropTypes.Requireable<string | number>;
69 label: PropTypes.Requireable<PropTypes.ReactNodeLike>;
70 size: PropTypes.Requireable<Size>;
71 maxLength: PropTypes.Requireable<string | number>;
72 disabled: PropTypes.Requireable<boolean>;
73 value: PropTypes.Requireable<any>;
74 defaultValue: PropTypes.Requireable<any>;
75 className: PropTypes.Requireable<string>;
76 addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
77 addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
78 prefixCls: PropTypes.Requireable<string>;
79 autosize: PropTypes.Requireable<boolean | object>;
80 onPressEnter: PropTypes.Requireable<(...args: any[]) => any>;
81 onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
82 onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
83 onFocus: PropTypes.Requireable<(...args: any[]) => any>;
84 onBlur: PropTypes.Requireable<(...args: any[]) => any>;
85 prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
86 suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
87 copy: PropTypes.Requireable<boolean>;
88 onCopy: PropTypes.Requireable<(...args: any[]) => any>;
89 readOnly: PropTypes.Requireable<boolean>;
90 focused: PropTypes.Requireable<boolean>;
91 border: PropTypes.Requireable<boolean>;
92 showLengthInfo: PropTypes.Requireable<boolean>;
93 showPasswordEye: PropTypes.Requireable<boolean>;
94 };
95 state: InputState;
96 input: HTMLInputElement;
97 rendered: HTMLDivElement;
98 prefix: HTMLSpanElement;
99 suffix: HTMLSpanElement;
100 constructor(props: any);
101 handleKeyDown: (e: React.KeyboardEvent<HTMLInputElement>) => void;
102 componentDidMount(): void;
103 componentWillReceiveProps(nextProps: InputProps): void;
104 componentDidUpdate(): void;
105 setRenderedStyle(): void;
106 handleFocus: (e: React.FocusEvent<HTMLInputElement>) => void;
107 handleBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
108 handleChange: (e: any) => void;
109 handleCopy: () => void;
110 handleTogglePassword: () => void;
111 saveInput: (node: HTMLInputElement) => void;
112 saveRenderedRef: (node: HTMLDivElement) => void;
113 savePrefix: (node: HTMLSpanElement) => void;
114 saveSuffix: (node: HTMLSpanElement) => void;
115 focus(): void;
116 blur(): void;
117 getPrefixCls(): string;
118 getInputClassName(): string;
119 renderCopyIcon(): JSX.Element | null;
120 renderShowPassword(): JSX.Element | null;
121 renderInput(): JSX.Element;
122 getLengthInfo(): JSX.Element | null;
123 getLabel(): {} | null | undefined;
124 renderFloatLabel(): ReactNode;
125 getSizeClassName(name: string): string;
126 hasValue(): boolean;
127 renderPlaceholder(): JSX.Element | undefined;
128 render(): JSX.Element;
129}