[**@uplink-protocol/form-controller v0.3.1**](../README.md)

***

[@uplink-protocol/form-controller](../globals.md) / IDateSelectionService

# Interface: IDateSelectionService

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:5](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L5)

Date selection service interface
Responsible for handling date selection and ranges

## Methods

### clearDateRange()

> **clearDateRange**(): `object`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:39](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L39)

Clear the date range selection

#### Returns

`object`

##### endDate

> **endDate**: `Date` \| `null`

##### startDate

> **startDate**: `Date` \| `null`

***

### clearSelection()

> **clearSelection**(`isRangeMode`): `object`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:19](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L19)

Clear the current selection

#### Parameters

##### isRangeMode

`boolean`

#### Returns

`object`

##### selectedDate

> **selectedDate**: `Date` \| `null`

##### selectedDateRange

> **selectedDateRange**: `object`

###### selectedDateRange.endDate

> **endDate**: `Date` \| `null`

###### selectedDateRange.startDate

> **startDate**: `Date` \| `null`

***

### isDateInRange()

> **isDateInRange**(`date`, `range`): `object`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:31](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L31)

Check if a given date is in the selected range

#### Parameters

##### date

`Date`

##### range

###### endDate

`Date` \| `null`

###### startDate

`Date` \| `null`

#### Returns

`object`

##### isInRange

> **isInRange**: `boolean`

##### isRangeEnd

> **isRangeEnd**: `boolean`

##### isRangeStart

> **isRangeStart**: `boolean`

***

### isDateInSelectedRange()

> **isDateInSelectedRange**(`date`, `range`): `boolean`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:44](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L44)

Check if a date is in the selected range (simplified version)

#### Parameters

##### date

`Date`

##### range

###### endDate

`Date` \| `null`

###### startDate

`Date` \| `null`

#### Returns

`boolean`

***

### isDateSelected()

> **isDateSelected**(`date`, `selectedDate`): `boolean`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:27](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L27)

Check if a given date is selected

#### Parameters

##### date

`Date`

##### selectedDate

`Date` | `null`

#### Returns

`boolean`

***

### selectDate()

> **selectDate**(`date`): `Date`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:9](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L9)

Select a single date

#### Parameters

##### date

`Date`

#### Returns

`Date`

***

### selectDateRange()

> **selectDateRange**(`date`, `currentRange`): `object`

Defined in: [Date/interfaces/date-selection.service.interfaces.ts:14](https://github.com/jmkcoder/uplink-protocol-calendar/blob/4cde26f472352440ee258db7670fce2e95651862/src/Date/interfaces/date-selection.service.interfaces.ts#L14)

Select a date for a range

#### Parameters

##### date

`Date`

##### currentRange

###### endDate

`Date` \| `null`

###### startDate

`Date` \| `null`

#### Returns

`object`

##### endDate

> **endDate**: `Date` \| `null`

##### startDate

> **startDate**: `Date` \| `null`
