Forms

Clock

Picker orario standalone con interfaccia orologio analogico SVG o variante compatta a frecce. Supporta modalita durata, intervalli e precisione minuti personalizzabile.

Import

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

Esempio Base

Il Clock e un picker standalone — non include un input testuale. Per un campo form completo con input e popup, usare TimePicker. Il valore e una stringa HH:MM.

Varianti

  • clock (default): orologio analogico SVG interattivo con selezione drag/click
  • compact: selettore numerico con frecce su/giu per ore e minuti

Props

PropTipoDefaultDescrizione
modelValuestring | nullnullValore corrente in formato HH:MM (v-model)
severitySeverity'primary'Colore del tema
variant'clock' | 'compact''clock'Stile visualizzazione
minimumstring'00:00'Orario minimo selezionabile (HH:MM)
maximumstring'23:59'Orario massimo selezionabile (HH:MM)
precision1 | 5 | 10 | 15 | 30 | 601Incremento minuti
separatorstring':'Separatore tra ore e minuti
durationbooleanfalseModalita durata (ore > 23 consentite)
durationNegativebooleanfalsePermette valori negativi
useDurationPlusSignbooleanfalseMostra segno + per durate positive
afternoonHoursInOuterCirclebooleanfalseOre 13-24 nel cerchio esterno
alwaysSelectHoursFirstbooleanfalseForza selezione ore prima dei minuti
hideUnselectableNumbersbooleanfalseNasconde numeri non selezionabili
modeSwitchSpeednumber500Velocita animazione switch ore/minuti (ms)
vibratebooleantrueVibrazione aptafica su selezione (mobile)
popupWidthnumber280Larghezza in pixel
showHeaderbooleantrueMostra header con orario selezionato
showFooterbooleantrueMostra footer con bottoni OK/Annulla
fluidbooleanfalseEspande alla larghezza del contenitore
requiredbooleanfalseCampo obbligatorio
disabledbooleanfalseDisabilita il componente
fontsClockFontsvedi sottoFont personalizzati per il clock analogico
i18nClockI18nTesti localizzati per i bottoni

Default fonts:

{
  fontFamily: 'Arial, sans-serif',
  clockOuterCircleFontSize: 14,
  clockInnerCircleFontSize: 11,
}

Emits

EventoPayloadDescrizione
update:modelValuestring | nullAggiornamento valore (v-model)
changenewValue: string | null, oldValue: string | nullValore cambiato definitivamente
adjustnewValue: string, oldValue: stringValore aggiustato durante la selezione
modeSwitch'HOUR' | 'MINUTE'Cambio tra modalita ore e minuti
confirmClick su OK
cancelClick su Annulla

Metodi Esposti

MetodoDescrizione
switchToHourMode()Passa alla selezione delle ore
switchToMinuteMode()Passa alla selezione dei minuti
repaintClock()Ridisegna l'orologio (utile dopo resize)

Esempi

Variante compatta senza header/footer

Utile quando integrato in altri componenti (es. come fa TimePicker internamente).

Con precisione 15 minuti

Modalita durata (ore illimitate)

Modalita durata negativa

In modalita durata, cliccare il pulsante +/- al centro dell'orologio cambia il segno.

Con testi localizzati

Fluid (larghezza contenitore)

TypeScript

import type { ClockProps, ClockFonts, ClockI18n, ClockPrecision } from '@pzeta/vue-components'

const time = ref<string | null>('09:00')

const fonts: ClockFonts = {
  fontFamily: 'Inter, sans-serif',
  clockOuterCircleFontSize: 14,
  clockInnerCircleFontSize: 11,
}

const i18n: ClockI18n = {
  okButton: 'OK',
  cancelButton: 'Annulla',
}

const precision: ClockPrecision = 15 // 1 | 5 | 10 | 15 | 30 | 60