Replaces getPeriodRange with getDisplayDates approach Simplifies event rendering by using flexible date array Updates event rendering to work with dynamic date lists Improves code modularity and reduces complexity
75 lines
2.3 KiB
TypeScript
75 lines
2.3 KiB
TypeScript
import { IEventBus, ICalendarEvent, CalendarView } from './CalendarTypes';
|
|
|
|
/**
|
|
* Complete type definition for all managers returned by ManagerFactory
|
|
*/
|
|
export interface ICalendarManagers {
|
|
eventManager: IEventManager;
|
|
eventRenderer: IEventRenderingService;
|
|
gridManager: IGridManager;
|
|
scrollManager: IScrollManager;
|
|
navigationManager: unknown; // Avoid interface conflicts
|
|
viewManager: IViewManager;
|
|
calendarManager: ICalendarManager;
|
|
dragDropManager: unknown; // Avoid interface conflicts
|
|
allDayManager: unknown; // Avoid interface conflicts
|
|
resizeHandleManager: IResizeHandleManager;
|
|
edgeScrollManager: unknown; // Avoid interface conflicts
|
|
dragHoverManager: unknown; // Avoid interface conflicts
|
|
headerManager: unknown; // Avoid interface conflicts
|
|
}
|
|
|
|
/**
|
|
* Base interface for managers with optional initialization and refresh
|
|
*/
|
|
interface IManager {
|
|
initialize?(): Promise<void> | void;
|
|
refresh?(): void;
|
|
}
|
|
|
|
export interface IEventManager extends IManager {
|
|
loadData(): Promise<void>;
|
|
getEvents(): ICalendarEvent[];
|
|
getEventsForPeriod(startDate: Date, endDate: Date): ICalendarEvent[];
|
|
navigateToEvent(eventId: string): boolean;
|
|
}
|
|
|
|
export interface IEventRenderingService extends IManager {
|
|
// EventRenderingService doesn't have a render method in current implementation
|
|
}
|
|
|
|
export interface IGridManager extends IManager {
|
|
render(): Promise<void>;
|
|
}
|
|
|
|
export interface IScrollManager extends IManager {
|
|
scrollTo(scrollTop: number): void;
|
|
scrollToHour(hour: number): void;
|
|
}
|
|
|
|
// Use a more flexible interface that matches actual implementation
|
|
export interface INavigationManager extends IManager {
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
|
}
|
|
|
|
export interface IViewManager extends IManager {
|
|
// ViewManager doesn't have setView in current implementation
|
|
getCurrentView?(): CalendarView;
|
|
}
|
|
|
|
export interface ICalendarManager extends IManager {
|
|
setView(view: CalendarView): void;
|
|
setCurrentDate(date: Date): void;
|
|
}
|
|
|
|
export interface IDragDropManager extends IManager {
|
|
// DragDropManager has different interface in current implementation
|
|
}
|
|
|
|
export interface IAllDayManager extends IManager {
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
|
}
|
|
|
|
export interface IResizeHandleManager extends IManager {
|
|
// ResizeHandleManager handles hover effects for resize handles
|
|
}
|