42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { ICalendarEvent } from '../types/CalendarTypes';
|
|
export interface IEventLayout {
|
|
calenderEvent: ICalendarEvent;
|
|
gridArea: string;
|
|
startColumn: number;
|
|
endColumn: number;
|
|
row: number;
|
|
columnSpan: number;
|
|
}
|
|
export declare class AllDayLayoutEngine {
|
|
private weekDates;
|
|
private tracks;
|
|
constructor(weekDates: string[]);
|
|
/**
|
|
* Calculate layout for all events using clean day-based logic
|
|
*/
|
|
calculateLayout(events: ICalendarEvent[]): IEventLayout[];
|
|
/**
|
|
* Find available track for event spanning from startDay to endDay (0-based indices)
|
|
*/
|
|
private findAvailableTrack;
|
|
/**
|
|
* Check if track is available for the given day range (0-based indices)
|
|
*/
|
|
private isTrackAvailable;
|
|
/**
|
|
* Get start day index for event (1-based, 0 if not visible)
|
|
*/
|
|
private getEventStartDay;
|
|
/**
|
|
* Get end day index for event (1-based, 0 if not visible)
|
|
*/
|
|
private getEventEndDay;
|
|
/**
|
|
* Check if event is visible in the current date range
|
|
*/
|
|
private isEventVisible;
|
|
/**
|
|
* Format date to YYYY-MM-DD string using local date
|
|
*/
|
|
private formatDate;
|
|
}
|