Pular para o conteúdo principal

Fields

Cada item de tabs[].rows[].columns[] é um DyonaFormField. Sua forma mínima é:

{name: 'firstName', label: 'Nome', type: 'text'}

name identifica o field e seu valor, e deve ser único dentro do formulário. label é o texto visível. type determina qual controle o DYONA Form renderiza.

Tipos disponíveis​

Field typeFinalidadeValor
textEntrada de texto em uma linha.string ou null
numberEntrada numérica.number normalizado ou null
dateEntrada de data.string ou null
datetimeEntrada de data e hora.string ou null
selectSeleção entre options predefinidas.string, number ou boolean conforme o value exato de uma option; null ou "" representam ausência de seleção.
autocompleteSeleção pesquisável entre options locais ou remotas.string, number ou boolean; null ou "" representam ausência de seleção.
checkboxEntrada booleana.boolean
textareaEntrada de texto multilinha.string ou null
emailEntrada de email com validação de formato.string ou null
passwordEntrada de senha com regras opcionais.string ou null
linkElemento visual de navegação.Sem valor de formulário
labelElemento visual informativo.Sem valor de formulário

Exemplos mínimos​

// text
{name: 'name', label: 'Nome', type: 'text'}

// number
{name: 'quantity', label: 'Quantidade', type: 'number'}

// date
{name: 'startDate', label: 'Data de início', type: 'date'}

// datetime
{name: 'scheduledAt', label: 'Agendado para', type: 'datetime'}

// select
{name: 'status', label: 'Status', type: 'select', options: [
{value: 'active', label: 'Ativo'},
{value: 'inactive', label: 'Inativo'},
]}

// autocomplete: options locais
{name: 'country', label: 'País', type: 'autocomplete', options: [
{value: 'ar', label: 'Argentina'},
{value: 'br', label: 'Brasil'},
]}

// checkbox
{name: 'active', label: 'Ativo', type: 'checkbox'}

// textarea
{name: 'notes', label: 'Notas', type: 'textarea'}

// email
{name: 'email', label: 'Email', type: 'email'}

// password
{name: 'password', label: 'Senha', type: 'password'}

// link
{name: 'help', label: 'Ver ajuda', type: 'link', url: '/help', target: '_self'}

// label
{name: 'statusInfo', label: 'Status do cliente', type: 'label', severity: 'info'}

password pode usar passwordRules opcionais; consulte Validation para detalhes de validação. Este overview cobre deliberadamente apenas options locais de autocomplete.

link e label são fields visuais e não representam dados do formulário. Ambos mantêm um name para identidade, layout e condições dentro do schema, mas nenhum cria uma chave em DyonaFormValues, pode aparecer em initialValues nem é incluído em onSubmit. link representa navegação; label representa informação visual. label pode usar severity: info, success, warning ou error; info é o valor padrão. Consulte Label para a documentação específica de label.

Valores do formulário​

Os fields de dados produzem entradas em DyonaFormValues:

{
name: 'Ada',
quantity: 3,
active: true,
}

Um number pode ser editado internamente como texto, mas o DYONA Form normaliza seu valor antes de onSubmit. Esta página se concentra no contrato dos fields.

Propriedades comuns​

Muitos fields podem compartilhar propriedades como required, disabled, readOnly, visible, fullWidth, tooltip, grid, placeholder, helperText, defaultValue, visibleWhen, requiredWhen e validations.

Elas não são todas válidas para cada field type. Algumas dependem do tipo, e tanto link quanto label têm restrições específicas; nem todas as propriedades comuns são válidas para fields visuais/no-data. Essas propriedades são documentadas progressivamente nas seções correspondentes.

Documentação relacionada​