import { IEnumerable } from 'ts-linq-light'; import { IGroupingRenderer, RenderContext } from '../../core/IGroupingRenderer'; import { NextFunction, RenderData } from '../../core/RenderBuilder'; import { DateService } from '../../core/DateService'; export class DateRenderer implements IGroupingRenderer { readonly type = 'date'; constructor(private dateService: DateService) {} render( dates: IEnumerable, _data: RenderData, _next: NextFunction, context: RenderContext ): void { for (const dateStr of dates) { const date = this.dateService.parseISO(dateStr); const headerCell = document.createElement('swp-day-header'); headerCell.dataset.date = dateStr; headerCell.innerHTML = ` ${this.dateService.getDayName(date, 'short')} ${date.getDate()} `; context.headerContainer.appendChild(headerCell); const column = document.createElement('swp-day-column'); column.dataset.date = dateStr; column.innerHTML = ''; context.columnContainer.appendChild(column); // Leaf renderer - ingen next.render() kald } } }