WIP on master
This commit is contained in:
parent
b6ab1ff50e
commit
80aaab46f2
25 changed files with 6291 additions and 927 deletions
67
src/index.ts
67
src/index.ts
|
|
@ -21,6 +21,10 @@ import { DragHoverManager } from './managers/DragHoverManager';
|
|||
import { HeaderManager } from './managers/HeaderManager';
|
||||
import { ConfigManager } from './managers/ConfigManager';
|
||||
|
||||
// Import repositories
|
||||
import { IEventRepository } from './repositories/IEventRepository';
|
||||
import { MockEventRepository } from './repositories/MockEventRepository';
|
||||
|
||||
// Import renderers
|
||||
import { DateHeaderRenderer, type IHeaderRenderer } from './renderers/DateHeaderRenderer';
|
||||
import { DateColumnRenderer, type ColumnRenderer } from './renderers/ColumnRenderer';
|
||||
|
|
@ -35,7 +39,6 @@ import { TimeFormatter } from './utils/TimeFormatter';
|
|||
import { PositionUtils } from './utils/PositionUtils';
|
||||
import { AllDayLayoutEngine } from './utils/AllDayLayoutEngine';
|
||||
import { WorkHoursManager } from './managers/WorkHoursManager';
|
||||
import { GridStyleManager } from './renderers/GridStyleManager';
|
||||
import { EventStackManager } from './managers/EventStackManager';
|
||||
import { EventLayoutCoordinator } from './managers/EventLayoutCoordinator';
|
||||
|
||||
|
|
@ -81,50 +84,53 @@ async function initializeCalendar(): Promise<void> {
|
|||
builder.registerInstance(CalendarConfig).as<CalendarConfig>();
|
||||
|
||||
// Register ConfigManager for event-driven config updates
|
||||
builder.registerType(ConfigManager).as<ConfigManager>().singleInstance();
|
||||
builder.registerType(ConfigManager).as<ConfigManager>();
|
||||
|
||||
// Bind core services as instances
|
||||
builder.registerInstance(eventBus).as<IEventBus>();
|
||||
|
||||
// Register repositories
|
||||
builder.registerType(MockEventRepository).as<IEventRepository>();
|
||||
|
||||
// Register renderers
|
||||
builder.registerType(DateHeaderRenderer).as<IHeaderRenderer>().singleInstance();
|
||||
builder.registerType(DateColumnRenderer).as<ColumnRenderer>().singleInstance();
|
||||
builder.registerType(DateEventRenderer).as<IEventRenderer>().singleInstance();
|
||||
builder.registerType(DateHeaderRenderer).as<IHeaderRenderer>();
|
||||
builder.registerType(DateColumnRenderer).as<ColumnRenderer>();
|
||||
builder.registerType(DateEventRenderer).as<IEventRenderer>();
|
||||
|
||||
// Register core services and utilities
|
||||
builder.registerType(DateService).as<DateService>().singleInstance();
|
||||
builder.registerType(EventStackManager).as<EventStackManager>().singleInstance();
|
||||
builder.registerType(EventLayoutCoordinator).as<EventLayoutCoordinator>().singleInstance();
|
||||
builder.registerType(GridStyleManager).as<GridStyleManager>().singleInstance();
|
||||
builder.registerType(WorkHoursManager).as<WorkHoursManager>().singleInstance();
|
||||
builder.registerType(URLManager).as<URLManager>().singleInstance();
|
||||
builder.registerType(TimeFormatter).as<TimeFormatter>().singleInstance();
|
||||
builder.registerType(PositionUtils).as<PositionUtils>().singleInstance();
|
||||
builder.registerType(DateService).as<DateService>();
|
||||
builder.registerType(EventStackManager).as<EventStackManager>();
|
||||
builder.registerType(EventLayoutCoordinator).as<EventLayoutCoordinator>();
|
||||
builder.registerType(WorkHoursManager).as<WorkHoursManager>();
|
||||
builder.registerType(URLManager).as<URLManager>();
|
||||
builder.registerType(TimeFormatter).as<TimeFormatter>();
|
||||
builder.registerType(PositionUtils).as<PositionUtils>();
|
||||
// Note: AllDayLayoutEngine is instantiated per-operation with specific dates, not a singleton
|
||||
builder.registerType(NavigationRenderer).as<NavigationRenderer>().singleInstance();
|
||||
builder.registerType(AllDayEventRenderer).as<AllDayEventRenderer>().singleInstance();
|
||||
builder.registerType(NavigationRenderer).as<NavigationRenderer>();
|
||||
builder.registerType(AllDayEventRenderer).as<AllDayEventRenderer>();
|
||||
|
||||
builder.registerType(EventRenderingService).as<EventRenderingService>().singleInstance();
|
||||
builder.registerType(GridRenderer).as<GridRenderer>().singleInstance();
|
||||
builder.registerType(GridManager).as<GridManager>().singleInstance();
|
||||
builder.registerType(ScrollManager).as<ScrollManager>().singleInstance();
|
||||
builder.registerType(NavigationManager).as<NavigationManager>().singleInstance();
|
||||
builder.registerType(ViewManager).as<ViewManager>().singleInstance();
|
||||
builder.registerType(DragDropManager).as<DragDropManager>().singleInstance();
|
||||
builder.registerType(AllDayManager).as<AllDayManager>().singleInstance();
|
||||
builder.registerType(ResizeHandleManager).as<ResizeHandleManager>().singleInstance();
|
||||
builder.registerType(EdgeScrollManager).as<EdgeScrollManager>().singleInstance();
|
||||
builder.registerType(DragHoverManager).as<DragHoverManager>().singleInstance();
|
||||
builder.registerType(HeaderManager).as<HeaderManager>().singleInstance();
|
||||
builder.registerType(CalendarManager).as<CalendarManager>().singleInstance();
|
||||
builder.registerType(EventRenderingService).as<EventRenderingService>();
|
||||
builder.registerType(GridRenderer).as<GridRenderer>();
|
||||
builder.registerType(GridManager).as<GridManager>();
|
||||
builder.registerType(ScrollManager).as<ScrollManager>();
|
||||
builder.registerType(NavigationManager).as<NavigationManager>();
|
||||
builder.registerType(ViewManager).as<ViewManager>();
|
||||
builder.registerType(DragDropManager).as<DragDropManager>();
|
||||
builder.registerType(AllDayManager).as<AllDayManager>();
|
||||
builder.registerType(ResizeHandleManager).as<ResizeHandleManager>();
|
||||
builder.registerType(EdgeScrollManager).as<EdgeScrollManager>();
|
||||
builder.registerType(DragHoverManager).as<DragHoverManager>();
|
||||
builder.registerType(HeaderManager).as<HeaderManager>();
|
||||
builder.registerType(CalendarManager).as<CalendarManager>();
|
||||
|
||||
builder.registerType(EventManager).as<EventManager>().singleInstance();
|
||||
builder.registerType(EventManager).as<EventManager>();
|
||||
|
||||
// Build the container
|
||||
const app = builder.build();
|
||||
|
||||
// Get managers from container
|
||||
const eb = app.resolveType<IEventBus>();
|
||||
const configManager = app.resolveType<ConfigManager>();
|
||||
const calendarManager = app.resolveType<CalendarManager>();
|
||||
const eventManager = app.resolveType<EventManager>();
|
||||
const resizeHandleManager = app.resolveType<ResizeHandleManager>();
|
||||
|
|
@ -137,6 +143,9 @@ async function initializeCalendar(): Promise<void> {
|
|||
const allDayManager = app.resolveType<AllDayManager>();
|
||||
const urlManager = app.resolveType<URLManager>();
|
||||
|
||||
// Initialize CSS variables before any rendering
|
||||
configManager.initialize();
|
||||
|
||||
// Initialize managers
|
||||
await calendarManager.initialize?.();
|
||||
await resizeHandleManager.initialize?.();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue