Forms

Rating

Componente di valutazione a stelle con numero configurabile di stelle, icone personalizzabili, modalità readonly e pulsante di annullamento.

Import

import { Rating } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
modelValuenumber | nullnullValore del rating (v-model). Intero da 1 a stars, oppure null se non selezionato.
starsnumber5Numero di stelle da visualizzare.
cancelbooleantrueMostra il pulsante di annullamento (icona ban) per deselezionare il rating.
onIconstring'pi pi-star-fill' (da config)Classe CSS dell'icona stella selezionata.
offIconstring'pi pi-star' (da config)Classe CSS dell'icona stella non selezionata.
cancelIconstring'pi pi-ban' (da config)Classe CSS dell'icona del pulsante di annullamento.
labelstringnullEtichetta del campo.
helperTextstringnullTesto di aiuto visualizzato sotto il componente.
errorstringnullMessaggio di errore; attiva lo stato di errore visivo.
disabledbooleanfalseDisabilita l'interazione.
readonlybooleanfalseRende il componente non modificabile (solo visualizzazione).
requiredbooleanfalseMarca il campo come obbligatorio.
loadingbooleanfalseMostra il loading spinner e blocca l'interazione.
loadingIconstringDa configIcona personalizzata per il loading.
namestringundefinedNome del campo hidden per la submission del form.
inputIdstringundefinedID dell'input hidden.
inputClassstring | objectundefinedClasse CSS sull'input hidden.
inputStylestring | objectundefinedStyle inline sull'input hidden.
ariaLabelstringundefinedLabel accessibile per screen reader.
ariaLabelledbystringundefinedRiferimento a elemento label esterno.
autofocusbooleanFocus automatico al mount.
unstyledbooleanfalseRimuove gli stili di default (PrimeVue passthrough).
dtunknownundefinedPrimeVue design token passthrough.
ptunknownundefinedPrimeVue passthrough options.
ptOptionsunknownundefinedPrimeVue passthrough options configuration.

Emits

EventoPayloadDescrizione
update:modelValuenumber | nullEmesso al cambio valore (per v-model). Null quando il rating viene annullato.
change{ originalEvent: Event; value: number | null }Emesso al cambio con l'evento originale e il nuovo valore.
focusFocusEventEmesso quando il componente riceve il focus.
blurFocusEventEmesso quando il componente perde il focus.

Slot

SlotScopeDescrizione
onicon{ index: number }Icona personalizzata per stella selezionata. index è 0-based.
officon{ index: number }Icona personalizzata per stella non selezionata. index è 0-based.
canceliconIcona personalizzata per il pulsante di annullamento.

Esempi

Numero di Stelle Personalizzato

Senza Pulsante Annullamento

Readonly

Icone Personalizzate tramite Props

Icone Personalizzate tramite Slot

Con Label, Helper Text ed Errore

Accessibilità

  • Il componente usa role="radiogroup" sul contenitore con aria-label / aria-labelledby.
  • Ogni stella è un <button role="radio"> con aria-label localizzato (es. "1 stella") e aria-checked.
  • Il pulsante di annullamento ha aria-label localizzato.
  • Navigazione da tastiera: frecce destra/sinistra/su/giù per spostarsi tra le stelle; Spazio/Invio per selezionare.
  • In modalità disabled o readonly i pulsanti ricevono tabindex="-1".

TypeScript

import type { RatingProps, RatingEmits, RatingSlots, RatingChangeEvent } from '@pzeta/vue-components'