@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
345 lines (173 loc) • 7.41 kB
Markdown
[**@uplink-protocol/form-controller v0.3.1**](../README.md)
***
[@uplink-protocol/form-controller](../globals.md) / IViewStateService
# Interface: IViewStateService
Defined in: [Date/interfaces/view-state.service.interfaces.ts:8](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L8)
View state service interface
Responsible for managing calendar view state and binding updates
## Methods
### initializeBindings()
> **initializeBindings**(`currentDate`, `selectedDate`, `selectedDateRange`, `firstDayOfWeek`, `isRangeSelection`, `calendarDaysGenerator`, `calendarMonthsGenerator`, `calendarYearsGenerator`): `object`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:11](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L11)
Initialize view state bindings
#### Parameters
##### currentDate
`Date`
##### selectedDate
`Date` | `null`
##### selectedDateRange
[`DateRange`](DateRange.md)
##### firstDayOfWeek
`number`
##### isRangeSelection
`boolean`
##### calendarDaysGenerator
() => [`CalendarDate`](CalendarDate.md)[]
##### calendarMonthsGenerator
() => [`CalendarMonth`](CalendarMonth.md)[]
##### calendarYearsGenerator
() => [`CalendarYear`](CalendarYear.md)[]
#### Returns
`object`
##### calendarDays
> **calendarDays**: `Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
##### calendarMonths
> **calendarMonths**: `Binding`\<[`CalendarMonth`](CalendarMonth.md)[]\>
##### calendarYears
> **calendarYears**: `Binding`\<[`CalendarYear`](CalendarYear.md)[]\>
##### currentDate
> **currentDate**: `Binding`\<`Date`\>
##### currentMonth
> **currentMonth**: `Binding`\<`number`\>
##### currentYear
> **currentYear**: `Binding`\<`number`\>
##### currentYearRangeBase
> **currentYearRangeBase**: `Binding`\<`number` \| [`YearRange`](YearRange.md)\>
##### focusedDate
> **focusedDate**: `Binding`\<`Date` \| `null`\>
##### isRangeSelection
> **isRangeSelection**: `Binding`\<`boolean`\>
##### monthName
> **monthName**: `Binding`\<`string`\>
##### selectedDate
> **selectedDate**: `Binding`\<`Date` \| `null`\>
##### selectedDateRange
> **selectedDateRange**: `Binding`\<[`DateRange`](DateRange.md)\>
##### weekdays
> **weekdays**: `Binding`\<`string`[]\>
***
### updateCalendarDays()
> **updateCalendarDays**(`calendarDays`, `binding`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:96](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L96)
Update calendarDays binding with new calendar days
#### Parameters
##### calendarDays
[`CalendarDate`](CalendarDate.md)[]
##### binding
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
#### Returns
`void`
***
### updateCurrentDate()
> **updateCurrentDate**(`date`, `currentMonthBinding`, `currentYearOrGetMonthName`, `monthNameBindingOrGenerateCalendarDays`, `getMonthNameFn?`, `calendarDaysBinding?`, `generateCalendarDaysFn?`): `object`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:41](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L41)
Update current date in view state
#### Parameters
##### date
`Date`
The date to update to
##### currentMonthBinding
`Binding`\<`number`\> | \{ `calendarDays`: `Binding`\<[`CalendarDate`](CalendarDate.md)[]\>; `currentMonth`: `Binding`\<`number`\>; `currentYear`: `Binding`\<`number`\>; `monthName`: `Binding`\<`string`\>; \}
##### currentYearOrGetMonthName
`Binding`\<`number`\> | (`month`) => `string`
##### monthNameBindingOrGenerateCalendarDays
`Binding`\<`string`\> | () => [`CalendarDate`](CalendarDate.md)[]
##### getMonthNameFn?
(`month`) => `string`
##### calendarDaysBinding?
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
##### generateCalendarDaysFn?
() => [`CalendarDate`](CalendarDate.md)[]
#### Returns
`object`
##### month
> **month**: `number`
##### year
> **year**: `number`
***
### updateDateRange()
> **updateDateRange**(`range`, `binding`, `calendarDaysBinding`, `generateCalendarDays`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:68](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L68)
Update date range bindings
#### Parameters
##### range
[`DateRange`](DateRange.md)
##### binding
`Binding`\<[`DateRange`](DateRange.md)\>
##### calendarDaysBinding
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
##### generateCalendarDays
() => [`CalendarDate`](CalendarDate.md)[]
#### Returns
`void`
***
### updateFocusedDate()
> **updateFocusedDate**(`date`, `bindingArg?`, `generateCalendarDays?`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:106](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L106)
Update focused date
#### Parameters
##### date
The date to focus
`Date` | `null`
##### bindingArg?
Either the focusedDate binding or the calendarDays binding
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\> | `Binding`\<`Date` \| `null`\>
##### generateCalendarDays?
() => [`CalendarDate`](CalendarDate.md)[]
Optional function to generate calendar days
#### Returns
`void`
***
### updateSelectedDate()
> **updateSelectedDate**(`date`, `binding`, `calendarDaysBinding?`, `generateCalendarDays?`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:58](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L58)
Update selected date bindings
#### Parameters
##### date
`Date` | `null`
##### binding
`Binding`\<`Date` \| `null`\>
##### calendarDaysBinding?
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
##### generateCalendarDays?
() => [`CalendarDate`](CalendarDate.md)[]
#### Returns
`void`
***
### updateSelectedDateRange()
> **updateSelectedDateRange**(`range`, `binding`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:88](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L88)
Update selectedDateRange binding with new range
#### Parameters
##### range
[`DateRange`](DateRange.md)
##### binding
`Binding`\<[`DateRange`](DateRange.md)\>
#### Returns
`void`
***
### updateSelectionMode()
> **updateSelectionMode**(`isRange`, `binding`, `calendarDaysBinding`, `generateCalendarDays`): `void`
Defined in: [Date/interfaces/view-state.service.interfaces.ts:78](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/view-state.service.interfaces.ts#L78)
Update selection mode
#### Parameters
##### isRange
`boolean`
##### binding
`Binding`\<`boolean`\>
##### calendarDaysBinding
`Binding`\<[`CalendarDate`](CalendarDate.md)[]\>
##### generateCalendarDays
() => [`CalendarDate`](CalendarDate.md)[]
#### Returns
`void`