/** * CoreEvents - Consolidated essential events for the calendar * Reduces complexity from 102+ events to ~20 core events */ export const CoreEvents = { // Lifecycle events (3) INITIALIZED: 'core:initialized', READY: 'core:ready', DESTROYED: 'core:destroyed', // View events (3) VIEW_CHANGED: 'view:changed', VIEW_RENDERED: 'view:rendered', WORKWEEK_CHANGED: 'workweek:changed', // Navigation events (3) DATE_CHANGED: 'nav:date-changed', PERIOD_CHANGED: 'nav:period-changed', WEEK_CHANGED: 'nav:week-changed', // Data events (4) DATA_LOADING: 'data:loading', DATA_LOADED: 'data:loaded', DATA_ERROR: 'data:error', EVENTS_FILTERED: 'data:events-filtered', // Grid events (3) GRID_RENDERED: 'grid:rendered', GRID_CLICKED: 'grid:clicked', CELL_SELECTED: 'grid:cell-selected', // Event management (4) EVENT_CREATED: 'event:created', EVENT_UPDATED: 'event:updated', EVENT_DELETED: 'event:deleted', EVENT_SELECTED: 'event:selected', // System events (2) ERROR: 'system:error', REFRESH_REQUESTED: 'system:refresh', // Filter events (1) FILTER_CHANGED: 'filter:changed', // Rendering events (1) EVENTS_RENDERED: 'events:rendered' } as const; // Type for the event values export type CoreEventType = typeof CoreEvents[keyof typeof CoreEvents]; /** * Migration map from old EventTypes to CoreEvents * This helps transition existing code gradually */ export const EVENT_MIGRATION_MAP: Record = { // Lifecycle 'calendar:initialized': CoreEvents.INITIALIZED, 'calendar:ready': CoreEvents.READY, // View 'calendar:viewchanged': CoreEvents.VIEW_CHANGED, 'calendar:viewrendered': CoreEvents.VIEW_RENDERED, 'calendar:workweekchanged': CoreEvents.WORKWEEK_CHANGED, // Navigation 'calendar:datechanged': CoreEvents.DATE_CHANGED, 'calendar:periodchange': CoreEvents.PERIOD_CHANGED, 'calendar:weekchanged': CoreEvents.WEEK_CHANGED, // Data 'calendar:datafetchstart': CoreEvents.DATA_LOADING, 'calendar:datafetchsuccess': CoreEvents.DATA_LOADED, 'calendar:datafetcherror': CoreEvents.DATA_ERROR, 'calendar:eventsloaded': CoreEvents.DATA_LOADED, // Grid 'calendar:gridrendered': CoreEvents.GRID_RENDERED, 'calendar:gridclick': CoreEvents.GRID_CLICKED, // Event management 'calendar:eventcreated': CoreEvents.EVENT_CREATED, 'calendar:eventupdated': CoreEvents.EVENT_UPDATED, 'calendar:eventdeleted': CoreEvents.EVENT_DELETED, 'calendar:eventselected': CoreEvents.EVENT_SELECTED, // System 'calendar:error': CoreEvents.ERROR, 'calendar:refreshrequested': CoreEvents.REFRESH_REQUESTED };