CUIT / CUIL
cuitCuil es un field nativo de DYONA para valores CUIT/CUIL argentinos. El consumidor declara el field; DYONA se ocupa del formato visual, la normalización y la validación estructural.
{
name: 'cuit',
label: 'CUIT / CUIL',
type: 'cuitCuil',
required: true,
}
Formato visual y valor almacenado
La máscara es sólo presentación. DYONA muestra:
30 71094360 1
El estado del formulario y el valor de submit se mantienen como un string de once dígitos, sin espacios ni guiones:
'30710943601'
El field acepta escritura y pegado con dígitos, espacios o guiones. Conserva automáticamente sólo los primeros once dígitos y el input continúa mostrando XX XXXXXXXX X.
Validación
Un cuitCuil opcional vacío es válido. Con required: true, utiliza la validación required común de DYONA.
Cuando existe un valor, DYONA valida que tenga exactamente once dígitos y que su dígito verificador CUIT/CUIL sea estructuralmente válido. No es una consulta a ARCA: no verifica existencia, estado fiscal ni titularidad.
Las validaciones adicionales declaradas siguen funcionando junto a la validación nativa. Los fieldErrors de backend funcionan como en cualquier otro field de DyonaForm.
Initial values y submit
Usá el valor normalizado en initialValues; DYONA lo muestra con formato visual y envía el string normalizado.
import {DyonaForm, type DyonaFormSchema} from '@typhonsoftware/dyona-form';
const schema: DyonaFormSchema = {
title: 'Identificación fiscal',
hideSingleTab: true,
actions: {submit: {label: 'Guardar'}},
tabs: [{id: 'identification', title: 'Identificación', rows: [{columns: [
{name: 'cuit', label: 'CUIT / CUIL', type: 'cuitCuil', required: true},
]}]}],
};
<DyonaForm
schema={schema}
initialValues={{cuit: '30710943601'}}
onSubmit={(values) => console.log(values)}
/>;
La misma normalización hace que un valor inicial o pegado como 30-71094360-1 se convierta en 30710943601 dentro del formulario.