Components

Tutti i tipi di input disponibili nel sistema form — basic, selection, toggle, advanced, editor, remote e special.

Organizzazione

I componenti del sistema form sono divisi in tre gruppi:

  • Form principale — il componente DynamicFormLayouts che renderizza l'intero form a partire da uno schema, e i suoi wrapper (Dialog, Drawer, DrawerWithTable).
  • Wrapper thin — semplici wrapper di componenti @pzeta/vue-components che aggiungono solo le 5 props standard del form (label, helperText, error, disabled, required). Documentati in modo compatto in un'unica pagina: WrapperFields.
  • Componenti con logica propria — custom (rendering automatico, BarcodeDetector API, getUserMedia, ecc.), Remote (logica fetchFn o endpoint + filtri dinamici) e compositi/interni. Ognuno ha pagina dedicata.

Form principale

ComponenteDescrizione
DynamicFormLayoutsForm dinamico schema-driven con validation on-blur, layout normal/tabs/wizard/accordion, tracking dirty/valid
DynamicFormDialogDialog modale con DynamicFormLayouts integrato
DynamicFormDrawerDrawer laterale con auto-fetch del record per modifica
DynamicFormDrawerWithTableDrawer + DataTable + form CRUD completo
DynamicFormListDialogDialog con lista di record esistenti + form di aggiunta inline (collezione embedded, no data fetching)
FormSectionSezione con header (titolo/sottotitolo/icona), layout vertical/horizontal/grid e collassabilità — esportato per layout custom
Forma raccomandata: oggetto literal. Scrivi lo schema come { sections: [...] } — è il formato canonico e diff-friendly. Gli helper fluenti field, row, section, form sono un'alternativa opzionale per casi specifici (campi base riusabili, molte select inline con la stessa struttura): vedi Schema builders per criteri di scelta.

Tipi di input

Wrapper thin → vedi WrapperFields

TipoComponenteCategoria
textInputTextBasic
emailInputTextBasic
numberInputNumberBasic
textareaTextareaBasic
passwordPasswordBasic
checkboxCheckboxSelection
selectSelectSelection
multiselectMultiSelectSelection
listboxListboxSelection
treeselectTreeSelectSelection
switchToggleSwitchToggle
toggleToggleButtonToggle
selectbuttonSelectButtonToggle
dateDatePickerAdvanced
datetimeDateTimePicker (valore YYYY-MM-DDTHH:MM)Advanced
colorColorPickerAdvanced
ratingRatingAdvanced
sliderSliderAdvanced
maskInputMaskAdvanced
autocompleteAutoCompleteAdvanced
int4rangeInt4RangeInputAdvanced
intervalIntervalInputAdvanced
signatureSignatureInputSpecial

Componenti con logica propria

TipoComponenteCategoriaNote
hiddenHiddenInputBasicCustom — nessuna UI
radioRadioGroupSelectionCustom — rendering automatico da array
iconIconSelectAdvancedCustom — set PrimeIcons + categorizzazione
listListInputAdvancedCustom — righe tipizzate, colonne nello schema
cronCronInputAdvancedCustom — espressione cron con anteprima leggibile
tagsTagsInputAdvancedEtichette a testo libero, valore string[] (dalla 2.20.0)
tiptapTiptapEditorEditorCustom — Tiptap lazy + toolbar + output HTML/JSON/MD, estensioni, «/Trascrizione vocale»
addressAddressAutocompleteInputSpecialCustom — searchFn/getDetailsFn per provider esterni
barcodeBarcodeScannerSpecialCustom — BarcodeDetector API
cameraCameraCaptureSpecialCustom — getUserMedia + base64
selectremoteSelectRemoteRemotefetchFn + filtri dinamici
autocompleteremoteAutoCompleteRemoteRemoteRicerca sul server mentre si digita, per elenchi lunghi
listboxremoteListboxRemoteRemotefetchFn + raggruppamento
radioremoteRadioGroupRemoteInputRemotefetchFn + filtri dinamici
treeremoteTreeRemoteRemotefetchFn<TreeNode> + selezione single/multiple/checkbox
inplaceselectInplaceSelectRemoteRemoteEditing in-place + caricamento lazy
orderlistOrderListRemoteRemoteDrag-and-drop + evento reorder
picklistPickListRemoteRemoteDoppia lista source/target
Sorgente dati dichiarativa. Tutti i componenti Remote accettano, in alternativa a fetchFn, la prop endpoint ([schema.]risorsa): la chiamata PostgREST viene composta dal componente riusando filter e filterFields. fetchFn mantiene la precedenza. Vedi Sorgente dati endpoint.
Alias deprecati: LookupListboxInput e LookupComboBoxInput sono alias deprecati rispettivamente di ListboxRemote e SelectRemote (re-export dello stesso modulo, mantenuti per retrocompatibilità). Non hanno un proprio type nello schema — usa listboxremote / selectremote.

Componenti senza tipo di campo

ComponenteDescrizione
AiFieldTriggerPulsante che genera il valore di un campo con l'AI; nello schema è l'opzione di campo ai
VoiceTranscriptionBlockNote, registrazione, trascrizione e riassunto di una riunione; in TiptapEditor è il comando «/Trascrizione vocale»
Messaggi sotto il campo. Fino alla 2.17.0 RadioGroup, TiptapEditor, OrderListRemote, PickListRemote, RadioGroupRemoteInput, TreeRemote, BarcodeScanner e CameraCapture non mostravano né l'errore né il testo di aiuto: il campo diventava rosso senza spiegazione. Corretto nella 2.18.0.

Componenti interni

ComponenteDescrizione
FormSectionRowComponente interno usato da DynamicFormLayouts per il rendering delle righe