Calendar/src/v2/features/resource/ResourceRenderer.ts

34 lines
1,013 B
TypeScript
Raw Normal View History

2025-12-09 21:02:44 +01:00
import { Renderer, RenderContext } from '../../core/IGroupingRenderer';
2025-12-06 01:22:04 +01:00
interface Resource {
id: string;
2025-12-09 21:02:44 +01:00
name: string;
}
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
}
}
}