UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

44 lines 1.63 kB
import { ComponentProps } from 'react'; import Input from '../Input/index'; import { MASK_TYPE } from '../utils/brazilianFormatters'; type InputProps = ComponentProps<typeof Input>; /** * Props do MaskedInput. * * Extende as props do `Input` adicionando o `mask` que identifica o tipo de * mascara a aplicar (CNPJ, CPF, Telefone ou CEP). * * O tipo de `value` e estreitado para `string | undefined` porque as mascaras * sao operacoes de string — aceitar `number` ou `readonly string[]` (do * `InputHTMLAttributes`) levaria a comportamento inconsistente. */ export type MaskedInputProps = { /** Tipo da mascara a ser aplicada */ mask: MASK_TYPE; /** Valor mascarado (string). Pode ser passado cru ou ja mascarado (idempotente). */ value?: string; } & Omit<InputProps, 'value'>; /** * MaskedInput - wrapper do Input com mascara progressiva aplicada * automaticamente no onChange. * * O valor recebido pelo consumidor no `onChange` ja vem com a mascara aplicada. * Alem disso, se um `value` controlado for passado "cru" (sem mascara), o * componente formata para exibicao. Como as mascaras sao idempotentes, * repassar o valor mascarado tambem funciona. * * @example * ```tsx * <MaskedInput * label="CNPJ" * mask={MASK_TYPE.CNPJ} * variant="rounded" * placeholder="00.000.000/0000-00" * value={cnpj} * onChange={(e) => setCnpj(e.target.value)} * /> * ``` */ declare const MaskedInput: import("react").ForwardRefExoticComponent<Omit<MaskedInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>; export default MaskedInput; //# sourceMappingURL=MaskedInput.d.ts.map