UNPKG

react-masked-field

Version:
92 lines (91 loc) 2.9 kB
/** * Copyright (c) 2015 ZenPayroll * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import React from 'react'; import PropTypes from 'prop-types'; declare type InputProps = React.InputHTMLAttributes<HTMLInputElement>; export interface AlwaysMaskedFieldProps extends InputProps { mask: string; translations?: { [char: string]: RegExp; }; value?: string; onComplete?: (val: string) => void; valueLink?: { value?: string; requestChange: (newVal: string) => void; }; onChange?: (e: { target: { id?: string; name?: string; value: string; }; }) => void; inputRef?: (node: HTMLInputElement | null) => any; } interface MaskedFieldState { value: string; } declare class AlwaysMaskedField extends React.Component<AlwaysMaskedFieldProps, MaskedFieldState> { static propTypes: { mask: PropTypes.Requireable<string>; translations: PropTypes.Requireable<{ [x: string]: RegExp | null | undefined; }>; value: PropTypes.Requireable<string>; placeholder: PropTypes.Requireable<string>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onComplete: PropTypes.Requireable<(...args: any[]) => any>; onFocus: PropTypes.Requireable<(...args: any[]) => any>; onBlur: PropTypes.Requireable<(...args: any[]) => any>; valueLink: PropTypes.Requireable<PropTypes.InferProps<{ value: PropTypes.Validator<string>; requestChange: PropTypes.Validator<(...args: any[]) => any>; }>>; }; static defaultProps: { mask: undefined; translations: undefined; value: undefined; placeholder: undefined; onChange: undefined; onKeyDown: undefined; onComplete: undefined; onFocus: undefined; onBlur: undefined; valueLink: undefined; }; private buffer; private firstNonMaskIdx; private cursorPos; private input; constructor(props: Readonly<AlwaysMaskedFieldProps>); componentDidMount(): void; componentDidUpdate({ value: prevValue }: AlwaysMaskedFieldProps): void; private getSelection; private getPropsValue; private getPattern; private setSelection; private setValue; private handleFocus; private handleBlur; private handleKeyDown; private handleChange; private resetBuffer; private initialBuffer; private bufferString; private isBufferEmpty; private isBufferFull; private nextNonMaskIdx; private prevNonMaskIdx; private callOnChange; private callOnComplete; private maskedValue; render(): JSX.Element; } export default AlwaysMaskedField;