Files
marketplaces/src/app/dynamic-renderer/section-engine/section-engine.service.ts

25 lines
826 B
TypeScript
Raw Normal View History

2026-07-05 01:55:41 +04:00
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
};
}
}