@sapui5/sap.fe.core 1.103.0 → 1.106.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/ActionRuntime.js +121 -0
- package/src/sap/fe/core/ActionRuntime.ts +122 -0
- package/src/sap/fe/core/AppComponent.js +24 -11
- package/src/sap/fe/core/AppComponent.ts +17 -5
- package/src/sap/fe/core/AppStateHandler.js +74 -62
- package/src/sap/fe/core/AppStateHandler.ts +24 -29
- package/src/sap/fe/core/BaseController.js +2 -2
- package/src/sap/fe/core/CommonUtils.js +147 -180
- package/src/sap/fe/core/CommonUtils.ts +166 -193
- package/src/sap/fe/core/ExtensionAPI.js +2 -2
- package/src/sap/fe/core/PageController.js +2 -2
- package/src/sap/fe/core/TemplateComponent.js +21 -10
- package/src/sap/fe/core/TemplateComponent.ts +3 -0
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/buildingBlocks/AttributeModel.js +11 -3
- package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +7 -1
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +194 -43
- package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +162 -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 -227
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +268 -119
- package/src/sap/fe/core/buildingBlocks/TraceInfo.js +111 -76
- package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +96 -76
- package/src/sap/fe/core/controllerextensions/BusyLocker.js +1 -1
- package/src/sap/fe/core/controllerextensions/EditFlow.js +723 -637
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +361 -398
- package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +2 -2
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +83 -55
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +42 -44
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +29 -27
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +35 -30
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +171 -74
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +167 -76
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +5 -21
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +2 -17
- package/src/sap/fe/core/controllerextensions/MassEdit.js +3 -3
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +1 -1
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +2 -2
- package/src/sap/fe/core/controllerextensions/PageReady.js +3 -3
- package/src/sap/fe/core/controllerextensions/PageReady.ts +5 -1
- package/src/sap/fe/core/controllerextensions/Paginator.js +13 -13
- package/src/sap/fe/core/controllerextensions/Paginator.ts +11 -11
- package/src/sap/fe/core/controllerextensions/Placeholder.js +2 -2
- package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
- package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
- package/src/sap/fe/core/controllerextensions/Share.js +154 -123
- package/src/sap/fe/core/controllerextensions/Share.ts +93 -95
- package/src/sap/fe/core/controllerextensions/SideEffects.js +157 -97
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +151 -95
- package/src/sap/fe/core/controllerextensions/ViewState.js +151 -80
- package/src/sap/fe/core/controllerextensions/ViewState.ts +95 -93
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +1 -1
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +9 -9
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +6 -7
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +26 -11
- package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +30 -11
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +57 -40
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +55 -47
- package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +31 -32
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1376 -914
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +654 -714
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +372 -326
- package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +210 -276
- 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 +670 -521
- package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +537 -535
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +85 -65
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +16 -21
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +25 -13
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +53 -43
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +18 -27
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +9 -15
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +19 -3
- package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +26 -16
- package/src/sap/fe/core/controls/Any.js +1 -1
- package/src/sap/fe/core/controls/CommandExecution.js +2 -2
- package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +5 -5
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +0 -3
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +1 -1
- package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
- package/src/sap/fe/core/controls/FileWrapper.js +8 -3
- package/src/sap/fe/core/controls/FileWrapper.ts +5 -1
- package/src/sap/fe/core/controls/FilterBar.js +2 -2
- package/src/sap/fe/core/controls/FormElementWrapper.js +2 -2
- package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -1
- package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +48 -17
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +2 -2
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +2 -2
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +3 -3
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +2 -2
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +1 -1
- package/src/sap/fe/core/converters/ConverterContext.js +23 -2
- package/src/sap/fe/core/converters/ConverterContext.ts +34 -9
- package/src/sap/fe/core/converters/ManifestSettings.js +19 -18
- package/src/sap/fe/core/converters/ManifestSettings.ts +53 -47
- package/src/sap/fe/core/converters/ManifestWrapper.js +1 -1
- package/src/sap/fe/core/converters/MetaModelConverter.js +32 -10
- package/src/sap/fe/core/converters/MetaModelConverter.ts +42 -19
- package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
- package/src/sap/fe/core/converters/annotations/DataField.js +5 -2
- package/src/sap/fe/core/converters/annotations/DataField.ts +5 -1
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +69 -23
- package/src/sap/fe/core/converters/controls/Common/Action.js +98 -51
- package/src/sap/fe/core/converters/controls/Common/Action.ts +121 -44
- package/src/sap/fe/core/converters/controls/Common/Chart.js +31 -34
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -34
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +43 -7
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -33
- package/src/sap/fe/core/converters/controls/Common/Form.js +8 -6
- package/src/sap/fe/core/converters/controls/Common/Form.ts +11 -14
- package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +16 -15
- package/src/sap/fe/core/converters/controls/Common/Table.js +188 -157
- package/src/sap/fe/core/converters/controls/Common/Table.ts +279 -230
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +4 -4
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +57 -21
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +71 -18
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +30 -8
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +24 -7
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -1
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +43 -34
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +37 -25
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +85 -49
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +74 -50
- package/src/sap/fe/core/converters/helpers/Aggregation.js +54 -4
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +56 -8
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +6 -4
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +10 -2
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +182 -0
- package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +167 -0
- package/src/sap/fe/core/converters/helpers/ID.js +3 -1
- package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
- package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -1
- package/src/sap/fe/core/converters/helpers/Key.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +2 -3
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +8 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +6 -9
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +31 -31
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +54 -47
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +44 -15
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +64 -30
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +1 -1
- package/src/sap/fe/core/formatters/CollaborationFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/StandardFormatter.js +13 -6
- package/src/sap/fe/core/formatters/StandardFormatter.ts +20 -14
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- 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 +5 -4
- package/src/sap/fe/core/helpers/AppStartupHelper.ts +4 -3
- package/src/sap/fe/core/helpers/BindingToolkit.js +56 -24
- package/src/sap/fe/core/helpers/BindingToolkit.ts +67 -21
- package/src/sap/fe/core/helpers/ClassSupport.js +31 -3
- package/src/sap/fe/core/helpers/ClassSupport.ts +24 -1
- package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -1
- package/src/sap/fe/core/helpers/EditState.js +1 -1
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -1
- package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveHelper.js +1 -1
- package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -1
- package/src/sap/fe/core/helpers/LoaderUtils.js +39 -0
- package/src/sap/fe/core/helpers/LoaderUtils.ts +14 -0
- package/src/sap/fe/core/helpers/MassEditHelper.js +475 -99
- package/src/sap/fe/core/helpers/MassEditHelper.ts +468 -155
- 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 +1 -1
- package/src/sap/fe/core/helpers/PasteHelper.js +1 -1
- package/src/sap/fe/core/helpers/SemanticDateOperators.js +82 -36
- package/src/sap/fe/core/helpers/SemanticDateOperators.ts +52 -36
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
- package/src/sap/fe/core/helpers/SideEffectsHelper.js +146 -0
- package/src/sap/fe/core/helpers/SideEffectsHelper.ts +128 -0
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- 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 +119 -0
- package/src/sap/fe/core/jsx-runtime/jsx-control.ts +98 -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 +2 -2
- package/src/sap/fe/core/library.support.js +1 -1
- package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +4 -41
- package/src/sap/fe/core/messagebundle_ar.properties +22 -45
- package/src/sap/fe/core/messagebundle_bg.properties +22 -45
- package/src/sap/fe/core/messagebundle_ca.properties +22 -45
- package/src/sap/fe/core/messagebundle_cs.properties +22 -45
- package/src/sap/fe/core/messagebundle_cy.properties +21 -44
- package/src/sap/fe/core/messagebundle_da.properties +22 -45
- package/src/sap/fe/core/messagebundle_de.properties +22 -45
- package/src/sap/fe/core/messagebundle_el.properties +22 -45
- package/src/sap/fe/core/messagebundle_en.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_GB.properties +21 -44
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +21 -42
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +20 -40
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +21 -42
- package/src/sap/fe/core/messagebundle_es.properties +22 -45
- package/src/sap/fe/core/messagebundle_es_MX.properties +22 -45
- package/src/sap/fe/core/messagebundle_et.properties +22 -45
- package/src/sap/fe/core/messagebundle_fi.properties +22 -45
- package/src/sap/fe/core/messagebundle_fr.properties +21 -44
- package/src/sap/fe/core/messagebundle_fr_CA.properties +20 -43
- package/src/sap/fe/core/messagebundle_hi.properties +22 -45
- package/src/sap/fe/core/messagebundle_hr.properties +22 -45
- package/src/sap/fe/core/messagebundle_hu.properties +22 -45
- package/src/sap/fe/core/messagebundle_id.properties +22 -45
- package/src/sap/fe/core/messagebundle_it.properties +22 -45
- package/src/sap/fe/core/messagebundle_iw.properties +22 -45
- package/src/sap/fe/core/messagebundle_ja.properties +22 -45
- package/src/sap/fe/core/messagebundle_kk.properties +22 -45
- package/src/sap/fe/core/messagebundle_ko.properties +27 -50
- package/src/sap/fe/core/messagebundle_lt.properties +22 -45
- package/src/sap/fe/core/messagebundle_lv.properties +22 -45
- package/src/sap/fe/core/messagebundle_ms.properties +22 -45
- package/src/sap/fe/core/messagebundle_nl.properties +24 -47
- package/src/sap/fe/core/messagebundle_no.properties +22 -45
- package/src/sap/fe/core/messagebundle_pl.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt.properties +23 -46
- package/src/sap/fe/core/messagebundle_pt_PT.properties +22 -45
- package/src/sap/fe/core/messagebundle_ro.properties +22 -45
- package/src/sap/fe/core/messagebundle_ru.properties +22 -45
- package/src/sap/fe/core/messagebundle_sh.properties +22 -45
- package/src/sap/fe/core/messagebundle_sk.properties +22 -45
- package/src/sap/fe/core/messagebundle_sl.properties +22 -45
- package/src/sap/fe/core/messagebundle_sv.properties +22 -45
- package/src/sap/fe/core/messagebundle_th.properties +20 -43
- package/src/sap/fe/core/messagebundle_tr.properties +22 -45
- package/src/sap/fe/core/messagebundle_uk.properties +22 -45
- package/src/sap/fe/core/messagebundle_vi.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_CN.properties +22 -45
- package/src/sap/fe/core/messagebundle_zh_TW.properties +22 -45
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +102 -74
- package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +62 -63
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +2 -2
- package/src/sap/fe/core/services/NavigationServiceFactory.js +11 -8
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +10 -7
- package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
- package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -2
- package/src/sap/fe/core/services/ShellServicesFactory.js +22 -2
- package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -0
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +4 -4
- package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +2 -2
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +251 -200
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +160 -144
- 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 +1 -1
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +1 -1
- package/src/sap/fe/core/templating/CommonFormatters.js +4 -3
- package/src/sap/fe/core/templating/CommonFormatters.ts +5 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +8 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +5 -2
- package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
- package/src/sap/fe/core/templating/EntitySetHelper.js +4 -5
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -3
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +34 -15
- package/src/sap/fe/core/templating/FilterHelper.ts +28 -12
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +1 -1
- package/src/sap/fe/core/templating/UIFormatters.js +5 -3
- package/src/sap/fe/core/templating/UIFormatters.ts +7 -5
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +2 -2
- package/src/sap/fe/core/type/Email.js +2 -2
|
@@ -28,16 +28,23 @@ type FieldEventPropertyType = {
|
|
|
28
28
|
sideEffectsMap: FieldSideEffectDictionary;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
|
-
type
|
|
31
|
+
type BaseSideEffectPropertyType = {
|
|
32
32
|
name: string;
|
|
33
33
|
immediate?: boolean;
|
|
34
|
-
context: Context;
|
|
35
34
|
sideEffects: SideEffectsType;
|
|
36
35
|
previouslyFailed?: boolean;
|
|
37
36
|
};
|
|
38
37
|
|
|
38
|
+
export type MassEditFieldSideEffectPropertyType = BaseSideEffectPropertyType;
|
|
39
|
+
|
|
40
|
+
export type FieldSideEffectPropertyType = BaseSideEffectPropertyType & {
|
|
41
|
+
context: Context;
|
|
42
|
+
};
|
|
43
|
+
|
|
39
44
|
type FieldSideEffectDictionary = Record<string, FieldSideEffectPropertyType>;
|
|
40
45
|
|
|
46
|
+
type MassEditFieldSideEffectDictionary = Record<string, MassEditFieldSideEffectPropertyType>;
|
|
47
|
+
|
|
41
48
|
type FailedSideEffectDictionary = Record<string, SideEffectsType[]>;
|
|
42
49
|
|
|
43
50
|
type FieldGroupSideEffectType = {
|
|
@@ -96,6 +103,12 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
96
103
|
return this._mFailedSideEffects;
|
|
97
104
|
}
|
|
98
105
|
|
|
106
|
+
@publicExtension()
|
|
107
|
+
@finalExtension()
|
|
108
|
+
public deleteFailedRequestsForAContext(contextPath: string) {
|
|
109
|
+
delete this._mFailedSideEffects[contextPath];
|
|
110
|
+
}
|
|
111
|
+
|
|
99
112
|
/**
|
|
100
113
|
* Manages the workflow for SideEffects with related changes to a field
|
|
101
114
|
* The following scenarios are managed:
|
|
@@ -139,9 +152,9 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
139
152
|
|
|
140
153
|
aImmediateSideEffectsProperties
|
|
141
154
|
.filter((mImmediateSideEffects) => mImmediateSideEffects.previouslyFailed === true)
|
|
142
|
-
.forEach((mImmediateSideEffects) =>
|
|
143
|
-
this._addFailedSideEffects(mImmediateSideEffects.sideEffects, mImmediateSideEffects.context)
|
|
144
|
-
);
|
|
155
|
+
.forEach((mImmediateSideEffects) => {
|
|
156
|
+
this._addFailedSideEffects(mImmediateSideEffects.sideEffects, mImmediateSideEffects.context);
|
|
157
|
+
});
|
|
145
158
|
}
|
|
146
159
|
});
|
|
147
160
|
}
|
|
@@ -261,32 +274,38 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
261
274
|
* @name requestSideEffects
|
|
262
275
|
* @param oSideEffects SideEffects to be executed
|
|
263
276
|
* @param oContext Context where SideEffects need to be executed
|
|
277
|
+
* @param groupId
|
|
278
|
+
* @param fnGetTargets The callback function which will give us the targets and actions if it was coming through some specific handling.
|
|
264
279
|
* @returns SideEffects request on SAPUI5 context
|
|
265
280
|
*/
|
|
266
281
|
@publicExtension()
|
|
267
282
|
@finalExtension()
|
|
268
|
-
public requestSideEffects(
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
283
|
+
public async requestSideEffects(
|
|
284
|
+
oSideEffects: SideEffectsType,
|
|
285
|
+
oContext: Context,
|
|
286
|
+
groupId?: string,
|
|
287
|
+
fnGetTargets?: Function
|
|
288
|
+
): Promise<any> {
|
|
289
|
+
let aTargets: any[], sTriggerAction;
|
|
290
|
+
if (fnGetTargets) {
|
|
291
|
+
const targetsAndActionData = await fnGetTargets(oSideEffects);
|
|
292
|
+
aTargets = targetsAndActionData["aTargets"];
|
|
293
|
+
sTriggerAction = targetsAndActionData["TriggerAction"];
|
|
294
|
+
} else {
|
|
295
|
+
aTargets = ((oSideEffects.TargetEntities as any[]) || []).concat((oSideEffects.TargetProperties as any[]) || []);
|
|
296
|
+
sTriggerAction = (oSideEffects as ODataSideEffectsType).TriggerAction;
|
|
297
|
+
}
|
|
277
298
|
if (sTriggerAction) {
|
|
278
|
-
this._oSideEffectsService.executeAction(sTriggerAction, oContext);
|
|
299
|
+
this._oSideEffectsService.executeAction(sTriggerAction, oContext, groupId);
|
|
279
300
|
}
|
|
280
301
|
|
|
281
|
-
|
|
282
|
-
.requestSideEffects(aTargets, oContext)
|
|
283
|
-
.then(() => fResolver())
|
|
284
|
-
.catch((oError: any) => {
|
|
302
|
+
if (aTargets.length) {
|
|
303
|
+
return this._oSideEffectsService.requestSideEffects(aTargets, oContext, groupId).catch((oError: any) => {
|
|
285
304
|
this._addFailedSideEffects(oSideEffects, oContext);
|
|
286
|
-
|
|
305
|
+
return Promise.reject(oError);
|
|
287
306
|
});
|
|
288
|
-
|
|
289
|
-
return
|
|
307
|
+
}
|
|
308
|
+
return Promise.resolve();
|
|
290
309
|
}
|
|
291
310
|
|
|
292
311
|
/**
|
|
@@ -319,6 +338,7 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
319
338
|
@finalExtension()
|
|
320
339
|
private _addFailedSideEffects(oSideEffects: SideEffectsType, oContext: Context): void {
|
|
321
340
|
const sContextPath: string = oContext.getPath();
|
|
341
|
+
|
|
322
342
|
this._mFailedSideEffects[sContextPath] = this._mFailedSideEffects[sContextPath] || [];
|
|
323
343
|
const bIsNotAlreadyListed = this._mFailedSideEffects[sContextPath].every(
|
|
324
344
|
(mFailedSideEffects) => oSideEffects.fullyQualifiedName !== mFailedSideEffects.fullyQualifiedName
|
|
@@ -418,27 +438,24 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
418
438
|
|
|
419
439
|
/**
|
|
420
440
|
* Gets the appropriate context on which SideEffects can be requested.
|
|
421
|
-
*
|
|
441
|
+
* The correct one must have the binding parameter $$patchWithoutSideEffects.
|
|
422
442
|
*
|
|
423
|
-
* @
|
|
424
|
-
* @
|
|
425
|
-
* @
|
|
426
|
-
* @param sSideEffectEntityType Target entity type of the SideEffects annotation
|
|
427
|
-
* @returns SAPUI5 Context
|
|
443
|
+
* @param oBindingContext
|
|
444
|
+
* @param sSideEffectEntityType
|
|
445
|
+
* @returns SAPUI5 Context or undefined
|
|
428
446
|
*/
|
|
429
|
-
@
|
|
447
|
+
@publicExtension()
|
|
430
448
|
@finalExtension()
|
|
431
|
-
|
|
432
|
-
const oBindingContext = oSourceField.getBindingContext();
|
|
449
|
+
public getContextForSideEffects(oBindingContext: any, sSideEffectEntityType: string): Context | undefined {
|
|
433
450
|
let oContextForSideEffects = oBindingContext,
|
|
434
451
|
sEntityType = this._oSideEffectsService.getEntityTypeFromContext(oBindingContext);
|
|
435
452
|
|
|
436
453
|
if (sSideEffectEntityType !== sEntityType) {
|
|
437
|
-
oContextForSideEffects =
|
|
454
|
+
oContextForSideEffects = oBindingContext.getBinding().getContext();
|
|
438
455
|
if (oContextForSideEffects) {
|
|
439
456
|
sEntityType = this._oSideEffectsService.getEntityTypeFromContext(oContextForSideEffects);
|
|
440
457
|
if (sSideEffectEntityType !== sEntityType) {
|
|
441
|
-
oContextForSideEffects =
|
|
458
|
+
oContextForSideEffects = oContextForSideEffects.getBinding().getContext();
|
|
442
459
|
if (oContextForSideEffects) {
|
|
443
460
|
sEntityType = this._oSideEffectsService.getEntityTypeFromContext(oContextForSideEffects);
|
|
444
461
|
if (sSideEffectEntityType !== sEntityType) {
|
|
@@ -474,10 +491,10 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
474
491
|
*/
|
|
475
492
|
private _getFieldPromise(oEvent: Event): Promise<any> {
|
|
476
493
|
const promise = oEvent.getParameter("promise") || Promise.resolve();
|
|
477
|
-
|
|
494
|
+
const validity = FieldRuntime.getFieldStateOnChange(oEvent).state.validity;
|
|
478
495
|
return promise.then(() => {
|
|
479
496
|
return new Promise(function (resolve, reject) {
|
|
480
|
-
if (!
|
|
497
|
+
if (!validity) {
|
|
481
498
|
reject();
|
|
482
499
|
} else {
|
|
483
500
|
resolve(true);
|
|
@@ -516,34 +533,15 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
516
533
|
* @returns SideEffects map
|
|
517
534
|
*/
|
|
518
535
|
private _getFieldSideEffectsMap(oField: FieldControl): FieldSideEffectDictionary {
|
|
519
|
-
|
|
520
|
-
|
|
536
|
+
let mSideEffectsMap: FieldSideEffectDictionary = {};
|
|
537
|
+
const aFieldGroupIds: string[] = oField.getFieldGroupIds(),
|
|
521
538
|
sViewEntitySetSetName = this._oView.getViewData().entitySet,
|
|
522
539
|
oViewEntitySet = (this._oSideEffectsService.getConvertedMetaModel() as ConvertedMetadata).entitySets.find((oEntitySet) => {
|
|
523
540
|
return oEntitySet.name === sViewEntitySetSetName;
|
|
524
541
|
});
|
|
525
542
|
|
|
526
543
|
// SideEffects coming from an OData Service
|
|
527
|
-
|
|
528
|
-
const bIsImmediate: boolean = sFieldGroupId.indexOf("$$ImmediateRequest") !== -1,
|
|
529
|
-
sName: string = sFieldGroupId.replace("$$ImmediateRequest", ""),
|
|
530
|
-
aSideEffectParts: string[] = sName.split("#"),
|
|
531
|
-
sSideEffectEntityType: string = aSideEffectParts[0],
|
|
532
|
-
sSideEffectPath: string = `${sSideEffectEntityType}@com.sap.vocabularies.Common.v1.SideEffects${
|
|
533
|
-
aSideEffectParts.length === 2 ? `#${aSideEffectParts[1]}` : ""
|
|
534
|
-
}`,
|
|
535
|
-
oSideEffect: SideEffectsType | undefined =
|
|
536
|
-
this._oSideEffectsService.getODataEntitySideEffects(sSideEffectEntityType)?.[sSideEffectPath],
|
|
537
|
-
oContext: Context | undefined = this._getContextForSideEffects(oField, sSideEffectEntityType);
|
|
538
|
-
if (oSideEffect && oContext) {
|
|
539
|
-
mSideEffectsMap[sName] = {
|
|
540
|
-
name: sName,
|
|
541
|
-
immediate: bIsImmediate,
|
|
542
|
-
sideEffects: oSideEffect,
|
|
543
|
-
context: oContext
|
|
544
|
-
};
|
|
545
|
-
}
|
|
546
|
-
});
|
|
544
|
+
mSideEffectsMap = this.generateSideEffectsMapFromSideEffectId(aFieldGroupIds, oField) as FieldSideEffectDictionary;
|
|
547
545
|
|
|
548
546
|
//SideEffects coming from control(s)
|
|
549
547
|
if (sViewEntitySetSetName && oViewEntitySet) {
|
|
@@ -551,7 +549,7 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
551
549
|
mFieldPath: any = (oField.getAggregation("customData") as any[]).find((oCustomData) => {
|
|
552
550
|
return oCustomData.getKey() === "sourcePath";
|
|
553
551
|
}),
|
|
554
|
-
oContext: Context | undefined = this.
|
|
552
|
+
oContext: Context | undefined = this.getContextForSideEffects(oField.getBindingContext(), sViewEntityType);
|
|
555
553
|
|
|
556
554
|
if (mFieldPath && oContext) {
|
|
557
555
|
const sFieldPath = mFieldPath.getValue().replace(`/${sViewEntitySetSetName}/`, ""),
|
|
@@ -575,6 +573,62 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
575
573
|
return mSideEffectsMap;
|
|
576
574
|
}
|
|
577
575
|
|
|
576
|
+
/**
|
|
577
|
+
* Get side effect Name, sideeffect obj and entity type from a given fieldGroupId.
|
|
578
|
+
*
|
|
579
|
+
* @param sFieldGroupId
|
|
580
|
+
* @returns Data about sideeffect name, entitytype, side effect object and if it is immediate.
|
|
581
|
+
*/
|
|
582
|
+
private _getDataToGenerateSideEffectsMapFromSideEffectId(sFieldGroupId: any) {
|
|
583
|
+
const bIsImmediate: boolean = sFieldGroupId.indexOf("$$ImmediateRequest") !== -1,
|
|
584
|
+
sName: string = sFieldGroupId.replace("$$ImmediateRequest", ""),
|
|
585
|
+
aSideEffectParts: string[] = sName.split("#"),
|
|
586
|
+
sSideEffectEntityType: string = aSideEffectParts[0],
|
|
587
|
+
sSideEffectPath: string = `${sSideEffectEntityType}@com.sap.vocabularies.Common.v1.SideEffects${
|
|
588
|
+
aSideEffectParts.length === 2 ? `#${aSideEffectParts[1]}` : ""
|
|
589
|
+
}`,
|
|
590
|
+
oSideEffect: SideEffectsType | undefined =
|
|
591
|
+
this._oSideEffectsService.getODataEntitySideEffects(sSideEffectEntityType)?.[sSideEffectPath];
|
|
592
|
+
return { sName, bIsImmediate, oSideEffect, sSideEffectEntityType };
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/**
|
|
596
|
+
* Generate the side effects map from id which is the entity and qualifier
|
|
597
|
+
* for the given entity.
|
|
598
|
+
*
|
|
599
|
+
* @function
|
|
600
|
+
* @param aFieldGroupIds
|
|
601
|
+
* @param oField
|
|
602
|
+
* @returns Side effect map with data
|
|
603
|
+
*/
|
|
604
|
+
|
|
605
|
+
@publicExtension()
|
|
606
|
+
@finalExtension()
|
|
607
|
+
public generateSideEffectsMapFromSideEffectId(
|
|
608
|
+
aFieldGroupIds: string[],
|
|
609
|
+
oField?: FieldControl
|
|
610
|
+
): MassEditFieldSideEffectDictionary | FieldSideEffectDictionary {
|
|
611
|
+
const mSideEffectsMap: MassEditFieldSideEffectDictionary | FieldSideEffectDictionary = {};
|
|
612
|
+
aFieldGroupIds.forEach((sFieldGroupId: any) => {
|
|
613
|
+
const { sName, bIsImmediate, oSideEffect, sSideEffectEntityType } =
|
|
614
|
+
this._getDataToGenerateSideEffectsMapFromSideEffectId(sFieldGroupId);
|
|
615
|
+
const oContext: Context | undefined = oField
|
|
616
|
+
? this.getContextForSideEffects(oField.getBindingContext(), sSideEffectEntityType)
|
|
617
|
+
: undefined;
|
|
618
|
+
if (oSideEffect && (!oField || (oField && oContext))) {
|
|
619
|
+
mSideEffectsMap[sName] = {
|
|
620
|
+
name: sName,
|
|
621
|
+
immediate: bIsImmediate,
|
|
622
|
+
sideEffects: oSideEffect
|
|
623
|
+
};
|
|
624
|
+
if (oField) {
|
|
625
|
+
(mSideEffectsMap[sName] as FieldSideEffectPropertyType).context = oContext!;
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
});
|
|
629
|
+
return mSideEffectsMap;
|
|
630
|
+
}
|
|
631
|
+
|
|
578
632
|
/**
|
|
579
633
|
* Manages the SideEffects with related changes to a field
|
|
580
634
|
* List: gets immediate SideEffects requests
|
|
@@ -599,45 +653,47 @@ class SideEffectsControllerExtension extends ControllerExtension {
|
|
|
599
653
|
|
|
600
654
|
Object.keys(mFieldSideEffectsMap).forEach((sSideEffectName) => {
|
|
601
655
|
const oSideEffectProperty: FieldSideEffectPropertyType = mFieldSideEffectsMap[sSideEffectName],
|
|
602
|
-
sSideEffectContextPath = oSideEffectProperty.context
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
if (oSideEffectProperty.immediate) {
|
|
620
|
-
// SideEffects will be executed immediately after event promise validation
|
|
621
|
-
if (!mFailedSideEffectsName[sSideEffectContextPath]?.[oSideEffectProperty.sideEffects.fullyQualifiedName]) {
|
|
622
|
-
aImmediateSideEffectsProperties.push({
|
|
623
|
-
name: sSideEffectName,
|
|
624
|
-
sideEffects: oSideEffectProperty.sideEffects,
|
|
625
|
-
context: oSideEffectProperty.context
|
|
656
|
+
sSideEffectContextPath = oSideEffectProperty.context?.getPath();
|
|
657
|
+
if (sSideEffectContextPath) {
|
|
658
|
+
const aFailedSideEffects = this._mFailedSideEffects[sSideEffectContextPath];
|
|
659
|
+
|
|
660
|
+
if (aFailedSideEffects) {
|
|
661
|
+
delete this._mFailedSideEffects[sSideEffectContextPath];
|
|
662
|
+
mFailedSideEffectsName[sSideEffectContextPath] = {};
|
|
663
|
+
aFailedSideEffects.forEach((mFailedSideEffects: any) => {
|
|
664
|
+
mFailedSideEffectsName[sSideEffectContextPath][mFailedSideEffects.fullyQualifiedName] = true;
|
|
665
|
+
aImmediateSideEffectsProperties.push({
|
|
666
|
+
name: sSideEffectName,
|
|
667
|
+
previouslyFailed: true,
|
|
668
|
+
sideEffects: mFailedSideEffects,
|
|
669
|
+
context: oSideEffectProperty.context
|
|
670
|
+
});
|
|
626
671
|
});
|
|
627
672
|
}
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
673
|
+
|
|
674
|
+
if (oSideEffectProperty.immediate) {
|
|
675
|
+
// SideEffects will be executed immediately after event promise validation
|
|
676
|
+
if (!mFailedSideEffectsName[sSideEffectContextPath]?.[oSideEffectProperty.sideEffects.fullyQualifiedName]) {
|
|
677
|
+
aImmediateSideEffectsProperties.push({
|
|
678
|
+
name: sSideEffectName,
|
|
679
|
+
sideEffects: oSideEffectProperty.sideEffects,
|
|
680
|
+
context: oSideEffectProperty.context
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
} else {
|
|
684
|
+
// Add deferred SideEffects to the related dictionary
|
|
685
|
+
this._mFieldGroupQueue[sSideEffectName] = this._mFieldGroupQueue[sSideEffectName] || {};
|
|
686
|
+
const mSideEffectContextPath = this._mFieldGroupQueue[sSideEffectName][sSideEffectContextPath] || {
|
|
687
|
+
promises: [],
|
|
688
|
+
sideEffectProperty: oSideEffectProperty,
|
|
689
|
+
processStarted: false
|
|
690
|
+
};
|
|
691
|
+
mSideEffectContextPath.promises = mSideEffectContextPath.promises.concat([
|
|
692
|
+
oFieldPromiseForFieldGroup,
|
|
693
|
+
oFieldGroupPreRequisite as Promise<any>
|
|
694
|
+
]);
|
|
695
|
+
this._mFieldGroupQueue[sSideEffectName][sSideEffectContextPath] = mSideEffectContextPath;
|
|
696
|
+
}
|
|
641
697
|
}
|
|
642
698
|
});
|
|
643
699
|
return aImmediateSideEffectsProperties;
|