@sapui5/sap.fe.core 1.102.0 → 1.103.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 +5 -5
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +62 -26
- package/src/sap/fe/core/AppComponent.ts +56 -40
- package/src/sap/fe/core/AppStateHandler.js +10 -10
- package/src/sap/fe/core/AppStateHandler.ts +9 -9
- package/src/sap/fe/core/BaseController.js +11 -9
- package/src/sap/fe/core/BaseController.ts +15 -13
- package/src/sap/fe/core/CommonUtils.js +236 -109
- package/src/sap/fe/core/CommonUtils.ts +252 -136
- package/src/sap/fe/core/ExtensionAPI.js +24 -27
- package/src/sap/fe/core/ExtensionAPI.ts +36 -38
- package/src/sap/fe/core/PageController.js +4 -4
- package/src/sap/fe/core/PageController.ts +4 -5
- package/src/sap/fe/core/TemplateComponent.js +1 -1
- package/src/sap/fe/core/TemplateComponent.ts +6 -6
- package/src/sap/fe/core/TemplateModel.js +1 -1
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +8 -8
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
- package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
- package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
- package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
- package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
- package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
- package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/Share.js +22 -22
- package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
- package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
- package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
- package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
- package/src/sap/fe/core/controls/Any.js +9 -5
- package/src/sap/fe/core/controls/Any.ts +10 -4
- package/src/sap/fe/core/controls/CommandExecution.js +11 -25
- package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
- package/src/sap/fe/core/controls/FileWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
- package/src/sap/fe/core/controls/FilterBar.js +6 -2
- package/src/sap/fe/core/controls/FilterBar.ts +13 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
- package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
- package/src/sap/fe/core/converters/ConverterContext.js +26 -33
- package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
- package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
- package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
- package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
- package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
- package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
- package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
- package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
- package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
- package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
- package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
- package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
- package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
- package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
- package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
- package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
- package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
- package/src/sap/fe/core/converters/helpers/ID.js +46 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
- package/src/sap/fe/core/converters/helpers/Key.js +7 -7
- package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
- package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
- package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
- package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
- package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
- package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
- package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
- package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
- package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
- package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
- package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
- package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
- package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
- package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -6
- package/src/sap/fe/core/helpers/EditState.ts +5 -10
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
- package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
- package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
- package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
- package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
- package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
- package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
- package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
- package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
- package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
- package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
- package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
- package/src/sap/fe/core/library.js +42 -3
- package/src/sap/fe/core/library.ts +38 -0
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
- package/src/sap/fe/core/messagebundle.properties +49 -35
- package/src/sap/fe/core/messagebundle_ar.properties +13 -5
- package/src/sap/fe/core/messagebundle_bg.properties +13 -5
- package/src/sap/fe/core/messagebundle_ca.properties +13 -5
- package/src/sap/fe/core/messagebundle_cs.properties +13 -5
- package/src/sap/fe/core/messagebundle_cy.properties +14 -6
- package/src/sap/fe/core/messagebundle_da.properties +13 -5
- package/src/sap/fe/core/messagebundle_de.properties +15 -7
- package/src/sap/fe/core/messagebundle_el.properties +14 -6
- package/src/sap/fe/core/messagebundle_en.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
- package/src/sap/fe/core/messagebundle_es.properties +13 -5
- package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
- package/src/sap/fe/core/messagebundle_et.properties +13 -5
- package/src/sap/fe/core/messagebundle_fi.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr.properties +14 -6
- package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
- package/src/sap/fe/core/messagebundle_hi.properties +14 -6
- package/src/sap/fe/core/messagebundle_hr.properties +14 -6
- package/src/sap/fe/core/messagebundle_hu.properties +13 -5
- package/src/sap/fe/core/messagebundle_id.properties +13 -5
- package/src/sap/fe/core/messagebundle_it.properties +33 -25
- package/src/sap/fe/core/messagebundle_iw.properties +13 -5
- package/src/sap/fe/core/messagebundle_ja.properties +14 -6
- package/src/sap/fe/core/messagebundle_kk.properties +13 -5
- package/src/sap/fe/core/messagebundle_ko.properties +13 -5
- package/src/sap/fe/core/messagebundle_lt.properties +13 -5
- package/src/sap/fe/core/messagebundle_lv.properties +14 -6
- package/src/sap/fe/core/messagebundle_ms.properties +13 -5
- package/src/sap/fe/core/messagebundle_nl.properties +13 -5
- package/src/sap/fe/core/messagebundle_no.properties +13 -5
- package/src/sap/fe/core/messagebundle_pl.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt.properties +13 -5
- package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
- package/src/sap/fe/core/messagebundle_ro.properties +13 -5
- package/src/sap/fe/core/messagebundle_ru.properties +13 -5
- package/src/sap/fe/core/messagebundle_sh.properties +13 -5
- package/src/sap/fe/core/messagebundle_sk.properties +13 -5
- package/src/sap/fe/core/messagebundle_sl.properties +17 -9
- package/src/sap/fe/core/messagebundle_sv.properties +14 -6
- package/src/sap/fe/core/messagebundle_th.properties +13 -5
- package/src/sap/fe/core/messagebundle_tr.properties +13 -5
- package/src/sap/fe/core/messagebundle_uk.properties +13 -5
- package/src/sap/fe/core/messagebundle_vi.properties +13 -5
- package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
- package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
- package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
- package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
- package/src/sap/fe/core/support/CommonHelper.js +3 -2
- package/src/sap/fe/core/support/CommonHelper.ts +9 -13
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/Diagnostics.ts +5 -5
- package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
- package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
- package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
- package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
- package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
- package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
- package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
- package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
- package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
- package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
- package/src/sap/fe/core/templating/FilterHelper.js +10 -9
- package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
- package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
- package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
- package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
- package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
- package/src/sap/fe/core/templating/UIFormatters.js +148 -93
- package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
- package/src/sap/fe/core/type/Email.js +2 -2
- package/src/sap/fe/core/type/Email.ts +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
|
@@ -1,13 +1,23 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import type {
|
|
2
|
+
Action,
|
|
3
|
+
ComplexType,
|
|
4
|
+
ConvertedMetadata,
|
|
5
|
+
EntityType,
|
|
6
|
+
NavigationProperty,
|
|
7
|
+
NavigationPropertyPath,
|
|
8
|
+
Property,
|
|
9
|
+
PropertyPath
|
|
10
|
+
} from "@sap-ux/vocabularies-types";
|
|
11
|
+
import type { QualifiedName } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
12
|
+
import { CommonAnnotationTypes } from "@sap-ux/vocabularies-types/vocabularies/Common";
|
|
9
13
|
import Log from "sap/base/Log";
|
|
10
|
-
import {
|
|
14
|
+
import type { EnvironmentCapabilities } from "sap/fe/core/converters/MetaModelConverter";
|
|
15
|
+
import { convertTypes } from "sap/fe/core/converters/MetaModelConverter";
|
|
16
|
+
import Service from "sap/ui/core/service/Service";
|
|
17
|
+
import ServiceFactory from "sap/ui/core/service/ServiceFactory";
|
|
18
|
+
import type Context from "sap/ui/model/odata/v4/Context";
|
|
19
|
+
import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
20
|
+
import type { ServiceContext } from "types/extension_types";
|
|
11
21
|
|
|
12
22
|
type SideEffectsSettings = {};
|
|
13
23
|
|
|
@@ -103,14 +113,14 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
103
113
|
*
|
|
104
114
|
* @private
|
|
105
115
|
* @ui5-restricted
|
|
106
|
-
* @param
|
|
107
|
-
* @param
|
|
116
|
+
* @param sEntityType Name of the entity type
|
|
117
|
+
* @param oSideEffect SideEffects definition
|
|
108
118
|
*/
|
|
109
119
|
public addControlSideEffects(sEntityType: string, oSideEffect: Omit<ControlSideEffectsType, "fullyQualifiedName">): void {
|
|
110
120
|
if (oSideEffect.sourceControlId) {
|
|
111
121
|
const oControlSideEffect: ControlSideEffectsType = {
|
|
112
122
|
...oSideEffect,
|
|
113
|
-
fullyQualifiedName: sEntityType
|
|
123
|
+
fullyQualifiedName: `${sEntityType}/SideEffectsForControl/${oSideEffect.sourceControlId}`
|
|
114
124
|
};
|
|
115
125
|
const mEntityControlSideEffects = this._oSideEffectsType.control[sEntityType] || {};
|
|
116
126
|
mEntityControlSideEffects[oControlSideEffect.sourceControlId] = oControlSideEffect;
|
|
@@ -123,13 +133,13 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
123
133
|
*
|
|
124
134
|
* @private
|
|
125
135
|
* @ui5-restricted
|
|
126
|
-
* @param
|
|
127
|
-
* @param
|
|
128
|
-
* @param
|
|
129
|
-
* @returns
|
|
136
|
+
* @param sTriggerAction Name of the action
|
|
137
|
+
* @param oContext Context
|
|
138
|
+
* @param sGroupId The group ID to be used for the request
|
|
139
|
+
* @returns A promise that is resolved without data or with a return value context when the action call succeeded
|
|
130
140
|
*/
|
|
131
141
|
public executeAction(sTriggerAction: string, oContext: Context, sGroupId?: string): Promise<any> {
|
|
132
|
-
const oTriggerAction: any = oContext.getModel().bindContext(sTriggerAction
|
|
142
|
+
const oTriggerAction: any = oContext.getModel().bindContext(`${sTriggerAction}(...)`, oContext);
|
|
133
143
|
return oTriggerAction.execute(sGroupId || (oContext as any).getBinding().getUpdateGroupId());
|
|
134
144
|
}
|
|
135
145
|
|
|
@@ -138,9 +148,9 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
138
148
|
*
|
|
139
149
|
* @private
|
|
140
150
|
* @ui5-restricted
|
|
141
|
-
* @returns
|
|
151
|
+
* @returns Converted OData metaModel
|
|
142
152
|
*/
|
|
143
|
-
public getConvertedMetaModel():
|
|
153
|
+
public getConvertedMetaModel(): ConvertedMetadata {
|
|
144
154
|
const oContext = this.getContext();
|
|
145
155
|
const oComponent = oContext.scopeObject as any;
|
|
146
156
|
const oMetaModel: ODataMetaModel = oComponent.getModel().getMetaModel();
|
|
@@ -152,8 +162,8 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
152
162
|
*
|
|
153
163
|
* @function
|
|
154
164
|
* @name getEntityTypeFromContext
|
|
155
|
-
* @param
|
|
156
|
-
* @returns
|
|
165
|
+
* @param oContext Context
|
|
166
|
+
* @returns Entity Type
|
|
157
167
|
*/
|
|
158
168
|
public getEntityTypeFromContext(oContext: Context): string | undefined {
|
|
159
169
|
const oMetaModel = oContext.getModel().getMetaModel(),
|
|
@@ -167,8 +177,8 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
167
177
|
*
|
|
168
178
|
* @private
|
|
169
179
|
* @ui5-restricted
|
|
170
|
-
* @param
|
|
171
|
-
* @returns
|
|
180
|
+
* @param sEntityTypeName Name of the entity type
|
|
181
|
+
* @returns SideEffects dictionary
|
|
172
182
|
*/
|
|
173
183
|
public getODataEntitySideEffects(sEntityTypeName: string): Record<string, ODataSideEffectsType> {
|
|
174
184
|
return this._oSideEffectsType.oData.entities[sEntityTypeName] || {};
|
|
@@ -179,9 +189,9 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
179
189
|
*
|
|
180
190
|
* @private
|
|
181
191
|
* @ui5-restricted
|
|
182
|
-
* @param
|
|
183
|
-
* @param
|
|
184
|
-
* @returns
|
|
192
|
+
* @param sActionName Name of the action
|
|
193
|
+
* @param oContext Context
|
|
194
|
+
* @returns SideEffects definition
|
|
185
195
|
*/
|
|
186
196
|
public getODataActionSideEffects(sActionName: string, oContext?: Context): ActionSideEffectsType | undefined {
|
|
187
197
|
if (oContext) {
|
|
@@ -204,7 +214,7 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
204
214
|
this._oCapabilities = oCapabilities;
|
|
205
215
|
if (!this._bInitialized) {
|
|
206
216
|
const oConvertedMetaModel = this.getConvertedMetaModel();
|
|
207
|
-
oConvertedMetaModel.entityTypes.forEach(entityType => {
|
|
217
|
+
oConvertedMetaModel.entityTypes.forEach((entityType) => {
|
|
208
218
|
this._oSideEffectsType.oData.entities[entityType.fullyQualifiedName] = this._retrieveODataEntitySideEffects(entityType);
|
|
209
219
|
this._oSideEffectsType.oData.actions[entityType.fullyQualifiedName] = this._retrieveODataActionsSideEffects(entityType); // only bound actions are analyzed since unbound ones don't get SideEffects
|
|
210
220
|
});
|
|
@@ -217,10 +227,10 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
217
227
|
*
|
|
218
228
|
* @private
|
|
219
229
|
* @ui5-restricted
|
|
220
|
-
* @param
|
|
230
|
+
* @param sControlId Control Id
|
|
221
231
|
*/
|
|
222
232
|
public removeControlSideEffects(sControlId: string): void {
|
|
223
|
-
Object.keys(this._oSideEffectsType.control).forEach(sEntityType => {
|
|
233
|
+
Object.keys(this._oSideEffectsType.control).forEach((sEntityType) => {
|
|
224
234
|
if (this._oSideEffectsType.control[sEntityType][sControlId]) {
|
|
225
235
|
delete this._oSideEffectsType.control[sEntityType][sControlId];
|
|
226
236
|
}
|
|
@@ -232,10 +242,10 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
232
242
|
*
|
|
233
243
|
* @function
|
|
234
244
|
* @name requestSideEffects
|
|
235
|
-
* @param
|
|
236
|
-
* @param
|
|
237
|
-
* @param
|
|
238
|
-
* @returns
|
|
245
|
+
* @param aPathExpressions Targets of SideEffects to be executed
|
|
246
|
+
* @param oContext Context where SideEffects need to be executed
|
|
247
|
+
* @param sGroupId The group ID to be used for the request
|
|
248
|
+
* @returns Promise on SideEffects request
|
|
239
249
|
*/
|
|
240
250
|
public requestSideEffects(aPathExpressions: SideEffectsTarget[], oContext: Context, sGroupId?: string): Promise<any> {
|
|
241
251
|
this._logRequest(aPathExpressions, oContext);
|
|
@@ -275,23 +285,23 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
275
285
|
*
|
|
276
286
|
* @function
|
|
277
287
|
* @name requestSideEffectsForNavigationProperty
|
|
278
|
-
* @param
|
|
279
|
-
* @param
|
|
280
|
-
* @returns
|
|
288
|
+
* @param sNavigationProperty Navigation property
|
|
289
|
+
* @param oContext Context where SideEffects need to be executed
|
|
290
|
+
* @returns SideEffects request on SAPUI5 context
|
|
281
291
|
*/
|
|
282
292
|
public requestSideEffectsForNavigationProperty(sNavigationProperty: string, oContext: Context): Promise<any> {
|
|
283
293
|
const sBaseEntityType = this.getEntityTypeFromContext(oContext);
|
|
284
294
|
if (sBaseEntityType) {
|
|
285
|
-
const sNavigationPath = sNavigationProperty
|
|
295
|
+
const sNavigationPath = `${sNavigationProperty}/`;
|
|
286
296
|
const aSideEffects = this.getODataEntitySideEffects(sBaseEntityType);
|
|
287
297
|
let aTargets: SideEffectsTarget[] = [];
|
|
288
298
|
Object.keys(aSideEffects)
|
|
289
299
|
.filter(
|
|
290
300
|
// Keep relevant SideEffects
|
|
291
|
-
sAnnotationName => {
|
|
301
|
+
(sAnnotationName) => {
|
|
292
302
|
const oSideEffects: ODataSideEffectsType = aSideEffects[sAnnotationName];
|
|
293
303
|
return (
|
|
294
|
-
(oSideEffects.SourceProperties || []).some(oPropertyPath => {
|
|
304
|
+
(oSideEffects.SourceProperties || []).some((oPropertyPath) => {
|
|
295
305
|
const sPropertyPath = oPropertyPath.value;
|
|
296
306
|
return (
|
|
297
307
|
sPropertyPath.startsWith(sNavigationPath) &&
|
|
@@ -299,25 +309,25 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
299
309
|
);
|
|
300
310
|
}) ||
|
|
301
311
|
(oSideEffects.SourceEntities || []).some(
|
|
302
|
-
oNavigationPropertyPath => oNavigationPropertyPath.value === sNavigationProperty
|
|
312
|
+
(oNavigationPropertyPath) => oNavigationPropertyPath.value === sNavigationProperty
|
|
303
313
|
)
|
|
304
314
|
);
|
|
305
315
|
}
|
|
306
316
|
)
|
|
307
|
-
.forEach(sAnnotationName => {
|
|
317
|
+
.forEach((sAnnotationName) => {
|
|
308
318
|
const oSideEffects: ODataSideEffectsType = aSideEffects[sAnnotationName];
|
|
309
319
|
if (oSideEffects.TriggerAction) {
|
|
310
320
|
this.executeAction(oSideEffects.TriggerAction as string, oContext);
|
|
311
321
|
}
|
|
312
322
|
((oSideEffects.TargetEntities as any[]) || [])
|
|
313
323
|
.concat((oSideEffects.TargetProperties as any[]) || [])
|
|
314
|
-
.forEach(mTarget => aTargets.push(mTarget));
|
|
324
|
+
.forEach((mTarget) => aTargets.push(mTarget));
|
|
315
325
|
});
|
|
316
326
|
// Remove duplicate properties
|
|
317
327
|
aTargets = this._removeDuplicateTargets(aTargets);
|
|
318
328
|
if (aTargets.length > 0) {
|
|
319
|
-
return this.requestSideEffects(aTargets, oContext).catch(oError =>
|
|
320
|
-
Log.error(
|
|
329
|
+
return this.requestSideEffects(aTargets, oContext).catch((oError) =>
|
|
330
|
+
Log.error(`SideEffects - Error while processing SideEffects for Navigation Property ${sNavigationProperty}`, oError)
|
|
321
331
|
);
|
|
322
332
|
}
|
|
323
333
|
}
|
|
@@ -329,8 +339,8 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
329
339
|
*
|
|
330
340
|
* @private
|
|
331
341
|
* @ui5-restricted
|
|
332
|
-
* @param
|
|
333
|
-
* @returns
|
|
342
|
+
* @param sEntityTypeName Entity type Name
|
|
343
|
+
* @returns SideEffects dictionary
|
|
334
344
|
*/
|
|
335
345
|
public getControlEntitySideEffects(sEntityTypeName: string): Record<string, ControlSideEffectsType> {
|
|
336
346
|
return this._oSideEffectsType.control[sEntityTypeName] || {};
|
|
@@ -342,19 +352,19 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
342
352
|
*
|
|
343
353
|
* @private
|
|
344
354
|
* @ui5-restricted
|
|
345
|
-
* @param
|
|
346
|
-
* @param
|
|
347
|
-
* @returns
|
|
355
|
+
* @param oSideEffect SideEffects definition
|
|
356
|
+
* @param mEntityType Entity type
|
|
357
|
+
* @returns SideEffects definition with added text properties
|
|
348
358
|
*/
|
|
349
359
|
private _addRequiredTextProperties(oSideEffect: BaseSideEffectsType, mEntityType: EntityType): BaseSideEffectsType {
|
|
350
360
|
const aInitialProperties: string[] = oSideEffect.TargetProperties || [],
|
|
351
|
-
aEntitiesRequested: string[] = (oSideEffect.TargetEntities || []).map(navigation => navigation.$NavigationPropertyPath);
|
|
361
|
+
aEntitiesRequested: string[] = (oSideEffect.TargetEntities || []).map((navigation) => navigation.$NavigationPropertyPath);
|
|
352
362
|
let aDerivedProperties: ExtractorPropertyInfo[] = [];
|
|
353
363
|
|
|
354
|
-
aInitialProperties.forEach(sPropertyPath => {
|
|
364
|
+
aInitialProperties.forEach((sPropertyPath) => {
|
|
355
365
|
const bIsStarProperty = sPropertyPath.endsWith("*"), // Can be '*' or '.../navProp/*'
|
|
356
366
|
sNavigationPropertyPath: string = sPropertyPath.substring(0, sPropertyPath.lastIndexOf("/")),
|
|
357
|
-
sRelativePath = sNavigationPropertyPath ? sNavigationPropertyPath
|
|
367
|
+
sRelativePath = sNavigationPropertyPath ? `${sNavigationPropertyPath}/` : "",
|
|
358
368
|
mTarget: any = mEntityType.resolvePath(sNavigationPropertyPath) || mEntityType;
|
|
359
369
|
|
|
360
370
|
if (mTarget) {
|
|
@@ -368,7 +378,7 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
368
378
|
// Add all required properties behind the *
|
|
369
379
|
aEntitiesRequested.push(sNavigationPropertyPath);
|
|
370
380
|
aDerivedProperties = aDerivedProperties.concat(
|
|
371
|
-
aTargetEntityProperties.map(mProperty => {
|
|
381
|
+
aTargetEntityProperties.map((mProperty) => {
|
|
372
382
|
return {
|
|
373
383
|
navigationPath: sRelativePath,
|
|
374
384
|
property: mProperty
|
|
@@ -378,20 +388,20 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
378
388
|
} else {
|
|
379
389
|
aDerivedProperties.push({
|
|
380
390
|
property: aTargetEntityProperties.find(
|
|
381
|
-
mProperty => mProperty.name === sPropertyPath.split("/").pop()
|
|
391
|
+
(mProperty) => mProperty.name === sPropertyPath.split("/").pop()
|
|
382
392
|
) as Property,
|
|
383
393
|
navigationPath: sRelativePath
|
|
384
394
|
});
|
|
385
395
|
}
|
|
386
396
|
} else {
|
|
387
|
-
Log.info(
|
|
397
|
+
Log.info(`SideEffects - The entity type associated to property path ${sPropertyPath} cannot be resolved`);
|
|
388
398
|
}
|
|
389
399
|
} else {
|
|
390
|
-
Log.info(
|
|
400
|
+
Log.info(`SideEffects - The property path ${sPropertyPath} cannot be resolved`);
|
|
391
401
|
}
|
|
392
402
|
});
|
|
393
403
|
|
|
394
|
-
aDerivedProperties.forEach(mPropertyInfo => {
|
|
404
|
+
aDerivedProperties.forEach((mPropertyInfo) => {
|
|
395
405
|
if (mPropertyInfo.property) {
|
|
396
406
|
const sTargetTextPath = (mPropertyInfo.property.annotations?.Common?.Text as any)?.path,
|
|
397
407
|
sTextPathFromInitialEntity = mPropertyInfo.navigationPath + sTargetTextPath,
|
|
@@ -434,10 +444,10 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
434
444
|
*
|
|
435
445
|
* @private
|
|
436
446
|
* @ui5-restricted
|
|
437
|
-
* @param
|
|
438
|
-
* @param
|
|
439
|
-
* @param
|
|
440
|
-
* @returns
|
|
447
|
+
* @param oSideEffects SideEffects definition
|
|
448
|
+
* @param mEntityType Entity type
|
|
449
|
+
* @param sBindingParameter Name of the binding parameter
|
|
450
|
+
* @returns SideEffects definition
|
|
441
451
|
*/
|
|
442
452
|
private _convertSideEffects(
|
|
443
453
|
oSideEffects: BaseSideEffectsType | BaseAnnotationSideEffectsType,
|
|
@@ -455,20 +465,20 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
455
465
|
*
|
|
456
466
|
* @private
|
|
457
467
|
* @ui5-restricted
|
|
458
|
-
* @param
|
|
459
|
-
* @returns
|
|
468
|
+
* @param oSideEffects SideEffects definition
|
|
469
|
+
* @returns Converted SideEffects
|
|
460
470
|
*/
|
|
461
471
|
private _convertTargetsFormat(oSideEffects: BaseSideEffectsType | BaseAnnotationSideEffectsType): BaseSideEffectsType {
|
|
462
|
-
const TargetProperties: string[] = ((oSideEffects.TargetProperties as any[]) || []).reduce(function(aTargetProperties, vTarget) {
|
|
472
|
+
const TargetProperties: string[] = ((oSideEffects.TargetProperties as any[]) || []).reduce(function (aTargetProperties, vTarget) {
|
|
463
473
|
const sTarget = (typeof vTarget === "string" && vTarget) || (vTarget.type === "PropertyPath" && vTarget.value);
|
|
464
474
|
if (sTarget) {
|
|
465
475
|
aTargetProperties.push(sTarget);
|
|
466
476
|
} else {
|
|
467
|
-
Log.error(
|
|
477
|
+
Log.error(`SideEffects - Error while processing TargetProperties for SideEffects${oSideEffects.fullyQualifiedName}`);
|
|
468
478
|
}
|
|
469
479
|
return aTargetProperties;
|
|
470
480
|
}, []),
|
|
471
|
-
TargetEntities: SideEffectsTargetEntityType[] = ((oSideEffects.TargetEntities as any[]) || []).map(mTargetEntity => {
|
|
481
|
+
TargetEntities: SideEffectsTargetEntityType[] = ((oSideEffects.TargetEntities as any[]) || []).map((mTargetEntity) => {
|
|
472
482
|
/**
|
|
473
483
|
* SideEffects that comes from SAP FE get TargetEntities with $NavigationPropertyPath whereas
|
|
474
484
|
* ones coming from the converted OData model gets a NavigationPropertyPath format
|
|
@@ -486,8 +496,8 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
486
496
|
*
|
|
487
497
|
* @private
|
|
488
498
|
* @ui5-restricted
|
|
489
|
-
* @param
|
|
490
|
-
* @returns
|
|
499
|
+
* @param oSource Entity type or action
|
|
500
|
+
* @returns Array of SideEffects
|
|
491
501
|
*/
|
|
492
502
|
private _getSideEffectsFromSource(oSource: any): ODataSideEffectsType[] {
|
|
493
503
|
const aSideEffects: ODataSideEffectsType[] = [];
|
|
@@ -497,12 +507,12 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
497
507
|
if (mEntityType) {
|
|
498
508
|
const mCommonAnnotation: any = oSource.annotations?.Common || {};
|
|
499
509
|
const mBindingParameter = ((oSource as Action).parameters || []).find(
|
|
500
|
-
mParameter => mParameter.type === mEntityType.fullyQualifiedName
|
|
510
|
+
(mParameter) => mParameter.type === mEntityType.fullyQualifiedName
|
|
501
511
|
);
|
|
502
512
|
const sBindingParameter = mBindingParameter ? mBindingParameter.fullyQualifiedName.split("/")[1] : "";
|
|
503
513
|
Object.keys(mCommonAnnotation)
|
|
504
|
-
.filter(sAnnotationName => mCommonAnnotation[sAnnotationName].$Type === CommonAnnotationTypes.SideEffectsType)
|
|
505
|
-
.forEach(sAnnotationName => {
|
|
514
|
+
.filter((sAnnotationName) => mCommonAnnotation[sAnnotationName].$Type === CommonAnnotationTypes.SideEffectsType)
|
|
515
|
+
.forEach((sAnnotationName) => {
|
|
506
516
|
aSideEffects.push(this._convertSideEffects(mCommonAnnotation[sAnnotationName], mEntityType, sBindingParameter));
|
|
507
517
|
});
|
|
508
518
|
}
|
|
@@ -515,14 +525,14 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
515
525
|
*
|
|
516
526
|
* @private
|
|
517
527
|
* @ui5-restricted
|
|
518
|
-
* @param
|
|
519
|
-
* @param
|
|
528
|
+
* @param aPathExpressions SideEffects targets
|
|
529
|
+
* @param oContext Context
|
|
520
530
|
*/
|
|
521
531
|
private _logRequest(aPathExpressions: SideEffectsTarget[], oContext: Context) {
|
|
522
|
-
const sTargetPaths = aPathExpressions.reduce(function(sPaths, mTarget) {
|
|
523
|
-
return sPaths
|
|
532
|
+
const sTargetPaths = aPathExpressions.reduce(function (sPaths, mTarget) {
|
|
533
|
+
return `${sPaths}\n\t\t${(mTarget as SideEffectsTargetEntityType).$NavigationPropertyPath || mTarget || ""}`;
|
|
524
534
|
}, "");
|
|
525
|
-
Log.debug(
|
|
535
|
+
Log.debug(`SideEffects - Request:\n\tContext path : ${oContext.getPath()}\n\tProperty paths :${sTargetPaths}`);
|
|
526
536
|
}
|
|
527
537
|
|
|
528
538
|
/**
|
|
@@ -530,20 +540,20 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
530
540
|
*
|
|
531
541
|
* @private
|
|
532
542
|
* @ui5-restricted
|
|
533
|
-
* @param
|
|
534
|
-
* @param
|
|
535
|
-
* @returns
|
|
543
|
+
* @param oSideEffects SideEffects definition
|
|
544
|
+
* @param sBindingParameterName Name of binding parameter
|
|
545
|
+
* @returns SideEffects definition
|
|
536
546
|
*/
|
|
537
547
|
private _removeBindingParameter(oSideEffects: BaseSideEffectsType, sBindingParameterName?: string): BaseSideEffectsType {
|
|
538
548
|
if (sBindingParameterName) {
|
|
539
549
|
const aTargets = ["TargetProperties", "TargetEntities"];
|
|
540
|
-
aTargets.forEach(sTarget => {
|
|
550
|
+
aTargets.forEach((sTarget) => {
|
|
541
551
|
let mTarget = (oSideEffects as any)[sTarget];
|
|
542
552
|
if (mTarget) {
|
|
543
553
|
mTarget = mTarget.map((mProperty: any) => {
|
|
544
554
|
const bNavigationPropertyPath = mProperty.$NavigationPropertyPath !== undefined; // Need to test with undefined since mProperty.$NavigationPropertyPath could be "" (empty string)
|
|
545
555
|
const sValue = (bNavigationPropertyPath ? mProperty.$NavigationPropertyPath : mProperty).replace(
|
|
546
|
-
new RegExp(
|
|
556
|
+
new RegExp(`^${sBindingParameterName}/?`),
|
|
547
557
|
""
|
|
548
558
|
);
|
|
549
559
|
return bNavigationPropertyPath ? { $NavigationPropertyPath: sValue } : sValue;
|
|
@@ -560,13 +570,13 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
560
570
|
*
|
|
561
571
|
* @private
|
|
562
572
|
* @ui5-restricted
|
|
563
|
-
* @param
|
|
564
|
-
* @returns
|
|
573
|
+
* @param aTargets SideEffects targets
|
|
574
|
+
* @returns SideEffects targets without duplicates
|
|
565
575
|
*/
|
|
566
576
|
private _removeDuplicateTargets(aTargets: SideEffectsTarget[]): SideEffectsTarget[] {
|
|
567
577
|
return aTargets.filter(
|
|
568
|
-
(mTarget: any, iIndex,
|
|
569
|
-
|
|
578
|
+
(mTarget: any, iIndex, aInTargets) =>
|
|
579
|
+
aInTargets.findIndex((mSearchTarget: any) => {
|
|
570
580
|
return (
|
|
571
581
|
mSearchTarget === mTarget || // PropertyPath
|
|
572
582
|
(mTarget.$NavigationPropertyPath && mSearchTarget.$NavigationPropertyPath === mTarget.$NavigationPropertyPath) // NavigationPropertyPath
|
|
@@ -583,20 +593,20 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
583
593
|
*
|
|
584
594
|
* @private
|
|
585
595
|
* @ui5-restricted
|
|
586
|
-
* @param
|
|
587
|
-
* @returns
|
|
596
|
+
* @param mEntityType Entity type
|
|
597
|
+
* @returns Entity type SideEffects dictionary
|
|
588
598
|
*/
|
|
589
599
|
private _retrieveODataActionsSideEffects(mEntityType: EntityType): Record<string, ActionSideEffectsType> {
|
|
590
600
|
const oSideEffects: Record<string, ActionSideEffectsType> = {};
|
|
591
601
|
const aActions = mEntityType.actions;
|
|
592
602
|
if (aActions) {
|
|
593
|
-
Object.keys(aActions).forEach(sActionName => {
|
|
603
|
+
Object.keys(aActions).forEach((sActionName) => {
|
|
594
604
|
const oAction = mEntityType.actions[sActionName];
|
|
595
605
|
const triggerActions: string[] = [];
|
|
596
606
|
let pathExpressions: SideEffectsTarget[] = [];
|
|
597
607
|
let aTargets: SideEffectsTarget[] = [];
|
|
598
608
|
|
|
599
|
-
this._getSideEffectsFromSource(oAction).forEach(oSideEffect => {
|
|
609
|
+
this._getSideEffectsFromSource(oAction).forEach((oSideEffect) => {
|
|
600
610
|
const sTriggerAction = oSideEffect.TriggerAction;
|
|
601
611
|
aTargets = aTargets.concat(oSideEffect.TargetEntities || []).concat((oSideEffect.TargetProperties as any[]) || []);
|
|
602
612
|
if (sTriggerAction && triggerActions.indexOf(sTriggerAction as string) === -1) {
|
|
@@ -618,12 +628,12 @@ export class SideEffectsService extends Service<SideEffectsSettings> {
|
|
|
618
628
|
*
|
|
619
629
|
* @private
|
|
620
630
|
* @ui5-restricted
|
|
621
|
-
* @param
|
|
622
|
-
* @returns
|
|
631
|
+
* @param mEntityType Entity type
|
|
632
|
+
* @returns Entity type SideEffects dictionary
|
|
623
633
|
*/
|
|
624
634
|
private _retrieveODataEntitySideEffects(mEntityType: EntityType): Record<string, ODataSideEffectsType> {
|
|
625
635
|
const oEntitySideEffects: Record<string, ODataSideEffectsType> = {};
|
|
626
|
-
this._getSideEffectsFromSource(mEntityType).forEach(oSideEffects => {
|
|
636
|
+
this._getSideEffectsFromSource(mEntityType).forEach((oSideEffects) => {
|
|
627
637
|
oEntitySideEffects[oSideEffects.fullyQualifiedName] = oSideEffects;
|
|
628
638
|
});
|
|
629
639
|
return oEntitySideEffects;
|