Calendar/src/types/ManagerTypes.ts

76 lines
2.3 KiB
TypeScript
Raw Normal View History

2025-11-03 21:30:50 +01:00
import { IEventBus, ICalendarEvent, CalendarView } from './CalendarTypes';
/**
* 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;
navigationManager: unknown; // Avoid interface conflicts
2025-11-03 21:30:50 +01:00
viewManager: IViewManager;
calendarManager: ICalendarManager;
dragDropManager: unknown; // Avoid interface conflicts
allDayManager: unknown; // Avoid interface conflicts
2025-11-03 21:30:50 +01:00
resizeHandleManager: IResizeHandleManager;
edgeScrollManager: unknown; // Avoid interface conflicts
dragHoverManager: unknown; // Avoid interface conflicts
headerManager: unknown; // Avoid interface conflicts
}
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 {
loadData(): Promise<void>;
2025-11-03 21:30:50 +01:00
getEvents(): ICalendarEvent[];
getEventsForPeriod(startDate: Date, endDate: Date): ICalendarEvent[];
navigateToEvent(eventId: string): boolean;
}
2025-11-03 21:30:50 +01:00
export interface IEventRenderingService extends IManager {
// EventRenderingService doesn't have a render method in current implementation
}
2025-11-03 21:30:50 +01:00
export interface IGridManager extends IManager {
render(): Promise<void>;
}
2025-11-03 21:30:50 +01:00
export interface IScrollManager extends IManager {
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 {
[key: string]: unknown; // Allow any properties from actual implementation
}
2025-11-03 21:30:50 +01:00
export interface IViewManager extends IManager {
// ViewManager doesn't have setView in current implementation
getCurrentView?(): CalendarView;
}
2025-11-03 21:30:50 +01:00
export interface ICalendarManager extends IManager {
setView(view: CalendarView): void;
setCurrentDate(date: Date): void;
}
2025-11-03 21:30:50 +01:00
export interface IDragDropManager extends IManager {
// DragDropManager has different interface in current implementation
}
2025-11-03 21:30:50 +01:00
export interface IAllDayManager extends IManager {
[key: string]: unknown; // Allow any properties from actual implementation
}
2025-11-03 21:30:50 +01:00
export interface IResizeHandleManager extends IManager {
// ResizeHandleManager handles hover effects for resize handles
}