wip
This commit is contained in:
parent
f39e38986c
commit
6fc9be9534
5 changed files with 3 additions and 20 deletions
|
|
@ -6,6 +6,5 @@ export interface RenderContext {
|
||||||
|
|
||||||
export interface Renderer {
|
export interface Renderer {
|
||||||
readonly type: string;
|
readonly type: string;
|
||||||
next: Renderer | null;
|
|
||||||
render(context: RenderContext): void;
|
render(context: RenderContext): void;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,11 @@ export interface Pipeline {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function buildPipeline(renderers: Renderer[]): Pipeline {
|
export function buildPipeline(renderers: Renderer[]): Pipeline {
|
||||||
// Link renderers
|
|
||||||
for (let i = 0; i < renderers.length - 1; i++) {
|
|
||||||
renderers[i].next = renderers[i + 1];
|
|
||||||
}
|
|
||||||
|
|
||||||
const first = renderers[0] ?? null;
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run(context: RenderContext) {
|
run(context: RenderContext) {
|
||||||
if (first) first.render(context);
|
for (const renderer of renderers) {
|
||||||
|
renderer.render(context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import { DateService } from '../../core/DateService';
|
||||||
|
|
||||||
export class DateRenderer implements Renderer {
|
export class DateRenderer implements Renderer {
|
||||||
readonly type = 'date';
|
readonly type = 'date';
|
||||||
next: Renderer | null = null;
|
|
||||||
|
|
||||||
constructor(private dateService: DateService) {}
|
constructor(private dateService: DateService) {}
|
||||||
|
|
||||||
|
|
@ -32,7 +31,5 @@ export class DateRenderer implements Renderer {
|
||||||
context.columnContainer.appendChild(column);
|
context.columnContainer.appendChild(column);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Leaf - ingen next
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ interface Resource {
|
||||||
|
|
||||||
export class ResourceRenderer implements Renderer {
|
export class ResourceRenderer implements Renderer {
|
||||||
readonly type = 'resource';
|
readonly type = 'resource';
|
||||||
next: Renderer | null = null;
|
|
||||||
|
|
||||||
// Hardcoded data
|
// Hardcoded data
|
||||||
private resources: Resource[] = [
|
private resources: Resource[] = [
|
||||||
|
|
@ -30,8 +29,5 @@ export class ResourceRenderer implements Renderer {
|
||||||
header.style.gridColumn = `span ${dateCount}`;
|
header.style.gridColumn = `span ${dateCount}`;
|
||||||
context.headerContainer.appendChild(header);
|
context.headerContainer.appendChild(header);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derefter kald next ÉN gang
|
|
||||||
if (this.next) this.next.render(context);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ interface Team {
|
||||||
|
|
||||||
export class TeamRenderer implements Renderer {
|
export class TeamRenderer implements Renderer {
|
||||||
readonly type = 'team';
|
readonly type = 'team';
|
||||||
next: Renderer | null = null;
|
|
||||||
|
|
||||||
// Hardcoded data
|
// Hardcoded data
|
||||||
private teams: Team[] = [
|
private teams: Team[] = [
|
||||||
|
|
@ -35,8 +34,5 @@ export class TeamRenderer implements Renderer {
|
||||||
header.style.setProperty('--team-cols', String(colspan));
|
header.style.setProperty('--team-cols', String(colspan));
|
||||||
context.headerContainer.appendChild(header);
|
context.headerContainer.appendChild(header);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Derefter kald next ÉN gang
|
|
||||||
if (this.next) this.next.render(context);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue