/* * Squidex Headless CMS * * @license * Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved. */ import { Pipe, PipeTransform } from '@angular/core'; import { FieldDto } from '@app/shared'; export interface FieldSection { separator?: T; fields: ReadonlyArray; } @Pipe({ name: 'sqxGroupFields', pure: true }) export class GroupFieldsPipe implements PipeTransform { public transform(fields: ReadonlyArray) { const sections: FieldSection[] = []; let currentSeparator: T | undefined = undefined; let currentFields: T[] = []; for (const field of fields) { if (field.properties.isContentField) { currentFields.push(field); } else { sections.push({ separator: currentSeparator, fields: currentFields }); currentFields = []; currentSeparator = field; } } if (currentFields.length > 0) { sections.push({ separator: currentSeparator, fields: currentFields }); } return sections; } }