92 lines
2.5 KiB
TypeScript
92 lines
2.5 KiB
TypeScript
|
|
import { IEventBus, CalendarEvent, CalendarView } from './CalendarTypes';
|
||
|
|
import { IManager } from '../interfaces/IManager';
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Complete type definition for all managers returned by ManagerFactory
|
||
|
|
*/
|
||
|
|
export interface CalendarManagers {
|
||
|
|
eventManager: EventManager;
|
||
|
|
eventRenderer: EventRenderingService;
|
||
|
|
gridManager: GridManager;
|
||
|
|
scrollManager: ScrollManager;
|
||
|
|
navigationManager: unknown; // Avoid interface conflicts
|
||
|
|
viewManager: ViewManager;
|
||
|
|
calendarManager: CalendarManager;
|
||
|
|
dragDropManager: unknown; // Avoid interface conflicts
|
||
|
|
allDayManager: unknown; // Avoid interface conflicts
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface EventManager extends IManager {
|
||
|
|
loadData(): Promise<void>;
|
||
|
|
getEvents(): CalendarEvent[];
|
||
|
|
getEventsForPeriod(startDate: Date, endDate: Date): CalendarEvent[];
|
||
|
|
getResourceData(): ResourceData | null;
|
||
|
|
navigateToEvent(eventId: string): boolean;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface EventRenderingService extends IManager {
|
||
|
|
// EventRenderingService doesn't have a render method in current implementation
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface GridManager extends IManager {
|
||
|
|
render(): Promise<void>;
|
||
|
|
getDisplayDates(): Date[];
|
||
|
|
setResourceData(resourceData: import('./CalendarTypes').ResourceCalendarData | null): void;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface ScrollManager extends IManager {
|
||
|
|
scrollTo(scrollTop: number): void;
|
||
|
|
scrollToHour(hour: number): void;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Use a more flexible interface that matches actual implementation
|
||
|
|
export interface NavigationManager extends IManager {
|
||
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface ViewManager extends IManager {
|
||
|
|
// ViewManager doesn't have setView in current implementation
|
||
|
|
getCurrentView?(): CalendarView;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface CalendarManager extends IManager {
|
||
|
|
setView(view: CalendarView): void;
|
||
|
|
setCurrentDate(date: Date): void;
|
||
|
|
getInitializationReport(): InitializationReport;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface DragDropManager extends IManager {
|
||
|
|
// DragDropManager has different interface in current implementation
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface AllDayManager extends IManager {
|
||
|
|
[key: string]: unknown; // Allow any properties from actual implementation
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface ResourceData {
|
||
|
|
resources: Resource[];
|
||
|
|
assignments?: ResourceAssignment[];
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface Resource {
|
||
|
|
id: string;
|
||
|
|
name: string;
|
||
|
|
type?: string;
|
||
|
|
color?: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface ResourceAssignment {
|
||
|
|
resourceId: string;
|
||
|
|
eventId: string;
|
||
|
|
}
|
||
|
|
|
||
|
|
export interface InitializationReport {
|
||
|
|
initialized: boolean;
|
||
|
|
timestamp: number;
|
||
|
|
managers: {
|
||
|
|
[key: string]: {
|
||
|
|
initialized: boolean;
|
||
|
|
error?: string;
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|