2025-11-03 21:30:50 +01:00
|
|
|
import { IEventBus, ICalendarEvent, CalendarView } from './CalendarTypes';
|
2025-09-23 20:44:15 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Complete type definition for all managers returned by ManagerFactory
|
|
|
|
|
*/
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface ICalendarManagers {
|
|
|
|
|
eventManager: IEventManager;
|
|
|
|
|
eventRenderer: IEventRenderingService;
|
|
|
|
|
gridManager: IGridManager;
|
|
|
|
|
scrollManager: IScrollManager;
|
2025-09-23 20:44:15 +02:00
|
|
|
navigationManager: unknown; // Avoid interface conflicts
|
2025-11-03 21:30:50 +01:00
|
|
|
viewManager: IViewManager;
|
|
|
|
|
calendarManager: ICalendarManager;
|
2025-09-23 20:44:15 +02:00
|
|
|
dragDropManager: unknown; // Avoid interface conflicts
|
|
|
|
|
allDayManager: unknown; // Avoid interface conflicts
|
2025-11-03 21:30:50 +01:00
|
|
|
resizeHandleManager: IResizeHandleManager;
|
2025-10-12 09:21:32 +02:00
|
|
|
edgeScrollManager: unknown; // Avoid interface conflicts
|
2025-10-13 23:05:03 +02:00
|
|
|
dragHoverManager: unknown; // Avoid interface conflicts
|
2025-10-14 21:27:54 +02:00
|
|
|
headerManager: unknown; // Avoid interface conflicts
|
2025-09-23 20:44:15 +02:00
|
|
|
}
|
|
|
|
|
|
2025-10-06 21:39:57 +02:00
|
|
|
/**
|
|
|
|
|
* Base interface for managers with optional initialization and refresh
|
|
|
|
|
*/
|
|
|
|
|
interface IManager {
|
|
|
|
|
initialize?(): Promise<void> | void;
|
|
|
|
|
refresh?(): void;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IEventManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
loadData(): Promise<void>;
|
2025-11-03 21:30:50 +01:00
|
|
|
getEvents(): ICalendarEvent[];
|
|
|
|
|
getEventsForPeriod(startDate: Date, endDate: Date): ICalendarEvent[];
|
2025-09-23 20:44:15 +02:00
|
|
|
navigateToEvent(eventId: string): boolean;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IEventRenderingService extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
// EventRenderingService doesn't have a render method in current implementation
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IGridManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
render(): Promise<void>;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IScrollManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
scrollTo(scrollTop: number): void;
|
|
|
|
|
scrollToHour(hour: number): void;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Use a more flexible interface that matches actual implementation
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface INavigationManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IViewManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
// ViewManager doesn't have setView in current implementation
|
|
|
|
|
getCurrentView?(): CalendarView;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface ICalendarManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
setView(view: CalendarView): void;
|
|
|
|
|
setCurrentDate(date: Date): void;
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IDragDropManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
// DragDropManager has different interface in current implementation
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IAllDayManager extends IManager {
|
2025-09-23 20:44:15 +02:00
|
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-03 21:30:50 +01:00
|
|
|
export interface IResizeHandleManager extends IManager {
|
2025-10-06 23:38:01 +02:00
|
|
|
// ResizeHandleManager handles hover effects for resize handles
|
|
|
|
|
}
|