UNPKG

input-format

Version:

Formatting user's text input on-the-fly

35 lines (25 loc) 1.59 kB
// Experimental TypeScript typings. // https://gitlab.com/catamphetamine/input-format/-/issues/1 export type ParseFunctionResult = string | void; export interface FormatFunctionResult { text: string; template: string; } export type ParseFunction = (character: string, value: string) => ParseFunctionResult; export type FormatFunction = (value?: string) => FormatFunctionResult; export interface ExportedParseFunctionResult { value: string; caret: number; } export interface ExportedFormatFunctionResult { text: string; caret: number; } export function parse(text: string, caretPosition: number, parse: ParseFunction): ExportedParseFunctionResult; export function format(value: string, caretPosition: number, format: FormatFunction): ExportedFormatFunctionResult; export function onChange(event: React.ChangeEvent<HTMLInputElement>, input: HTMLInputElement, parseCharacter: ParseFunction, format: FormatFunction, onChangeHandler: (value: string) => void): void; export function onKeyDown(event: React.KeyboardEvent<HTMLInputElement>, input: HTMLInputElement, parseCharacter: ParseFunction, format: FormatFunction, onChangeHandler: (value: string) => void): void; export function templateParser(template: string, placeholder: string, parseCharacter: ParseFunction): ParseFunction; export function templateParser(template: string, parseCharacter: ParseFunction): ParseFunction; export function templateFormatter(template: string, placeholder?: string, shouldCloseBraces?: boolean): FormatFunction; export function parseDigit(value: string): string;