2025-12-09 21:02:44 +01:00
|
|
|
import { Renderer, RenderContext } from '../../core/IGroupingRenderer';
|
2025-12-06 01:22:04 +01:00
|
|
|
|
2025-12-09 00:51:41 +01:00
|
|
|
interface Resource {
|
|
|
|
|
id: string;
|
2025-12-09 21:02:44 +01:00
|
|
|
name: string;
|
2025-12-09 00:51:41 +01:00
|
|
|
}
|
|
|
|
|
|
2025-12-09 21:02:44 +01:00
|
|
|
export class ResourceRenderer implements Renderer {
|
2025-12-06 01:22:04 +01:00
|
|
|
readonly type = 'resource';
|
2025-12-09 21:02:44 +01:00
|
|
|
|
|
|
|
|
// Hardcoded data
|
|
|
|
|
private resources: Resource[] = [
|
|
|
|
|
{ id: 'res1', name: 'Anders' },
|
|
|
|
|
{ id: 'res2', name: 'Bente' },
|
|
|
|
|
{ id: 'res3', name: 'Carsten' }
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
render(context: RenderContext): void {
|
|
|
|
|
const allowedIds = context.filter['resource'] || [];
|
|
|
|
|
const filteredResources = this.resources.filter(r => allowedIds.includes(r.id));
|
|
|
|
|
|
|
|
|
|
const dateCount = context.filter['date']?.length || 1;
|
|
|
|
|
|
|
|
|
|
// Render ALLE resource headers
|
|
|
|
|
for (const resource of filteredResources) {
|
|
|
|
|
const header = document.createElement('swp-resource-header');
|
|
|
|
|
header.dataset.resourceId = resource.id;
|
|
|
|
|
header.textContent = resource.name;
|
|
|
|
|
header.style.gridColumn = `span ${dateCount}`;
|
|
|
|
|
context.headerContainer.appendChild(header);
|
2025-12-06 01:22:04 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|