import { Injectable } from '@angular/core'; import { PageConfig } from '../../shared/models/config'; import { PageRenderModel } from '../page-renderer/page-renderer.model'; import { SectionRendererService } from '../section-renderer/section-renderer.service'; @Injectable({ providedIn: 'root' }) export class SectionEngineService { constructor(private readonly sectionRenderer: SectionRendererService) {} toPageRenderModel(page: PageConfig): PageRenderModel { const sections = (page.sections ?? []) .filter((section) => section.visible !== false) .sort((a, b) => a.order - b.order) .map((section) => this.sectionRenderer.toRenderNode(section)); return { id: page.id, key: page.key, title: page.title, layout: page.layout, sections, source: page }; } }