@qeydar/datepicker
Version:
A comprehensive Date and Time Picker for Angular with Jalali calendar support
103 lines (102 loc) • 4.07 kB
TypeScript
import { DateAdapter } from '../../date-adapter';
import { CustomLabels, DateRange } from '../../utils/models';
import * as i0 from "@angular/core";
export declare class SelectionStrategyService {
/**
* Check if a date is selected (for single selection)
*/
isSelected(date: Date, selectedDate: Date | null, dateAdapter: DateAdapter<Date>): boolean;
/**
* Check if a date is the start of a range
*/
isRangeStart(date: Date, selectedStartDate: Date | null, dateAdapter: DateAdapter<Date>): boolean;
/**
* Check if a date is the end of a range
*/
isRangeEnd(date: Date, selectedEndDate: Date | null, dateAdapter: DateAdapter<Date>): boolean;
/**
* Check if a date is in range (between start and end)
*/
isInRange(date: Date, selectedStartDate: Date | null, selectedEndDate: Date | null, tempEndDate: Date | null, dateAdapter: DateAdapter<Date>): boolean;
/**
* Check if a date is selected (for range selection)
*/
isRangeSelected(date: Date, selectedStartDate: Date | null, selectedEndDate: Date | null, dateAdapter: DateAdapter<Date>): boolean;
/**
* Handle single date selection
*/
handleSingleSelection(date: Date, selectedDate: Date | null, showTimePicker: boolean, existingTime?: Date): {
selectedDate: Date;
shouldEmit: boolean;
};
/**
* Handle range date selection
*/
handleRangeSelection(date: Date, selectedStartDate: Date | null, selectedEndDate: Date | null, showTimePicker: boolean, existingTime?: Date): {
selectedStartDate: Date | null;
selectedEndDate: Date | null;
shouldEmit: boolean;
activeInput: 'start' | 'end';
};
/**
* Check if a period is active (for sidebar periods)
*/
isActivePeriod(period: CustomLabels, selectedStartDate: Date | null, selectedEndDate: Date | null, dateAdapter: DateAdapter<Date>, allPeriods: CustomLabels[]): boolean;
/**
* Check if a period is matched (for sidebar periods)
*/
isPeriodMatch(period: CustomLabels, selectedStartDate: Date, selectedEndDate: Date, dateAdapter: DateAdapter<Date>): boolean;
/**
* Handle period selection
*/
selectPeriod(period: CustomLabels): {
selectedPeriod: any;
dateRange?: DateRange;
isCustom: boolean;
};
/**
* Apply time to a date
*/
applyTimeToDate(date: Date, timeDate: Date): Date;
/**
* Check if first date is before second date
*/
private isDateBefore;
/**
* Create date range object
*/
createDateRange(start: Date | null, end: Date | null): DateRange | null;
/**
* Check if range selection is complete
*/
isRangeComplete(selectedStartDate: Date | null, selectedEndDate: Date | null): boolean;
/**
* Get the active date for range selection
*/
getActiveDateForRange(activeInput: 'start' | 'end' | '', selectedStartDate: Date | null, selectedEndDate: Date | null): Date | null;
/**
* Update time for range selection
*/
updateRangeTime(timeDate: Date, activeInput: 'start' | 'end' | '', selectedStartDate: Date | null, selectedEndDate: Date | null): {
selectedStartDate: Date | null;
selectedEndDate: Date | null;
shouldEmit: boolean;
};
/**
* Update time for single selection
*/
updateSingleTime(timeDate: Date, selectedDate: Date | null): {
selectedDate: Date;
shouldEmit: boolean;
};
/**
* Handle mouse enter for range selection preview
*/
handleMouseEnter(date: Date, selectedStartDate: Date | null, selectedEndDate: Date | null): Date | null;
/**
* Check if date is today
*/
isToday(date: Date, dateAdapter: DateAdapter<Date>, showToday: boolean): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<SelectionStrategyService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SelectionStrategyService>;
}