@sapui5/sap.fe.macros 1.141.0 → 1.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Breadcrumbs.js +4 -10
- package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
- package/src/sap/fe/macros/Chart.js +34 -23
- package/src/sap/fe/macros/Chart.tsx +25 -11
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +48 -31
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +51 -26
- package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
- package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
- package/src/sap/fe/macros/CommonHelper.js +14 -24
- package/src/sap/fe/macros/CommonHelper.ts +18 -25
- package/src/sap/fe/macros/Field.js +30 -13
- package/src/sap/fe/macros/Field.ts +60 -30
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +6 -3
- package/src/sap/fe/macros/KPITag.js +1 -1
- package/src/sap/fe/macros/KPITag.tsx +3 -1
- package/src/sap/fe/macros/MacroAPI.js +3 -2
- package/src/sap/fe/macros/MacroAPI.ts +2 -2
- package/src/sap/fe/macros/MessageButton.js +3 -2
- package/src/sap/fe/macros/MessageButton.tsx +5 -2
- package/src/sap/fe/macros/MicroChart.js +10 -6
- package/src/sap/fe/macros/MicroChart.tsx +8 -2
- package/src/sap/fe/macros/MultiValueField.js +22 -36
- package/src/sap/fe/macros/MultiValueField.tsx +34 -66
- package/src/sap/fe/macros/RichTextEditor.js +3 -4
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
- package/src/sap/fe/macros/Status.js +35 -8
- package/src/sap/fe/macros/Status.tsx +23 -2
- package/src/sap/fe/macros/ValueHelp.js +5 -2
- package/src/sap/fe/macros/ValueHelp.tsx +5 -0
- package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
- package/src/sap/fe/macros/chart/Action.js +25 -2
- package/src/sap/fe/macros/chart/Action.ts +13 -0
- package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
- package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
- package/src/sap/fe/macros/chart/ChartDelegate.js +8 -8
- package/src/sap/fe/macros/chart/ChartDelegate.ts +17 -12
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +54 -11
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +70 -11
- package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
- package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
- package/src/sap/fe/macros/controls/FilterBar.js +39 -3
- package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
- package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
- package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
- package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
- package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +37 -9
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +45 -6
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
- package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
- package/src/sap/fe/macros/field/FieldFormatOptions.js +3 -3
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +1 -1
- package/src/sap/fe/macros/field/FieldHelper.js +4 -3
- package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
- package/src/sap/fe/macros/field/FieldRuntime.js +38 -8
- package/src/sap/fe/macros/field/FieldRuntime.ts +65 -7
- package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
- package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
- package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
- package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
- package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +100 -36
- package/src/sap/fe/macros/filter/FilterUtils.ts +127 -39
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
- package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +10 -7
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +31 -16
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +4 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
- package/src/sap/fe/macros/form/Form.block.js +27 -2
- package/src/sap/fe/macros/form/Form.block.ts +31 -11
- package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +96 -65
- package/src/sap/fe/macros/form/FormContainer.block.ts +104 -65
- package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
- package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
- package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
- package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
- package/src/sap/fe/macros/insights/InsightsService.js +3 -2
- package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
- package/src/sap/fe/macros/internal/DataPoint.js +7 -8
- package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
- package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
- package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
- package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
- package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
- package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
- package/src/sap/fe/macros/library.js +3 -3
- package/src/sap/fe/macros/library.ts +2 -0
- package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
- package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
- package/src/sap/fe/macros/messagebundle.properties +7 -5
- package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
- package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
- package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
- package/src/sap/fe/macros/messagebundle_da.properties +12 -3
- package/src/sap/fe/macros/messagebundle_de.properties +16 -7
- package/src/sap/fe/macros/messagebundle_el.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es.properties +12 -3
- package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
- package/src/sap/fe/macros/messagebundle_et.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
- package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
- package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
- package/src/sap/fe/macros/messagebundle_id.properties +18 -9
- package/src/sap/fe/macros/messagebundle_it.properties +12 -3
- package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
- package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
- package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
- package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_no.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
- package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
- package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
- package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
- package/src/sap/fe/macros/messagebundle_th.properties +11 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
- package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
- package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
- package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
- package/src/sap/fe/macros/table/Action.js +15 -2
- package/src/sap/fe/macros/table/Action.ts +11 -1
- package/src/sap/fe/macros/table/ActionGroup.js +15 -2
- package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
- package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionOverride.js +14 -2
- package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +91 -10
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +131 -10
- package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
- package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
- package/src/sap/fe/macros/table/Table.block.js +70 -29
- package/src/sap/fe/macros/table/Table.block.tsx +65 -12
- package/src/sap/fe/macros/table/TableAPI.js +169 -131
- package/src/sap/fe/macros/table/TableAPI.ts +58 -28
- package/src/sap/fe/macros/table/TableDefinition.js +19 -2
- package/src/sap/fe/macros/table/TableDefinition.ts +17 -1
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +4 -3
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +8 -9
- package/src/sap/fe/macros/table/TableHelper.js +5 -2
- package/src/sap/fe/macros/table/TableHelper.ts +5 -2
- package/src/sap/fe/macros/table/TableRuntime.js +2 -2
- package/src/sap/fe/macros/table/TableRuntime.ts +4 -6
- package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
- package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +67 -26
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +108 -118
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +2 -2
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
- package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +6 -5
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +10 -4
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
- package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
- package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
- package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
- package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConvertedMetadata, EntitySet, NavigationProperty } from "@sap-ux/vocabularies-types";
|
|
2
2
|
import type {
|
|
3
3
|
Chart,
|
|
4
|
+
ConnectedFields,
|
|
4
5
|
DataField,
|
|
5
6
|
DataFieldForAction,
|
|
6
7
|
DataFieldForAnnotation,
|
|
@@ -47,7 +48,8 @@ import type {
|
|
|
47
48
|
CustomBasedTableColumn
|
|
48
49
|
} from "sap/fe/core/converters/controls/Common/table/Columns";
|
|
49
50
|
import { StandardActionKeys, type StandardAction } from "sap/fe/core/converters/controls/Common/table/StandardActions";
|
|
50
|
-
import {
|
|
51
|
+
import { getConnectedFieldsData } from "sap/fe/core/converters/helpers/DataFieldHelper";
|
|
52
|
+
import { Entity, UI, singletonPathVisitor } from "sap/fe/core/helpers/BindingHelper";
|
|
51
53
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
52
54
|
import { generate } from "sap/fe/core/helpers/StableIdHelper";
|
|
53
55
|
import { isAnnotationOfTerm, isAnnotationOfType, isSingleton } from "sap/fe/core/helpers/TypeGuards";
|
|
@@ -80,6 +82,7 @@ import MenuItem from "sap/m/MenuItem";
|
|
|
80
82
|
import ObjectStatus from "sap/m/ObjectStatus";
|
|
81
83
|
import SegmentedButton from "sap/m/SegmentedButton";
|
|
82
84
|
import SegmentedButtonItem from "sap/m/SegmentedButtonItem";
|
|
85
|
+
import Text from "sap/m/Text";
|
|
83
86
|
import VBox from "sap/m/VBox";
|
|
84
87
|
import { ObjectMarkerVisibility } from "sap/m/library";
|
|
85
88
|
import CellSelector from "sap/m/plugins/CellSelector";
|
|
@@ -180,6 +183,7 @@ function getDataStateIndicator(handlerProvider: TableEventHandlerProvider): Data
|
|
|
180
183
|
return (
|
|
181
184
|
<DataStateIndicator
|
|
182
185
|
filter={handlerProvider.dataStateIndicatorFilter}
|
|
186
|
+
enabled={compileExpression(not(equal(pathInModel("enableTableDataStateIndicator", "pageInternal"), false)))}
|
|
183
187
|
enableFiltering={true}
|
|
184
188
|
dataStateChange={handlerProvider.dataStateChange}
|
|
185
189
|
/>
|
|
@@ -921,6 +925,7 @@ export function getComputedColumn(
|
|
|
921
925
|
<DraftIndicator
|
|
922
926
|
draftIndicatorType={ObjectMarkerVisibility.IconOnly}
|
|
923
927
|
contextPath={collection.getPath()}
|
|
928
|
+
visible={or(not(Entity.IsActive), Entity.HasDraft)}
|
|
924
929
|
usedInTable={true}
|
|
925
930
|
usedInAnalyticalTable={enableAnalytics}
|
|
926
931
|
/>
|
|
@@ -1163,7 +1168,8 @@ export function getMacroFieldTemplate(
|
|
|
1163
1168
|
ariaLabelledBy: string | undefined,
|
|
1164
1169
|
showEmptyIndicator: boolean | undefined,
|
|
1165
1170
|
className: string | undefined,
|
|
1166
|
-
handlerProvider: TableEventHandlerProvider
|
|
1171
|
+
handlerProvider: TableEventHandlerProvider,
|
|
1172
|
+
isConnectedField = false
|
|
1167
1173
|
): string {
|
|
1168
1174
|
const dataFieldObject = dataFieldContext.getObject();
|
|
1169
1175
|
let columnEditMode: string | undefined;
|
|
@@ -1200,7 +1206,7 @@ export function getMacroFieldTemplate(
|
|
|
1200
1206
|
ignoreNavigationAvailable: enableAnalytics ?? false,
|
|
1201
1207
|
isAnalytics: enableAnalytics,
|
|
1202
1208
|
forInlineCreationRows: creationMode?.name === "InlineCreationRows",
|
|
1203
|
-
isCurrencyOrUnitAligned: true,
|
|
1209
|
+
isCurrencyOrUnitAligned: isConnectedField ? false : true,
|
|
1204
1210
|
compactSemanticKey: isCompactType === undefined ? undefined : `${isCompactType}`,
|
|
1205
1211
|
dateTimeStyle: getDefaultDateTimeStyle(dataFieldContext),
|
|
1206
1212
|
isAnalyticalAggregatedRow: tableDefinition.control.analyticalConfiguration?.aggregationOnLeafLevel,
|
|
@@ -1212,13 +1218,14 @@ export function getMacroFieldTemplate(
|
|
|
1212
1218
|
editMode={columnEditMode}
|
|
1213
1219
|
contextPath={collection.getPath()}
|
|
1214
1220
|
metaPath={dataFieldContext.getPath()}
|
|
1215
|
-
textAlign={textAlign}
|
|
1221
|
+
textAlign={isConnectedField ? "Left" : textAlign}
|
|
1216
1222
|
wrap={tableType === "ResponsiveTable"}
|
|
1217
1223
|
class={className}
|
|
1218
1224
|
liveChange={handlerProvider.fieldLiveChange}
|
|
1219
|
-
ariaLabelledBy={ariaLabelledBy ?
|
|
1225
|
+
ariaLabelledBy={ariaLabelledBy ? ariaLabelledBy.split(" ") : undefined}
|
|
1220
1226
|
navigateAfterAction={column.isNavigable}
|
|
1221
1227
|
showErrorObjectStatus={column.formatOptions?.showErrorObjectStatus as unknown as boolean}
|
|
1228
|
+
disableStrictHandling={column.disableStrictHandling}
|
|
1222
1229
|
>
|
|
1223
1230
|
{{
|
|
1224
1231
|
formatOptions: <FieldFormatOptions {...formatOptions} />
|
|
@@ -1323,7 +1330,7 @@ function getColumnContentTemplate(
|
|
|
1323
1330
|
const dataFieldCollectionContext = dataFieldContext
|
|
1324
1331
|
.getModel()
|
|
1325
1332
|
.createBindingContext(dataFieldContext.getPath() + "/Target/$AnnotationPath/Data");
|
|
1326
|
-
const
|
|
1333
|
+
const fieldGroupCollectionLength = fieldGroup.Data.length - 1;
|
|
1327
1334
|
|
|
1328
1335
|
const items = fieldGroup.Data.map((fieldGroupDataField: DataFieldAbstractTypes, fieldGroupDataFieldIdx: number) => {
|
|
1329
1336
|
const fieldGroupDataFieldContext = dataFieldCollectionContext
|
|
@@ -1371,7 +1378,7 @@ function getColumnContentTemplate(
|
|
|
1371
1378
|
true,
|
|
1372
1379
|
TableHelper.getMarginClass(
|
|
1373
1380
|
fieldGroupDataFieldContext.getObject("Target/$AnnotationPath/Visualization/$EnumMember"),
|
|
1374
|
-
fieldGroupDataFieldIdx ===
|
|
1381
|
+
fieldGroupDataFieldIdx === fieldGroupCollectionLength
|
|
1375
1382
|
),
|
|
1376
1383
|
handlerProvider
|
|
1377
1384
|
)
|
|
@@ -1397,7 +1404,7 @@ function getColumnContentTemplate(
|
|
|
1397
1404
|
false,
|
|
1398
1405
|
TableHelper.getMarginClass(
|
|
1399
1406
|
fieldGroupDataFieldContext.getObject("Target/$AnnotationPath/Visualization/$EnumMember"),
|
|
1400
|
-
fieldGroupDataFieldIdx ===
|
|
1407
|
+
fieldGroupDataFieldIdx === fieldGroupCollectionLength
|
|
1401
1408
|
),
|
|
1402
1409
|
handlerProvider
|
|
1403
1410
|
);
|
|
@@ -1417,7 +1424,7 @@ function getColumnContentTemplate(
|
|
|
1417
1424
|
<VBox
|
|
1418
1425
|
visible={TableHelper.getVBoxVisibility(
|
|
1419
1426
|
dataFieldCollectionContext.getObject(),
|
|
1420
|
-
column.
|
|
1427
|
+
column.collectionFieldsHiddenExpression,
|
|
1421
1428
|
dataFieldContext.getObject()
|
|
1422
1429
|
)}
|
|
1423
1430
|
>
|
|
@@ -1426,6 +1433,115 @@ function getColumnContentTemplate(
|
|
|
1426
1433
|
}}
|
|
1427
1434
|
</VBox>
|
|
1428
1435
|
);
|
|
1436
|
+
} else if (
|
|
1437
|
+
isAnnotationOfType<DataFieldForAnnotation>(dataField, UIAnnotationTypes.DataFieldForAnnotation) &&
|
|
1438
|
+
isAnnotationOfTerm<ConnectedFields>(dataField.Target.$target, UIAnnotationTerms.ConnectedFields)
|
|
1439
|
+
) {
|
|
1440
|
+
const connectedFields: ConnectedFields = dataField.Target.$target;
|
|
1441
|
+
const connectedFieldsContext = dataFieldContext
|
|
1442
|
+
.getModel()
|
|
1443
|
+
.createBindingContext(dataFieldContext.getPath() + "/Target/$AnnotationPath/Data");
|
|
1444
|
+
const fieldsDelimiter = CommonHelper.getDelimiter(connectedFields.Template as string);
|
|
1445
|
+
const connectedFieldsData = getConnectedFieldsData(connectedFields);
|
|
1446
|
+
const items = connectedFieldsData.map((connectedFieldsElement: DataFieldAbstractTypes, connectedFieldsElementIdx: number) => {
|
|
1447
|
+
const connectedFieldsElementContext = dataFieldContext
|
|
1448
|
+
.getModel()
|
|
1449
|
+
.createBindingContext(`${connectedFieldsContext.getPath()}/${(connectedFieldsElement as DataField)?.Value?.path}`);
|
|
1450
|
+
const fieldTemplate = getMacroFieldTemplate(
|
|
1451
|
+
tableId,
|
|
1452
|
+
tableDefinition,
|
|
1453
|
+
column,
|
|
1454
|
+
connectedFieldsElementContext,
|
|
1455
|
+
collection,
|
|
1456
|
+
enableAnalytics,
|
|
1457
|
+
tableType,
|
|
1458
|
+
isTableReadOnly,
|
|
1459
|
+
creationMode,
|
|
1460
|
+
undefined,
|
|
1461
|
+
isCompactType,
|
|
1462
|
+
"Left",
|
|
1463
|
+
`${TableHelper.getColumnStableId(tableId, dataFieldOP)}`,
|
|
1464
|
+
false,
|
|
1465
|
+
undefined,
|
|
1466
|
+
handlerProvider,
|
|
1467
|
+
true
|
|
1468
|
+
);
|
|
1469
|
+
|
|
1470
|
+
if (connectedFieldsElementIdx < connectedFieldsData.length - 1) {
|
|
1471
|
+
if (tableType === "ResponsiveTable") {
|
|
1472
|
+
return [
|
|
1473
|
+
fieldTemplate,
|
|
1474
|
+
/*Use ObjectStatus in ResponsiveTable: its line box matches cell height,
|
|
1475
|
+
so the delimiter is vertically centered in both display & edit modes.*/
|
|
1476
|
+
<ObjectStatus
|
|
1477
|
+
// NBSP on both sides to keep spacing
|
|
1478
|
+
text={`\u00A0${fieldsDelimiter}\u00A0`}
|
|
1479
|
+
state="None"
|
|
1480
|
+
>
|
|
1481
|
+
{{
|
|
1482
|
+
// Prevent the delimiter from being squeezed to zero width on tight layouts.
|
|
1483
|
+
layoutData: <FlexItemData shrinkFactor={0} />
|
|
1484
|
+
}}
|
|
1485
|
+
</ObjectStatus>
|
|
1486
|
+
];
|
|
1487
|
+
}
|
|
1488
|
+
|
|
1489
|
+
// Grid/Tree tables: Text works fine here (keeps baseline behavior in display, centers in edit).
|
|
1490
|
+
return [
|
|
1491
|
+
fieldTemplate,
|
|
1492
|
+
<Text
|
|
1493
|
+
// NBSP on both sides to keep spacing
|
|
1494
|
+
text={`\u00A0${fieldsDelimiter}\u00A0`}
|
|
1495
|
+
//single line
|
|
1496
|
+
wrapping="false"
|
|
1497
|
+
// actually render the NBSPs
|
|
1498
|
+
renderWhitespace="true"
|
|
1499
|
+
>
|
|
1500
|
+
{{
|
|
1501
|
+
// Avoid squeeze-to-dot effect when space is tight.
|
|
1502
|
+
layoutData: <FlexItemData shrinkFactor={0} />
|
|
1503
|
+
}}
|
|
1504
|
+
</Text>
|
|
1505
|
+
];
|
|
1506
|
+
} else {
|
|
1507
|
+
return [fieldTemplate];
|
|
1508
|
+
}
|
|
1509
|
+
});
|
|
1510
|
+
|
|
1511
|
+
/* Inner container alignment:
|
|
1512
|
+
- ResponsiveTable: always center (better visual consistency)
|
|
1513
|
+
- Grid/Tree: baseline in display, center in edit (mix of Text/Input heights)*/
|
|
1514
|
+
const innerHBox = (
|
|
1515
|
+
<HBox
|
|
1516
|
+
wrap="NoWrap"
|
|
1517
|
+
alignItems={
|
|
1518
|
+
tableType === "ResponsiveTable"
|
|
1519
|
+
? "Center"
|
|
1520
|
+
: compileExpression(ifElse(UI.IsEditable, constant("Center"), constant("Baseline")))
|
|
1521
|
+
}
|
|
1522
|
+
>
|
|
1523
|
+
{{
|
|
1524
|
+
items: items
|
|
1525
|
+
}}
|
|
1526
|
+
</HBox>
|
|
1527
|
+
);
|
|
1528
|
+
|
|
1529
|
+
// Outer wrapper: render a real box, take the row height, and center vertically.
|
|
1530
|
+
// This guarantees vertical centering of the whole connected-fields block within the cell.
|
|
1531
|
+
template = (
|
|
1532
|
+
<HBox
|
|
1533
|
+
wrap="NoWrap"
|
|
1534
|
+
renderType="Div"
|
|
1535
|
+
fitContainer={true}
|
|
1536
|
+
alignItems="Center"
|
|
1537
|
+
visible={column.collectionFieldsHiddenExpression}
|
|
1538
|
+
justifyContent={column.horizontalAlign}
|
|
1539
|
+
>
|
|
1540
|
+
{{
|
|
1541
|
+
items: [innerHBox]
|
|
1542
|
+
}}
|
|
1543
|
+
</HBox>
|
|
1544
|
+
);
|
|
1429
1545
|
} else {
|
|
1430
1546
|
template = getMacroFieldTemplate(
|
|
1431
1547
|
tableId,
|
|
@@ -1499,6 +1615,7 @@ export function getColumnTemplate(
|
|
|
1499
1615
|
const enableAutoColumnWidth = tableProperties.enableAutoColumnWidth ?? tableProperties.tableDefinition.control.enableAutoColumnWidth;
|
|
1500
1616
|
const widthIncludingColumnHeader = tableProperties.tableDefinition.control.widthIncludingColumnHeader;
|
|
1501
1617
|
const tableType = tableProperties.tableDefinition.control.type;
|
|
1618
|
+
const isConnectedField = dataFieldObject.Target?.$AnnotationPath?.includes(UIAnnotationTerms.ConnectedFields);
|
|
1502
1619
|
|
|
1503
1620
|
return (
|
|
1504
1621
|
<Column
|
|
@@ -1538,7 +1655,11 @@ export function getColumnTemplate(
|
|
|
1538
1655
|
header={column.label || column.name}
|
|
1539
1656
|
propertyKey={column.name}
|
|
1540
1657
|
hAlign={column.horizontalAlign || FieldHelper.getColumnAlignment(dataFieldObject, { collection: collection })}
|
|
1541
|
-
headerVisible={
|
|
1658
|
+
headerVisible={
|
|
1659
|
+
isConnectedField
|
|
1660
|
+
? true
|
|
1661
|
+
: TableHelper.setHeaderLabelVisibility(dataFieldObject, dataFieldContext.getObject("Target/$AnnotationPath/Data"))
|
|
1662
|
+
}
|
|
1542
1663
|
tooltip={column.tooltip}
|
|
1543
1664
|
required={tableProperties.readOnly ? undefined : column.required}
|
|
1544
1665
|
>
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/macros/controls/BuildingBlockObjectProperty"], function (ClassSupport, BuildingBlockObjectProperty) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;
|
|
9
|
+
var _exports = {};
|
|
10
|
+
var property = ClassSupport.property;
|
|
11
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
12
|
+
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
13
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
14
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
15
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
16
|
+
function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
|
|
17
|
+
/**
|
|
18
|
+
* Configuration of toolbar separators to be used inside the table toolbar
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
let OverflowGroup = (_dec = defineUI5Class("sap.fe.macros.table.OverflowGroup"), _dec2 = property({
|
|
22
|
+
type: "int",
|
|
23
|
+
required: true
|
|
24
|
+
}), _dec3 = property({
|
|
25
|
+
type: "boolean"
|
|
26
|
+
}), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlockObjectP) {
|
|
27
|
+
function OverflowGroup(settings) {
|
|
28
|
+
var _this;
|
|
29
|
+
_this = _BuildingBlockObjectP.call(this, settings) || this;
|
|
30
|
+
/**
|
|
31
|
+
* Defines the group of the toolbar separator in the overflow toolbar.
|
|
32
|
+
* @public
|
|
33
|
+
*/
|
|
34
|
+
_initializerDefineProperty(_this, "overflowGroup", _descriptor, _this);
|
|
35
|
+
/**
|
|
36
|
+
* Defines if a toolbar separator should be displayed.
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
39
|
+
_initializerDefineProperty(_this, "showSeparator", _descriptor2, _this);
|
|
40
|
+
return _this;
|
|
41
|
+
}
|
|
42
|
+
_exports = OverflowGroup;
|
|
43
|
+
_inheritsLoose(OverflowGroup, _BuildingBlockObjectP);
|
|
44
|
+
return OverflowGroup;
|
|
45
|
+
}(BuildingBlockObjectProperty), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "overflowGroup", [_dec2], {
|
|
46
|
+
configurable: true,
|
|
47
|
+
enumerable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
initializer: null
|
|
50
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "showSeparator", [_dec3], {
|
|
51
|
+
configurable: true,
|
|
52
|
+
enumerable: true,
|
|
53
|
+
writable: true,
|
|
54
|
+
initializer: null
|
|
55
|
+
}), _class2)) || _class);
|
|
56
|
+
_exports = OverflowGroup;
|
|
57
|
+
return _exports;
|
|
58
|
+
}, false);
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPdmVyZmxvd0dyb3VwIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwcm9wZXJ0eSIsInR5cGUiLCJyZXF1aXJlZCIsIl9kZWMzIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrT2JqZWN0UCIsInNldHRpbmdzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJCdWlsZGluZ0Jsb2NrT2JqZWN0UHJvcGVydHkiLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwicHJvdG90eXBlIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk92ZXJmbG93R3JvdXBzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSwgdHlwZSBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9ja09iamVjdFByb3BlcnR5IGZyb20gXCJzYXAvZmUvbWFjcm9zL2NvbnRyb2xzL0J1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eVwiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb2YgdG9vbGJhciBzZXBhcmF0b3JzIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSB0YWJsZSB0b29sYmFyXG4gKiBAcHVibGljXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MudGFibGUuT3ZlcmZsb3dHcm91cFwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgT3ZlcmZsb3dHcm91cCBleHRlbmRzIEJ1aWxkaW5nQmxvY2tPYmplY3RQcm9wZXJ0eSB7XG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSBncm91cCBvZiB0aGUgdG9vbGJhciBzZXBhcmF0b3IgaW4gdGhlIG92ZXJmbG93IHRvb2xiYXIuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiaW50XCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdG92ZXJmbG93R3JvdXAhOiBudW1iZXI7XG5cblx0LyoqXG5cdCAqIERlZmluZXMgaWYgYSB0b29sYmFyIHNlcGFyYXRvciBzaG91bGQgYmUgZGlzcGxheWVkLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRzaG93U2VwYXJhdG9yPzogYm9vbGVhbjtcblxuXHRjb25zdHJ1Y3RvcihzZXR0aW5nczogUHJvcGVydGllc09mPE92ZXJmbG93R3JvdXA+KSB7XG5cdFx0c3VwZXIoc2V0dGluZ3MpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7RUFHQTtBQUNBO0FBQ0E7QUFDQTtFQUhBLElBS3FCQSxhQUFhLElBQUFDLElBQUEsR0FEakNDLGNBQWMsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFBQyxLQUFBLEdBTWxEQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLEtBQUs7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FPekNILFFBQVEsQ0FBQztJQUFFQyxJQUFJLEVBQUU7RUFBVSxDQUFDLENBQUMsRUFBQUosSUFBQSxDQUFBTyxNQUFBLElBQUFDLE9BQUEsMEJBQUFDLHFCQUFBO0lBRzlCLFNBQUFWLGNBQVlXLFFBQXFDLEVBQUU7TUFBQSxJQUFBQyxLQUFBO01BQ2xEQSxLQUFBLEdBQUFGLHFCQUFBLENBQUFHLElBQUEsT0FBTUYsUUFBUSxDQUFDO01BZmhCO0FBQ0Q7QUFDQTtBQUNBO01BSENHLDBCQUFBLENBQUFGLEtBQUEsbUJBQUFHLFdBQUEsRUFBQUgsS0FBQTtNQU9BO0FBQ0Q7QUFDQTtBQUNBO01BSENFLDBCQUFBLENBQUFGLEtBQUEsbUJBQUFJLFlBQUEsRUFBQUosS0FBQTtNQUFBLE9BQUFBLEtBQUE7SUFTQTtJQUFDSyxRQUFBLEdBQUFqQixhQUFBO0lBQUFrQixjQUFBLENBQUFsQixhQUFBLEVBQUFVLHFCQUFBO0lBQUEsT0FBQVYsYUFBQTtFQUFBLEVBakJ5Q21CLDJCQUEyQixHQUFBSixXQUFBLEdBQUFLLHlCQUFBLENBQUFYLE9BQUEsQ0FBQVksU0FBQSxvQkFBQWxCLEtBQUE7SUFBQW1CLFlBQUE7SUFBQUMsVUFBQTtJQUFBQyxRQUFBO0lBQUFDLFdBQUE7RUFBQSxJQUFBVCxZQUFBLEdBQUFJLHlCQUFBLENBQUFYLE9BQUEsQ0FBQVksU0FBQSxvQkFBQWQsS0FBQTtJQUFBZSxZQUFBO0lBQUFDLFVBQUE7SUFBQUMsUUFBQTtJQUFBQyxXQUFBO0VBQUEsSUFBQWhCLE9BQUEsTUFBQUQsTUFBQTtFQUFBUyxRQUFBLEdBQUFqQixhQUFBO0VBQUEsT0FBQWlCLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { defineUI5Class, property, type PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
2
|
+
import BuildingBlockObjectProperty from "sap/fe/macros/controls/BuildingBlockObjectProperty";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Configuration of toolbar separators to be used inside the table toolbar
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
@defineUI5Class("sap.fe.macros.table.OverflowGroup")
|
|
9
|
+
export default class OverflowGroup extends BuildingBlockObjectProperty {
|
|
10
|
+
/**
|
|
11
|
+
* Defines the group of the toolbar separator in the overflow toolbar.
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
@property({ type: "int", required: true })
|
|
15
|
+
overflowGroup!: number;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Defines if a toolbar separator should be displayed.
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
@property({ type: "boolean" })
|
|
22
|
+
showSeparator?: boolean;
|
|
23
|
+
|
|
24
|
+
constructor(settings: PropertiesOf<OverflowGroup>) {
|
|
25
|
+
super(settings);
|
|
26
|
+
}
|
|
27
|
+
}
|