View field override (#18572)

## Context
This PR introduces overrides for view fields which will be useful for
page layout FIELDS widgets fields position/groups/visibility override +
restore logic.
This commit is contained in:
Weiko
2026-03-14 12:40:15 +01:00
committed by GitHub
parent 0b0ffcb8fa
commit 48172d60fd
50 changed files with 864 additions and 114 deletions
@@ -630,6 +630,36 @@ export class DataloaderService {
},
);
const viewFieldsByResolvedGroupId = new Map<
string,
ReturnType<typeof fromFlatViewFieldToViewFieldDto>[]
>();
for (const flatViewField of Object.values(
flatViewFieldMaps.byUniversalIdentifier,
)) {
if (!isDefined(flatViewField) || flatViewField.deletedAt !== null) {
continue;
}
const resolvedGroupId =
flatViewField.overrides?.viewFieldGroupId !== undefined
? flatViewField.overrides.viewFieldGroupId
: flatViewField.viewFieldGroupId;
if (!isDefined(resolvedGroupId)) {
continue;
}
if (!viewFieldsByResolvedGroupId.has(resolvedGroupId)) {
viewFieldsByResolvedGroupId.set(resolvedGroupId, []);
}
viewFieldsByResolvedGroupId
.get(resolvedGroupId)!
.push(fromFlatViewFieldToViewFieldDto(flatViewField));
}
return dataLoaderParams.map(({ viewFieldGroupId }) => {
const flatViewFieldGroup = findFlatEntityByIdInFlatEntityMaps({
flatEntityId: viewFieldGroupId,
@@ -640,12 +670,7 @@ export class DataloaderService {
return [];
}
return findManyFlatEntityByIdInFlatEntityMaps({
flatEntityIds: flatViewFieldGroup.viewFieldIds,
flatEntityMaps: flatViewFieldMaps,
})
.filter((flatViewField) => flatViewField.deletedAt === null)
.map(fromFlatViewFieldToViewFieldDto);
return viewFieldsByResolvedGroupId.get(viewFieldGroupId) ?? [];
});
});
}