@docsvision/webclient
Version:
Type definitions for DocsVision WebClient scripts and extensions.
57 lines (56 loc) • 3.18 kB
TypeScript
/// <reference types="react" />
import { TextBoxInputMaskView } from "@docsvision/webclient/Platform/TextBoxInputMaskView";
import { HtmlProps, IComponentProps } from "@docsvision/web/core/component";
import { InputState, MaskOptions } from "react-input-mask";
export interface ITextBoxMaskProps extends HtmlProps.input, IComponentProps<never, TextBoxInputMaskView> {
/**
* Маска. Символы формата:
* * `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;
/**
* Если вам нужно реализовать более сложное поведение маскирования, вы можете использовать
* функцию beforeMaskedValueChange для изменения замаскированного значения прежде, чем
* значение будет изменено
*/
beforeMaskedValueChange?(newState: InputState, oldState: InputState, userInput: string, maskOptions: MaskOptions): InputState;
/**
* Используйте inputRef вместо ref, если вам нужен узел для управления фокусом, выбором и т. д
*/
inputRef?: React.Ref<HTMLInputElement>;
/** Использовать маску. По умолчанию: true */
useMask?: boolean;
/** Событие фокуса */
onFocus?: (ev: React.FocusEvent<HTMLInputElement>) => void;
/** Событие потери фокуса */
onBlur?: (ev: React.FocusEvent<HTMLInputElement>) => void;
/** Событие изменения значения в поле ввода */
onChange?: (ev: React.ChangeEvent<HTMLInputElement>) => void;
}