Some ignored filles was missing
This commit is contained in:
parent
7db22245e2
commit
fd5ab6bc0d
268 changed files with 31970 additions and 4 deletions
75
wwwroot/js/renderers/WeekInfoRenderer.js
Normal file
75
wwwroot/js/renderers/WeekInfoRenderer.js
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
import { CoreEvents } from '../constants/CoreEvents';
|
||||
/**
|
||||
* WeekInfoRenderer - Handles DOM rendering for week info display
|
||||
* Updates swp-week-number and swp-date-range elements
|
||||
*
|
||||
* Renamed from NavigationRenderer to better reflect its actual responsibility
|
||||
*/
|
||||
export class WeekInfoRenderer {
|
||||
constructor(eventBus, eventRenderer, dateService) {
|
||||
this.eventBus = eventBus;
|
||||
this.dateService = dateService;
|
||||
this.setupEventListeners();
|
||||
}
|
||||
/**
|
||||
* Setup event listeners for DOM updates
|
||||
*/
|
||||
setupEventListeners() {
|
||||
this.eventBus.on(CoreEvents.NAVIGATION_COMPLETED, (event) => {
|
||||
const customEvent = event;
|
||||
const { newDate } = customEvent.detail;
|
||||
// Calculate week number and date range from the new date
|
||||
const weekNumber = this.dateService.getWeekNumber(newDate);
|
||||
const weekEnd = this.dateService.addDays(newDate, 6);
|
||||
const dateRange = this.dateService.formatDateRange(newDate, weekEnd);
|
||||
this.updateWeekInfoInDOM(weekNumber, dateRange);
|
||||
});
|
||||
}
|
||||
updateWeekInfoInDOM(weekNumber, dateRange) {
|
||||
const weekNumberElement = document.querySelector('swp-week-number');
|
||||
const dateRangeElement = document.querySelector('swp-date-range');
|
||||
if (weekNumberElement) {
|
||||
weekNumberElement.textContent = `Week ${weekNumber}`;
|
||||
}
|
||||
if (dateRangeElement) {
|
||||
dateRangeElement.textContent = dateRange;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Apply filter state to pre-rendered grids
|
||||
*/
|
||||
applyFilterToPreRenderedGrids(filterState) {
|
||||
// Find all grid containers (including pre-rendered ones)
|
||||
const allGridContainers = document.querySelectorAll('swp-grid-container');
|
||||
allGridContainers.forEach(container => {
|
||||
const eventsLayers = container.querySelectorAll('swp-events-layer');
|
||||
eventsLayers.forEach(layer => {
|
||||
if (filterState.active) {
|
||||
// Apply filter active state
|
||||
layer.setAttribute('data-filter-active', 'true');
|
||||
// Mark matching events in this layer
|
||||
const events = layer.querySelectorAll('swp-event');
|
||||
events.forEach(event => {
|
||||
const eventId = event.getAttribute('data-event-id');
|
||||
if (eventId && filterState.matchingIds.includes(eventId)) {
|
||||
event.setAttribute('data-matches', 'true');
|
||||
}
|
||||
else {
|
||||
event.removeAttribute('data-matches');
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
// Remove filter state
|
||||
layer.removeAttribute('data-filter-active');
|
||||
// Remove all match attributes
|
||||
const events = layer.querySelectorAll('swp-event');
|
||||
events.forEach(event => {
|
||||
event.removeAttribute('data-matches');
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=WeekInfoRenderer.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue