2025-08-20 19:42:13 +02:00
|
|
|
/**
|
|
|
|
|
* 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',
|
2025-08-23 00:01:59 +02:00
|
|
|
REFRESH_REQUESTED: 'system:refresh',
|
|
|
|
|
|
|
|
|
|
// Filter events (1)
|
|
|
|
|
FILTER_CHANGED: 'filter:changed',
|
|
|
|
|
|
|
|
|
|
// Rendering events (1)
|
|
|
|
|
EVENTS_RENDERED: 'events:rendered'
|
2025-08-20 19:42:13 +02:00
|
|
|
} 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<string, string> = {
|
|
|
|
|
// 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
|
|
|
|
|
};
|