@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
46 lines (45 loc) • 1.6 kB
TypeScript
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;
}