@uplink-protocol/calendar-controller
Version:
Flexible calendar and time picker API supporting both calendar, date-picker, and time-picker integrations for any JavaScript framework or library
73 lines (72 loc) • 2.75 kB
TypeScript
import { EventEmitter } from "@uplink-protocol/core";
/**
* Time event manager service interface
* Manages event emission for time picker
*/
export interface ITimeEventManagerService {
/**
* Initialize event emitters for time picker
* @returns Initialized event emitters
*/
initializeEvents(): {
timeSelected: EventEmitter<Date>;
timeRangeSelected: EventEmitter<{
startTime: Date | null;
endTime: Date | null;
}>;
timeChanged: EventEmitter<Date>;
segmentFocused: EventEmitter<'hours' | 'minutes' | 'seconds' | 'milliseconds' | 'period'>;
formatChanged: EventEmitter<{
use12Hour: boolean;
showSeconds: boolean;
showMilliseconds: boolean;
}>;
localeChanged: EventEmitter<string>;
};
/**
* Emit time selected event
* @param timeSelectedEmitter Time selected event emitter
* @param time Selected time
*/
emitTimeSelected(timeSelectedEmitter: EventEmitter<Date>, time: Date): void;
/**
* Emit time range selected event
* @param rangeSelectedEmitter Range selected event emitter
* @param startTime Range start time
* @param endTime Range end time
*/
emitTimeRangeSelected(rangeSelectedEmitter: EventEmitter<{
startTime: Date | null;
endTime: Date | null;
}>, startTime: Date | null, endTime: Date | null): void;
/**
* Emit time changed event
* @param timeChangedEmitter Time changed event emitter
* @param time New time
*/
emitTimeChanged(timeChangedEmitter: EventEmitter<Date>, time: Date): void;
/**
* Emit segment focused event
* @param segmentFocusedEmitter Segment focused event emitter
* @param segment Focused segment
*/
emitSegmentFocused(segmentFocusedEmitter: EventEmitter<'hours' | 'minutes' | 'seconds' | 'milliseconds' | 'period'>, segment: 'hours' | 'minutes' | 'seconds' | 'milliseconds' | 'period'): void;
/**
* Emit format changed event
* @param formatChangedEmitter Format changed event emitter
* @param use12Hour Whether using 12-hour format
* @param showSeconds Whether showing seconds
* @param showMilliseconds Whether showing milliseconds
*/
emitFormatChanged(formatChangedEmitter: EventEmitter<{
use12Hour: boolean;
showSeconds: boolean;
showMilliseconds: boolean;
}>, use12Hour: boolean, showSeconds: boolean, showMilliseconds: boolean): void;
/**
* Emit locale changed event
* @param localeChangedEmitter Locale changed event emitter
* @param locale New locale
*/
emitLocaleChanged(localeChangedEmitter: EventEmitter<string>, locale: string): void;
}