Calendar/wwwroot/js/utils/AllDayLayoutEngine.d.ts

43 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

2026-02-03 00:02:25 +01:00
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;
}