@skbkontur/ui-kit
Version:
51 lines (50 loc) • 1.54 kB
TypeScript
/// <reference types="react" />
import * as React from 'react';
import { Override } from '../../lib/types';
export declare type InputSize = 'small' | 'medium' | 'large';
export declare type InputAlign = 'left' | 'center' | 'right';
export declare type InputType = 'password' | 'text';
export declare type InputProps = Override<React.InputHTMLAttributes<HTMLInputElement>, {
align?: InputAlign;
borderless?: boolean;
/**
* Иконка слева инпута.
*/
leftIcon?: React.ReactNode;
/**
* Иконка справа инпута.
*/
rightIcon?: React.ReactNode;
size?: InputSize;
type?: InputType;
width?: number | string;
onChange?: (e: React.ChangeEvent<HTMLInputElement>, v: string) => void;
warning?: boolean;
error?: boolean;
}>;
export interface InputState {
polyfillPlaceholder: boolean;
blinking: boolean;
}
declare class Input extends React.Component<InputProps, InputState> {
protected static defaultProps: {
size: InputSize;
width: number | string;
};
state: InputState;
private blinkTimeout;
private input;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(nextProps: InputProps): void;
focus(): void;
blur(): void;
blink(): void;
setSelectionRange(start: number, end: number): void;
render(): JSX.Element;
private renderIcon(icon);
private renderPlaceholder();
private refInput;
private handleChange;
}
export default Input;