Some ignored filles was missing
This commit is contained in:
parent
7db22245e2
commit
fd5ab6bc0d
268 changed files with 31970 additions and 4 deletions
171
wwwroot/js/index.js
Normal file
171
wwwroot/js/index.js
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
// Main entry point for Calendar Plantempus
|
||||
import { Container } from '@novadi/core';
|
||||
import { eventBus } from './core/EventBus';
|
||||
import { ConfigManager } from './configurations/ConfigManager';
|
||||
import { URLManager } from './utils/URLManager';
|
||||
// Import all managers
|
||||
import { EventManager } from './managers/EventManager';
|
||||
import { EventRenderingService } from './renderers/EventRendererManager';
|
||||
import { GridManager } from './managers/GridManager';
|
||||
import { ScrollManager } from './managers/ScrollManager';
|
||||
import { NavigationManager } from './managers/NavigationManager';
|
||||
import { NavigationButtons } from './components/NavigationButtons';
|
||||
import { ViewSelector } from './components/ViewSelector';
|
||||
import { CalendarManager } from './managers/CalendarManager';
|
||||
import { DragDropManager } from './managers/DragDropManager';
|
||||
import { AllDayManager } from './managers/AllDayManager';
|
||||
import { ResizeHandleManager } from './managers/ResizeHandleManager';
|
||||
import { EdgeScrollManager } from './managers/EdgeScrollManager';
|
||||
import { HeaderManager } from './managers/HeaderManager';
|
||||
import { WorkweekPresets } from './components/WorkweekPresets';
|
||||
import { IndexedDBEventRepository } from './repositories/IndexedDBEventRepository';
|
||||
import { ApiEventRepository } from './repositories/ApiEventRepository';
|
||||
import { IndexedDBService } from './storage/IndexedDBService';
|
||||
import { OperationQueue } from './storage/OperationQueue';
|
||||
// Import workers
|
||||
import { SyncManager } from './workers/SyncManager';
|
||||
// Import renderers
|
||||
import { DateHeaderRenderer } from './renderers/DateHeaderRenderer';
|
||||
import { DateColumnRenderer } from './renderers/ColumnRenderer';
|
||||
import { DateEventRenderer } from './renderers/EventRenderer';
|
||||
import { AllDayEventRenderer } from './renderers/AllDayEventRenderer';
|
||||
import { GridRenderer } from './renderers/GridRenderer';
|
||||
import { WeekInfoRenderer } from './renderers/WeekInfoRenderer';
|
||||
// Import utilities and services
|
||||
import { DateService } from './utils/DateService';
|
||||
import { TimeFormatter } from './utils/TimeFormatter';
|
||||
import { PositionUtils } from './utils/PositionUtils';
|
||||
import { WorkHoursManager } from './managers/WorkHoursManager';
|
||||
import { EventStackManager } from './managers/EventStackManager';
|
||||
import { EventLayoutCoordinator } from './managers/EventLayoutCoordinator';
|
||||
/**
|
||||
* Handle deep linking functionality after managers are initialized
|
||||
*/
|
||||
async function handleDeepLinking(eventManager, urlManager) {
|
||||
try {
|
||||
const eventId = urlManager.parseEventIdFromURL();
|
||||
if (eventId) {
|
||||
console.log(`Deep linking to event ID: ${eventId}`);
|
||||
// Wait a bit for managers to be fully ready
|
||||
setTimeout(async () => {
|
||||
const success = await eventManager.navigateToEvent(eventId);
|
||||
if (!success) {
|
||||
console.warn(`Deep linking failed: Event with ID ${eventId} not found`);
|
||||
}
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
catch (error) {
|
||||
console.warn('Deep linking failed:', error);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Initialize the calendar application using NovaDI
|
||||
*/
|
||||
async function initializeCalendar() {
|
||||
try {
|
||||
// Load configuration from JSON
|
||||
const config = await ConfigManager.load();
|
||||
// Create NovaDI container
|
||||
const container = new Container();
|
||||
const builder = container.builder();
|
||||
// Enable debug mode for development
|
||||
eventBus.setDebug(true);
|
||||
// Bind core services as instances
|
||||
builder.registerInstance(eventBus).as();
|
||||
// Register configuration instance
|
||||
builder.registerInstance(config).as();
|
||||
// Register storage and repository services
|
||||
builder.registerType(IndexedDBService).as();
|
||||
builder.registerType(OperationQueue).as();
|
||||
builder.registerType(ApiEventRepository).as();
|
||||
builder.registerType(IndexedDBEventRepository).as();
|
||||
// Register workers
|
||||
builder.registerType(SyncManager).as();
|
||||
// Register renderers
|
||||
builder.registerType(DateHeaderRenderer).as();
|
||||
builder.registerType(DateColumnRenderer).as();
|
||||
builder.registerType(DateEventRenderer).as();
|
||||
// Register core services and utilities
|
||||
builder.registerType(DateService).as();
|
||||
builder.registerType(EventStackManager).as();
|
||||
builder.registerType(EventLayoutCoordinator).as();
|
||||
builder.registerType(WorkHoursManager).as();
|
||||
builder.registerType(URLManager).as();
|
||||
builder.registerType(TimeFormatter).as();
|
||||
builder.registerType(PositionUtils).as();
|
||||
// Note: AllDayLayoutEngine is instantiated per-operation with specific dates, not a singleton
|
||||
builder.registerType(WeekInfoRenderer).as();
|
||||
builder.registerType(AllDayEventRenderer).as();
|
||||
builder.registerType(EventRenderingService).as();
|
||||
builder.registerType(GridRenderer).as();
|
||||
builder.registerType(GridManager).as();
|
||||
builder.registerType(ScrollManager).as();
|
||||
builder.registerType(NavigationManager).as();
|
||||
builder.registerType(NavigationButtons).as();
|
||||
builder.registerType(ViewSelector).as();
|
||||
builder.registerType(DragDropManager).as();
|
||||
builder.registerType(AllDayManager).as();
|
||||
builder.registerType(ResizeHandleManager).as();
|
||||
builder.registerType(EdgeScrollManager).as();
|
||||
builder.registerType(HeaderManager).as();
|
||||
builder.registerType(CalendarManager).as();
|
||||
builder.registerType(WorkweekPresets).as();
|
||||
builder.registerType(ConfigManager).as();
|
||||
builder.registerType(EventManager).as();
|
||||
// Build the container
|
||||
const app = builder.build();
|
||||
// Get managers from container
|
||||
const eb = app.resolveType();
|
||||
const calendarManager = app.resolveType();
|
||||
const eventManager = app.resolveType();
|
||||
const resizeHandleManager = app.resolveType();
|
||||
const headerManager = app.resolveType();
|
||||
const dragDropManager = app.resolveType();
|
||||
const viewSelectorManager = app.resolveType();
|
||||
const navigationManager = app.resolveType();
|
||||
const navigationButtonsManager = app.resolveType();
|
||||
const edgeScrollManager = app.resolveType();
|
||||
const allDayManager = app.resolveType();
|
||||
const urlManager = app.resolveType();
|
||||
const workweekPresetsManager = app.resolveType();
|
||||
const configManager = app.resolveType();
|
||||
// Initialize managers
|
||||
await calendarManager.initialize?.();
|
||||
await resizeHandleManager.initialize?.();
|
||||
// Resolve SyncManager (starts automatically in constructor)
|
||||
// Resolve SyncManager (starts automatically in constructor)
|
||||
// Resolve SyncManager (starts automatically in constructor)
|
||||
// Resolve SyncManager (starts automatically in constructor)
|
||||
// Resolve SyncManager (starts automatically in constructor)
|
||||
//const syncManager = app.resolveType<SyncManager>();
|
||||
// Handle deep linking after managers are initialized
|
||||
await handleDeepLinking(eventManager, urlManager);
|
||||
// Expose to window for debugging (with proper typing)
|
||||
window.calendarDebug = {
|
||||
eventBus,
|
||||
app,
|
||||
calendarManager,
|
||||
eventManager,
|
||||
workweekPresetsManager,
|
||||
//syncManager,
|
||||
};
|
||||
}
|
||||
catch (error) {
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
// Initialize when DOM is ready - now handles async properly
|
||||
if (document.readyState === 'loading') {
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
initializeCalendar().catch(error => {
|
||||
console.error('Calendar initialization failed:', error);
|
||||
});
|
||||
});
|
||||
}
|
||||
else {
|
||||
initializeCalendar().catch(error => {
|
||||
console.error('Calendar initialization failed:', error);
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue