UNPKG

@docsvision/webclient

Version:

Type definitions for DocsVision WebClient scripts and extensions.

57 lines (56 loc) 3.18 kB
/// <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; }