choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
55 lines (54 loc) • 2.04 kB
TypeScript
import React, { Component, CSSProperties, ReactNode, TextareaHTMLAttributes } from 'react';
import { AbstractInputProps } from './Input';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export interface AutoSizeType {
minRows?: number;
maxRows?: number;
}
export interface TextAreaProps extends AbstractInputProps<HTMLTextAreaElement> {
autosize?: boolean | AutoSizeType;
autoFocus?: boolean;
border?: boolean;
}
export interface TextAreaState {
textareaStyles?: CSSProperties;
inputLength?: number;
focused?: boolean;
}
export declare type HTMLTextareaProps = Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'onChange' | 'prefix'>;
export default class TextArea extends Component<TextAreaProps & HTMLTextareaProps, TextAreaState> {
static displayName: string;
static get contextType(): typeof ConfigContext;
static defaultProps: {
showLengthInfo: boolean;
border: boolean;
labelLayout: string;
};
context: ConfigContextValue;
nextFrameActionId: number;
state: {
textareaStyles: {};
inputLength: number;
focused: boolean;
};
private textAreaRef;
private resizeObserver?;
componentDidMount(): void;
componentWillReceiveProps(nextProps: TextAreaProps): void;
componentWillUnmount(): void;
focus(): void;
blur(): void;
resizeTextarea: () => void;
getPrefixCls(): string;
getTextAreaClassName(): string;
handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
handleKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
handleInput: () => void;
saveTextAreaRef: (textArea: HTMLTextAreaElement) => void;
getWrapperClassName(): string;
handleFocus: (e: React.FocusEvent<HTMLTextAreaElement, Element>) => void;
handleBlur: (e: React.FocusEvent<HTMLTextAreaElement, Element>) => void;
getLengthInfo(prefixCls: any): JSX.Element | null;
renderFloatLabel(): ReactNode;
render(): JSX.Element;
}