Refactors date handling for ISO week compatibility
Centralizes all date calculations into a new `DateCalculator` class for better maintainability and consistency. Ensures correct ISO week handling (Monday as the first day) throughout the calendar. Updates `CalendarConfig` to use ISO day numbering (1-7 for Mon-Sun) for work week definitions. Fixes issue where date calculations were inconsistent. Enhances event rendering and navigation. Updates navigation logic to use pre-rendered events. Removes the need for `CONTAINER_READY_FOR_EVENTS` event.
This commit is contained in:
parent
efc1742dad
commit
7d513600d8
13 changed files with 230 additions and 343 deletions
|
|
@ -4,6 +4,7 @@ import { CalendarType } from '../types/CalendarTypes';
|
|||
import { HeaderRenderer, DateHeaderRenderer, ResourceHeaderRenderer } from '../renderers/HeaderRenderer';
|
||||
import { ColumnRenderer, DateColumnRenderer, ResourceColumnRenderer } from '../renderers/ColumnRenderer';
|
||||
import { EventRendererStrategy, DateEventRenderer, ResourceEventRenderer } from '../renderers/EventRenderer';
|
||||
import { calendarConfig } from '../core/CalendarConfig';
|
||||
|
||||
/**
|
||||
* Renderer configuration for a calendar type
|
||||
|
|
@ -34,13 +35,13 @@ export class CalendarTypeFactory {
|
|||
this.registerRenderers('date', {
|
||||
headerRenderer: new DateHeaderRenderer(),
|
||||
columnRenderer: new DateColumnRenderer(),
|
||||
eventRenderer: new DateEventRenderer()
|
||||
eventRenderer: new DateEventRenderer(calendarConfig)
|
||||
});
|
||||
|
||||
this.registerRenderers('resource', {
|
||||
headerRenderer: new ResourceHeaderRenderer(),
|
||||
columnRenderer: new ResourceColumnRenderer(),
|
||||
eventRenderer: new ResourceEventRenderer()
|
||||
eventRenderer: new ResourceEventRenderer(calendarConfig)
|
||||
});
|
||||
|
||||
this.isInitialized = true;
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export class ManagerFactory {
|
|||
const eventRenderer = new EventRenderingService(eventBus, eventManager);
|
||||
const gridManager = new GridManager();
|
||||
const scrollManager = new ScrollManager();
|
||||
const navigationManager = new NavigationManager(eventBus);
|
||||
const navigationManager = new NavigationManager(eventBus, eventRenderer);
|
||||
const viewManager = new ViewManager(eventBus);
|
||||
|
||||
// CalendarManager depends on all other managers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue