UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

46 lines (45 loc) 1.6 kB
import React from 'react'; import { type TextMaskInputController } from './text-mask/createTextMaskInputElement'; import InputModeNumber from './text-mask/InputModeNumber'; import type { Mask, MaskFunction, Pipe } from './text-mask/types'; export type TextMaskMask = Mask | MaskFunction | boolean | { mask?: Mask | MaskFunction; pipe?: Pipe; }; export type TextMaskInputElement = React.ReactElement; export type TextMaskValue = string | number; export interface TextMaskProps extends Omit<React.HTMLProps<HTMLInputElement>, 'ref'> { mask: TextMaskMask; inputRef?: React.RefObject<HTMLInputElement>; inputElement?: TextMaskInputElement; onChange?: React.ChangeEventHandler<HTMLInputElement>; guide?: boolean; value?: TextMaskValue; pipe?: Pipe; placeholderChar?: string; keepCharPositions?: boolean; showMask?: boolean; } export default class TextMask extends React.PureComponent<TextMaskProps> { inputRef: React.RefObject<HTMLInputElement>; textMaskInputElement?: TextMaskInputController; inputMode?: InputModeNumber; static defaultProps: { inputElement: any; inputRef: any; onChange: any; guide: any; value: any; pipe: any; placeholderChar: any; keepCharPositions: any; showMask: any; }; constructor(props: TextMaskProps); componentDidMount(): void; componentWillUnmount(): void; initTextMask(): void; onChange: React.ChangeEventHandler<HTMLInputElement>; componentDidUpdate(prevProps: TextMaskProps): void; render(): JSX.Element; }