From 17844d0400e78a3bb5f0427d1268b92bd6dd2d96 Mon Sep 17 00:00:00 2001 From: Clemente Raposo Date: Fri, 6 Dec 2024 12:09:13 +0000 Subject: [PATCH] Add option to use full column on field-layout --- .../core/src/lib/common/record/field.model.ts | 5 +++- .../components/field-grid/field-grid.model.ts | 2 ++ .../field-layout/field-layout.component.html | 4 +-- .../field-layout/field-layout.component.ts | 30 ++++++++++++++++++- .../record/field/attribute.builder.ts | 1 + .../services/record/field/field.builder.ts | 1 + 6 files changed, 39 insertions(+), 4 deletions(-) diff --git a/core/app/core/src/lib/common/record/field.model.ts b/core/app/core/src/lib/common/record/field.model.ts index 335e27672..fd38f70fd 100644 --- a/core/app/core/src/lib/common/record/field.model.ts +++ b/core/app/core/src/lib/common/record/field.model.ts @@ -99,7 +99,8 @@ export interface FieldDefinition { defaultValueModes?: ViewMode[]; modes?: ViewMode[]; relationship?: string; - relationshipMetadata?: RelationshipMetadata + relationshipMetadata?: RelationshipMetadata; + useFullColumn?: string[]; [key: string]: any; } @@ -203,6 +204,7 @@ export interface Field { logic?: FieldLogicMap; displayLogic?: FieldLogicMap; previousValue?: string; + useFullColumn?: string[]; initDefaultValue?: DefaultValueInitCallback; } @@ -236,6 +238,7 @@ export class BaseField implements Field { attributeDependencies: AttributeDependency[] = []; logic?: FieldLogicMap; displayLogic?: FieldLogicMap; + useFullColumn?: string[]; protected valueState?: string; protected valueListState?: string[]; diff --git a/core/app/core/src/lib/components/field-grid/field-grid.model.ts b/core/app/core/src/lib/components/field-grid/field-grid.model.ts index 4b9e6f437..be9f81e60 100644 --- a/core/app/core/src/lib/components/field-grid/field-grid.model.ts +++ b/core/app/core/src/lib/components/field-grid/field-grid.model.ts @@ -34,6 +34,8 @@ export interface FieldGridColumn { actionSlot?: boolean; specialSlot?: boolean; fieldActions?: FieldActions; + headerColumnClass?: string; + valueColumnClass?: string; } export interface FieldGridRow { diff --git a/core/app/core/src/lib/components/field-layout/field-layout.component.html b/core/app/core/src/lib/components/field-layout/field-layout.component.html index a799513ff..373ebec53 100644 --- a/core/app/core/src/lib/components/field-layout/field-layout.component.html +++ b/core/app/core/src/lib/components/field-layout/field-layout.component.html @@ -35,7 +35,7 @@
-
+
@@ -44,7 +44,7 @@
-
({...ac,[a]:true}),{}); + + if (useFullColumn.length) { + headerColumnClass = Object.keys(headerColSizes).map(size => { + if (useFullColumnsMaps[size]) { + return `col-${size}-12`; + } + + return `col-${size}-${headerColSizes[size]}` + }).join(' '); + + valueColumnClass = Object.keys(valuesColSizes).map(size => { + if (useFullColumnsMaps[size]) { + return `col-${size}-12`; + } + + return `col-${size}-${valuesColSizes[size]}` + }).join(' '); + } if (!field) { row.cols.push({} as FieldGridColumn); @@ -112,7 +138,9 @@ export class FieldLayoutComponent extends BaseFieldGridComponent { row.cols.push({ field, fieldActions, - adaptor + adaptor, + valueColumnClass, + headerColumnClass } as FieldGridColumn); if (this.colNumber === 1 && colIndex < layoutRow.cols.length - 1) { diff --git a/core/app/core/src/lib/services/record/field/attribute.builder.ts b/core/app/core/src/lib/services/record/field/attribute.builder.ts index 14ecff79b..6028533ba 100644 --- a/core/app/core/src/lib/services/record/field/attribute.builder.ts +++ b/core/app/core/src/lib/services/record/field/attribute.builder.ts @@ -160,6 +160,7 @@ export class AttributeBuilder extends FieldBuilder { fieldAttribute.valueParent = definition.valueParent; fieldAttribute.source = 'attribute'; fieldAttribute.parentKey = parentField.name; + fieldAttribute.useFullColumn = definition?.useFullColumn || field?.definition?.useFullColumn || null; return fieldAttribute; } diff --git a/core/app/core/src/lib/services/record/field/field.builder.ts b/core/app/core/src/lib/services/record/field/field.builder.ts index d2ac60d3b..7e17a6ce1 100644 --- a/core/app/core/src/lib/services/record/field/field.builder.ts +++ b/core/app/core/src/lib/services/record/field/field.builder.ts @@ -217,6 +217,7 @@ export class FieldBuilder { field.formControl = new UntypedFormControl(formattedValue); } + field.useFullColumn = viewField?.useFullColumn || definition?.useFullColumn || null; field.attributes = {}; field.source = 'field'; field.logic = viewField.logic || definition.logic || null;