@alifd/next
Version:
A configurable component library for web built on React.
90 lines (89 loc) • 4.08 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import Base from './base';
import type { TextAreaProps } from './types';
/**
* Input.TextArea
* @order 2
*/
export default class TextArea extends Base<TextAreaProps> {
static displayName: string;
static getDerivedStateFromProps: (nextProps: import("./types").BaseProps, prevState: import("./types").BaseState) => {
value: string | number;
} | null;
static propTypes: {
hasBorder: PropTypes.Requireable<boolean>;
state: PropTypes.Requireable<string>;
autoHeight: PropTypes.Requireable<NonNullable<boolean | object | null | undefined>>;
rows: PropTypes.Requireable<number>;
isPreview: PropTypes.Requireable<boolean>;
renderPreview: PropTypes.Requireable<(...args: any[]) => any>;
locale: PropTypes.Requireable<object>;
value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
defaultValue: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
disabled: PropTypes.Requireable<boolean>;
maxLength: PropTypes.Requireable<number>;
showLimitHint: PropTypes.Requireable<boolean>;
cutString: PropTypes.Requireable<boolean>;
readOnly: PropTypes.Requireable<boolean>;
trim: PropTypes.Requireable<boolean>;
placeholder: PropTypes.Requireable<string>;
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
getValueLength: PropTypes.Requireable<(...args: any[]) => any>;
inputStyle: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
htmlType: PropTypes.Requireable<string>;
name: PropTypes.Requireable<string>;
rtl: PropTypes.Requireable<boolean>;
size: PropTypes.Requireable<string>;
composition: PropTypes.Requireable<boolean>;
onCompositionStart: PropTypes.Requireable<(...args: any[]) => any>;
onCompositionEnd: PropTypes.Requireable<(...args: any[]) => any>;
prefix: PropTypes.Requireable<string>;
defaultPropsConfig: PropTypes.Requireable<object>;
errorBoundary: PropTypes.Requireable<NonNullable<boolean | object | null | undefined>>;
pure: PropTypes.Requireable<boolean>;
warning: PropTypes.Requireable<boolean>;
device: PropTypes.Requireable<string>;
children: PropTypes.Requireable<any>;
popupContainer: PropTypes.Requireable<any>;
};
static defaultProps: TextAreaProps;
helpRef: HTMLTextAreaElement;
nextFrameActionId: number;
constructor(props: TextAreaProps);
componentDidMount(): void;
componentDidUpdate(prevProps: TextAreaProps): void;
_getMinMaxHeight({ minRows, maxRows }: {
minRows?: string | number;
maxRows?: string | number;
}, value?: string | number | null): {
minHeight?: undefined;
maxHeight?: undefined;
height?: undefined;
overflowY?: undefined;
} | {
minHeight: number;
maxHeight: number;
height: number;
overflowY: "hidden" | undefined;
};
_getHeight(value: string | number): number;
_resizeTextArea: (value: string | number) => void;
ieHack(value: string | number): string | number;
/**
* value.length !== maxLength in ie/safari(mac) while value has `Enter`
* about maxLength compute: `Enter` was considered to be one char(\\n) in chrome , but two chars(\\r\\n) in ie/safari(mac).
* so while value has `Enter`, we should let display length + 1
*/
getValueLength(value: string): number;
saveTextAreaRef(textArea: HTMLTextAreaElement): void;
saveHelpRef(ref: HTMLTextAreaElement): void;
renderClear(): React.JSX.Element | null;
renderControl(): React.JSX.Element | null;
render(): React.JSX.Element;
}