UNPKG

@qeydar/datepicker

Version:

A comprehensive Date and Time Picker for Angular with Jalali calendar support

103 lines (102 loc) 4.07 kB
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>; }