Event Handling
Handle timepicker events using EventEmitter API or callbacks
EventEmitter API (Recommended)
The new EventEmitter API provides a clean, type-safe way to handle events:
const picker = new TimepickerUI(input);picker.create();picker.on('confirm', (data) => {console.log('Time confirmed:', data.hour, data.minutes);});picker.on('cancel', (data) => {console.log('Cancelled');});picker.on('open', () => {console.log('Picker opened');});picker.on('update', (data) => {console.log('Time updated:', data);});picker.on('select:hour', (data) => {console.log('Hour selected:', data.hour);});picker.on('select:minute', (data) => {console.log('Minute selected:', data.minutes);});picker.on('select:am', (data) => {console.log('AM selected');});picker.on('select:pm', (data) => {console.log('PM selected');});picker.once('confirm', (data) => {console.log('This runs only once');});const handler = (data) => console.log(data);picker.on('confirm', handler);picker.off('confirm', handler);
Callback Options
You can also use callback options (check console):
Legacy DOM Events (Deprecated)
DOM events are deprecated and will be removed in v4. Please migrate to EventEmitter API:
// ❌ Deprecated (will be removed in v4)input.addEventListener('timepicker:confirm', (e) => {console.log(e.detail);});// ✅ Recommendedpicker.on('confirm', (data) => {console.log(data);});
TypeScript Event Types
Event data interface for TypeScript:
interface CallbackData {hour?: string | null;minutes?: string | null;type?: string | null;degreesHours?: number | null;degreesMinutes?: number | null;hourNotAccepted?: string | null;minutesNotAccepted?: string | null;eventType?: any;error?: string;currentHour?: string | number;currentMin?: string | number;currentType?: string;currentLength?: string | number;}type EventHandler<T> = (data: T) => void;const picker = new TimepickerUI(input);picker.on('confirm', (data: CallbackData) => {console.log(data.hour, data.minutes);});