@wix/design-system
Version:
@wix/design-system
99 lines • 4.37 kB
TypeScript
import React from 'react';
import PropTypes from 'prop-types';
import { dataAttr } from './constants';
import { StatusContextProps } from '../FormField/StatusContext';
import { InputAreaProps } from './InputArea.types';
interface InputAreaState {
focus: boolean;
counter: number;
computedRows: number | undefined;
}
/**
* General inputArea container
*/
declare class InputArea extends React.PureComponent<InputAreaProps, InputAreaState> {
textArea: HTMLTextAreaElement | null;
_computedStyle: CSSStyleDeclaration | null;
private _defaultLineHeight?;
state: {
focus: boolean;
counter: number;
computedRows: number | undefined;
};
static MIN_ROWS: number;
static MAX_ROWS: number;
static displayName: string;
static defaultProps: InputAreaProps;
static propTypes: {
dataHook: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
children: PropTypes.Requireable<(...args: any[]) => any>;
ariaControls: PropTypes.Requireable<string>;
ariaDescribedby: PropTypes.Requireable<string>;
ariaLabel: PropTypes.Requireable<string>;
autoFocus: PropTypes.Requireable<boolean>;
size: PropTypes.Requireable<string>;
defaultValue: PropTypes.Requireable<string>;
disabled: PropTypes.Requireable<boolean>;
status: PropTypes.Requireable<string>;
statusMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
forceFocus: PropTypes.Requireable<boolean>;
forceHover: PropTypes.Requireable<boolean>;
hasCounter: PropTypes.Requireable<boolean>;
id: PropTypes.Requireable<string>;
name: PropTypes.Requireable<string>;
maxHeight: PropTypes.Requireable<string>;
maxLength: PropTypes.Requireable<number>;
minHeight: PropTypes.Requireable<string>;
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onEnterPressed: PropTypes.Requireable<(...args: any[]) => any>;
onEscapePressed: PropTypes.Requireable<(...args: any[]) => any>;
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
onCompositionStart: PropTypes.Requireable<(...args: any[]) => any>;
onCompositionEnd: PropTypes.Requireable<(...args: any[]) => any>;
placeholder: PropTypes.Requireable<string>;
readOnly: PropTypes.Requireable<boolean>;
resizable: PropTypes.Requireable<boolean>;
rows: PropTypes.Requireable<number>;
autoGrow: PropTypes.Requireable<boolean>;
minRowsAutoGrow: PropTypes.Requireable<number>;
maxRowsAutoGrow: PropTypes.Requireable<number>;
tabIndex: PropTypes.Requireable<number>;
tooltipPlacement: PropTypes.Requireable<string>;
value: PropTypes.Requireable<string>;
required: PropTypes.Requireable<boolean>;
dir: PropTypes.Requireable<string>;
};
_getDataAttr: ({ statusContext }: {
statusContext: StatusContextProps;
}) => Partial<{
[dataAttr.SIZE]: import("./InputArea.types").InputAreaSize | undefined;
[dataAttr.STATUS]: import("..").StatusType | null | undefined;
[dataAttr.DISABLED]: boolean;
[dataAttr.RESIZABLE]: boolean;
[dataAttr.HOVER]: boolean;
[dataAttr.FOCUS]: boolean;
}>;
componentDidMount(): void;
componentDidUpdate(prevProps: InputAreaProps): void;
componentWillUnmount(): void;
render(): React.JSX.Element;
focus: () => void;
blur: () => void;
select: () => void;
calculateComputedRows: () => void;
_onFocus: (e?: React.FocusEvent<HTMLTextAreaElement>) => void;
_onBlur: (e: React.FocusEvent<HTMLTextAreaElement>) => void;
_onKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
_onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
_onInput: () => void;
_updateComputedStyle: import("lodash").DebouncedFuncLeading<() => void>;
_getComputedStyle: () => CSSStyleDeclaration | null;
_getRowsCount: () => number;
_getDefaultLineHeight: () => number | undefined;
}
export default InputArea;
//# sourceMappingURL=InputArea.d.ts.map