@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,25 +1,26 @@
|
|
|
1
1
|
import Log from "sap/base/Log";
|
|
2
|
-
import AppComponent from "sap/fe/core/AppComponent";
|
|
2
|
+
import type AppComponent from "sap/fe/core/AppComponent";
|
|
3
3
|
import BusyLocker from "sap/fe/core/controllerextensions/BusyLocker";
|
|
4
4
|
import messageHandling from "sap/fe/core/controllerextensions/messageHandler/messageHandling";
|
|
5
5
|
import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
|
|
6
|
-
import RouterProxy from "sap/fe/core/controllerextensions/routing/RouterProxy";
|
|
6
|
+
import type RouterProxy from "sap/fe/core/controllerextensions/routing/RouterProxy";
|
|
7
7
|
import AppStartupHelper from "sap/fe/core/helpers/AppStartupHelper";
|
|
8
8
|
import { defineUI5Class, event } from "sap/fe/core/helpers/ClassSupport";
|
|
9
9
|
import EditState from "sap/fe/core/helpers/EditState";
|
|
10
10
|
import ModelHelper from "sap/fe/core/helpers/ModelHelper";
|
|
11
11
|
import SemanticKeyHelper from "sap/fe/core/helpers/SemanticKeyHelper";
|
|
12
12
|
import BindingParser from "sap/ui/base/BindingParser";
|
|
13
|
-
import Event from "sap/ui/base/Event";
|
|
13
|
+
import type Event from "sap/ui/base/Event";
|
|
14
14
|
import EventProvider from "sap/ui/base/EventProvider";
|
|
15
|
-
import Router from "sap/ui/core/routing/Router";
|
|
15
|
+
import type Router from "sap/ui/core/routing/Router";
|
|
16
16
|
import Service from "sap/ui/core/service/Service";
|
|
17
17
|
import ServiceFactory from "sap/ui/core/service/ServiceFactory";
|
|
18
|
-
import Context from "sap/ui/model/odata/v4/Context";
|
|
19
|
-
import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
|
|
20
|
-
import ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
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 ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
21
21
|
import ODataUtils from "sap/ui/model/odata/v4/ODataUtils";
|
|
22
|
-
import { ServiceContext } from "types/extension_types";
|
|
22
|
+
import type { ServiceContext } from "types/extension_types";
|
|
23
|
+
|
|
23
24
|
type RoutingServiceSettings = {};
|
|
24
25
|
@defineUI5Class("sap.fe.core.services.RoutingServiceEventing")
|
|
25
26
|
class RoutingServiceEventing extends EventProvider {
|
|
@@ -83,8 +84,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
83
84
|
/**
|
|
84
85
|
* Parse a manifest routing configuration for internal usage.
|
|
85
86
|
*
|
|
86
|
-
* @param
|
|
87
|
-
* @param
|
|
87
|
+
* @param oRoutingConfig The routing configuration from the manifest
|
|
88
|
+
* @param oRootViewConfig The root view configuration from the manifest
|
|
88
89
|
* @private
|
|
89
90
|
*/
|
|
90
91
|
_parseRoutingConfiguration(oRoutingConfig: any, oRootViewConfig: any) {
|
|
@@ -111,7 +112,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
111
112
|
|
|
112
113
|
// Check route pattern: all patterns need to end with ':?query:', that we use for parameters
|
|
113
114
|
if (sRoutePattern.length < 8 || sRoutePattern.indexOf(":?query:") !== sRoutePattern.length - 8) {
|
|
114
|
-
Log.warning(
|
|
115
|
+
Log.warning(`Pattern for route ${sRouteName} doesn't end with ':?query:' : ${sRoutePattern}`);
|
|
115
116
|
}
|
|
116
117
|
const iRouteLevel = this._getViewLevelFromPattern(sRoutePattern, 0);
|
|
117
118
|
this._mRoutes[sRouteName] = {
|
|
@@ -203,11 +204,11 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
203
204
|
this.sContextPath = "";
|
|
204
205
|
if (this._mTargets[sDefaultTargetName].options && this._mTargets[sDefaultTargetName].options.settings) {
|
|
205
206
|
const oSettings = this._mTargets[sDefaultTargetName].options.settings;
|
|
206
|
-
this.sContextPath = oSettings.contextPath ||
|
|
207
|
+
this.sContextPath = oSettings.contextPath || `/${oSettings.entitySet}`;
|
|
207
208
|
}
|
|
208
209
|
if (!this.sContextPath) {
|
|
209
210
|
Log.warning(
|
|
210
|
-
|
|
211
|
+
`Cannot determine default contextPath: contextPath or entitySet missing in default target: ${sDefaultTargetName}`
|
|
211
212
|
);
|
|
212
213
|
}
|
|
213
214
|
} else {
|
|
@@ -226,9 +227,9 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
226
227
|
// After sorting the targets per level we can then go through their navigation object and update the paths accordingly.
|
|
227
228
|
if (target.options) {
|
|
228
229
|
const settings = target.options.settings;
|
|
229
|
-
const sContextPath = settings.contextPath || (settings.entitySet ?
|
|
230
|
+
const sContextPath = settings.contextPath || (settings.entitySet ? `/${settings.entitySet}` : "");
|
|
230
231
|
if (!settings.fullContextPath && sContextPath) {
|
|
231
|
-
settings.fullContextPath = sContextPath
|
|
232
|
+
settings.fullContextPath = `${sContextPath}/`;
|
|
232
233
|
}
|
|
233
234
|
Object.keys(settings.navigation || {}).forEach((sNavName: string) => {
|
|
234
235
|
// Check if it's a navigation property
|
|
@@ -241,11 +242,13 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
241
242
|
!this._mTargets[sTargetName].options.settings.fullContextPath
|
|
242
243
|
) {
|
|
243
244
|
if (target.viewLevel === 0) {
|
|
244
|
-
this._mTargets[sTargetName].options.settings.fullContextPath =
|
|
245
|
-
(sNavName.startsWith("/") ? "" : "/") + sNavName
|
|
245
|
+
this._mTargets[sTargetName].options.settings.fullContextPath = `${
|
|
246
|
+
(sNavName.startsWith("/") ? "" : "/") + sNavName
|
|
247
|
+
}/`;
|
|
246
248
|
} else {
|
|
247
|
-
this._mTargets[sTargetName].options.settings.fullContextPath =
|
|
248
|
-
settings.fullContextPath + sNavName
|
|
249
|
+
this._mTargets[sTargetName].options.settings.fullContextPath = `${
|
|
250
|
+
settings.fullContextPath + sNavName
|
|
251
|
+
}/`;
|
|
249
252
|
}
|
|
250
253
|
}
|
|
251
254
|
});
|
|
@@ -258,15 +261,15 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
258
261
|
/**
|
|
259
262
|
* Calculates a view level from a pattern by counting the number of segments.
|
|
260
263
|
*
|
|
261
|
-
* @param
|
|
262
|
-
* @param
|
|
263
|
-
* @returns
|
|
264
|
+
* @param sPattern The pattern
|
|
265
|
+
* @param viewLevel The current level of view
|
|
266
|
+
* @returns The level
|
|
264
267
|
*/
|
|
265
268
|
_getViewLevelFromPattern(sPattern: string, viewLevel: number): number {
|
|
266
269
|
sPattern = sPattern.replace(":?query:", "");
|
|
267
270
|
const regex = new RegExp("/[^/]*$");
|
|
268
271
|
if (sPattern && sPattern[0] !== "/" && sPattern[0] !== "?") {
|
|
269
|
-
sPattern =
|
|
272
|
+
sPattern = `/${sPattern}`;
|
|
270
273
|
}
|
|
271
274
|
if (sPattern.length) {
|
|
272
275
|
sPattern = sPattern.replace(regex, "");
|
|
@@ -289,7 +292,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
289
292
|
}
|
|
290
293
|
|
|
291
294
|
_getComponentId(sOwnerId: any, sComponentId: any) {
|
|
292
|
-
if (sComponentId.indexOf(sOwnerId
|
|
295
|
+
if (sComponentId.indexOf(`${sOwnerId}---`) === 0) {
|
|
293
296
|
return sComponentId.substr(sOwnerId.length + 3);
|
|
294
297
|
}
|
|
295
298
|
return sComponentId;
|
|
@@ -298,8 +301,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
298
301
|
/**
|
|
299
302
|
* Get target information for a given component.
|
|
300
303
|
*
|
|
301
|
-
* @param
|
|
302
|
-
* @returns
|
|
304
|
+
* @param oComponentInstance Instance of the component
|
|
305
|
+
* @returns The configuration for the target
|
|
303
306
|
*/
|
|
304
307
|
getTargetInformationFor(oComponentInstance: any) {
|
|
305
308
|
const sTargetComponentId = this._getComponentId(oComponentInstance._sOwnerId, oComponentInstance.getId());
|
|
@@ -341,10 +344,10 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
341
344
|
/**
|
|
342
345
|
* Method to return a map of routing target parameters where the binding syntax is resolved to the current model.
|
|
343
346
|
*
|
|
344
|
-
* @param
|
|
345
|
-
* @param
|
|
346
|
-
* @param
|
|
347
|
-
* @returns
|
|
347
|
+
* @param mParameters Parameters map in the format [k: string] : ComplexBindingSyntax
|
|
348
|
+
* @param sTargetRoute Name of the target route
|
|
349
|
+
* @param oContext The instance of the binding context
|
|
350
|
+
* @returns A promise which resolves to the routing target parameters
|
|
348
351
|
*/
|
|
349
352
|
prepareParameters(mParameters: any, sTargetRoute: string, oContext: Context) {
|
|
350
353
|
let oParametersPromise;
|
|
@@ -390,7 +393,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
390
393
|
return oParameters;
|
|
391
394
|
});
|
|
392
395
|
} catch (oError) {
|
|
393
|
-
Log.error(
|
|
396
|
+
Log.error(`Could not parse the parameters for the navigation to route ${sTargetRoute}`);
|
|
394
397
|
oParametersPromise = Promise.resolve(undefined);
|
|
395
398
|
}
|
|
396
399
|
return oParametersPromise;
|
|
@@ -406,22 +409,21 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
406
409
|
/**
|
|
407
410
|
* Navigates to a context.
|
|
408
411
|
*
|
|
409
|
-
* @param
|
|
410
|
-
* @param
|
|
411
|
-
* @param
|
|
412
|
-
* @param
|
|
412
|
+
* @param oContext The Context to be navigated to
|
|
413
|
+
* @param [mParameters] Optional, map containing the following attributes:
|
|
414
|
+
* @param [mParameters.checkNoHashChange] Navigate to the context without changing the URL
|
|
415
|
+
* @param [mParameters.asyncContext] The context is created async, navigate to (...) and
|
|
413
416
|
* wait for Promise to be resolved and then navigate into the context
|
|
414
|
-
* @param
|
|
415
|
-
* @param
|
|
416
|
-
* @param
|
|
417
|
-
* @param
|
|
418
|
-
* @param
|
|
419
|
-
* @param
|
|
420
|
-
* @param
|
|
421
|
-
* @param
|
|
422
|
-
* @param
|
|
423
|
-
* @returns
|
|
424
|
-
*
|
|
417
|
+
* @param [mParameters.bDeferredContext] The context shall be created deferred at the target page
|
|
418
|
+
* @param [mParameters.editable] The target page shall be immediately in the edit mode to avoid flickering
|
|
419
|
+
* @param [mParameters.bPersistOPScroll] The bPersistOPScroll will be used for scrolling to first tab
|
|
420
|
+
* @param [mParameters.updateFCLLevel] `+1` if we add a column in FCL, `-1` to remove a column, 0 to stay on the same column
|
|
421
|
+
* @param [mParameters.noPreservationCache] Do navigation without taking into account the preserved cache mechanism
|
|
422
|
+
* @param [mParameters.bRecreateContext] Force re-creation of the context instead of using the one passed as parameter
|
|
423
|
+
* @param [mParameters.bForceFocus] Forces focus selection after navigation
|
|
424
|
+
* @param [oViewData] View data
|
|
425
|
+
* @param [oCurrentTargetInfo] The target information from which the navigation is triggered
|
|
426
|
+
* @returns Promise which is resolved once the navigation is triggered
|
|
425
427
|
* @ui5-restricted
|
|
426
428
|
* @final
|
|
427
429
|
*/
|
|
@@ -481,7 +483,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
481
483
|
// Add layout parameter if needed
|
|
482
484
|
const sLayout = this._calculateLayout(sTargetPath, mParameters);
|
|
483
485
|
if (sLayout) {
|
|
484
|
-
sTargetPath +=
|
|
486
|
+
sTargetPath += `?layout=${sLayout}`;
|
|
485
487
|
}
|
|
486
488
|
|
|
487
489
|
// Navigation parameters for later usage
|
|
@@ -569,10 +571,9 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
569
571
|
* @name sap.fe.core.controllerextensions.Routing#navigateToRoute
|
|
570
572
|
* @memberof sap.fe.core.controllerextensions.Routing
|
|
571
573
|
* @static
|
|
572
|
-
* @param
|
|
573
|
-
* @param
|
|
574
|
-
* @returns
|
|
575
|
-
*
|
|
574
|
+
* @param sTargetRouteName Name of the target route
|
|
575
|
+
* @param [oRouteParameters] Parameters to be used with route to create the target hash
|
|
576
|
+
* @returns Promise that is resolved when the navigation is finalized
|
|
576
577
|
* @ui5-restricted
|
|
577
578
|
* @final
|
|
578
579
|
*/
|
|
@@ -584,8 +585,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
584
585
|
/**
|
|
585
586
|
* Checks if one of the current views on the screen is bound to a given context.
|
|
586
587
|
*
|
|
587
|
-
* @param
|
|
588
|
-
* @returns
|
|
588
|
+
* @param oContext The context
|
|
589
|
+
* @returns `true` or `false` if the current state is impacted or not
|
|
589
590
|
*/
|
|
590
591
|
isCurrentStateImpactedBy(oContext: any) {
|
|
591
592
|
const sPath = oContext.getPath();
|
|
@@ -621,7 +622,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
621
622
|
}
|
|
622
623
|
}
|
|
623
624
|
|
|
624
|
-
|
|
625
|
+
_checkIfContextSupportsSemanticPath(oContext: Context) {
|
|
625
626
|
const sPath = oContext.getPath();
|
|
626
627
|
|
|
627
628
|
// First, check if this is a level-1 object (path = /aaa(bbb))
|
|
@@ -630,8 +631,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
630
631
|
}
|
|
631
632
|
|
|
632
633
|
// Then check if the entity has semantic keys
|
|
633
|
-
const oMetaModel = oContext.getModel().getMetaModel()
|
|
634
|
-
|
|
634
|
+
const oMetaModel = oContext.getModel().getMetaModel() as ODataMetaModel;
|
|
635
|
+
const sEntitySetName = oMetaModel.getMetaContext(oContext.getPath()).getObject("@sapui.name") as any as string;
|
|
635
636
|
if (!SemanticKeyHelper.getSemanticKeys(oMetaModel, sEntitySetName)) {
|
|
636
637
|
return false;
|
|
637
638
|
}
|
|
@@ -657,7 +658,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
657
658
|
if (this.oLastSemanticMapping && this.oLastSemanticMapping.technicalPath === sPath) {
|
|
658
659
|
sPath = this.oLastSemanticMapping.semanticPath;
|
|
659
660
|
}
|
|
660
|
-
} else if (this.
|
|
661
|
+
} else if (this._checkIfContextSupportsSemanticPath(oContext)) {
|
|
661
662
|
// We check if we have to use a semantic path
|
|
662
663
|
const sSemanticPath = SemanticKeyHelper.getSemanticPath(oContext, true);
|
|
663
664
|
|
|
@@ -716,7 +717,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
716
717
|
* Event handler when a route is matched.
|
|
717
718
|
* Hides the busy indicator and fires its own 'routematched' event.
|
|
718
719
|
*
|
|
719
|
-
* @param
|
|
720
|
+
* @param oEvent The event
|
|
720
721
|
*/
|
|
721
722
|
_onRouteMatched(oEvent: Event) {
|
|
722
723
|
const oAppStateHandler = this.oAppComponent.getAppStateHandler(),
|
|
@@ -812,7 +813,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
812
813
|
this.bExitOnNavigateBackToRoot = !this.oRouter.match("");
|
|
813
814
|
|
|
814
815
|
const bIsIappState = this.oRouter.getHashChanger().getHash().indexOf("sap-iapp-state") !== -1;
|
|
815
|
-
|
|
816
|
+
return this.oAppComponent
|
|
816
817
|
.getStartupParameters()
|
|
817
818
|
.then((oStartupParameters: any) => {
|
|
818
819
|
const bHasStartUpParameters = oStartupParameters !== undefined && Object.keys(oStartupParameters).length !== 0;
|
|
@@ -831,8 +832,6 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
831
832
|
.catch(function (oError: any) {
|
|
832
833
|
Log.error("Error during routing initialization", oError);
|
|
833
834
|
});
|
|
834
|
-
|
|
835
|
-
return initPromise;
|
|
836
835
|
}
|
|
837
836
|
|
|
838
837
|
getDefaultCreateHash(oStartupParameters?: any) {
|
|
@@ -844,6 +843,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
844
843
|
(sNewHash: any) => {
|
|
845
844
|
if (sNewHash) {
|
|
846
845
|
(this.oRouter.getHashChanger().replaceHash as any)(sNewHash);
|
|
846
|
+
this.oAppComponent.setStartupModeCreate();
|
|
847
847
|
this.bExitOnNavigateBackToRoot = true;
|
|
848
848
|
}
|
|
849
849
|
}
|
|
@@ -858,8 +858,10 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
858
858
|
).then((oDeepLink: any) => {
|
|
859
859
|
let sHash;
|
|
860
860
|
if (oDeepLink.context) {
|
|
861
|
-
const sTechnicalPath = oDeepLink.context.getPath()
|
|
862
|
-
|
|
861
|
+
const sTechnicalPath = oDeepLink.context.getPath();
|
|
862
|
+
const sSemanticPath = this._checkIfContextSupportsSemanticPath(oDeepLink.context)
|
|
863
|
+
? SemanticKeyHelper.getSemanticPath(oDeepLink.context)
|
|
864
|
+
: sTechnicalPath;
|
|
863
865
|
|
|
864
866
|
if (sSemanticPath !== sTechnicalPath) {
|
|
865
867
|
// Store the mapping technical <-> semantic path to avoid recalculating it later
|
|
@@ -875,6 +877,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
875
877
|
if (sHash) {
|
|
876
878
|
//Replace the hash with newly created hash
|
|
877
879
|
(this.oRouter.getHashChanger().replaceHash as any)(sHash);
|
|
880
|
+
this.oAppComponent.setStartupModeDeeplink();
|
|
878
881
|
}
|
|
879
882
|
});
|
|
880
883
|
}
|
|
@@ -886,8 +889,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
|
|
|
886
889
|
/**
|
|
887
890
|
* Gets the name of the Draft root entity set or the sticky-enabled entity set.
|
|
888
891
|
*
|
|
889
|
-
* @returns
|
|
890
|
-
*
|
|
892
|
+
* @returns The name of the root EntitySet
|
|
891
893
|
* @ui5-restricted
|
|
892
894
|
*/
|
|
893
895
|
getContextPath() {
|