UNPKG

@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

527 lines (264 loc) 11.3 kB
[**@uplink-protocol/form-controller v0.3.1**](../README.md) *** [@uplink-protocol/form-controller](../globals.md) / CalendarStateService # Class: CalendarStateService Defined in: [Date/services/calendar-state.service.ts:14](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L14) Implementation of CalendarStateService Responsible for centralizing and managing the state of the calendar ## Implements - [`ICalendarStateService`](../interfaces/ICalendarStateService.md) ## Constructors ### Constructor > **new CalendarStateService**(`_viewStateService`, `_dateSelectionService`, `_constraintsService`, `_eventManagerService?`): `CalendarStateService` Defined in: [Date/services/calendar-state.service.ts:15](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L15) #### Parameters ##### \_viewStateService [`IViewStateService`](../interfaces/IViewStateService.md) ##### \_dateSelectionService [`IDateSelectionService`](../interfaces/IDateSelectionService.md) ##### \_constraintsService [`IConstraintsService`](../interfaces/IConstraintsService.md) ##### \_eventManagerService? [`IEventManagerService`](../interfaces/IEventManagerService.md) #### Returns `CalendarStateService` ## Methods ### addDisabledDate() > **addDisabledDate**(`date`, `disabledDates`, `calendarDaysBinding`, `generateCalendarDaysFn`): `Date`[] Defined in: [Date/services/calendar-state.service.ts:113](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L113) Add a specific date to the disabled dates list #### Parameters ##### date `Date` ##### disabledDates `Date`[] ##### calendarDaysBinding `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `Date`[] #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`addDisabledDate`](../interfaces/ICalendarStateService.md#adddisableddate) *** ### clearSelection() > **clearSelection**(`isRangeSelection`, `selectedDateBinding`, `selectedDateRangeBinding`, `calendarDaysBinding`, `generateCalendarDaysFn`): `object` Defined in: [Date/services/calendar-state.service.ts:196](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L196) Clear the current selection #### Parameters ##### isRangeSelection `boolean` ##### selectedDateBinding `Binding`\<`Date` \| `null`\> ##### selectedDateRangeBinding `Binding`\<[`DateRange`](../interfaces/DateRange.md)\> ##### calendarDaysBinding `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `object` ##### selectedDate > **selectedDate**: `Date` \| `null` ##### selectedDateRange > **selectedDateRange**: [`DateRange`](../interfaces/DateRange.md) #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`clearSelection`](../interfaces/ICalendarStateService.md#clearselection) *** ### focusDate() > **focusDate**(`date`, `focusedDateBinding`): `Date` \| `null` Defined in: [Date/services/calendar-state.service.ts:227](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L227) Focus a specific date for accessibility #### Parameters ##### date `Date` | `null` ##### focusedDateBinding `Binding`\<`Date` \| `null`\> #### Returns `Date` \| `null` #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`focusDate`](../interfaces/ICalendarStateService.md#focusdate) *** ### getCurrentState() > **getCurrentState**(`currentDate`, `selectedDate`, `selectedDateRange`, `focusedDate`, `isDateDisabledFn`, `isDateSelectedFn`, `isDateInRangeFn`, `isTodayFn`, `hasEventsFn`): `any` Defined in: [Date/services/calendar-state.service.ts:332](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L332) Get current state for accessibility and other features #### Parameters ##### currentDate `Date` ##### selectedDate `Date` | `null` ##### selectedDateRange [`DateRange`](../interfaces/DateRange.md) ##### focusedDate `Date` | `null` ##### isDateDisabledFn (`date`) => `boolean` ##### isDateSelectedFn (`date`) => `boolean` ##### isDateInRangeFn (`date`) => `boolean` ##### isTodayFn (`date`) => `boolean` ##### hasEventsFn (`date`) => `boolean` #### Returns `any` *** ### removeDisabledDate() > **removeDisabledDate**(`date`, `disabledDates`, `calendarDaysBinding`, `generateCalendarDaysFn`): `Date`[] Defined in: [Date/services/calendar-state.service.ts:149](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L149) Remove a specific date from the disabled dates list #### Parameters ##### date `Date` ##### disabledDates `Date`[] ##### calendarDaysBinding `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `Date`[] #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`removeDisabledDate`](../interfaces/ICalendarStateService.md#removedisableddate) *** ### selectDate() > **selectDate**(`date`, `isRangeSelection`, `currentSelectedDate`, `currentDateRange`, `isDateDisabledFn`, `bindings`, `events`, `generateCalendarDaysFn`): `object` Defined in: [Date/services/calendar-state.service.ts:251](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L251) Select a date based on the current selection mode #### Parameters ##### date `Date` ##### isRangeSelection `boolean` ##### currentSelectedDate `Date` | `null` ##### currentDateRange [`DateRange`](../interfaces/DateRange.md) ##### isDateDisabledFn (`date`) => `boolean` ##### bindings ###### calendarDays `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ###### focusedDate `Binding`\<`Date` \| `null`\> ###### selectedDate `Binding`\<`Date` \| `null`\> ###### selectedDateRange `Binding`\<[`DateRange`](../interfaces/DateRange.md)\> ##### events \{ `dateRangeSelected?`: `EventEmitter`\<[`DateRange`](../interfaces/DateRange.md)\>; `dateSelected?`: `EventEmitter`\<`Date`\>; \} | `undefined` ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `object` ##### selectedDate > **selectedDate**: `Date` \| `null` ##### selectedDateRange > **selectedDateRange**: [`DateRange`](../interfaces/DateRange.md) #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`selectDate`](../interfaces/ICalendarStateService.md#selectdate) *** ### setDisabledDates() > **setDisabledDates**(`dates`, `currentDate`, `bindings`, `getMonthNameFn`, `generateCalendarDaysFn`): `Date`[] Defined in: [Date/services/calendar-state.service.ts:85](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L85) Set disabled dates #### Parameters ##### dates `Date`[] ##### currentDate `Date` ##### bindings ###### calendarDays `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ###### currentMonth `Binding`\<`number`\> ###### currentYear `Binding`\<`number`\> ###### monthName `Binding`\<`string`\> ##### getMonthNameFn (`month`) => `string` ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `Date`[] #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`setDisabledDates`](../interfaces/ICalendarStateService.md#setdisableddates) *** ### setMaxDate() > **setMaxDate**(`date`, `_currentMaxDate`, `currentDate`, `bindings`, `getMonthNameFn`, `generateCalendarDaysFn`): `Date` \| `null` Defined in: [Date/services/calendar-state.service.ts:55](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L55) Set the maximum selectable date #### Parameters ##### date `Date` | `null` ##### \_currentMaxDate `Date` | `null` ##### currentDate `Date` ##### bindings ###### calendarDays `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ###### currentMonth `Binding`\<`number`\> ###### currentYear `Binding`\<`number`\> ###### monthName `Binding`\<`string`\> ##### getMonthNameFn (`month`) => `string` ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `Date` \| `null` #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`setMaxDate`](../interfaces/ICalendarStateService.md#setmaxdate) *** ### setMinDate() > **setMinDate**(`date`, `_currentMinDate`, `currentDate`, `bindings`, `getMonthNameFn`, `generateCalendarDaysFn`): `Date` \| `null` Defined in: [Date/services/calendar-state.service.ts:25](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L25) Set the minimum selectable date #### Parameters ##### date `Date` | `null` ##### \_currentMinDate `Date` | `null` ##### currentDate `Date` ##### bindings ###### calendarDays `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ###### currentMonth `Binding`\<`number`\> ###### currentYear `Binding`\<`number`\> ###### monthName `Binding`\<`string`\> ##### getMonthNameFn (`month`) => `string` ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `Date` \| `null` #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`setMinDate`](../interfaces/ICalendarStateService.md#setmindate) *** ### setRangeSelectionMode() > **setRangeSelectionMode**(`isRange`, `isRangeSelectionBinding`, `calendarDaysBinding`, `generateCalendarDaysFn`): `boolean` Defined in: [Date/services/calendar-state.service.ts:176](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/services/calendar-state.service.ts#L176) Set the date selection mode #### Parameters ##### isRange `boolean` ##### isRangeSelectionBinding `Binding`\<`boolean`\> ##### calendarDaysBinding `Binding`\<[`CalendarDate`](../interfaces/CalendarDate.md)[]\> ##### generateCalendarDaysFn () => [`CalendarDate`](../interfaces/CalendarDate.md)[] #### Returns `boolean` #### Implementation of [`ICalendarStateService`](../interfaces/ICalendarStateService.md).[`setRangeSelectionMode`](../interfaces/ICalendarStateService.md#setrangeselectionmode)