@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
80 lines (79 loc) • 2.31 kB
TypeScript
import { IDateSelectionService } from '../interfaces/date-selection.service.interfaces';
/**
* Implementation of DateSelectionService
* Responsible for handling date selection and ranges
*/
export declare class DateSelectionService implements IDateSelectionService {
/**
* Select a single date
* @param date Date to select
* @returns Selected date
*/
selectDate(date: Date): Date;
/**
* Select a date for a range
* @param date Date being selected
* @param currentRange Current date range
* @returns Updated date range
*/
selectDateRange(date: Date, currentRange: {
startDate?: Date | null;
endDate?: Date | null;
start?: Date | null;
end?: Date | null;
}): {
startDate: Date | null;
endDate: Date | null;
};
/**
* Clear the current selection
* @param isRangeMode Whether in range selection mode
* @returns Updated selection state
*/
clearSelection(): {
selectedDate: Date | null;
selectedDateRange: {
startDate: Date | null;
endDate: Date | null;
};
};
/**
* Clear the date range selection
* @returns Empty date range
*/
clearDateRange(): {
startDate: Date | null;
endDate: Date | null;
};
/**
* Check if a date is selected
* @param date Date to check
* @param selectedDate Currently selected date
* @returns Boolean indicating if date is selected
*/
isDateSelected(date: Date, selectedDate: Date | null): boolean;
/**
* Check if a date is in the selected range
* @param date Date to check
* @param range Currently selected range
* @returns Object with range info
*/
isDateInRange(date: Date, range: {
startDate: Date | null;
endDate: Date | null;
}): {
isInRange: boolean;
isRangeStart: boolean;
isRangeEnd: boolean;
};
/**
* Check if a date is in the selected range (simplified version)
* @param date Date to check
* @param range Currently selected range
* @returns Boolean indicating if the date is in range
*/
isDateInSelectedRange(date: Date, range: {
startDate: Date | null;
endDate: Date | null;
}): boolean;
}