@sapui5/sap.fe.core 1.102.3 → 1.105.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 +6 -6
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/ActionRuntime.js +120 -0
- package/src/sap/fe/core/ActionRuntime.ts +108 -0
- package/src/sap/fe/core/AppComponent.js +81 -35
- package/src/sap/fe/core/AppComponent.ts +68 -44
- package/src/sap/fe/core/AppStateHandler.js +82 -70
- package/src/sap/fe/core/AppStateHandler.ts +32 -37
- package/src/sap/fe/core/BaseController.js +12 -10
- package/src/sap/fe/core/BaseController.ts +15 -13
- package/src/sap/fe/core/CommonUtils.js +291 -218
- package/src/sap/fe/core/CommonUtils.ts +315 -251
- package/src/sap/fe/core/ExtensionAPI.js +25 -28
- package/src/sap/fe/core/ExtensionAPI.ts +36 -38
- package/src/sap/fe/core/PageController.js +5 -5
- package/src/sap/fe/core/PageController.ts +4 -5
- package/src/sap/fe/core/TemplateComponent.js +21 -10
- package/src/sap/fe/core/TemplateComponent.ts +9 -6
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/TemplateModel.ts +1 -1
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +8 -2
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +197 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +164 -24
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +14 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.ts +5 -0
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +609 -230
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +275 -128
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +761 -700
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +478 -514
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +10 -10
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +104 -75
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -79
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +68 -68
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +162 -102
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +177 -121
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +67 -69
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
- package/src/sap/fe/core/controllerextensions/MassEdit.js +10 -10
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
- package/src/sap/fe/core/controllerextensions/PageReady.js +98 -26
- package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -34
- package/src/sap/fe/core/controllerextensions/Paginator.js +31 -32
- package/src/sap/fe/core/controllerextensions/Paginator.ts +33 -34
- package/src/sap/fe/core/controllerextensions/Placeholder.js +5 -7
- package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
- package/src/sap/fe/core/controllerextensions/Routing.js +11 -12
- package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +171 -140
- package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
- package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
- package/src/sap/fe/core/controllerextensions/ViewState.js +201 -132
- package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
- 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 +13 -12
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +13 -12
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +15 -15
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -18
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +60 -28
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +29 -21
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1424 -940
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +799 -836
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +410 -377
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +275 -358
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +309 -0
- package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +320 -0
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +752 -579
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +631 -599
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +92 -74
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +49 -52
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -41
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +110 -84
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +69 -81
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +64 -73
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +18 -2
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +25 -24
- 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 +12 -26
- package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
- package/src/sap/fe/core/controls/ConditionalWrapper.js +3 -3
- package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +26 -26
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -3
- 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 +3 -3
- package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
- package/src/sap/fe/core/controls/FileWrapper.js +9 -4
- package/src/sap/fe/core/controls/FileWrapper.ts +16 -12
- package/src/sap/fe/core/controls/FilterBar.js +7 -3
- package/src/sap/fe/core/controls/FilterBar.ts +13 -9
- package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
- 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/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +44 -19
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +17 -13
- package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +4 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +49 -49
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- 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 +48 -34
- package/src/sap/fe/core/converters/ConverterContext.ts +81 -67
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +18 -15
- 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 +74 -40
- package/src/sap/fe/core/converters/MetaModelConverter.ts +176 -140
- 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 +58 -35
- package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1956 -1494
- package/src/sap/fe/core/converters/controls/Common/Action.js +78 -51
- package/src/sap/fe/core/converters/controls/Common/Action.ts +87 -52
- package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -16
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +42 -43
- 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 +65 -29
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +93 -62
- package/src/sap/fe/core/converters/controls/Common/Form.js +31 -31
- package/src/sap/fe/core/converters/controls/Common/Form.ts +46 -57
- package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
- package/src/sap/fe/core/converters/controls/Common/Table.js +251 -264
- package/src/sap/fe/core/converters/controls/Common/Table.ts +344 -370
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +147 -144
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +89 -59
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +118 -71
- 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 +131 -95
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +123 -87
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +98 -87
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +121 -117
- package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
- 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 +8 -6
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +18 -10
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +136 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +139 -0
- package/src/sap/fe/core/converters/helpers/ID.js +48 -46
- package/src/sap/fe/core/converters/helpers/ID.ts +26 -25
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- 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 -5
- 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 +53 -75
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +59 -90
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +58 -57
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +93 -86
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +58 -44
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +87 -80
- 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 +96 -0
- package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -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/TableFormatterTypes.js +1 -1
- 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/fpm/Component.js +33 -7
- package/src/sap/fe/core/fpm/Component.ts +14 -0
- package/src/sap/fe/core/helpers/AnnotationEnum.js +1 -1
- package/src/sap/fe/core/helpers/AppStartupHelper.js +19 -18
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +41 -43
- package/src/sap/fe/core/helpers/BindingToolkit.js +1836 -0
- package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +397 -270
- package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
- package/src/sap/fe/core/helpers/ClassSupport.ts +37 -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/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/MassEditHelper.js +306 -280
- package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
- package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
- package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
- 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/helpers/Synchronization.js +1 -1
- package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
- package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
- package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.js +109 -0
- package/src/sap/fe/core/jsx-runtime/ViewLoader.tsx +47 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.js +110 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +92 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
- package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
- package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
- package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +179 -0
- package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +150 -0
- package/src/sap/fe/core/library.js +42 -3
- package/src/sap/fe/core/library.support.js +1 -1
- 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 +39 -67
- package/src/sap/fe/core/messagebundle_ar.properties +27 -44
- package/src/sap/fe/core/messagebundle_bg.properties +27 -44
- package/src/sap/fe/core/messagebundle_ca.properties +27 -44
- package/src/sap/fe/core/messagebundle_cs.properties +27 -44
- package/src/sap/fe/core/messagebundle_cy.properties +26 -43
- package/src/sap/fe/core/messagebundle_da.properties +27 -44
- package/src/sap/fe/core/messagebundle_de.properties +25 -42
- package/src/sap/fe/core/messagebundle_el.properties +28 -45
- package/src/sap/fe/core/messagebundle_en.properties +27 -44
- package/src/sap/fe/core/messagebundle_en_GB.properties +27 -44
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -42
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +26 -40
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +25 -42
- package/src/sap/fe/core/messagebundle_es.properties +27 -44
- package/src/sap/fe/core/messagebundle_es_MX.properties +27 -44
- package/src/sap/fe/core/messagebundle_et.properties +27 -44
- package/src/sap/fe/core/messagebundle_fi.properties +27 -44
- package/src/sap/fe/core/messagebundle_fr.properties +26 -43
- package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -42
- package/src/sap/fe/core/messagebundle_hi.properties +27 -44
- package/src/sap/fe/core/messagebundle_hr.properties +27 -44
- package/src/sap/fe/core/messagebundle_hu.properties +27 -44
- package/src/sap/fe/core/messagebundle_id.properties +27 -44
- package/src/sap/fe/core/messagebundle_it.properties +43 -60
- package/src/sap/fe/core/messagebundle_iw.properties +27 -44
- package/src/sap/fe/core/messagebundle_ja.properties +27 -44
- package/src/sap/fe/core/messagebundle_kk.properties +27 -44
- package/src/sap/fe/core/messagebundle_ko.properties +30 -47
- package/src/sap/fe/core/messagebundle_lt.properties +27 -44
- package/src/sap/fe/core/messagebundle_lv.properties +27 -44
- package/src/sap/fe/core/messagebundle_ms.properties +27 -44
- package/src/sap/fe/core/messagebundle_nl.properties +29 -46
- package/src/sap/fe/core/messagebundle_no.properties +27 -44
- package/src/sap/fe/core/messagebundle_pl.properties +28 -45
- package/src/sap/fe/core/messagebundle_pt.properties +28 -45
- package/src/sap/fe/core/messagebundle_pt_PT.properties +27 -44
- package/src/sap/fe/core/messagebundle_ro.properties +27 -44
- package/src/sap/fe/core/messagebundle_ru.properties +27 -44
- package/src/sap/fe/core/messagebundle_sh.properties +27 -44
- package/src/sap/fe/core/messagebundle_sk.properties +27 -44
- package/src/sap/fe/core/messagebundle_sl.properties +27 -44
- package/src/sap/fe/core/messagebundle_sv.properties +27 -44
- package/src/sap/fe/core/messagebundle_th.properties +25 -42
- package/src/sap/fe/core/messagebundle_tr.properties +27 -44
- package/src/sap/fe/core/messagebundle_uk.properties +27 -44
- package/src/sap/fe/core/messagebundle_vi.properties +27 -44
- package/src/sap/fe/core/messagebundle_zh_CN.properties +27 -44
- package/src/sap/fe/core/messagebundle_zh_TW.properties +27 -44
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +3 -3
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +103 -75
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +72 -73
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +62 -50
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +3 -3
- package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
- package/src/sap/fe/core/services/RoutingServiceFactory.js +56 -56
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
- package/src/sap/fe/core/services/ShellServicesFactory.js +93 -77
- package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -82
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +64 -64
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +232 -200
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +145 -142
- package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -2
- package/src/sap/fe/core/support/AnnotationIssue.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +1 -1
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +1 -1
- 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/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +85 -0
- package/src/sap/fe/core/templating/CommonFormatters.ts +90 -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 +23 -15
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +47 -34
- 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 +18 -17
- package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
- 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 +152 -95
- package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/Email.js +3 -3
- package/src/sap/fe/core/type/Email.ts +2 -2
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapui5/sap.fe.core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.105.0",
|
|
4
4
|
"description": "SAPUI5 Library sap.fe.core",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "SAP SE (https://www.sap.com)",
|
|
7
7
|
"homepage": "https://sap.github.io/ui5-tooling/pages/SAPUI5/",
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "echo 'nothing to do'",
|
|
10
|
-
"build-local": "tsc --project tsconfig-local.json && copyfiles -u
|
|
11
|
-
"copy-dependency": "copyfiles -u
|
|
12
|
-
"prepare-npm-sources": "copyfiles -u
|
|
10
|
+
"build-local": "tsc --project tsconfig-local.json && copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" dist-local/src && copyfiles ui5.yaml dist-local",
|
|
11
|
+
"copy-dependency": "copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" target/classes/META-INF/resources",
|
|
12
|
+
"prepare-npm-sources": "copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" target/npm-sources/src && babel target/npm-sources/src --out-dir target/npm-sources/src --extensions \".ts,.tsx\" --config-file ../../.babelrc && babel target/npm-sources/src --out-dir target/npm-sources/src --extensions \".mdx\" --config-file ../../.babelrc-next",
|
|
13
13
|
"prepare-ts-class-doc": "ts-node ../../docbuilder/prepareTSClassDoc sap.fe.core",
|
|
14
|
-
"prepare-ui5-build-sources": "copyfiles -u
|
|
14
|
+
"prepare-ui5-build-sources": "copyfiles -u 5 \"../../lib/annotation-converter-ui5/ui5-dist/**/*.js\" target/ui5-build-tmp/src && babel target/ui5-build-tmp/src --out-dir target/ui5-build-tmp/src --extensions \".ts,.tsx\" --config-file ../../.babelrc && babel target/ui5-build-tmp/src --out-dir target/ui5-build-tmp/src --extensions \".mdx\" --config-file ../../.babelrc-next && babel target/ui5-build-tmp/test --out-dir target/ui5-build-tmp/test --extensions \".ts,.tsx\" --config-file ../../.babelrc && babel target/ui5-build-tmp/test --out-dir target/ui5-build-tmp/test --extensions \".mdx\" --config-file ../../.babelrc-next",
|
|
15
15
|
"test": "jest --maxWorkers=4",
|
|
16
16
|
"test-refs": "jest --runInBand --config jest.config-refs.js",
|
|
17
17
|
"test-updateSnapshots": "jest --maxWorkers=4 -u",
|
|
@@ -25,6 +25,6 @@
|
|
|
25
25
|
"@babel/cli": "^7.14.8",
|
|
26
26
|
"@ui5/cli": "^2.14.0",
|
|
27
27
|
"copyfiles": "2.2.0",
|
|
28
|
-
"ts-node": "^
|
|
28
|
+
"ts-node": "^10.8.1"
|
|
29
29
|
}
|
|
30
30
|
}
|
package/src/sap/fe/core/.library
CHANGED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2021 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/helpers/BindingToolkit"], function (CommonUtils, BindingToolkit) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var transformRecursively = BindingToolkit.transformRecursively;
|
|
9
|
+
var constant = BindingToolkit.constant;
|
|
10
|
+
var compileExpression = BindingToolkit.compileExpression;
|
|
11
|
+
|
|
12
|
+
var ActionRuntime = {
|
|
13
|
+
/**
|
|
14
|
+
* Sets the action enablement.
|
|
15
|
+
*
|
|
16
|
+
* @function
|
|
17
|
+
* @name setActionEnablement
|
|
18
|
+
* @param oInternalModelContext Object containing the context model
|
|
19
|
+
* @param oActionOperationAvailableMap Map containing the operation availability of actions
|
|
20
|
+
* @param aSelectedContexts Array containing selected contexts of the chart
|
|
21
|
+
* @param sControl Control name
|
|
22
|
+
* @returns Promise.all(aPromises)
|
|
23
|
+
* @ui5-restricted
|
|
24
|
+
*/
|
|
25
|
+
setActionEnablement: function (oInternalModelContext, oActionOperationAvailableMap, aSelectedContexts, sControl) {
|
|
26
|
+
var aPromises = [];
|
|
27
|
+
|
|
28
|
+
for (var sAction in oActionOperationAvailableMap) {
|
|
29
|
+
oInternalModelContext.setProperty(sAction, false);
|
|
30
|
+
var sProperty = oActionOperationAvailableMap[sAction];
|
|
31
|
+
|
|
32
|
+
for (var i = 0; i < aSelectedContexts.length; i++) {
|
|
33
|
+
var oSelectedContext = aSelectedContexts[i];
|
|
34
|
+
|
|
35
|
+
if (oSelectedContext) {
|
|
36
|
+
var oContextData = oSelectedContext.getObject();
|
|
37
|
+
|
|
38
|
+
if (sControl === "chart") {
|
|
39
|
+
if (sProperty === null && !!oContextData["#".concat(sAction)] || oSelectedContext.getObject(sProperty)) {
|
|
40
|
+
//look for action advertisement if present and its value is not null
|
|
41
|
+
oInternalModelContext.setProperty(sAction, true);
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
} else if (sControl === "table") {
|
|
45
|
+
aPromises.push(this._setActionEnablementForTable(oSelectedContext, oInternalModelContext, sAction, sProperty));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (sControl === "table" && !aSelectedContexts.length) {
|
|
51
|
+
oInternalModelContext.setProperty("dynamicActions/".concat(sAction), {
|
|
52
|
+
bEnabled: false,
|
|
53
|
+
aApplicable: [],
|
|
54
|
+
aNotApplicable: []
|
|
55
|
+
});
|
|
56
|
+
aPromises.push(CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, []));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (sControl === "table") {
|
|
61
|
+
return Promise.all(aPromises);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
_setActionEnablementForTable: function (oSelectedContext, oInternalModelContext, sAction, sProperty) {
|
|
65
|
+
// Reset all properties before computation
|
|
66
|
+
oInternalModelContext.setProperty("dynamicActions/".concat(sAction), {
|
|
67
|
+
bEnabled: false,
|
|
68
|
+
aApplicable: [],
|
|
69
|
+
aNotApplicable: []
|
|
70
|
+
}); // Note that non dynamic actions are not processed here. They are enabled because
|
|
71
|
+
// one or more are selected and the second part of the condition in the templating
|
|
72
|
+
// is then undefined and thus the button takes the default enabling, which is true!
|
|
73
|
+
|
|
74
|
+
var aApplicable = [],
|
|
75
|
+
aNotApplicable = [],
|
|
76
|
+
sDynamicActionEnabledPath = "".concat(oInternalModelContext.getPath(), "/dynamicActions/").concat(sAction, "/bEnabled");
|
|
77
|
+
|
|
78
|
+
if (typeof sProperty === "object" && sProperty !== null && sProperty !== undefined) {
|
|
79
|
+
if (oSelectedContext) {
|
|
80
|
+
var oContextData = oSelectedContext.getObject();
|
|
81
|
+
var oTransformedBinding = transformRecursively(sProperty, "PathInModel", // eslint-disable-next-line no-loop-func
|
|
82
|
+
function (oBindingExpression) {
|
|
83
|
+
return constant(oContextData[oBindingExpression.path]);
|
|
84
|
+
}, true);
|
|
85
|
+
var sResult = compileExpression(oTransformedBinding);
|
|
86
|
+
|
|
87
|
+
if (sResult === "true") {
|
|
88
|
+
oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
|
|
89
|
+
aApplicable.push(oSelectedContext);
|
|
90
|
+
} else {
|
|
91
|
+
aNotApplicable.push(oSelectedContext);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
CommonUtils.setDynamicActionContexts(oInternalModelContext, sAction, aApplicable, aNotApplicable);
|
|
96
|
+
} else {
|
|
97
|
+
var aRequestPromises = [];
|
|
98
|
+
|
|
99
|
+
var _oContextData = oSelectedContext.getObject();
|
|
100
|
+
|
|
101
|
+
if (sProperty === null && !!_oContextData["#".concat(sAction)]) {
|
|
102
|
+
//look for action advertisement if present and its value is not null
|
|
103
|
+
oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
|
|
104
|
+
} else {
|
|
105
|
+
// Collect promises to retrieve singleton or normal property value asynchronously
|
|
106
|
+
aRequestPromises.push(CommonUtils.requestProperty(oSelectedContext, sAction, sProperty, sDynamicActionEnabledPath));
|
|
107
|
+
} // When all property values have been retrieved, set
|
|
108
|
+
// The applicable and not-applicable selected contexts for each action and
|
|
109
|
+
// The enabled property of the dynamic action in internal model context.
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
return CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, aRequestPromises);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return {};
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
return ActionRuntime;
|
|
119
|
+
}, false);
|
|
120
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpb25SdW50aW1lIiwic2V0QWN0aW9uRW5hYmxlbWVudCIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsIm9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAiLCJhU2VsZWN0ZWRDb250ZXh0cyIsInNDb250cm9sIiwiYVByb21pc2VzIiwic0FjdGlvbiIsInNldFByb3BlcnR5Iiwic1Byb3BlcnR5IiwiaSIsImxlbmd0aCIsIm9TZWxlY3RlZENvbnRleHQiLCJvQ29udGV4dERhdGEiLCJnZXRPYmplY3QiLCJwdXNoIiwiX3NldEFjdGlvbkVuYWJsZW1lbnRGb3JUYWJsZSIsImJFbmFibGVkIiwiYUFwcGxpY2FibGUiLCJhTm90QXBwbGljYWJsZSIsIkNvbW1vblV0aWxzIiwic2V0Q29udGV4dHNCYXNlZE9uT3BlcmF0aW9uQXZhaWxhYmxlIiwiUHJvbWlzZSIsImFsbCIsInNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgiLCJnZXRQYXRoIiwidW5kZWZpbmVkIiwib1RyYW5zZm9ybWVkQmluZGluZyIsInRyYW5zZm9ybVJlY3Vyc2l2ZWx5Iiwib0JpbmRpbmdFeHByZXNzaW9uIiwiY29uc3RhbnQiLCJwYXRoIiwic1Jlc3VsdCIsImNvbXBpbGVFeHByZXNzaW9uIiwiZ2V0TW9kZWwiLCJzZXREeW5hbWljQWN0aW9uQ29udGV4dHMiLCJhUmVxdWVzdFByb21pc2VzIiwicmVxdWVzdFByb3BlcnR5Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBY3Rpb25SdW50aW1lLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGNvbXBpbGVFeHByZXNzaW9uLCBjb25zdGFudCwgdHJhbnNmb3JtUmVjdXJzaXZlbHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5jb25zdCBBY3Rpb25SdW50aW1lID0ge1xuXHQvKipcblx0ICogU2V0cyB0aGUgYWN0aW9uIGVuYWJsZW1lbnQuXG5cdCAqXG5cdCAqIEBmdW5jdGlvblxuXHQgKiBAbmFtZSBzZXRBY3Rpb25FbmFibGVtZW50XG5cdCAqIEBwYXJhbSBvSW50ZXJuYWxNb2RlbENvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgbW9kZWxcblx0ICogQHBhcmFtIG9BY3Rpb25PcGVyYXRpb25BdmFpbGFibGVNYXAgTWFwIGNvbnRhaW5pbmcgdGhlIG9wZXJhdGlvbiBhdmFpbGFiaWxpdHkgb2YgYWN0aW9uc1xuXHQgKiBAcGFyYW0gYVNlbGVjdGVkQ29udGV4dHMgQXJyYXkgY29udGFpbmluZyBzZWxlY3RlZCBjb250ZXh0cyBvZiB0aGUgY2hhcnRcblx0ICogQHBhcmFtIHNDb250cm9sIENvbnRyb2wgbmFtZVxuXHQgKiBAcmV0dXJucyBQcm9taXNlLmFsbChhUHJvbWlzZXMpXG5cdCAqIEB1aTUtcmVzdHJpY3RlZFxuXHQgKi9cblx0c2V0QWN0aW9uRW5hYmxlbWVudDogZnVuY3Rpb24gKFxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dDogSW50ZXJuYWxNb2RlbENvbnRleHQsXG5cdFx0b0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcDogYW55LFxuXHRcdGFTZWxlY3RlZENvbnRleHRzOiBhbnlbXSxcblx0XHRzQ29udHJvbDogc3RyaW5nXG5cdCkge1xuXHRcdGNvbnN0IGFQcm9taXNlcyA9IFtdO1xuXHRcdGZvciAoY29uc3Qgc0FjdGlvbiBpbiBvQWN0aW9uT3BlcmF0aW9uQXZhaWxhYmxlTWFwKSB7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoc0FjdGlvbiwgZmFsc2UpO1xuXHRcdFx0Y29uc3Qgc1Byb3BlcnR5ID0gb0FjdGlvbk9wZXJhdGlvbkF2YWlsYWJsZU1hcFtzQWN0aW9uXTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVNlbGVjdGVkQ29udGV4dHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qgb1NlbGVjdGVkQ29udGV4dCA9IGFTZWxlY3RlZENvbnRleHRzW2ldO1xuXHRcdFx0XHRpZiAob1NlbGVjdGVkQ29udGV4dCkge1xuXHRcdFx0XHRcdGNvbnN0IG9Db250ZXh0RGF0YSA9IG9TZWxlY3RlZENvbnRleHQuZ2V0T2JqZWN0KCk7XG5cdFx0XHRcdFx0aWYgKHNDb250cm9sID09PSBcImNoYXJ0XCIpIHtcblx0XHRcdFx0XHRcdGlmICgoc1Byb3BlcnR5ID09PSBudWxsICYmICEhb0NvbnRleHREYXRhW2AjJHtzQWN0aW9ufWBdKSB8fCBvU2VsZWN0ZWRDb250ZXh0LmdldE9iamVjdChzUHJvcGVydHkpKSB7XG5cdFx0XHRcdFx0XHRcdC8vbG9vayBmb3IgYWN0aW9uIGFkdmVydGlzZW1lbnQgaWYgcHJlc2VudCBhbmQgaXRzIHZhbHVlIGlzIG5vdCBudWxsXG5cdFx0XHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShzQWN0aW9uLCB0cnVlKTtcblx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiKSB7XG5cdFx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaCh0aGlzLl9zZXRBY3Rpb25FbmFibGVtZW50Rm9yVGFibGUob1NlbGVjdGVkQ29udGV4dCwgb0ludGVybmFsTW9kZWxDb250ZXh0LCBzQWN0aW9uLCBzUHJvcGVydHkpKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdGlmIChzQ29udHJvbCA9PT0gXCJ0YWJsZVwiICYmICFhU2VsZWN0ZWRDb250ZXh0cy5sZW5ndGgpIHtcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LnNldFByb3BlcnR5KGBkeW5hbWljQWN0aW9ucy8ke3NBY3Rpb259YCwge1xuXHRcdFx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdFx0XHRhQXBwbGljYWJsZTogW10sXG5cdFx0XHRcdFx0YU5vdEFwcGxpY2FibGU6IFtdXG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRhUHJvbWlzZXMucHVzaChDb21tb25VdGlscy5zZXRDb250ZXh0c0Jhc2VkT25PcGVyYXRpb25BdmFpbGFibGUob0ludGVybmFsTW9kZWxDb250ZXh0LCBbXSkpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoc0NvbnRyb2wgPT09IFwidGFibGVcIikge1xuXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG5cdFx0fVxuXHR9LFxuXHRfc2V0QWN0aW9uRW5hYmxlbWVudEZvclRhYmxlOiBmdW5jdGlvbiAob1NlbGVjdGVkQ29udGV4dDogYW55LCBvSW50ZXJuYWxNb2RlbENvbnRleHQ6IGFueSwgc0FjdGlvbjogc3RyaW5nLCBzUHJvcGVydHk6IGFueSkge1xuXHRcdC8vIFJlc2V0IGFsbCBwcm9wZXJ0aWVzIGJlZm9yZSBjb21wdXRhdGlvblxuXHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShgZHluYW1pY0FjdGlvbnMvJHtzQWN0aW9ufWAsIHtcblx0XHRcdGJFbmFibGVkOiBmYWxzZSxcblx0XHRcdGFBcHBsaWNhYmxlOiBbXSxcblx0XHRcdGFOb3RBcHBsaWNhYmxlOiBbXVxuXHRcdH0pO1xuXHRcdC8vIE5vdGUgdGhhdCBub24gZHluYW1pYyBhY3Rpb25zIGFyZSBub3QgcHJvY2Vzc2VkIGhlcmUuIFRoZXkgYXJlIGVuYWJsZWQgYmVjYXVzZVxuXHRcdC8vIG9uZSBvciBtb3JlIGFyZSBzZWxlY3RlZCBhbmQgdGhlIHNlY29uZCBwYXJ0IG9mIHRoZSBjb25kaXRpb24gaW4gdGhlIHRlbXBsYXRpbmdcblx0XHQvLyBpcyB0aGVuIHVuZGVmaW5lZCBhbmQgdGh1cyB0aGUgYnV0dG9uIHRha2VzIHRoZSBkZWZhdWx0IGVuYWJsaW5nLCB3aGljaCBpcyB0cnVlIVxuXHRcdGNvbnN0IGFBcHBsaWNhYmxlID0gW10sXG5cdFx0XHRhTm90QXBwbGljYWJsZSA9IFtdLFxuXHRcdFx0c0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCA9IGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2R5bmFtaWNBY3Rpb25zLyR7c0FjdGlvbn0vYkVuYWJsZWRgO1xuXHRcdGlmICh0eXBlb2Ygc1Byb3BlcnR5ID09PSBcIm9iamVjdFwiICYmIHNQcm9wZXJ0eSAhPT0gbnVsbCAmJiBzUHJvcGVydHkgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0aWYgKG9TZWxlY3RlZENvbnRleHQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdFx0Y29uc3Qgb1RyYW5zZm9ybWVkQmluZGluZyA9IHRyYW5zZm9ybVJlY3Vyc2l2ZWx5KFxuXHRcdFx0XHRcdHNQcm9wZXJ0eSxcblx0XHRcdFx0XHRcIlBhdGhJbk1vZGVsXCIsXG5cdFx0XHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWxvb3AtZnVuY1xuXHRcdFx0XHRcdGZ1bmN0aW9uIChvQmluZGluZ0V4cHJlc3Npb246IGFueSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGNvbnN0YW50KG9Db250ZXh0RGF0YVtvQmluZGluZ0V4cHJlc3Npb24ucGF0aF0pO1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dHJ1ZVxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCBzUmVzdWx0ID0gY29tcGlsZUV4cHJlc3Npb24ob1RyYW5zZm9ybWVkQmluZGluZyk7XG5cdFx0XHRcdGlmIChzUmVzdWx0ID09PSBcInRydWVcIikge1xuXHRcdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRNb2RlbCgpLnNldFByb3BlcnR5KHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgsIHRydWUpO1xuXHRcdFx0XHRcdGFBcHBsaWNhYmxlLnB1c2gob1NlbGVjdGVkQ29udGV4dCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0YU5vdEFwcGxpY2FibGUucHVzaChvU2VsZWN0ZWRDb250ZXh0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Q29tbW9uVXRpbHMuc2V0RHluYW1pY0FjdGlvbkNvbnRleHRzKG9JbnRlcm5hbE1vZGVsQ29udGV4dCwgc0FjdGlvbiwgYUFwcGxpY2FibGUsIGFOb3RBcHBsaWNhYmxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgYVJlcXVlc3RQcm9taXNlcyA9IFtdO1xuXHRcdFx0Y29uc3Qgb0NvbnRleHREYXRhID0gb1NlbGVjdGVkQ29udGV4dC5nZXRPYmplY3QoKTtcblx0XHRcdGlmIChzUHJvcGVydHkgPT09IG51bGwgJiYgISFvQ29udGV4dERhdGFbYCMke3NBY3Rpb259YF0pIHtcblx0XHRcdFx0Ly9sb29rIGZvciBhY3Rpb24gYWR2ZXJ0aXNlbWVudCBpZiBwcmVzZW50IGFuZCBpdHMgdmFsdWUgaXMgbm90IG51bGxcblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkuc2V0UHJvcGVydHkoc0R5bmFtaWNBY3Rpb25FbmFibGVkUGF0aCwgdHJ1ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQvLyBDb2xsZWN0IHByb21pc2VzIHRvIHJldHJpZXZlIHNpbmdsZXRvbiBvciBub3JtYWwgcHJvcGVydHkgdmFsdWUgYXN5bmNocm9ub3VzbHlcblx0XHRcdFx0YVJlcXVlc3RQcm9taXNlcy5wdXNoKENvbW1vblV0aWxzLnJlcXVlc3RQcm9wZXJ0eShvU2VsZWN0ZWRDb250ZXh0LCBzQWN0aW9uLCBzUHJvcGVydHksIHNEeW5hbWljQWN0aW9uRW5hYmxlZFBhdGgpKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gV2hlbiBhbGwgcHJvcGVydHkgdmFsdWVzIGhhdmUgYmVlbiByZXRyaWV2ZWQsIHNldFxuXHRcdFx0Ly8gVGhlIGFwcGxpY2FibGUgYW5kIG5vdC1hcHBsaWNhYmxlIHNlbGVjdGVkIGNvbnRleHRzIGZvciBlYWNoIGFjdGlvbiBhbmRcblx0XHRcdC8vIFRoZSBlbmFibGVkIHByb3BlcnR5IG9mIHRoZSBkeW5hbWljIGFjdGlvbiBpbiBpbnRlcm5hbCBtb2RlbCBjb250ZXh0LlxuXHRcdFx0cmV0dXJuIENvbW1vblV0aWxzLnNldENvbnRleHRzQmFzZWRPbk9wZXJhdGlvbkF2YWlsYWJsZShvSW50ZXJuYWxNb2RlbENvbnRleHQsIGFSZXF1ZXN0UHJvbWlzZXMpO1xuXHRcdH1cblx0XHRyZXR1cm4ge307XG5cdH1cbn07XG5leHBvcnQgZGVmYXVsdCBBY3Rpb25SdW50aW1lO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7OztFQUdBLElBQU1BLGFBQWEsR0FBRztJQUNyQjtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFDQ0MsbUJBQW1CLEVBQUUsVUFDcEJDLHFCQURvQixFQUVwQkMsNEJBRm9CLEVBR3BCQyxpQkFIb0IsRUFJcEJDLFFBSm9CLEVBS25CO01BQ0QsSUFBTUMsU0FBUyxHQUFHLEVBQWxCOztNQUNBLEtBQUssSUFBTUMsT0FBWCxJQUFzQkosNEJBQXRCLEVBQW9EO1FBQ25ERCxxQkFBcUIsQ0FBQ00sV0FBdEIsQ0FBa0NELE9BQWxDLEVBQTJDLEtBQTNDO1FBQ0EsSUFBTUUsU0FBUyxHQUFHTiw0QkFBNEIsQ0FBQ0ksT0FBRCxDQUE5Qzs7UUFDQSxLQUFLLElBQUlHLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdOLGlCQUFpQixDQUFDTyxNQUF0QyxFQUE4Q0QsQ0FBQyxFQUEvQyxFQUFtRDtVQUNsRCxJQUFNRSxnQkFBZ0IsR0FBR1IsaUJBQWlCLENBQUNNLENBQUQsQ0FBMUM7O1VBQ0EsSUFBSUUsZ0JBQUosRUFBc0I7WUFDckIsSUFBTUMsWUFBWSxHQUFHRCxnQkFBZ0IsQ0FBQ0UsU0FBakIsRUFBckI7O1lBQ0EsSUFBSVQsUUFBUSxLQUFLLE9BQWpCLEVBQTBCO2NBQ3pC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
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import CommonUtils from "sap/fe/core/CommonUtils";
|
|
2
|
+
import { compileExpression, constant, transformRecursively } from "sap/fe/core/helpers/BindingToolkit";
|
|
3
|
+
import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
|
|
4
|
+
const ActionRuntime = {
|
|
5
|
+
/**
|
|
6
|
+
* Sets the action enablement.
|
|
7
|
+
*
|
|
8
|
+
* @function
|
|
9
|
+
* @name setActionEnablement
|
|
10
|
+
* @param oInternalModelContext Object containing the context model
|
|
11
|
+
* @param oActionOperationAvailableMap Map containing the operation availability of actions
|
|
12
|
+
* @param aSelectedContexts Array containing selected contexts of the chart
|
|
13
|
+
* @param sControl Control name
|
|
14
|
+
* @returns Promise.all(aPromises)
|
|
15
|
+
* @ui5-restricted
|
|
16
|
+
*/
|
|
17
|
+
setActionEnablement: function (
|
|
18
|
+
oInternalModelContext: InternalModelContext,
|
|
19
|
+
oActionOperationAvailableMap: any,
|
|
20
|
+
aSelectedContexts: any[],
|
|
21
|
+
sControl: string
|
|
22
|
+
) {
|
|
23
|
+
const aPromises = [];
|
|
24
|
+
for (const sAction in oActionOperationAvailableMap) {
|
|
25
|
+
oInternalModelContext.setProperty(sAction, false);
|
|
26
|
+
const sProperty = oActionOperationAvailableMap[sAction];
|
|
27
|
+
for (let i = 0; i < aSelectedContexts.length; i++) {
|
|
28
|
+
const oSelectedContext = aSelectedContexts[i];
|
|
29
|
+
if (oSelectedContext) {
|
|
30
|
+
const oContextData = oSelectedContext.getObject();
|
|
31
|
+
if (sControl === "chart") {
|
|
32
|
+
if ((sProperty === null && !!oContextData[`#${sAction}`]) || oSelectedContext.getObject(sProperty)) {
|
|
33
|
+
//look for action advertisement if present and its value is not null
|
|
34
|
+
oInternalModelContext.setProperty(sAction, true);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
} else if (sControl === "table") {
|
|
38
|
+
aPromises.push(this._setActionEnablementForTable(oSelectedContext, oInternalModelContext, sAction, sProperty));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (sControl === "table" && !aSelectedContexts.length) {
|
|
43
|
+
oInternalModelContext.setProperty(`dynamicActions/${sAction}`, {
|
|
44
|
+
bEnabled: false,
|
|
45
|
+
aApplicable: [],
|
|
46
|
+
aNotApplicable: []
|
|
47
|
+
});
|
|
48
|
+
aPromises.push(CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, []));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (sControl === "table") {
|
|
52
|
+
return Promise.all(aPromises);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
_setActionEnablementForTable: function (oSelectedContext: any, oInternalModelContext: any, sAction: string, sProperty: any) {
|
|
56
|
+
// Reset all properties before computation
|
|
57
|
+
oInternalModelContext.setProperty(`dynamicActions/${sAction}`, {
|
|
58
|
+
bEnabled: false,
|
|
59
|
+
aApplicable: [],
|
|
60
|
+
aNotApplicable: []
|
|
61
|
+
});
|
|
62
|
+
// Note that non dynamic actions are not processed here. They are enabled because
|
|
63
|
+
// one or more are selected and the second part of the condition in the templating
|
|
64
|
+
// is then undefined and thus the button takes the default enabling, which is true!
|
|
65
|
+
const aApplicable = [],
|
|
66
|
+
aNotApplicable = [],
|
|
67
|
+
sDynamicActionEnabledPath = `${oInternalModelContext.getPath()}/dynamicActions/${sAction}/bEnabled`;
|
|
68
|
+
if (typeof sProperty === "object" && sProperty !== null && sProperty !== undefined) {
|
|
69
|
+
if (oSelectedContext) {
|
|
70
|
+
const oContextData = oSelectedContext.getObject();
|
|
71
|
+
const oTransformedBinding = transformRecursively(
|
|
72
|
+
sProperty,
|
|
73
|
+
"PathInModel",
|
|
74
|
+
// eslint-disable-next-line no-loop-func
|
|
75
|
+
function (oBindingExpression: any) {
|
|
76
|
+
return constant(oContextData[oBindingExpression.path]);
|
|
77
|
+
},
|
|
78
|
+
true
|
|
79
|
+
);
|
|
80
|
+
const sResult = compileExpression(oTransformedBinding);
|
|
81
|
+
if (sResult === "true") {
|
|
82
|
+
oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
|
|
83
|
+
aApplicable.push(oSelectedContext);
|
|
84
|
+
} else {
|
|
85
|
+
aNotApplicable.push(oSelectedContext);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
CommonUtils.setDynamicActionContexts(oInternalModelContext, sAction, aApplicable, aNotApplicable);
|
|
89
|
+
} else {
|
|
90
|
+
const aRequestPromises = [];
|
|
91
|
+
const oContextData = oSelectedContext.getObject();
|
|
92
|
+
if (sProperty === null && !!oContextData[`#${sAction}`]) {
|
|
93
|
+
//look for action advertisement if present and its value is not null
|
|
94
|
+
oInternalModelContext.getModel().setProperty(sDynamicActionEnabledPath, true);
|
|
95
|
+
} else {
|
|
96
|
+
// Collect promises to retrieve singleton or normal property value asynchronously
|
|
97
|
+
aRequestPromises.push(CommonUtils.requestProperty(oSelectedContext, sAction, sProperty, sDynamicActionEnabledPath));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// When all property values have been retrieved, set
|
|
101
|
+
// The applicable and not-applicable selected contexts for each action and
|
|
102
|
+
// The enabled property of the dynamic action in internal model context.
|
|
103
|
+
return CommonUtils.setContextsBasedOnOperationAvailable(oInternalModelContext, aRequestPromises);
|
|
104
|
+
}
|
|
105
|
+
return {};
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
export default ActionRuntime;
|