@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
47 lines (46 loc) • 3.11 kB
TypeScript
import { CalendarStateManager } from "./state-manager";
import { CalendarControllerBindings } from "../types";
import { CalendarGetters } from "../types/getters.type";
import { IAccessibilityManagerService } from "../interfaces";
/**
* FocusCoordinator - Handles focus and keyboard navigation
* Manages focus state and keyboard-based navigation for accessibility
*/
export declare class FocusCoordinator {
private stateManager;
private accessibilityService;
constructor(stateManager: CalendarStateManager, accessibilityService: IAccessibilityManagerService);
focusDate(date: Date, bindings: CalendarControllerBindings, updateCurrentDateFn?: (date: Date) => void): void;
setFocusedDate(date: Date, bindings: CalendarControllerBindings, updateCurrentDateFn?: (date: Date) => void): void;
clearFocusedDate(bindings: CalendarControllerBindings): void;
selectFocusedDate(_bindings: CalendarControllerBindings, selectDateFn: (date: Date) => void): void;
getAccessibleDateLabel(date: Date): string;
getDateStateDescription(date: Date, selectedDate: Date | null, selectedDateRange: {
startDate: Date | null;
endDate: Date | null;
}, isRangeSelection: boolean, isDateDisabledFn: (date: Date) => boolean, isTodayFn: (date: Date) => boolean): string;
moveFocusLeft(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusRight(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusUp(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusDown(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusToStartOfWeek(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void;
moveFocusToEndOfWeek(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void;
moveFocusToStartOfMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void;
moveFocusToEndOfMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters): void;
moveFocusToNextMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusToPreviousMonth(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusToNextYear(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
moveFocusToPreviousYear(bindings: CalendarControllerBindings, getGetters: CalendarGetters, updateCurrentDateFn: (date: Date) => void): void;
/**
* Get aria label for a date
*/
getAriaLabel(date: Date): string;
/**
* Get aria label for a month
*/
getAriaLabelForMonth(month: number, year: number): string;
/**
* Get aria label for a year
*/
getAriaLabelForYear(year: number): string;
}