@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
72 lines (71 loc) • 3.83 kB
TypeScript
/// <reference types="react" />
import { InputMaskView } from '@docsvision/webclient/Helpers/InputMask/InputMaskView';
import { HtmlProps, IComponentProps } from '@docsvision/web/core/component';
import { InputState, MaskOptions } from 'react-input-mask';
/** Свойства { @see InputMask } */
export interface IInputMaskProps extends HtmlProps.input, IComponentProps<never, InputMaskView> {
/**
* Маска. Символы формата:
* * `9`: `0-9`
* * `a`: `A-Z, a-z`
* * `\*`: `A-Z, a-z, 0-9`
*
* Любой символ можно экранировать с помощью обратной косой черты, которая обычно отображается как двойная обратная косая черта в строках JS.
* Например, немецкая маска телефона с неустранимым префиксом +49 будет выглядеть как `mask="+4\\9 99 999 99"` или `mask={"+4\\\\9 99 999 99"}`
*/
mask: string | null;
/**
* Символ для покрытия незаполненных редактируемых частей маски. Символ по умолчанию "_".
* Если установлено значение null, незаполненные части будут пустыми, как и при обычном вводе.
*/
maskChar?: string | null;
/**
* Определяет символы формата с символами в качестве ключей и соответствующей строкой RegExp в качестве значений.
* По умолчанию:
* ```
* {
* "9": "[0-9]",
* "a": "[A-Za-z]",
* "*": "[A-Za-z0-9]"
* }```
*/
formatChars?: {
[key: string]: string;
};
/**
* Показывать маску даже при пустом вводе без фокуса
*/
alwaysShowMask?: boolean;
/**
* Используйте inputRef вместо ref, если вам нужен узел для управления фокусом, выбором и т. д
*/
inputRef?: React.Ref<HTMLInputElement>;
/**
* Если вам нужно реализовать более сложное поведение маскирования, вы можете использовать
* функцию beforeMaskedValueChange для изменения замаскированного значения прежде, чем
* значение будет изменено
*/
beforeMaskedValueChange?(newState: InputState, oldState: InputState, userInput: string, maskOptions: MaskOptions): InputState;
/** Использовать заголовок. По умолчанию: true */
useLabel?: boolean;
/** Использовать маску. По умолчанию: true */
useMask?: boolean;
/** Использовать текст ошибки. По умолчанию: true */
useLabelError?: boolean;
/** Текст заголовка */
labelText?: string;
/** Текст ошибки */
errorText?: string;
/** Оторбажать ошибку */
isError?: boolean;
/** Валидный шаблон значения при потере фокуса */
validPattern?: RegExp;
/** Событие фокуса */
onFocus?: (ev: React.FocusEvent<HTMLInputElement>) => void;
/** Событие потери фокуса */
onBlur?: (ev: React.FocusEvent<HTMLInputElement>) => void;
/** Событие изменения значения в поле ввода */
onChange?: (ev: React.ChangeEvent<HTMLInputElement>) => void;
/** Событие валидации */
onValid?: (valid: boolean) => void;
}