[FRONT COMPONENTS] Serialize relation between widget and front component (#18228)
This allows us to define page layout widgets of type front component in an app with the front component universal identifier.
This commit is contained in:
+1
@@ -42,6 +42,7 @@ export class CreatePageLayoutWidgetActionHandlerService extends WorkspaceMigrati
|
||||
fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration({
|
||||
universalConfiguration: action.flatEntity.universalConfiguration,
|
||||
flatFieldMetadataMaps: allFlatEntityMaps.flatFieldMetadataMaps,
|
||||
flatFrontComponentMaps: allFlatEntityMaps.flatFrontComponentMaps,
|
||||
flatViewMaps: allFlatEntityMaps.flatViewMaps,
|
||||
flatViewFieldGroupMaps: allFlatEntityMaps.flatViewFieldGroupMaps,
|
||||
});
|
||||
|
||||
+2
@@ -50,6 +50,8 @@ export class UpdatePageLayoutWidgetActionHandlerService extends WorkspaceMigrati
|
||||
fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration({
|
||||
universalConfiguration,
|
||||
flatFieldMetadataMaps: allFlatEntityMaps.flatFieldMetadataMaps,
|
||||
flatFrontComponentMaps:
|
||||
allFlatEntityMaps.flatFrontComponentMaps,
|
||||
flatViewMaps: allFlatEntityMaps.flatViewMaps,
|
||||
flatViewFieldGroupMaps:
|
||||
allFlatEntityMaps.flatViewFieldGroupMaps,
|
||||
|
||||
+31
-1
@@ -70,11 +70,13 @@ const convertUniversalFilterToChartFilter = ({
|
||||
export const fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration = ({
|
||||
universalConfiguration,
|
||||
flatFieldMetadataMaps,
|
||||
flatFrontComponentMaps,
|
||||
flatViewMaps,
|
||||
flatViewFieldGroupMaps,
|
||||
}: {
|
||||
universalConfiguration: FlatPageLayoutWidget['universalConfiguration'];
|
||||
flatFieldMetadataMaps: MetadataFlatEntityMaps<'fieldMetadata'>;
|
||||
flatFrontComponentMaps: MetadataFlatEntityMaps<'frontComponent'>;
|
||||
flatViewMaps: MetadataFlatEntityMaps<'view'>;
|
||||
flatViewFieldGroupMaps: MetadataFlatEntityMaps<'viewFieldGroup'>;
|
||||
}): FlatPageLayoutWidget['configuration'] => {
|
||||
@@ -310,6 +312,35 @@ export const fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration = ({
|
||||
return { ...rest, viewId, newFieldDefaultConfiguration };
|
||||
}
|
||||
|
||||
case WidgetConfigurationType.FRONT_COMPONENT: {
|
||||
const { frontComponentUniversalIdentifier, ...rest } =
|
||||
universalConfiguration;
|
||||
|
||||
if (!isDefined(frontComponentUniversalIdentifier)) {
|
||||
throw new FlatEntityMapsException(
|
||||
`Front component universal identifier is required for FRONT_COMPONENT configuration`,
|
||||
FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const flatFrontComponent = findFlatEntityByUniversalIdentifier({
|
||||
flatEntityMaps: flatFrontComponentMaps,
|
||||
universalIdentifier: frontComponentUniversalIdentifier,
|
||||
});
|
||||
|
||||
if (!isDefined(flatFrontComponent)) {
|
||||
throw new FlatEntityMapsException(
|
||||
`Front component not found for universal identifier: ${frontComponentUniversalIdentifier}`,
|
||||
FlatEntityMapsExceptionCode.ENTITY_NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
...rest,
|
||||
frontComponentId: flatFrontComponent.id,
|
||||
};
|
||||
}
|
||||
|
||||
case WidgetConfigurationType.VIEW:
|
||||
case WidgetConfigurationType.FIELD:
|
||||
case WidgetConfigurationType.TIMELINE:
|
||||
@@ -322,7 +353,6 @@ export const fromUniversalConfigurationToFlatPageLayoutWidgetConfiguration = ({
|
||||
case WidgetConfigurationType.WORKFLOW:
|
||||
case WidgetConfigurationType.WORKFLOW_VERSION:
|
||||
case WidgetConfigurationType.WORKFLOW_RUN:
|
||||
case WidgetConfigurationType.FRONT_COMPONENT:
|
||||
case WidgetConfigurationType.IFRAME:
|
||||
case WidgetConfigurationType.STANDALONE_RICH_TEXT:
|
||||
return universalConfiguration;
|
||||
|
||||
Reference in New Issue
Block a user