CUIT / CUIL
cuitCuil é um field nativo do DYONA para valores argentinos de CUIT/CUIL. O consumidor declara o field; DYONA cuida da formatação visual, normalização e validação estrutural.
{
name: 'cuit',
label: 'CUIT / CUIL',
type: 'cuitCuil',
required: true,
}
Formato visual e valor armazenado
A máscara é somente apresentação. DYONA mostra:
30 71094360 1
O estado do formulário e o valor de submit permanecem uma string de onze dígitos, sem espaços ou hífens:
'30710943601'
O field aceita digitação e colagem com dígitos, espaços ou hífens. Ele mantém automaticamente apenas os primeiros onze dígitos, enquanto o input continua mostrando XX XXXXXXXX X.
Validação
Um cuitCuil opcional vazio é válido. Com required: true, ele usa a validação required comum do DYONA.
Quando existe um valor, DYONA valida que tenha exatamente onze dígitos e que seu dígito verificador CUIT/CUIL seja estruturalmente válido. Não é uma consulta à ARCA: não verifica existência, situação fiscal nem titularidade.
Validações adicionais declaradas continuam funcionando junto com a validação nativa. Os fieldErrors de backend funcionam como em qualquer outro field de DyonaForm.
Initial values e submit
Use o valor normalizado em initialValues; DYONA o mostra com formato visual e envia a string normalizada.
import {DyonaForm, type DyonaFormSchema} from '@typhonsoftware/dyona-form';
const schema: DyonaFormSchema = {
title: 'Identificação fiscal',
hideSingleTab: true,
actions: {submit: {label: 'Salvar'}},
tabs: [{id: 'identification', title: 'Identificação', rows: [{columns: [
{name: 'cuit', label: 'CUIT / CUIL', type: 'cuitCuil', required: true},
]}]}],
};
<DyonaForm
schema={schema}
initialValues={{cuit: '30710943601'}}
onSubmit={(values) => console.log(values)}
/>;
A mesma normalização faz com que um valor inicial ou colado como 30-71094360-1 se torne 30710943601 dentro do formulário.