@uplink-protocol/calendar-controller
Version:
Flexible calendar API supporting both calendar and date-picker integrations for any JavaScript framework or library
1,602 lines (802 loc) • 33.9 kB
Markdown
[**@uplink-protocol/form-controller v0.2.1**](../README.md)
***
[@uplink-protocol/form-controller](../globals.md) / CalendarControllerClass
# Class: CalendarControllerClass
Defined in: [controller.ts:85](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L85)
CalendarControllerClass - A full featured date picker controller class.
Provides functionality for date picking and calendar display.
This controller uses a service-oriented architecture where all the core
functionality is delegated to specialized services.
## Implements
- [`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md)
## Constructors
### Constructor
> **new CalendarControllerClass**(`options?`): `CalendarControllerClass`
Defined in: [controller.ts:136](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L136)
Constructor - initializes the controller with optional configuration
#### Parameters
##### options?
[`CalendarOptions`](../interfaces/CalendarOptions.md)
Calendar configuration options
#### Returns
`CalendarControllerClass`
## Properties
### \_\_adapter?
> `optional` **\_\_adapter**: `ControllerAdapter`
Defined in: [controller.ts:90](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L90)
***
### \_currentDate
> **\_currentDate**: `Date`
Defined in: [controller.ts:100](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L100)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_currentDate`](../interfaces/CalendarControllerInterface.md#_currentdate)
***
### \_currentYearRangeBase
> **\_currentYearRangeBase**: `number` = `0`
Defined in: [controller.ts:115](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L115)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_currentYearRangeBase`](../interfaces/CalendarControllerInterface.md#_currentyearrangebase)
***
### \_dateFormat
> **\_dateFormat**: `null` \| `string` = `null`
Defined in: [controller.ts:109](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L109)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_dateFormat`](../interfaces/CalendarControllerInterface.md#_dateformat)
***
### \_dateFormatOptions
> **\_dateFormatOptions**: `null` \| `DateTimeFormatOptions` = `null`
Defined in: [controller.ts:113](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L113)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_dateFormatOptions`](../interfaces/CalendarControllerInterface.md#_dateformatoptions)
***
### \_disabledDates
> **\_disabledDates**: `Date`[] = `[]`
Defined in: [controller.ts:106](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L106)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_disabledDates`](../interfaces/CalendarControllerInterface.md#_disableddates)
***
### \_disabledDaysOfWeek
> **\_disabledDaysOfWeek**: `number`[] = `[]`
Defined in: [controller.ts:107](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L107)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_disabledDaysOfWeek`](../interfaces/CalendarControllerInterface.md#_disableddaysofweek)
***
### \_firstDayOfWeek
> **\_firstDayOfWeek**: `number` = `0`
Defined in: [controller.ts:108](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L108)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_firstDayOfWeek`](../interfaces/CalendarControllerInterface.md#_firstdayofweek)
***
### \_focusedDate
> **\_focusedDate**: `null` \| `Date` = `null`
Defined in: [controller.ts:103](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L103)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_focusedDate`](../interfaces/CalendarControllerInterface.md#_focuseddate)
***
### \_hideOtherMonthDays
> **\_hideOtherMonthDays**: `boolean` = `false`
Defined in: [controller.ts:111](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L111)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_hideOtherMonthDays`](../interfaces/CalendarControllerInterface.md#_hideothermonthdays)
***
### \_isRangeSelection
> **\_isRangeSelection**: `boolean` = `false`
Defined in: [controller.ts:110](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L110)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_isRangeSelection`](../interfaces/CalendarControllerInterface.md#_israngeselection)
***
### \_locale
> **\_locale**: `string` = `"en-US"`
Defined in: [controller.ts:112](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L112)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_locale`](../interfaces/CalendarControllerInterface.md#_locale)
***
### \_maxDate
> **\_maxDate**: `null` \| `Date` = `null`
Defined in: [controller.ts:105](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L105)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_maxDate`](../interfaces/CalendarControllerInterface.md#_maxdate)
***
### \_minDate
> **\_minDate**: `null` \| `Date` = `null`
Defined in: [controller.ts:104](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L104)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_minDate`](../interfaces/CalendarControllerInterface.md#_mindate)
***
### \_selectedDate
> **\_selectedDate**: `null` \| `Date` = `null`
Defined in: [controller.ts:101](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L101)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_selectedDate`](../interfaces/CalendarControllerInterface.md#_selecteddate)
***
### \_selectedDateRange
> **\_selectedDateRange**: [`DateRange`](../interfaces/DateRange.md)
Defined in: [controller.ts:102](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L102)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_selectedDateRange`](../interfaces/CalendarControllerInterface.md#_selecteddaterange)
***
### \_yearRangeSize
> **\_yearRangeSize**: `number` = `12`
Defined in: [controller.ts:114](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L114)
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`_yearRangeSize`](../interfaces/CalendarControllerInterface.md#_yearrangesize)
***
### bindings
> **bindings**: [`CalendarControllerBindings`](../interfaces/CalendarControllerBindings.md)
Defined in: [controller.ts:86](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L86)
Reactive state bindings
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`bindings`](../interfaces/CalendarControllerInterface.md#bindings)
***
### events
> **events**: [`CalendarControllerEvents`](../interfaces/CalendarControllerEvents.md)
Defined in: [controller.ts:88](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L88)
Event emitters
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`events`](../interfaces/CalendarControllerInterface.md#events)
***
### meta?
> `optional` **meta**: `ControllerMetadata`
Defined in: [controller.ts:89](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L89)
***
### methods
> **methods**: [`CalendarControllerMethods`](../interfaces/CalendarControllerMethods.md)
Defined in: [controller.ts:87](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L87)
Available methods
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`methods`](../interfaces/CalendarControllerInterface.md#methods)
***
### nextMonth()?
> `optional` **nextMonth**: () => `void`
Defined in: [controller.ts:94](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L94)
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`nextMonth`](../interfaces/CalendarControllerInterface.md#nextmonth)
***
### nextYear()?
> `optional` **nextYear**: () => `void`
Defined in: [controller.ts:97](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L97)
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`nextYear`](../interfaces/CalendarControllerInterface.md#nextyear)
***
### options?
> `optional` **options**: [`CalendarOptions`](../interfaces/CalendarOptions.md)
Defined in: [controller.ts:91](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L91)
Calendar configuration options
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`options`](../interfaces/CalendarControllerInterface.md#options)
***
### previousMonth()?
> `optional` **previousMonth**: () => `void`
Defined in: [controller.ts:96](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L96)
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`previousMonth`](../interfaces/CalendarControllerInterface.md#previousmonth)
***
### prevMonth()?
> `optional` **prevMonth**: () => `void`
Defined in: [controller.ts:95](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L95)
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`prevMonth`](../interfaces/CalendarControllerInterface.md#prevmonth)
***
### prevYear()?
> `optional` **prevYear**: () => `void`
Defined in: [controller.ts:98](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L98)
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`prevYear`](../interfaces/CalendarControllerInterface.md#prevyear)
## Accessors
### selectedDateRange
#### Get Signature
> **get** **selectedDateRange**(): `object`
Defined in: [controller.ts:1485](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1485)
Get selected date range with flexible property access
##### Returns
`object`
###### end
> **end**: `null` \| `Date`
###### endDate
> **endDate**: `null` \| `Date`
###### start
> **start**: `null` \| `Date`
###### startDate
> **startDate**: `null` \| `Date`
#### Set Signature
> **set** **selectedDateRange**(`value`): `void`
Defined in: [controller.ts:1502](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1502)
Set selected date range with flexible property access
##### Parameters
###### value
###### end?
`null` \| `Date`
###### endDate?
`null` \| `Date`
###### start?
`null` \| `Date`
###### startDate?
`null` \| `Date`
##### Returns
`void`
Selected date range with flexible property access
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`selectedDateRange`](../interfaces/CalendarControllerInterface.md#selecteddaterange)
## Methods
### addDisabledDate()
> **addDisabledDate**(`date`): `Date`[]
Defined in: [controller.ts:816](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L816)
Add a disabled date
#### Parameters
##### date
`Date`
Date to disable
#### Returns
`Date`[]
Updated disabled dates array
***
### addDisabledDayOfWeek()
> **addDisabledDayOfWeek**(`day`): `number`[]
Defined in: [controller.ts:875](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L875)
Add a disabled day of the week
#### Parameters
##### day
`number`
Day of the week to disable (0 = Sunday, 1 = Monday, etc.)
#### Returns
`number`[]
Updated disabled days array
***
### clearFocusedDate()
> **clearFocusedDate**(): `void`
Defined in: [controller.ts:967](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L967)
Clear focused date
#### Returns
`void`
***
### clearSelection()
> **clearSelection**(): `void`
Defined in: [controller.ts:716](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L716)
Clear current selection
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`clearSelection`](../interfaces/CalendarControllerInterface.md#clearselection)
***
### focusDate()
> **focusDate**(`date`): `void`
Defined in: [controller.ts:1133](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1133)
Focus a specific date
#### Parameters
##### date
`Date`
Date to focus
#### Returns
`void`
***
### formatDate()
> **formatDate**(`date`, `options?`): `string`
Defined in: [controller.ts:976](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L976)
Format a date with given options
#### Parameters
##### date
`Date`
Date to format
##### options?
Format options or format string
`string` | `DateTimeFormatOptions`
#### Returns
`string`
Formatted date string
***
### generateCalendarDays()
> **generateCalendarDays**(): [`CalendarDate`](../interfaces/CalendarDate.md)[]
Defined in: [controller.ts:308](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L308)
Generate calendar days for current month view using CalendarGeneratorService
#### Returns
[`CalendarDate`](../interfaces/CalendarDate.md)[]
Array of CalendarDate objects
***
### generateCalendarMonths()
> **generateCalendarMonths**(): [`CalendarMonth`](../interfaces/CalendarMonth.md)[]
Defined in: [controller.ts:335](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L335)
Generate calendar months for year view
#### Returns
[`CalendarMonth`](../interfaces/CalendarMonth.md)[]
Array of CalendarMonth objects
***
### generateCalendarYears()
> **generateCalendarYears**(): [`CalendarYear`](../interfaces/CalendarYear.md)[]
Defined in: [controller.ts:372](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L372)
Generate calendar years for year range view
#### Returns
[`CalendarYear`](../interfaces/CalendarYear.md)[]
Array of CalendarYear objects
***
### generateMonthView()
> **generateMonthView**(): `object`
Defined in: [controller.ts:1435](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1435)
Generate month view data
#### Returns
`object`
Month view object
##### month
> **month**: `number`
##### weekdays
> **weekdays**: `string`[]
##### weeks
> **weeks**: `object`[]
##### year
> **year**: `number`
***
### getAccessibleDateLabel()
> **getAccessibleDateLabel**(`date`): `string`
Defined in: [controller.ts:1397](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1397)
Get accessible label for a date
#### Parameters
##### date
`Date`
Date to get label for
#### Returns
`string`
Accessible label string
***
### getCurrentYearRange()
> **getCurrentYearRange**(): [`YearRange`](../interfaces/YearRange.md)
Defined in: [controller.ts:1039](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1039)
Get current year range
#### Returns
[`YearRange`](../interfaces/YearRange.md)
Year range object
***
### getDateFormatOptions()
> **getDateFormatOptions**(): `null` \| `DateTimeFormatOptions`
Defined in: [controller.ts:948](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L948)
Get date format options
#### Returns
`null` \| `DateTimeFormatOptions`
Current date format options
***
### getDateStateDescription()
> **getDateStateDescription**(`date`): `string`
Defined in: [controller.ts:1418](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1418)
Get date state description for accessibility
#### Parameters
##### date
`Date`
Date to describe
#### Returns
`string`
State description string
***
### getDisabledDates()
> **getDisabledDates**(): `Date`[]
Defined in: [controller.ts:850](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L850)
Get disabled dates
#### Returns
`Date`[]
Array of disabled dates
***
### getDisabledDaysOfWeek()
> **getDisabledDaysOfWeek**(): `number`[]
Defined in: [controller.ts:906](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L906)
Get disabled days of the week
#### Returns
`number`[]
Array of disabled days (0 = Sunday, 1 = Monday, etc.)
***
### getFormattedDate()
> **getFormattedDate**(): `null` \| `string`
Defined in: [controller.ts:739](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L739)
Get formatted date string
#### Returns
`null` \| `string`
Formatted date string or null
***
### getLocale()
> **getLocale**(): `string`
Defined in: [controller.ts:931](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L931)
Get current locale
#### Returns
`string`
Current locale string
***
### getMonthNames()
> **getMonthNames**(): `string`[]
Defined in: [controller.ts:1022](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1022)
Get month names in current locale
#### Returns
`string`[]
Array of month names
***
### getWeekdayNames()
> **getWeekdayNames**(`short`): `string`[]
Defined in: [controller.ts:1031](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1031)
Get weekday names in current locale
#### Parameters
##### short
`boolean` = `false`
Whether to use short names
#### Returns
`string`[]
Array of weekday names
***
### getWeekNumber()
> **getWeekNumber**(`date`): `number`
Defined in: [controller.ts:1477](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1477)
Get week number for a date
#### Parameters
##### date
`Date`
Date to get week number for
#### Returns
`number`
Week number
***
### goToDate()
> **goToDate**(`date`): `void`
Defined in: [controller.ts:508](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L508)
Navigate to a specific date
#### Parameters
##### date
`Date`
Target date
#### Returns
`void`
***
### goToMonth()
> **goToMonth**(`month`, `year`): `void`
Defined in: [controller.ts:485](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L485)
Navigate to a specific month
#### Parameters
##### month
`number`
Month (0-based)
##### year
`number`
Year
#### Returns
`void`
***
### goToNextMonth()
> **goToNextMonth**(): `void`
Defined in: [controller.ts:528](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L528)
Navigate to next month
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`goToNextMonth`](../interfaces/CalendarControllerInterface.md#gotonextmonth)
***
### goToNextYear()
> **goToNextYear**(): `void`
Defined in: [controller.ts:562](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L562)
Navigate to next year
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`goToNextYear`](../interfaces/CalendarControllerInterface.md#gotonextyear)
***
### goToNextYearRange()
> **goToNextYearRange**(): `void`
Defined in: [controller.ts:605](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L605)
Navigate to next year range
#### Returns
`void`
***
### goToPreviousMonth()
> **goToPreviousMonth**(): `void`
Defined in: [controller.ts:545](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L545)
Navigate to previous month
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`goToPreviousMonth`](../interfaces/CalendarControllerInterface.md#gotopreviousmonth)
***
### goToPreviousYear()
> **goToPreviousYear**(): `void`
Defined in: [controller.ts:579](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L579)
Navigate to previous year
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`goToPreviousYear`](../interfaces/CalendarControllerInterface.md#gotopreviousyear)
***
### goToPreviousYearRange()
> **goToPreviousYearRange**(): `void`
Defined in: [controller.ts:623](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L623)
Navigate to previous year range
#### Returns
`void`
***
### goToToday()
> **goToToday**(): `void`
Defined in: [controller.ts:597](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L597)
Navigate to today's date
#### Returns
`void`
***
### goToYear()
> **goToYear**(`year`): `void`
Defined in: [controller.ts:497](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L497)
Navigate to a specific year
#### Parameters
##### year
`number`
Year
#### Returns
`void`
***
### isToday()
> **isToday**(`date`): `boolean`
Defined in: [controller.ts:1409](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1409)
Check if date is today
#### Parameters
##### date
`Date`
Date to check
#### Returns
`boolean`
true if date is today
***
### moveFocusDown()
> **moveFocusDown**(): `void`
Defined in: [controller.ts:1225](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1225)
Move focus down (next week)
#### Returns
`void`
***
### moveFocusLeft()
> **moveFocusLeft**(): `void`
Defined in: [controller.ts:1179](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1179)
Move focus left (previous day)
#### Returns
`void`
***
### moveFocusRight()
> **moveFocusRight**(): `void`
Defined in: [controller.ts:1156](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1156)
Move focus right (next day)
#### Returns
`void`
***
### moveFocusToEndOfMonth()
> **moveFocusToEndOfMonth**(): `void`
Defined in: [controller.ts:1267](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1267)
Move focus to end of month
#### Returns
`void`
***
### moveFocusToNextMonth()
> **moveFocusToNextMonth**(): `void`
Defined in: [controller.ts:1309](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1309)
Move focus to next month
#### Returns
`void`
***
### moveFocusToNextYear()
> **moveFocusToNextYear**(): `void`
Defined in: [controller.ts:1355](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1355)
Move focus to next year
#### Returns
`void`
***
### moveFocusToPreviousMonth()
> **moveFocusToPreviousMonth**(): `void`
Defined in: [controller.ts:1286](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1286)
Move focus to previous month
#### Returns
`void`
***
### moveFocusToPreviousYear()
> **moveFocusToPreviousYear**(): `void`
Defined in: [controller.ts:1332](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1332)
Move focus to previous year
#### Returns
`void`
***
### moveFocusToStartOfMonth()
> **moveFocusToStartOfMonth**(): `void`
Defined in: [controller.ts:1248](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1248)
Move focus to start of month
#### Returns
`void`
***
### moveFocusUp()
> **moveFocusUp**(): `void`
Defined in: [controller.ts:1202](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1202)
Move focus up (previous week)
#### Returns
`void`
***
### removeDisabledDate()
> **removeDisabledDate**(`date`): `Date`[]
Defined in: [controller.ts:834](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L834)
Remove a disabled date
#### Parameters
##### date
`Date`
Date to enable
#### Returns
`Date`[]
Updated disabled dates array
***
### removeDisabledDayOfWeek()
> **removeDisabledDayOfWeek**(`day`): `number`[]
Defined in: [controller.ts:891](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L891)
Remove a disabled day of the week
#### Parameters
##### day
`number`
Day of the week to enable (0 = Sunday, 1 = Monday, etc.)
#### Returns
`number`[]
Updated disabled days array
***
### selectDate()
> **selectDate**(`yearOrDate`, `month?`, `day?`): `void`
Defined in: [controller.ts:431](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L431)
Select a date
#### Parameters
##### yearOrDate
Year value or Date object
`number` | `Date`
##### month?
`number`
Month value (0-based) - optional when yearOrDate is a Date
##### day?
`number`
Day value - optional when yearOrDate is a Date
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`selectDate`](../interfaces/CalendarControllerInterface.md#selectdate)
***
### selectFocusedDate()
> **selectFocusedDate**(): `void`
Defined in: [controller.ts:1378](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1378)
Select the currently focused date
#### Returns
`void`
***
### selectMonth()
> **selectMonth**(`month`, `year`): `void`
Defined in: [controller.ts:1094](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1094)
Select month (navigate to month view)
#### Parameters
##### month
`number`
Month number (0-based)
##### year
`number`
Year number
#### Returns
`void`
***
### selectYear()
> **selectYear**(`year`): `void`
Defined in: [controller.ts:1113](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1113)
Select year (navigate to year view)
#### Parameters
##### year
`number`
Year number
#### Returns
`void`
***
### setCurrentYearRange()
> **setCurrentYearRange**(`date`): `void`
Defined in: [controller.ts:1054](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1054)
Set current year range based on date
#### Parameters
##### date
`Date`
Date to base range on
#### Returns
`void`
***
### setDateFormatOptions()
> **setDateFormatOptions**(`options`): `void`
Defined in: [controller.ts:939](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L939)
Set date format options
#### Parameters
##### options
`DateTimeFormatOptions`
Intl.DateTimeFormatOptions
#### Returns
`void`
***
### setDisabledDates()
> **setDisabledDates**(`dates`): `void`
Defined in: [controller.ts:796](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L796)
Set disabled dates
#### Parameters
##### dates
`Date`[]
Array of disabled dates
#### Returns
`void`
***
### setDisabledDaysOfWeek()
> **setDisabledDaysOfWeek**(`days`): `number`[]
Defined in: [controller.ts:859](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L859)
Set disabled days of the week
#### Parameters
##### days
`number`[]
Array of disabled days (0 = Sunday, 1 = Monday, etc.)
#### Returns
`number`[]
Array of disabled days
***
### setFocusedDate()
> **setFocusedDate**(`date`): `void`
Defined in: [controller.ts:956](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L956)
Set focused date
#### Parameters
##### date
Date to focus or null
`null` | `Date`
#### Returns
`void`
***
### setLocale()
> **setLocale**(`locale`): `void`
Defined in: [controller.ts:914](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L914)
Set locale
#### Parameters
##### locale
`string`
Locale string
#### Returns
`void`
***
### setMaxDate()
> **setMaxDate**(`date`): `void`
Defined in: [controller.ts:776](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L776)
Set maximum selectable date
#### Parameters
##### date
Maximum date or null
`null` | `Date`
#### Returns
`void`
***
### setMinDate()
> **setMinDate**(`date`): `void`
Defined in: [controller.ts:756](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L756)
Set minimum selectable date
#### Parameters
##### date
Minimum date or null
`null` | `Date`
#### Returns
`void`
***
### setRangeSelectionMode()
> **setRangeSelectionMode**(`isRange`): `void`
Defined in: [controller.ts:703](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L703)
Set range selection mode
#### Parameters
##### isRange
`boolean`
Whether range selection is enabled
#### Returns
`void`
#### Implementation of
[`CalendarControllerInterface`](../interfaces/CalendarControllerInterface.md).[`setRangeSelectionMode`](../interfaces/CalendarControllerInterface.md#setrangeselectionmode)
***
### setYearRangeSize()
> **setYearRangeSize**(`size`): `void`
Defined in: [controller.ts:1076](https://github.com/jmkcoder/uplink-protocol-calendar/blob/311e0b81efba7399cf1c367c0a2007aa66f3b830/src/controller.ts#L1076)
Set year range size
#### Parameters
##### size
`number`
Number of years to display
#### Returns
`void`