@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
249 lines (125 loc) • 5.12 kB
Markdown
[**@uplink-protocol/form-controller v0.3.1**](../README.md)
***
[@uplink-protocol/form-controller](../globals.md) / TimeSelectionService
# Class: TimeSelectionService
Defined in: [Time/services/time-selection.service.ts:7](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L7)
TimeSelectionService - Implementation of ITimeSelectionService
Handles time selection logic including single time and time range selection
## Implements
- [`ITimeSelectionService`](../interfaces/ITimeSelectionService.md)
## Constructors
### Constructor
> **new TimeSelectionService**(): `TimeSelectionService`
#### Returns
`TimeSelectionService`
## Methods
### clearSelection()
> **clearSelection**(): `object`
Defined in: [Time/services/time-selection.service.ts:69](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L69)
Clear current time selection
#### Returns
`object`
Cleared selection state
##### selectedTime
> **selectedTime**: `Date` \| `null`
##### selectedTimeRange
> **selectedTimeRange**: [`TimeRange`](../interfaces/TimeRange.md)
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`clearSelection`](../interfaces/ITimeSelectionService.md#clearselection)
***
### isRangeEnd()
> **isRangeEnd**(`time`, `range`): `boolean`
Defined in: [Time/services/time-selection.service.ts:141](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L141)
Check if a time is the end of a range
#### Parameters
##### time
`Date`
Time to check
##### range
[`TimeRange`](../interfaces/TimeRange.md)
Selected time range
#### Returns
`boolean`
Whether the time is range end
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`isRangeEnd`](../interfaces/ITimeSelectionService.md#israngeend)
***
### isRangeStart()
> **isRangeStart**(`time`, `range`): `boolean`
Defined in: [Time/services/time-selection.service.ts:131](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L131)
Check if a time is the start of a range
#### Parameters
##### time
`Date`
Time to check
##### range
[`TimeRange`](../interfaces/TimeRange.md)
Selected time range
#### Returns
`boolean`
Whether the time is range start
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`isRangeStart`](../interfaces/ITimeSelectionService.md#israngestart)
***
### isTimeInRange()
> **isTimeInRange**(`time`, `range`): `boolean`
Defined in: [Time/services/time-selection.service.ts:113](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L113)
Check if a time is in the selected range
#### Parameters
##### time
`Date`
Time to check
##### range
[`TimeRange`](../interfaces/TimeRange.md)
Selected time range
#### Returns
`boolean`
Whether the time is in range
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`isTimeInRange`](../interfaces/ITimeSelectionService.md#istimeinrange)
***
### isTimeSelected()
> **isTimeSelected**(`time`, `selectedTime`, `selectedRange`): `boolean`
Defined in: [Time/services/time-selection.service.ts:86](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L86)
Check if a time is selected
#### Parameters
##### time
`Date`
Time to check
##### selectedTime
Currently selected time
`Date` | `null`
##### selectedRange
[`TimeRange`](../interfaces/TimeRange.md)
Currently selected range
#### Returns
`boolean`
Whether the time is selected
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`isTimeSelected`](../interfaces/ITimeSelectionService.md#istimeselected)
***
### selectTime()
> **selectTime**(`time`, `_currentSelectedTime`, `isRangeSelection`, `currentRange`): `object`
Defined in: [Time/services/time-selection.service.ts:15](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Time/services/time-selection.service.ts#L15)
Select a specific time
#### Parameters
##### time
`Date`
Time to select
##### \_currentSelectedTime
`Date` | `null`
##### isRangeSelection
`boolean`
Whether range selection is enabled
##### currentRange
[`TimeRange`](../interfaces/TimeRange.md)
Current time range selection
#### Returns
`object`
New selection state
##### selectedTime
> **selectedTime**: `Date` \| `null`
##### selectedTimeRange
> **selectedTimeRange**: [`TimeRange`](../interfaces/TimeRange.md)
#### Implementation of
[`ITimeSelectionService`](../interfaces/ITimeSelectionService.md).[`selectTime`](../interfaces/ITimeSelectionService.md#selecttime)