UNPKG

@uplink-protocol/calendar-controller

Version:

Flexible calendar API supporting both calendar and date-picker integrations for any JavaScript framework or library

230 lines (116 loc) 5.33 kB
[**@uplink-protocol/form-controller v0.2.1**](../README.md) *** [@uplink-protocol/form-controller](../globals.md) / AccessibilityManagerService # Class: AccessibilityManagerService Defined in: [services/accessibility-manager.service.ts:13](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L13) Implementation of AccessibilityManagerService Handles keyboard navigation, focus management, and accessibility functions by coordinating between AccessibilityService and other services ## Implements - [`IAccessibilityManagerService`](../interfaces/IAccessibilityManagerService.md) ## Constructors ### Constructor > **new AccessibilityManagerService**(`_accessibilityService`, `_viewStateService`): `AccessibilityManagerService` Defined in: [services/accessibility-manager.service.ts:14](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L14) #### Parameters ##### \_accessibilityService [`IAccessibilityService`](../interfaces/IAccessibilityService.md) ##### \_viewStateService [`IViewStateService`](../interfaces/IViewStateService.md) #### Returns `AccessibilityManagerService` ## Methods ### getAccessibleDateLabel() > **getAccessibleDateLabel**(`date`, `localeMonthNameFn?`): `string` Defined in: [services/accessibility-manager.service.ts:91](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L91) Get accessible date label for screen readers #### Parameters ##### date `Date` The date to get a label for ##### localeMonthNameFn? (`month`) => `string` Optional function to get localized month name #### Returns `string` Accessible date label string #### Implementation of [`IAccessibilityManagerService`](../interfaces/IAccessibilityManagerService.md).[`getAccessibleDateLabel`](../interfaces/IAccessibilityManagerService.md#getaccessibledatelabel) *** ### getDateStateDescription() > **getDateStateDescription**(`date`, `selectedDate`, `selectedDateRange`, `isRangeSelection`, `isDateDisabledFn`, `isTodayFn`): `string` Defined in: [services/accessibility-manager.service.ts:112](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L112) Get date state description for screen readers #### Parameters ##### date `Date` The date to check ##### selectedDate Currently selected date `null` | `Date` ##### selectedDateRange [`DateRange`](../interfaces/DateRange.md) Currently selected date range ##### isRangeSelection `boolean` Whether range selection mode is active ##### isDateDisabledFn (`date`) => `boolean` Function to check if date is disabled ##### isTodayFn (`date`) => `boolean` Function to check if date is today #### Returns `string` State description string #### Implementation of [`IAccessibilityManagerService`](../interfaces/IAccessibilityManagerService.md).[`getDateStateDescription`](../interfaces/IAccessibilityManagerService.md#getdatestatedescription) *** ### manageFocus() > **manageFocus**(`direction`, `focusedDate`, `selectedDate`, `currentDate`, `calendarDaysBinding`, `generateCalendarDaysFn`, `updateDateFn?`): `Date` Defined in: [services/accessibility-manager.service.ts:30](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L30) Handles focus management including view updates and navigation #### Parameters ##### direction Direction to move focus `"right"` | `"left"` | `"up"` | `"down"` | `"start"` | `"end"` | `"prevMonth"` | `"nextMonth"` | `"prevYear"` | `"nextYear"` ##### focusedDate Currently focused date `null` | `Date` ##### selectedDate Selected date as fallback `null` | `Date` ##### currentDate `Date` Current displayed date ##### calendarDaysBinding `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> Binding for calendar days ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] Function to generate calendar days ##### updateDateFn? (`date`) => `void` Function to handle date updates if navigation is needed #### Returns `Date` The new focused date #### Implementation of [`IAccessibilityManagerService`](../interfaces/IAccessibilityManagerService.md).[`manageFocus`](../interfaces/IAccessibilityManagerService.md#managefocus) *** ### selectFocusedDate() > **selectFocusedDate**(`focusedDate`, `selectDateFn`): `boolean` Defined in: [services/accessibility-manager.service.ts:74](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/services/accessibility-manager.service.ts#L74) Select the currently focused date #### Parameters ##### focusedDate Currently focused date `null` | `Date` ##### selectDateFn (`date`) => `void` Function to select the date #### Returns `boolean` Boolean indicating if a selection was made #### Implementation of [`IAccessibilityManagerService`](../interfaces/IAccessibilityManagerService.md).[`selectFocusedDate`](../interfaces/IAccessibilityManagerService.md#selectfocuseddate)