@sapui5/sap.fe.core 1.121.2 → 1.123.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/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +2 -2
- package/src/sap/fe/core/ActionRuntime.ts +1 -2
- package/src/sap/fe/core/CommonUtils.js +14 -171
- package/src/sap/fe/core/CommonUtils.ts +15 -221
- package/src/sap/fe/core/PageController.js +13 -1
- package/src/sap/fe/core/PageController.ts +16 -0
- package/src/sap/fe/core/TemplateComponent.js +6 -1
- package/src/sap/fe/core/TemplateComponent.ts +8 -0
- package/src/sap/fe/core/UIProvider.js +23 -0
- package/src/sap/fe/core/UIProvider.ts +38 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +97 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.ts +120 -50
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +6 -3
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +12 -18
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +2 -2
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -3
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.js +1 -1
- package/src/sap/fe/core/buildingBlocks/templating/RuntimeBuildingBlockFragment.ts +1 -0
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +42 -1
- package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +40 -0
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +5 -2
- package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +5 -3
- package/src/sap/fe/core/controllerextensions/EditFlow.js +151 -60
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +165 -68
- package/src/sap/fe/core/controllerextensions/HookSupport.js +32 -14
- package/src/sap/fe/core/controllerextensions/HookSupport.ts +35 -14
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +5 -17
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +0 -12
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +6 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +15 -10
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +108 -287
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +117 -309
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +2 -2
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +6 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +1 -1
- package/src/sap/fe/core/controllerextensions/PageReady.js +6 -6
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -4
- package/src/sap/fe/core/controllerextensions/Paginator.js +17 -110
- package/src/sap/fe/core/controllerextensions/Paginator.ts +13 -130
- package/src/sap/fe/core/controllerextensions/Placeholder.js +3 -3
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +1 -2
- package/src/sap/fe/core/controllerextensions/Recommendations.js +36 -31
- package/src/sap/fe/core/controllerextensions/Recommendations.ts +32 -37
- package/src/sap/fe/core/controllerextensions/Share.js +7 -7
- package/src/sap/fe/core/controllerextensions/Share.ts +6 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.js +52 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -4
- package/src/sap/fe/core/controllerextensions/ViewState.js +32 -46
- package/src/sap/fe/core/controllerextensions/ViewState.ts +24 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.js +42 -31
- package/src/sap/fe/core/controllerextensions/dialog/OperationsDialog.block.tsx +6 -0
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +168 -276
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +182 -310
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +3 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +2 -2
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +4 -3
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +3 -2
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +74 -52
- package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +95 -55
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +3 -17
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +10 -23
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.js +3 -3
- package/src/sap/fe/core/controllerextensions/recommendations/Telemetry.ts +2 -2
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.js +225 -0
- package/src/sap/fe/core/controllerextensions/routing/ContextPathHelper.ts +241 -0
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.js +69 -48
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.block.tsx +56 -33
- package/src/sap/fe/core/controls/FormElementWrapper.js +8 -11
- package/src/sap/fe/core/controls/FormElementWrapper.ts +9 -0
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +6 -14
- package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +12 -23
- package/src/sap/fe/core/converters/ConverterContext.js +17 -9
- package/src/sap/fe/core/converters/ConverterContext.ts +55 -41
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +19 -5
- package/src/sap/fe/core/converters/ManifestWrapper.js +14 -4
- package/src/sap/fe/core/converters/ManifestWrapper.ts +21 -10
- package/src/sap/fe/core/converters/MetaModelConverter.js +402 -383
- package/src/sap/fe/core/converters/MetaModelConverter.ts +538 -338
- package/src/sap/fe/core/converters/TemplateConverter.js +4 -2
- package/src/sap/fe/core/converters/TemplateConverter.ts +18 -13
- package/src/sap/fe/core/converters/annotations/DataField.js +30 -28
- package/src/sap/fe/core/converters/annotations/DataField.ts +58 -35
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +24 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +5 -4
- package/src/sap/fe/core/converters/controls/Common/Action.ts +34 -28
- package/src/sap/fe/core/converters/controls/Common/Chart.js +37 -33
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +64 -46
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +31 -15
- package/src/sap/fe/core/converters/controls/Common/Form.js +6 -4
- package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.js +5 -3
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +17 -11
- package/src/sap/fe/core/converters/controls/Common/Table.js +197 -101
- package/src/sap/fe/core/converters/controls/Common/Table.ts +393 -182
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +4 -5
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +38 -27
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +41 -11
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +112 -45
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +7 -7
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +18 -12
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +5 -4
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +19 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +64 -63
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +109 -100
- package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -11
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +35 -30
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +12 -9
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +6 -6
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.js +3 -3
- package/src/sap/fe/core/converters/helpers/InsightsHelpers.ts +11 -6
- package/src/sap/fe/core/converters/helpers/Key.js +2 -2
- package/src/sap/fe/core/converters/helpers/Key.ts +4 -4
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -2
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +21 -19
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +43 -31
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +16 -12
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +8 -3
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +41 -21
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +5 -3
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +24 -19
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +3 -2
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +2 -1
- package/src/sap/fe/core/filter/DraftEditState.fragment.xml +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +4 -6
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +5 -4
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -13
- package/src/sap/fe/core/formatters/FPMFormatter.ts +11 -10
- package/src/sap/fe/core/formatters/FiscalFormat.js +1 -1
- package/src/sap/fe/core/formatters/FiscalFormat.ts +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +4 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/StandardFormatter.js +4 -7
- package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/ValueFormatter.js +35 -6
- package/src/sap/fe/core/formatters/ValueFormatter.ts +31 -3
- package/src/sap/fe/core/fpm/manifest.json +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +54 -33
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +62 -41
- package/src/sap/fe/core/helpers/BindingToolkit.js +17 -3
- package/src/sap/fe/core/helpers/BindingToolkit.ts +28 -6
- package/src/sap/fe/core/helpers/ClassSupport.js +32 -13
- package/src/sap/fe/core/helpers/ClassSupport.ts +35 -15
- package/src/sap/fe/core/helpers/DeleteHelper.js +71 -61
- package/src/sap/fe/core/helpers/DeleteHelper.ts +125 -103
- package/src/sap/fe/core/helpers/DraftEditState.js +5 -3
- package/src/sap/fe/core/helpers/DraftEditState.ts +3 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +43 -46
- package/src/sap/fe/core/helpers/FPMHelper.ts +50 -56
- package/src/sap/fe/core/helpers/MetaModelFunction.js +77 -53
- package/src/sap/fe/core/helpers/MetaModelFunction.ts +78 -57
- package/src/sap/fe/core/helpers/ModelHelper.js +10 -4
- package/src/sap/fe/core/helpers/ModelHelper.ts +12 -6
- package/src/sap/fe/core/helpers/PasteHelper.js +194 -7
- package/src/sap/fe/core/helpers/PasteHelper.ts +265 -13
- package/src/sap/fe/core/helpers/PromiseKeeper.js +66 -0
- package/src/sap/fe/core/helpers/PromiseKeeper.ts +56 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +30 -19
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +34 -22
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +7 -2
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.js +26 -52
- package/src/sap/fe/core/helpers/StandardRecommendationHelper.ts +37 -63
- package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
- package/src/sap/fe/core/helpers/TitleHelper.ts +17 -14
- package/src/sap/fe/core/helpers/TypeGuards.js +27 -3
- package/src/sap/fe/core/helpers/TypeGuards.ts +37 -7
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +48 -8
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +40 -9
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +5 -2
- package/src/sap/fe/core/messagebundle_da.properties +1 -1
- package/src/sap/fe/core/messagebundle_en.properties +267 -2
- package/src/sap/fe/core/messagebundle_sl.properties +1 -1
- package/src/sap/fe/core/operationsHelper.js +2 -1
- package/src/sap/fe/core/operationsHelper.ts +1 -0
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +27 -14
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +27 -14
- package/src/sap/fe/core/services/ShellServicesFactory.js +49 -12
- package/src/sap/fe/core/services/ShellServicesFactory.ts +62 -13
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +156 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +218 -100
- package/src/sap/fe/core/services/TelemetryServiceFactory.js +3 -3
- package/src/sap/fe/core/services/TelemetryServiceFactory.ts +6 -6
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.js +3 -2
- package/src/sap/fe/core/services/ValueHelpHistoryServiceFactory.ts +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +1 -1
- package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/view/TemplatingErrorPage.view.xml +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +6 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +13 -12
- package/src/sap/fe/core/templating/CriticalityFormatters.js +2 -2
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +37 -14
- package/src/sap/fe/core/templating/DataFieldFormatters.js +12 -11
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +35 -24
- package/src/sap/fe/core/templating/DataModelPathHelper.js +22 -18
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +61 -51
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +8 -3
- package/src/sap/fe/core/templating/EntityTypeHelper.js +1 -1
- package/src/sap/fe/core/templating/EntityTypeHelper.ts +1 -1
- package/src/sap/fe/core/templating/FieldControlHelper.js +3 -3
- package/src/sap/fe/core/templating/FieldControlHelper.ts +27 -8
- package/src/sap/fe/core/templating/FilterHelper.js +13 -10
- package/src/sap/fe/core/templating/FilterHelper.ts +80 -46
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +2 -2
- package/src/sap/fe/core/templating/PropertyFormatters.js +6 -8
- package/src/sap/fe/core/templating/PropertyFormatters.ts +11 -11
- package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
- package/src/sap/fe/core/templating/PropertyHelper.ts +4 -4
- package/src/sap/fe/core/templating/SemanticObjectHelper.js +157 -13
- package/src/sap/fe/core/templating/SemanticObjectHelper.ts +182 -16
- package/src/sap/fe/core/templating/UIFormatters.js +23 -22
- package/src/sap/fe/core/templating/UIFormatters.ts +94 -66
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +1 -1
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +2 -2
- package/src/sap/fe/core/type/EDM.js +1 -1
- package/src/sap/fe/core/type/EDM.ts +2 -2
- package/src/sap/fe/core/type/Email.js +1 -1
- package/src/sap/fe/core/type/Email.ts +1 -1
- package/src/sap/fe/core/type/FiscalDate.js +2 -2
- package/src/sap/fe/core/type/FiscalDate.ts +2 -2
|
@@ -11,9 +11,11 @@ import type {
|
|
|
11
11
|
DataFieldTypes,
|
|
12
12
|
DataPoint,
|
|
13
13
|
DataPointType,
|
|
14
|
+
DataPointTypeTypes,
|
|
14
15
|
FieldGroup
|
|
15
16
|
} from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
16
17
|
import { UIAnnotationTypes, VisualizationType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
18
|
+
import type { PageContextPathTarget } from "sap/fe/core/converters/TemplateConverter";
|
|
17
19
|
import type { ColumnExportSettings, TableType } from "sap/fe/core/converters/controls/Common/Table";
|
|
18
20
|
import { isAnnotationOfType, isPathAnnotationExpression, isProperty } from "sap/fe/core/helpers/TypeGuards";
|
|
19
21
|
import { getDisplayMode } from "sap/fe/core/templating/DisplayModeFormatter";
|
|
@@ -26,14 +28,14 @@ import {
|
|
|
26
28
|
hasStaticPercentUnit
|
|
27
29
|
} from "sap/fe/core/templating/PropertyHelper";
|
|
28
30
|
import { enhanceDataModelPath, getContextRelativeTargetObjectPath, type DataModelObjectPath } from "../../templating/DataModelPathHelper";
|
|
31
|
+
import type { DisplayMode } from "../../templating/UIFormatters";
|
|
29
32
|
import type ConverterContext from "../ConverterContext";
|
|
30
33
|
import { isReferencePropertyStaticallyHidden } from "../helpers/DataFieldHelper";
|
|
31
34
|
|
|
32
35
|
export type ComplexPropertyInfo = {
|
|
33
|
-
properties: Record<string, Property>;
|
|
36
|
+
properties: Record<string, { annotationProperty: Property; displayModeOfPropertyUsedAsDescription?: DisplayMode }>;
|
|
34
37
|
additionalProperties: Record<string, Property>;
|
|
35
38
|
exportSettings: ColumnExportSettings;
|
|
36
|
-
textOnlyPropertiesFromTextAnnotation: string[];
|
|
37
39
|
};
|
|
38
40
|
|
|
39
41
|
/**
|
|
@@ -54,7 +56,9 @@ export function isDataFieldForActionAbstract(dataField: DataFieldAbstractTypes):
|
|
|
54
56
|
* @param dataField DataField to be evaluated
|
|
55
57
|
* @returns Validates that dataField is a DataFieldForAnnotation
|
|
56
58
|
*/
|
|
57
|
-
export function isDataFieldForAnnotation(
|
|
59
|
+
export function isDataFieldForAnnotation(
|
|
60
|
+
dataField: DataFieldAbstractTypes | DataPointTypeTypes | undefined
|
|
61
|
+
): dataField is DataFieldForAnnotation {
|
|
58
62
|
return dataField?.$Type === UIAnnotationTypes.DataFieldForAnnotation;
|
|
59
63
|
}
|
|
60
64
|
|
|
@@ -123,7 +127,9 @@ export function hasDataPointTarget(dataFieldForAnnotation: DataFieldForAnnotatio
|
|
|
123
127
|
* @param dataModelObjectPath DataModelObjectPath
|
|
124
128
|
* @returns `Dialog` | `None` if a dialog is needed
|
|
125
129
|
*/
|
|
126
|
-
export function isDataModelObjectPathForActionWithDialog(
|
|
130
|
+
export function isDataModelObjectPathForActionWithDialog(
|
|
131
|
+
dataModelObjectPath: DataModelObjectPath<DataFieldAbstractTypes>
|
|
132
|
+
): "Dialog" | "None" {
|
|
127
133
|
const target = dataModelObjectPath.targetObject;
|
|
128
134
|
return isActionWithDialog(isDataFieldForAction(target) ? target : undefined);
|
|
129
135
|
}
|
|
@@ -211,7 +217,10 @@ export const isAProgressTypeFromDataPoint = function (property: Property | DataF
|
|
|
211
217
|
return ((property as DataFieldForAnnotation).Target?.$target as DataPointType)?.Visualization === "UI.VisualizationType/Progress";
|
|
212
218
|
};
|
|
213
219
|
|
|
214
|
-
export function getSemanticObjectPath(
|
|
220
|
+
export function getSemanticObjectPath(
|
|
221
|
+
converterContext: ConverterContext<PageContextPathTarget>,
|
|
222
|
+
object: DataFieldAbstractTypes | Property
|
|
223
|
+
): string | undefined {
|
|
215
224
|
if (typeof object === "object") {
|
|
216
225
|
if (isDataFieldTypes(object) && object.Value?.$target) {
|
|
217
226
|
const property = object.Value?.$target;
|
|
@@ -280,11 +289,20 @@ function _collectAdditionalPropertiesForAnalyticalTable(
|
|
|
280
289
|
* @param relatedProperties
|
|
281
290
|
* @param key The property path
|
|
282
291
|
* @param value The properties object containing value property, description property...
|
|
292
|
+
* @param displayModeOfPropertyUsedAsDescription The display mode if the property is referenced as description on text arrangement
|
|
283
293
|
* @returns Index at which the property is available
|
|
284
294
|
*/
|
|
285
|
-
function
|
|
295
|
+
function _setRelatedPropertiesAndGetIndex(
|
|
296
|
+
relatedProperties: ComplexPropertyInfo,
|
|
297
|
+
key: string,
|
|
298
|
+
value: Property,
|
|
299
|
+
displayModeOfPropertyUsedAsDescription?: DisplayMode
|
|
300
|
+
): number {
|
|
286
301
|
if (!relatedProperties.properties.hasOwnProperty(key)) {
|
|
287
|
-
relatedProperties.properties[key] = value;
|
|
302
|
+
relatedProperties.properties[key] = { annotationProperty: value };
|
|
303
|
+
if (displayModeOfPropertyUsedAsDescription) {
|
|
304
|
+
relatedProperties.properties[key].displayModeOfPropertyUsedAsDescription = displayModeOfPropertyUsedAsDescription;
|
|
305
|
+
}
|
|
288
306
|
}
|
|
289
307
|
return Object.keys(relatedProperties.properties).indexOf(key);
|
|
290
308
|
}
|
|
@@ -323,8 +341,7 @@ export function collectRelatedProperties(
|
|
|
323
341
|
relatedProperties: ComplexPropertyInfo = {
|
|
324
342
|
properties: {},
|
|
325
343
|
additionalProperties: {},
|
|
326
|
-
exportSettings: {}
|
|
327
|
-
textOnlyPropertiesFromTextAnnotation: []
|
|
344
|
+
exportSettings: {}
|
|
328
345
|
},
|
|
329
346
|
addUnitInTemplate = false,
|
|
330
347
|
isAnnotatedAsHidden = false
|
|
@@ -334,7 +351,7 @@ export function collectRelatedProperties(
|
|
|
334
351
|
let currencyOrUoMIndex: number;
|
|
335
352
|
if (isAnnotatedAsHidden) {
|
|
336
353
|
// Collect underlying property
|
|
337
|
-
valueIndex =
|
|
354
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
338
355
|
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
339
356
|
return relatedProperties;
|
|
340
357
|
}
|
|
@@ -346,8 +363,8 @@ export function collectRelatedProperties(
|
|
|
346
363
|
|
|
347
364
|
// get the DataModelObjectPath for the column
|
|
348
365
|
const dataModelObjectPath = converterContext.getConverterContextFor(converterContext.getContextPath()).getDataModelObjectPath();
|
|
349
|
-
const propertyDataModelObjectPath = enhanceDataModelPath(dataModelObjectPath, path);
|
|
350
|
-
const textPropertyDataModelObjectPath = enhanceDataModelPath(propertyDataModelObjectPath, textPropertyPath);
|
|
366
|
+
const propertyDataModelObjectPath = enhanceDataModelPath<Property>(dataModelObjectPath, path);
|
|
367
|
+
const textPropertyDataModelObjectPath = enhanceDataModelPath<Property>(propertyDataModelObjectPath, textPropertyPath);
|
|
351
368
|
const textRelativePath = getContextRelativeTargetObjectPath(textPropertyDataModelObjectPath);
|
|
352
369
|
|
|
353
370
|
if (relatedProperties.exportSettings?.template) {
|
|
@@ -361,43 +378,50 @@ export function collectRelatedProperties(
|
|
|
361
378
|
const displayMode = getDisplayMode(property, propertyDataModelObjectPath);
|
|
362
379
|
let descriptionIndex: number;
|
|
363
380
|
switch (displayMode) {
|
|
364
|
-
case "Value":
|
|
365
|
-
valueIndex = _setPropertyInRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
366
|
-
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
367
|
-
break;
|
|
368
|
-
|
|
369
381
|
case "Description":
|
|
370
|
-
descriptionIndex =
|
|
382
|
+
descriptionIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, textRelativePath, textProperty, "Description");
|
|
371
383
|
_appendTemplate(relatedProperties, `{${descriptionIndex}}`);
|
|
372
|
-
relatedProperties.textOnlyPropertiesFromTextAnnotation.push(textRelativePath);
|
|
373
384
|
break;
|
|
374
385
|
|
|
375
386
|
case "ValueDescription":
|
|
376
|
-
valueIndex =
|
|
377
|
-
descriptionIndex =
|
|
387
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
388
|
+
descriptionIndex = _setRelatedPropertiesAndGetIndex(
|
|
389
|
+
relatedProperties,
|
|
390
|
+
textRelativePath,
|
|
391
|
+
textProperty,
|
|
392
|
+
"ValueDescription"
|
|
393
|
+
);
|
|
378
394
|
_appendTemplate(relatedProperties, `{${valueIndex}} ({${descriptionIndex}})`);
|
|
379
395
|
break;
|
|
380
396
|
|
|
381
397
|
case "DescriptionValue":
|
|
382
|
-
valueIndex =
|
|
383
|
-
descriptionIndex =
|
|
398
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
399
|
+
descriptionIndex = _setRelatedPropertiesAndGetIndex(
|
|
400
|
+
relatedProperties,
|
|
401
|
+
textRelativePath,
|
|
402
|
+
textProperty,
|
|
403
|
+
"DescriptionValue"
|
|
404
|
+
);
|
|
384
405
|
_appendTemplate(relatedProperties, `{${descriptionIndex}} ({${valueIndex}})`);
|
|
385
406
|
break;
|
|
386
|
-
|
|
407
|
+
default:
|
|
408
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
409
|
+
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
410
|
+
break;
|
|
387
411
|
}
|
|
388
412
|
} else {
|
|
389
413
|
// Check for field containing Currency Or Unit Properties or Timezone
|
|
390
414
|
const currencyProperty = getAssociatedCurrencyProperty(property);
|
|
391
415
|
const unitProperty = getAssociatedUnitProperty(property);
|
|
392
|
-
const currencyOrUoMProperty = currencyProperty
|
|
416
|
+
const currencyOrUoMProperty = currencyProperty ?? unitProperty;
|
|
393
417
|
const currencyOrUnitAnnotation: PathAnnotationExpression<string> =
|
|
394
418
|
property?.annotations?.Measures?.ISOCurrency || property?.annotations?.Measures?.Unit;
|
|
395
419
|
const timezoneProperty = getAssociatedTimezoneProperty(property);
|
|
396
420
|
const timezoneAnnotation = property?.annotations?.Common?.Timezone;
|
|
397
421
|
|
|
398
422
|
if (currencyOrUoMProperty) {
|
|
399
|
-
valueIndex =
|
|
400
|
-
currencyOrUoMIndex =
|
|
423
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
424
|
+
currencyOrUoMIndex = _setRelatedPropertiesAndGetIndex(
|
|
401
425
|
relatedProperties,
|
|
402
426
|
navigationPathPrefix + currencyOrUnitAnnotation.path,
|
|
403
427
|
currencyOrUnitAnnotation.$target!
|
|
@@ -420,7 +444,7 @@ export function collectRelatedProperties(
|
|
|
420
444
|
} else if (property.$Type === CommunicationAnnotationTypes.ContactType) {
|
|
421
445
|
const contactProperty = property.fn?.$target;
|
|
422
446
|
const contactPropertyPath = property.fn?.path;
|
|
423
|
-
valueIndex =
|
|
447
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(
|
|
424
448
|
relatedProperties,
|
|
425
449
|
navigationPathPrefix ? navigationPathPrefix + contactPropertyPath : contactPropertyPath,
|
|
426
450
|
contactProperty
|
|
@@ -428,7 +452,7 @@ export function collectRelatedProperties(
|
|
|
428
452
|
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
429
453
|
} else if (!ignoreSelf) {
|
|
430
454
|
// Collect underlying property
|
|
431
|
-
valueIndex =
|
|
455
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
432
456
|
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
433
457
|
if (currencyOrUnitAnnotation) {
|
|
434
458
|
relatedProperties.exportSettings.unit = `${currencyOrUnitAnnotation}`; // Hard-coded currency/unit
|
|
@@ -445,7 +469,7 @@ export function collectRelatedProperties(
|
|
|
445
469
|
if (Object.keys(relatedProperties.additionalProperties).length > 0 && Object.keys(relatedProperties.properties).length === 0) {
|
|
446
470
|
// Collect underlying property if not collected already.
|
|
447
471
|
// This is to ensure that additionalProperties are made available only to complex property infos.
|
|
448
|
-
valueIndex =
|
|
472
|
+
valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
449
473
|
_appendTemplate(relatedProperties, `{${valueIndex}}`);
|
|
450
474
|
}
|
|
451
475
|
}
|
|
@@ -482,7 +506,7 @@ function collectDataPointProperties(property: PrimitiveType, relatedProperties:
|
|
|
482
506
|
const navigationPathPrefix = _getNavigationPathPrefix(path);
|
|
483
507
|
// DataPoint use-case using DataFieldDefault.
|
|
484
508
|
const dataPointDefaultProperty = property.annotations?.UI?.DataFieldDefault;
|
|
485
|
-
const valueIndex =
|
|
509
|
+
const valueIndex = _setRelatedPropertiesAndGetIndex(
|
|
486
510
|
relatedProperties,
|
|
487
511
|
navigationPathPrefix ? navigationPathPrefix + path : path,
|
|
488
512
|
dataPointDefaultProperty ? property : dataPointProperty
|
|
@@ -495,7 +519,7 @@ function collectDataPointProperties(property: PrimitiveType, relatedProperties:
|
|
|
495
519
|
if (isPathAnnotationExpression(targetValue)) {
|
|
496
520
|
if (targetValue.$target) {
|
|
497
521
|
//in case it's a dynamic targetValue
|
|
498
|
-
const dataPointIndex =
|
|
522
|
+
const dataPointIndex = _setRelatedPropertiesAndGetIndex(
|
|
499
523
|
relatedProperties,
|
|
500
524
|
navigationPathPrefix ? navigationPathPrefix + targetValue.$target.name : targetValue.$target.name,
|
|
501
525
|
targetValue.$target
|
|
@@ -528,9 +552,9 @@ function collectTimezoneProperties(
|
|
|
528
552
|
): void {
|
|
529
553
|
const timezoneAnnotation = property.annotations.Common.Timezone;
|
|
530
554
|
const navigationPathPrefix = _getNavigationPathPrefix(path);
|
|
531
|
-
const valueIndex =
|
|
555
|
+
const valueIndex = _setRelatedPropertiesAndGetIndex(relatedProperties, path, property);
|
|
532
556
|
|
|
533
|
-
const timezoneOrUoMIndex =
|
|
557
|
+
const timezoneOrUoMIndex = _setRelatedPropertiesAndGetIndex(
|
|
534
558
|
relatedProperties,
|
|
535
559
|
navigationPathPrefix + timezoneAnnotation.path,
|
|
536
560
|
timezoneAnnotation.$target
|
|
@@ -560,7 +584,6 @@ export function collectRelatedPropertiesRecursively(
|
|
|
560
584
|
relatedProperties: ComplexPropertyInfo = {
|
|
561
585
|
properties: {},
|
|
562
586
|
additionalProperties: {},
|
|
563
|
-
textOnlyPropertiesFromTextAnnotation: [],
|
|
564
587
|
exportSettings: {}
|
|
565
588
|
},
|
|
566
589
|
isEmbedded = false
|