@sapui5/sap.fe.core 1.101.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 +66 -30
- package/src/sap/fe/core/AppComponent.ts +68 -51
- package/src/sap/fe/core/AppStateHandler.js +13 -13
- package/src/sap/fe/core/AppStateHandler.ts +18 -18
- 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 +279 -188
- package/src/sap/fe/core/CommonUtils.ts +306 -215
- package/src/sap/fe/core/ExtensionAPI.js +25 -30
- package/src/sap/fe/core/ExtensionAPI.ts +37 -41
- package/src/sap/fe/core/PageController.js +12 -7
- package/src/sap/fe/core/PageController.ts +10 -5
- package/src/sap/fe/core/TemplateComponent.js +6 -6
- package/src/sap/fe/core/TemplateComponent.ts +11 -11
- package/src/sap/fe/core/TemplateModel.js +2 -2
- package/src/sap/fe/core/TemplateModel.ts +3 -3
- 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 +306 -78
- package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +280 -70
- 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/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
- package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
- package/src/sap/fe/core/controllerextensions/EditFlow.js +351 -229
- package/src/sap/fe/core/controllerextensions/EditFlow.ts +321 -246
- 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 +59 -34
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -45
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +72 -72
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +82 -80
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +152 -131
- package/src/sap/fe/core/controllerextensions/InternalRouting.ts +171 -152
- 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 +11 -10
- package/src/sap/fe/core/controllerextensions/MassEdit.ts +31 -37
- package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
- package/src/sap/fe/core/controllerextensions/MessageHandler.ts +30 -15
- 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 +19 -11
- package/src/sap/fe/core/controllerextensions/Paginator.ts +22 -14
- 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 +39 -21
- package/src/sap/fe/core/controllerextensions/Share.ts +45 -26
- package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +58 -62
- package/src/sap/fe/core/controllerextensions/ViewState.js +75 -62
- package/src/sap/fe/core/controllerextensions/ViewState.ts +78 -63
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +99 -0
- package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +58 -112
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.js +2 -2
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +7 -7
- package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +262 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +20 -21
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ManageDialog.fragment.xml +0 -0
- package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
- package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1631 -0
- package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +270 -211
- package/src/sap/fe/core/controllerextensions/editFlow/draft.js +772 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +240 -100
- package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1199 -0
- package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +364 -229
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +188 -0
- package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +185 -0
- package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +626 -0
- package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +112 -69
- package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +937 -0
- package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +72 -73
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
- 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 +21 -24
- package/src/sap/fe/core/controls/CommandExecution.ts +19 -24
- 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 +48 -43
- package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +51 -46
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
- package/src/sap/fe/core/controls/CustomQuickViewPage.ts +3 -2
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +11 -3
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +19 -9
- package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +14 -8
- 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 +50 -3
- package/src/sap/fe/core/controls/FileWrapper.ts +45 -12
- 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 +12 -2
- package/src/sap/fe/core/controls/FormElementWrapper.ts +14 -3
- package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
- package/src/sap/fe/core/controls/MassEditSelect.ts +41 -0
- 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 +48 -48
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +71 -76
- package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +36 -65
- package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +551 -36
- package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +605 -36
- 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 +2 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +17 -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 +56 -67
- package/src/sap/fe/core/converters/MetaModelConverter.ts +183 -193
- 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 +73 -37
- package/src/sap/fe/core/converters/annotations/DataField.ts +121 -77
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
- package/src/sap/fe/core/converters/controls/Common/Action.js +51 -49
- package/src/sap/fe/core/converters/controls/Common/Action.ts +58 -54
- package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -15
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +29 -27
- 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 +30 -34
- package/src/sap/fe/core/converters/controls/Common/Form.ts +48 -58
- 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 +318 -244
- package/src/sap/fe/core/converters/controls/Common/Table.ts +368 -297
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +135 -125
- package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +162 -148
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +51 -45
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +79 -67
- 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 +92 -89
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +124 -120
- package/src/sap/fe/core/converters/helpers/Aggregation.js +11 -5
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +25 -23
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -30
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +31 -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 +56 -55
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +65 -77
- package/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -6
- package/src/sap/fe/core/designtime/AppComponent.designtime.ts +10 -8
- 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 +83 -22
- package/src/sap/fe/core/formatters/TableFormatter.ts +80 -25
- 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 +2 -2
- package/src/sap/fe/core/fpm/Component.ts +1 -1
- 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} +388 -285
- package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
- package/src/sap/fe/core/helpers/ClassSupport.ts +15 -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 +3 -2
- package/src/sap/fe/core/helpers/FPMHelper.ts +10 -9
- 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 +532 -264
- package/src/sap/fe/core/helpers/MassEditHelper.ts +560 -289
- package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
- package/src/sap/fe/core/helpers/ModelHelper.ts +50 -58
- 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 +16 -12
- package/src/sap/fe/core/helpers/StableIdHelper.ts +20 -16
- package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
- package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
- 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 +51 -3
- package/src/sap/fe/core/library.ts +47 -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 +151 -197
- package/src/sap/fe/core/messagebundle_ar.properties +36 -63
- package/src/sap/fe/core/messagebundle_bg.properties +36 -63
- package/src/sap/fe/core/messagebundle_ca.properties +36 -63
- package/src/sap/fe/core/messagebundle_cs.properties +36 -63
- package/src/sap/fe/core/messagebundle_cy.properties +36 -63
- package/src/sap/fe/core/messagebundle_da.properties +37 -64
- package/src/sap/fe/core/messagebundle_de.properties +36 -63
- package/src/sap/fe/core/messagebundle_el.properties +38 -65
- package/src/sap/fe/core/messagebundle_en.properties +37 -64
- package/src/sap/fe/core/messagebundle_en_GB.properties +37 -64
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +44 -73
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +37 -64
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +52 -81
- package/src/sap/fe/core/messagebundle_es.properties +36 -63
- package/src/sap/fe/core/messagebundle_es_MX.properties +36 -63
- package/src/sap/fe/core/messagebundle_et.properties +36 -63
- package/src/sap/fe/core/messagebundle_fi.properties +36 -63
- package/src/sap/fe/core/messagebundle_fr.properties +39 -66
- package/src/sap/fe/core/messagebundle_fr_CA.properties +36 -63
- package/src/sap/fe/core/messagebundle_hi.properties +36 -63
- package/src/sap/fe/core/messagebundle_hr.properties +36 -63
- package/src/sap/fe/core/messagebundle_hu.properties +35 -62
- package/src/sap/fe/core/messagebundle_id.properties +37 -64
- package/src/sap/fe/core/messagebundle_it.properties +54 -81
- package/src/sap/fe/core/messagebundle_iw.properties +36 -63
- package/src/sap/fe/core/messagebundle_ja.properties +36 -63
- package/src/sap/fe/core/messagebundle_kk.properties +36 -63
- package/src/sap/fe/core/messagebundle_ko.properties +36 -63
- package/src/sap/fe/core/messagebundle_lt.properties +36 -63
- package/src/sap/fe/core/messagebundle_lv.properties +36 -63
- package/src/sap/fe/core/messagebundle_ms.properties +37 -64
- package/src/sap/fe/core/messagebundle_nl.properties +37 -64
- package/src/sap/fe/core/messagebundle_no.properties +36 -63
- package/src/sap/fe/core/messagebundle_pl.properties +37 -64
- package/src/sap/fe/core/messagebundle_pt.properties +37 -64
- package/src/sap/fe/core/messagebundle_pt_PT.properties +36 -63
- package/src/sap/fe/core/messagebundle_ro.properties +36 -63
- package/src/sap/fe/core/messagebundle_ru.properties +36 -63
- package/src/sap/fe/core/messagebundle_sh.properties +36 -63
- package/src/sap/fe/core/messagebundle_sk.properties +36 -63
- package/src/sap/fe/core/messagebundle_sl.properties +38 -65
- package/src/sap/fe/core/messagebundle_sv.properties +36 -63
- package/src/sap/fe/core/messagebundle_th.properties +36 -63
- package/src/sap/fe/core/messagebundle_tr.properties +36 -63
- package/src/sap/fe/core/messagebundle_uk.properties +37 -64
- package/src/sap/fe/core/messagebundle_vi.properties +37 -64
- package/src/sap/fe/core/messagebundle_zh_CN.properties +36 -63
- package/src/sap/fe/core/messagebundle_zh_TW.properties +37 -64
- 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 +6 -3
- package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +12 -10
- package/src/sap/fe/core/services/NavigationServiceFactory.js +54 -45
- package/src/sap/fe/core/services/NavigationServiceFactory.ts +61 -49
- 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 +63 -60
- package/src/sap/fe/core/services/RoutingServiceFactory.ts +76 -73
- package/src/sap/fe/core/services/ShellServicesFactory.js +102 -71
- package/src/sap/fe/core/services/ShellServicesFactory.ts +109 -78
- 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 +24 -18
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +53 -50
- 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 +3 -4
- package/src/sap/fe/core/templating/EntitySetHelper.js +7 -15
- package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -18
- 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 +12 -11
- package/src/sap/fe/core/templating/FilterHelper.ts +17 -16
- 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 +79 -56
- package/src/sap/fe/core/templating/PropertyHelper.ts +41 -27
- package/src/sap/fe/core/templating/UIFormatters.js +163 -97
- package/src/sap/fe/core/templating/UIFormatters.ts +210 -129
- package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
- package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
- 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/AnnotationHelper.js +0 -331
- package/src/sap/fe/core/AnnotationHelper.ts +0 -321
- package/src/sap/fe/core/RouterProxy.js +0 -938
- package/src/sap/fe/core/TransactionHelper.js +0 -1577
- package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -406
- package/src/sap/fe/core/actions/collaboration/Manage.js +0 -264
- package/src/sap/fe/core/actions/draft.js +0 -665
- package/src/sap/fe/core/actions/messageHandling.js +0 -579
- package/src/sap/fe/core/actions/nonDraft.js +0 -20
- package/src/sap/fe/core/actions/nonDraft.ts +0 -12
- package/src/sap/fe/core/actions/operations.js +0 -1096
- package/src/sap/fe/core/actions/sticky.js +0 -130
- package/src/sap/fe/core/actions/sticky.ts +0 -119
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
- package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
- package/src/sap/fe/core/helpers/BindingExpression.js +0 -1729
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
2
|
-
import { defineUI5Class, methodOverride, publicExtension } from "../helpers/ClassSupport";
|
|
3
|
-
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
4
|
-
import ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
5
|
-
import Context from "sap/ui/model/odata/v4/Context";
|
|
6
1
|
import Log from "sap/base/Log";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
2
|
+
import type BaseController from "sap/fe/core/BaseController";
|
|
3
|
+
import type { KPIChartDefinition, KPIDefinition, NavigationInfo } from "sap/fe/core/converters/controls/Common/KPI";
|
|
4
|
+
import type { FilterDefinition, RangeDefinition } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
|
|
9
5
|
import { MessageType } from "sap/fe/core/formatters/TableFormatterTypes";
|
|
10
|
-
import
|
|
11
|
-
import
|
|
6
|
+
import type GenericTag from "sap/m/GenericTag";
|
|
7
|
+
import Popover from "sap/m/Popover";
|
|
8
|
+
import Core from "sap/ui/core/Core";
|
|
12
9
|
import DateFormat from "sap/ui/core/format/DateFormat";
|
|
10
|
+
import NumberFormat from "sap/ui/core/format/NumberFormat";
|
|
13
11
|
import Locale from "sap/ui/core/Locale";
|
|
12
|
+
import ControllerExtension from "sap/ui/core/mvc/ControllerExtension";
|
|
14
13
|
import Filter from "sap/ui/model/Filter";
|
|
15
|
-
import FilterOperator from "sap/ui/model/FilterOperator";
|
|
14
|
+
import type FilterOperator from "sap/ui/model/FilterOperator";
|
|
15
|
+
import JSONModel from "sap/ui/model/json/JSONModel";
|
|
16
|
+
import type Context from "sap/ui/model/odata/v4/Context";
|
|
17
|
+
import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
|
|
16
18
|
import Sorter from "sap/ui/model/Sorter";
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import { CoreEx } from "types/extension_types";
|
|
20
|
-
import Core from "sap/ui/core/Core";
|
|
19
|
+
import type { CoreEx } from "types/extension_types";
|
|
20
|
+
import { defineUI5Class, methodOverride, publicExtension } from "../helpers/ClassSupport";
|
|
21
21
|
|
|
22
22
|
const MessageTypeFromCriticality: Record<string, MessageType> = {
|
|
23
23
|
"1": MessageType.Error,
|
|
@@ -37,9 +37,9 @@ const ValueColorFromMessageType: Record<MessageType, string> = {
|
|
|
37
37
|
/**
|
|
38
38
|
* Function to get a message state from a calculated criticality of type 'Target'.
|
|
39
39
|
*
|
|
40
|
-
* @param
|
|
41
|
-
* @param
|
|
42
|
-
* @returns
|
|
40
|
+
* @param kpiValue The value of the KPI to be tested against.
|
|
41
|
+
* @param aThresholds Thresholds to be used [DeviationRangeLowValue,ToleranceRangeLowValue,AcceptanceRangeLowValue,AcceptanceRangeHighValue,ToleranceRangeHighValue,DeviationRangeHighValue].
|
|
42
|
+
* @returns Returns the corresponding MessageType
|
|
43
43
|
*/
|
|
44
44
|
function messageTypeFromTargetCalculation(kpiValue: number, aThresholds: (number | undefined | null)[]): MessageType {
|
|
45
45
|
let criticalityProperty: MessageType;
|
|
@@ -66,9 +66,9 @@ function messageTypeFromTargetCalculation(kpiValue: number, aThresholds: (number
|
|
|
66
66
|
/**
|
|
67
67
|
* Function to get a message state from a calculated criticality of type 'Minimize'.
|
|
68
68
|
*
|
|
69
|
-
* @param
|
|
70
|
-
* @param
|
|
71
|
-
* @returns
|
|
69
|
+
* @param kpiValue The value of the KPI to be tested against.
|
|
70
|
+
* @param aThresholds Thresholds to be used [AcceptanceRangeHighValue,ToleranceRangeHighValue,DeviationRangeHighValue].
|
|
71
|
+
* @returns Returns the corresponding MessageType
|
|
72
72
|
*/
|
|
73
73
|
function messageTypeFromMinimizeCalculation(kpiValue: number, aThresholds: (number | undefined | null)[]): MessageType {
|
|
74
74
|
let criticalityProperty: MessageType;
|
|
@@ -89,9 +89,9 @@ function messageTypeFromMinimizeCalculation(kpiValue: number, aThresholds: (numb
|
|
|
89
89
|
/**
|
|
90
90
|
* Function to get a message state from a calculated criticality of type 'Maximize'.
|
|
91
91
|
*
|
|
92
|
-
* @param
|
|
93
|
-
* @param
|
|
94
|
-
* @returns
|
|
92
|
+
* @param kpiValue The value of the KPI to be tested against.
|
|
93
|
+
* @param aThresholds Thresholds to be used [DeviationRangeLowValue,ToleranceRangeLowValue,AcceptanceRangeLowValue].
|
|
94
|
+
* @returns Returns the corresponding MessageType
|
|
95
95
|
*/
|
|
96
96
|
function messageTypeFromMaximizeCalculation(kpiValue: number, aThresholds: (number | undefined | null)[]): MessageType {
|
|
97
97
|
let criticalityProperty: MessageType;
|
|
@@ -112,8 +112,8 @@ function messageTypeFromMaximizeCalculation(kpiValue: number, aThresholds: (numb
|
|
|
112
112
|
/**
|
|
113
113
|
* Function to calculate a DeviationIndicator value from a trend value.
|
|
114
114
|
*
|
|
115
|
-
* @param
|
|
116
|
-
* @returns
|
|
115
|
+
* @param trendValue The criticality values.
|
|
116
|
+
* @returns Returns the corresponding DeviationIndicator value
|
|
117
117
|
*/
|
|
118
118
|
function deviationIndicatorFromTrendType(trendValue: number | string): string {
|
|
119
119
|
let deviationIndicator: string;
|
|
@@ -147,7 +147,7 @@ function deviationIndicatorFromTrendType(trendValue: number | string): string {
|
|
|
147
147
|
* @param referenceValue The reference value to compare with
|
|
148
148
|
* @param isRelative True is the comparison is relative
|
|
149
149
|
* @param aThresholds Array of thresholds [StrongDownDifference, DownDifference, UpDifference, StrongUpDifference]
|
|
150
|
-
* @returns
|
|
150
|
+
* @returns Returns the corresponding DeviationIndicator value
|
|
151
151
|
*/
|
|
152
152
|
function deviationIndicatorFromCalculation(
|
|
153
153
|
kpiValue: number,
|
|
@@ -200,7 +200,7 @@ function createFilterFromDefinition(filterDefinition: FilterDefinition): Filter
|
|
|
200
200
|
filterDefinition.ranges[0].rangeHigh
|
|
201
201
|
);
|
|
202
202
|
} else {
|
|
203
|
-
const aRangeFilters = filterDefinition.ranges.map(range => {
|
|
203
|
+
const aRangeFilters = filterDefinition.ranges.map((range) => {
|
|
204
204
|
return new Filter(filterDefinition.propertyPath, range.operator as FilterOperator, range.rangeLow, range.rangeHigh);
|
|
205
205
|
});
|
|
206
206
|
return new Filter({
|
|
@@ -211,12 +211,7 @@ function createFilterFromDefinition(filterDefinition: FilterDefinition): Filter
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
function getFilterStringFromDefinition(filterDefinition: FilterDefinition): string {
|
|
214
|
-
const currentLocale = new Locale(
|
|
215
|
-
sap.ui
|
|
216
|
-
.getCore()
|
|
217
|
-
.getConfiguration()
|
|
218
|
-
.getLanguage()
|
|
219
|
-
);
|
|
214
|
+
const currentLocale = new Locale(sap.ui.getCore().getConfiguration().getLanguage());
|
|
220
215
|
const resBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
|
|
221
216
|
const dateFormat = DateFormat.getDateInstance({ style: "medium" }, currentLocale);
|
|
222
217
|
|
|
@@ -228,31 +223,31 @@ function getFilterStringFromDefinition(filterDefinition: FilterDefinition): stri
|
|
|
228
223
|
|
|
229
224
|
switch (range.operator) {
|
|
230
225
|
case "BT":
|
|
231
|
-
return
|
|
226
|
+
return `[${valueLow} - ${valueHigh}]`;
|
|
232
227
|
|
|
233
228
|
case "Contains":
|
|
234
|
-
return
|
|
229
|
+
return `*${valueLow}*`;
|
|
235
230
|
|
|
236
231
|
case "GE":
|
|
237
|
-
return
|
|
232
|
+
return `\u2265${valueLow}`;
|
|
238
233
|
|
|
239
234
|
case "GT":
|
|
240
|
-
return
|
|
235
|
+
return `>${valueLow}`;
|
|
241
236
|
|
|
242
237
|
case "LE":
|
|
243
|
-
return
|
|
238
|
+
return `\u2264${valueLow}`;
|
|
244
239
|
|
|
245
240
|
case "LT":
|
|
246
|
-
return
|
|
241
|
+
return `<${valueLow}`;
|
|
247
242
|
|
|
248
243
|
case "NB":
|
|
249
|
-
return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", [
|
|
244
|
+
return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", [`[${valueLow} - ${valueHigh}]`]);
|
|
250
245
|
|
|
251
246
|
case "NE":
|
|
252
|
-
return
|
|
247
|
+
return `\u2260${valueLow}`;
|
|
253
248
|
|
|
254
249
|
case "NotContains":
|
|
255
|
-
return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", [
|
|
250
|
+
return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", [`*${valueLow}*`]);
|
|
256
251
|
|
|
257
252
|
case "EQ":
|
|
258
253
|
default:
|
|
@@ -264,7 +259,7 @@ function getFilterStringFromDefinition(filterDefinition: FilterDefinition): stri
|
|
|
264
259
|
} else if (filterDefinition.ranges.length === 1) {
|
|
265
260
|
return formatRange(filterDefinition.ranges[0]);
|
|
266
261
|
} else {
|
|
267
|
-
return
|
|
262
|
+
return `(${filterDefinition.ranges.map(formatRange).join(",")})`;
|
|
268
263
|
}
|
|
269
264
|
}
|
|
270
265
|
|
|
@@ -279,7 +274,7 @@ function formatChartTitle(kpiDef: KPIDefinition): string {
|
|
|
279
274
|
} else {
|
|
280
275
|
let res = items[0].label;
|
|
281
276
|
for (let I = 1; I < items.length - 1; I++) {
|
|
282
|
-
res +=
|
|
277
|
+
res += `, ${items[I].label}`;
|
|
283
278
|
}
|
|
284
279
|
|
|
285
280
|
return resBundle.getText("C_KPICARD_ITEMSLIST", [res, items[items.length - 1].label]);
|
|
@@ -385,14 +380,14 @@ function updateChartLabelSettings(chartDefinition: KPIChartDefinition, oChartPro
|
|
|
385
380
|
function filterMap(aObjects: { name: string; label: string; role?: string }[], aRoles?: (string | undefined)[]): string[] {
|
|
386
381
|
if (aRoles && aRoles.length) {
|
|
387
382
|
return aObjects
|
|
388
|
-
.filter(dimension => {
|
|
383
|
+
.filter((dimension) => {
|
|
389
384
|
return aRoles.indexOf(dimension.role) >= 0;
|
|
390
385
|
})
|
|
391
|
-
.map(dimension => {
|
|
386
|
+
.map((dimension) => {
|
|
392
387
|
return dimension.label;
|
|
393
388
|
});
|
|
394
389
|
} else {
|
|
395
|
-
return aObjects.map(dimension => {
|
|
390
|
+
return aObjects.map((dimension) => {
|
|
396
391
|
return dimension.label;
|
|
397
392
|
});
|
|
398
393
|
}
|
|
@@ -406,7 +401,7 @@ function getScatterBubbleChartFeeds(chartDefinition: KPIChartDefinition): { uid:
|
|
|
406
401
|
const seriesDimensions = filterMap(chartDefinition.dimensions, ["Series"]);
|
|
407
402
|
|
|
408
403
|
// Get the first dimension with role "Category" for the shape
|
|
409
|
-
const shapeDimension = chartDefinition.dimensions.find(dimension => {
|
|
404
|
+
const shapeDimension = chartDefinition.dimensions.find((dimension) => {
|
|
410
405
|
return dimension.role === "Category";
|
|
411
406
|
});
|
|
412
407
|
|
|
@@ -561,10 +556,8 @@ function getNavigationParameters(
|
|
|
561
556
|
|
|
562
557
|
/**
|
|
563
558
|
* @class A controller extension for managing the KPIs in an analytical list page
|
|
564
|
-
*
|
|
565
559
|
* @name sap.fe.core.controllerextensions.KPIManagement
|
|
566
560
|
* @hideconstructor
|
|
567
|
-
*
|
|
568
561
|
* @private
|
|
569
562
|
* @since 1.93.0
|
|
570
563
|
*/
|
|
@@ -642,7 +635,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
642
635
|
// Details of the card: filter descriptions
|
|
643
636
|
if (kpiDefinition.selectionVariantFilterDefinitions?.length) {
|
|
644
637
|
const aDescriptions: string[] = [];
|
|
645
|
-
kpiDefinition.selectionVariantFilterDefinitions.forEach(filterDefinition => {
|
|
638
|
+
kpiDefinition.selectionVariantFilterDefinitions.forEach((filterDefinition) => {
|
|
646
639
|
const desc = getFilterStringFromDefinition(filterDefinition);
|
|
647
640
|
if (desc) {
|
|
648
641
|
aDescriptions.push(desc);
|
|
@@ -658,15 +651,15 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
658
651
|
oCardManifest["sap.card"].content.chartType = kpiDefinition.chart.chartType;
|
|
659
652
|
updateChartLabelSettings(kpiDefinition.chart, oCardManifest["sap.card"].content.chartProperties);
|
|
660
653
|
oCardManifest["sap.card"].content.chartProperties.title.text = formatChartTitle(kpiDefinition);
|
|
661
|
-
oCardManifest["sap.card"].content.dimensions = kpiDefinition.chart.dimensions.map(dimension => {
|
|
662
|
-
return { label: dimension.label, value:
|
|
654
|
+
oCardManifest["sap.card"].content.dimensions = kpiDefinition.chart.dimensions.map((dimension) => {
|
|
655
|
+
return { label: dimension.label, value: `{${dimension.name}}` };
|
|
663
656
|
});
|
|
664
|
-
oCardManifest["sap.card"].content.measures = kpiDefinition.chart.measures.map(measure => {
|
|
665
|
-
return { label: measure.label, value:
|
|
657
|
+
oCardManifest["sap.card"].content.measures = kpiDefinition.chart.measures.map((measure) => {
|
|
658
|
+
return { label: measure.label, value: `{${measure.name}}` };
|
|
666
659
|
});
|
|
667
660
|
oCardManifest["sap.card"].content.feeds = getChartFeeds(kpiDefinition.chart);
|
|
668
661
|
|
|
669
|
-
oKPIModel.setProperty(
|
|
662
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}`, {
|
|
670
663
|
manifest: oCardManifest
|
|
671
664
|
});
|
|
672
665
|
}
|
|
@@ -674,9 +667,9 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
674
667
|
protected initNavigationInfo(kpiDefinition: KPIDefinition, oKPIModel: JSONModel, oShellService: any): Promise<void> {
|
|
675
668
|
// Add navigation
|
|
676
669
|
if (kpiDefinition.navigation) {
|
|
677
|
-
return getNavigationParameters(kpiDefinition.navigation, oShellService).then(oNavInfo => {
|
|
670
|
+
return getNavigationParameters(kpiDefinition.navigation, oShellService).then((oNavInfo) => {
|
|
678
671
|
if (oNavInfo) {
|
|
679
|
-
oKPIModel.setProperty(
|
|
672
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/header/actions`, [
|
|
680
673
|
{
|
|
681
674
|
type: "Navigation",
|
|
682
675
|
parameters: oNavInfo
|
|
@@ -701,17 +694,17 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
701
694
|
const oKPIModel = new JSONModel();
|
|
702
695
|
oView.setModel(oKPIModel, "kpiModel");
|
|
703
696
|
|
|
704
|
-
this.aKPIDefinitions.forEach(kpiDefinition => {
|
|
697
|
+
this.aKPIDefinitions.forEach((kpiDefinition) => {
|
|
705
698
|
// Create the manifest for the KPI card and store it in the KPI model
|
|
706
699
|
this.initCardManifest(kpiDefinition, oKPIModel);
|
|
707
700
|
|
|
708
701
|
// Set the navigation information in the manifest
|
|
709
|
-
this.initNavigationInfo(kpiDefinition, oKPIModel, oAppComponent.getShellServices()).catch(function(err: any) {
|
|
702
|
+
this.initNavigationInfo(kpiDefinition, oKPIModel, oAppComponent.getShellServices()).catch(function (err: any) {
|
|
710
703
|
Log.error(err);
|
|
711
704
|
});
|
|
712
705
|
|
|
713
706
|
// Load tag data for the KPI
|
|
714
|
-
this.loadKPITagData(kpiDefinition, oAppComponent.getModel() as ODataModel, oKPIModel).catch(function(err: any) {
|
|
707
|
+
this.loadKPITagData(kpiDefinition, oAppComponent.getModel() as ODataModel, oKPIModel).catch(function (err: any) {
|
|
715
708
|
Log.error(err);
|
|
716
709
|
});
|
|
717
710
|
});
|
|
@@ -744,12 +737,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
744
737
|
}
|
|
745
738
|
|
|
746
739
|
private updateDatapointValueAndCurrency(kpiDefinition: KPIDefinition, kpiContext: Context, oKPIModel: JSONModel) {
|
|
747
|
-
const currentLocale = new Locale(
|
|
748
|
-
sap.ui
|
|
749
|
-
.getCore()
|
|
750
|
-
.getConfiguration()
|
|
751
|
-
.getLanguage()
|
|
752
|
-
);
|
|
740
|
+
const currentLocale = new Locale(sap.ui.getCore().getConfiguration().getLanguage());
|
|
753
741
|
const rawUnit = kpiDefinition.datapoint.unit?.isPath
|
|
754
742
|
? kpiContext.getProperty(kpiDefinition.datapoint.unit.value)
|
|
755
743
|
: kpiDefinition.datapoint.unit?.value;
|
|
@@ -770,7 +758,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
770
758
|
},
|
|
771
759
|
currentLocale
|
|
772
760
|
).format(rawValue);
|
|
773
|
-
oKPIModel.setProperty(
|
|
761
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValue`, kpiValue);
|
|
774
762
|
|
|
775
763
|
// Value without a scale
|
|
776
764
|
const kpiValueUnscaled = NumberFormat.getFloatInstance(
|
|
@@ -781,7 +769,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
781
769
|
},
|
|
782
770
|
currentLocale
|
|
783
771
|
).format(rawValue);
|
|
784
|
-
oKPIModel.setProperty(
|
|
772
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueUnscaled`, kpiValueUnscaled);
|
|
785
773
|
|
|
786
774
|
// Value formatted with the scale omitted
|
|
787
775
|
const kpiValueNoScale = NumberFormat.getFloatInstance(
|
|
@@ -793,7 +781,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
793
781
|
},
|
|
794
782
|
currentLocale
|
|
795
783
|
).format(rawValue);
|
|
796
|
-
oKPIModel.setProperty(
|
|
784
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueNoScale`, kpiValueNoScale);
|
|
797
785
|
|
|
798
786
|
// Scale of the value
|
|
799
787
|
const kpiValueScale = NumberFormat.getFloatInstance(
|
|
@@ -805,17 +793,17 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
805
793
|
},
|
|
806
794
|
currentLocale
|
|
807
795
|
).format(rawValue);
|
|
808
|
-
oKPIModel.setProperty(
|
|
796
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueScale`, kpiValueScale);
|
|
809
797
|
|
|
810
798
|
// /////////////////////
|
|
811
799
|
// Unit or currency
|
|
812
800
|
if (kpiDefinition.datapoint.unit && rawUnit) {
|
|
813
801
|
if (kpiDefinition.datapoint.unit.isCurrency) {
|
|
814
|
-
oKPIModel.setProperty(
|
|
802
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainUnit`, rawUnit);
|
|
815
803
|
} else {
|
|
816
804
|
// In case of unit of measure, we have to format it properly
|
|
817
805
|
const kpiUnit = NumberFormat.getUnitInstance({ showNumber: false }, currentLocale).format(rawValue, rawUnit);
|
|
818
|
-
oKPIModel.setProperty(
|
|
806
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainUnit`, kpiUnit);
|
|
819
807
|
}
|
|
820
808
|
}
|
|
821
809
|
}
|
|
@@ -855,9 +843,9 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
855
843
|
}
|
|
856
844
|
}
|
|
857
845
|
|
|
858
|
-
oKPIModel.setProperty(
|
|
846
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainCriticality`, criticalityValue);
|
|
859
847
|
oKPIModel.setProperty(
|
|
860
|
-
|
|
848
|
+
`/${kpiDefinition.id}/manifest/sap.card/data/json/mainState`,
|
|
861
849
|
ValueColorFromMessageType[criticalityValue] || "None"
|
|
862
850
|
);
|
|
863
851
|
}
|
|
@@ -894,7 +882,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
894
882
|
);
|
|
895
883
|
}
|
|
896
884
|
|
|
897
|
-
oKPIModel.setProperty(
|
|
885
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/trend`, trendValue);
|
|
898
886
|
}
|
|
899
887
|
|
|
900
888
|
private updateTargetValue(kpiDefinition: KPIDefinition, kpiContext: Context, oKPIModel: JSONModel) {
|
|
@@ -902,12 +890,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
902
890
|
return; // No target set for the KPI
|
|
903
891
|
}
|
|
904
892
|
const rawValue = Number.parseFloat(kpiContext.getProperty(kpiDefinition.datapoint.propertyPath));
|
|
905
|
-
const currentLocale = new Locale(
|
|
906
|
-
sap.ui
|
|
907
|
-
.getCore()
|
|
908
|
-
.getConfiguration()
|
|
909
|
-
.getLanguage()
|
|
910
|
-
);
|
|
893
|
+
const currentLocale = new Locale(sap.ui.getCore().getConfiguration().getLanguage());
|
|
911
894
|
|
|
912
895
|
let targetRawValue: number;
|
|
913
896
|
if (kpiDefinition.datapoint.targetValue !== undefined) {
|
|
@@ -937,8 +920,8 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
937
920
|
currentLocale
|
|
938
921
|
).format(targetRawValue);
|
|
939
922
|
|
|
940
|
-
oKPIModel.setProperty(
|
|
941
|
-
oKPIModel.setProperty(
|
|
923
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/targetNumber`, targetValue);
|
|
924
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/targetUnit`, targetScale);
|
|
942
925
|
|
|
943
926
|
if (deviationRawValue !== undefined) {
|
|
944
927
|
const deviationValue = NumberFormat.getFloatInstance(
|
|
@@ -949,27 +932,27 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
949
932
|
},
|
|
950
933
|
currentLocale
|
|
951
934
|
).format(deviationRawValue);
|
|
952
|
-
oKPIModel.setProperty(
|
|
935
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/deviationNumber`, deviationValue);
|
|
953
936
|
} else {
|
|
954
|
-
oKPIModel.setProperty(
|
|
937
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/deviationNumber`, "N/A");
|
|
955
938
|
}
|
|
956
939
|
}
|
|
957
940
|
|
|
958
941
|
/**
|
|
959
942
|
* Loads tag data for a KPI, and stores it in the JSON KPI model.
|
|
960
943
|
*
|
|
961
|
-
* @param
|
|
962
|
-
* @param
|
|
963
|
-
* @param
|
|
944
|
+
* @param kpiDefinition The definition of the KPI.
|
|
945
|
+
* @param oMainModel The model used to load the data.
|
|
946
|
+
* @param oKPIModel The JSON model where the data will be stored
|
|
964
947
|
* @param loadFull If not true, loads only data for the KPI tag
|
|
965
|
-
* @returns
|
|
948
|
+
* @returns Returns the promise that is resolved when data is loaded.
|
|
966
949
|
*/
|
|
967
950
|
protected loadKPITagData(kpiDefinition: KPIDefinition, oMainModel: ODataModel, oKPIModel: JSONModel, loadFull?: boolean): any {
|
|
968
951
|
// If loadFull=false, then we're just loading data for the tag and we use the "$auto.LongRunners" groupID
|
|
969
952
|
// If loadFull=true, we're loading data for the whole KPI (tag + card) and we use the default ("$auto") groupID
|
|
970
953
|
const oListBinding = loadFull
|
|
971
|
-
? oMainModel.bindList(
|
|
972
|
-
: oMainModel.bindList(
|
|
954
|
+
? oMainModel.bindList(`/${kpiDefinition.entitySet}`)
|
|
955
|
+
: oMainModel.bindList(`/${kpiDefinition.entitySet}`, undefined, undefined, undefined, { $$groupId: "$auto.LongRunners" });
|
|
973
956
|
const oAggregate: Record<string, { unit?: string }> = {};
|
|
974
957
|
|
|
975
958
|
// Main value + currency/unit
|
|
@@ -1001,7 +984,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1001
984
|
|
|
1002
985
|
// Manage SelectionVariant filters
|
|
1003
986
|
if (kpiDefinition.selectionVariantFilterDefinitions?.length) {
|
|
1004
|
-
const aFilters = kpiDefinition.selectionVariantFilterDefinitions.map(createFilterFromDefinition).filter(filter => {
|
|
987
|
+
const aFilters = kpiDefinition.selectionVariantFilterDefinitions.map(createFilterFromDefinition).filter((filter) => {
|
|
1005
988
|
return filter !== undefined;
|
|
1006
989
|
}) as Filter[];
|
|
1007
990
|
oListBinding.filter(aFilters);
|
|
@@ -1015,17 +998,17 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1015
998
|
|
|
1016
999
|
if (kpiDefinition.datapoint.unit && !rawUnit) {
|
|
1017
1000
|
// A unit/currency is defined, but its value is undefined --> multi-unit situation
|
|
1018
|
-
oKPIModel.setProperty(
|
|
1019
|
-
oKPIModel.setProperty(
|
|
1020
|
-
oKPIModel.setProperty(
|
|
1021
|
-
oKPIModel.setProperty(
|
|
1022
|
-
oKPIModel.setProperty(
|
|
1023
|
-
oKPIModel.setProperty(
|
|
1024
|
-
oKPIModel.setProperty(
|
|
1025
|
-
oKPIModel.setProperty(
|
|
1026
|
-
oKPIModel.setProperty(
|
|
1027
|
-
oKPIModel.setProperty(
|
|
1028
|
-
oKPIModel.setProperty(
|
|
1001
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValue`, "*");
|
|
1002
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueUnscaled`, "*");
|
|
1003
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueNoScale`, "*");
|
|
1004
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainValueScale`, "");
|
|
1005
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainUnit`, undefined);
|
|
1006
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainCriticality`, MessageType.None);
|
|
1007
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainState`, "None");
|
|
1008
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/trend`, "None");
|
|
1009
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/targetNumber`, undefined);
|
|
1010
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/targetUnit`, undefined);
|
|
1011
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/deviationNumber`, undefined);
|
|
1029
1012
|
} else {
|
|
1030
1013
|
this.updateDatapointValueAndCurrency(kpiDefinition, aContexts[0], oKPIModel);
|
|
1031
1014
|
this.updateDatapointCriticality(kpiDefinition, aContexts[0], oKPIModel);
|
|
@@ -1042,20 +1025,20 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1042
1025
|
/**
|
|
1043
1026
|
* Loads card data for a KPI, and stores it in the JSON KPI model.
|
|
1044
1027
|
*
|
|
1045
|
-
* @param
|
|
1046
|
-
* @param
|
|
1047
|
-
* @param
|
|
1048
|
-
* @returns
|
|
1028
|
+
* @param kpiDefinition The definition of the KPI.
|
|
1029
|
+
* @param oMainModel The model used to load the data.
|
|
1030
|
+
* @param oKPIModel The JSON model where the data will be stored
|
|
1031
|
+
* @returns Returns the promise that is resolved when data is loaded.
|
|
1049
1032
|
*/
|
|
1050
1033
|
protected loadKPICardData(kpiDefinition: KPIDefinition, oMainModel: ODataModel, oKPIModel: JSONModel): any {
|
|
1051
|
-
const oListBinding = oMainModel.bindList(
|
|
1034
|
+
const oListBinding = oMainModel.bindList(`/${kpiDefinition.entitySet}`);
|
|
1052
1035
|
const oGroup: Record<string, Object> = {};
|
|
1053
1036
|
const oAggregate: Record<string, Object> = {};
|
|
1054
1037
|
|
|
1055
|
-
kpiDefinition.chart.dimensions.forEach(dimension => {
|
|
1038
|
+
kpiDefinition.chart.dimensions.forEach((dimension) => {
|
|
1056
1039
|
oGroup[dimension.name] = {};
|
|
1057
1040
|
});
|
|
1058
|
-
kpiDefinition.chart.measures.forEach(measure => {
|
|
1041
|
+
kpiDefinition.chart.measures.forEach((measure) => {
|
|
1059
1042
|
oAggregate[measure.name] = {};
|
|
1060
1043
|
});
|
|
1061
1044
|
oListBinding.setAggregation({
|
|
@@ -1065,7 +1048,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1065
1048
|
|
|
1066
1049
|
// Manage SelectionVariant filters
|
|
1067
1050
|
if (kpiDefinition.selectionVariantFilterDefinitions?.length) {
|
|
1068
|
-
const aFilters = kpiDefinition.selectionVariantFilterDefinitions.map(createFilterFromDefinition).filter(filter => {
|
|
1051
|
+
const aFilters = kpiDefinition.selectionVariantFilterDefinitions.map(createFilterFromDefinition).filter((filter) => {
|
|
1069
1052
|
return filter !== undefined;
|
|
1070
1053
|
}) as Filter[];
|
|
1071
1054
|
oListBinding.filter(aFilters);
|
|
@@ -1074,26 +1057,26 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1074
1057
|
// Sorting
|
|
1075
1058
|
if (kpiDefinition.chart.sortOrder) {
|
|
1076
1059
|
oListBinding.sort(
|
|
1077
|
-
kpiDefinition.chart.sortOrder.map(sortInfo => {
|
|
1060
|
+
kpiDefinition.chart.sortOrder.map((sortInfo) => {
|
|
1078
1061
|
return new Sorter(sortInfo.name, sortInfo.descending);
|
|
1079
1062
|
})
|
|
1080
1063
|
);
|
|
1081
1064
|
}
|
|
1082
1065
|
|
|
1083
1066
|
return oListBinding.requestContexts(0, kpiDefinition.chart.maxItems).then((aContexts: Context[]) => {
|
|
1084
|
-
const chartData = aContexts.map(function(oContext) {
|
|
1067
|
+
const chartData = aContexts.map(function (oContext) {
|
|
1085
1068
|
const oData: Record<string, any> = {};
|
|
1086
|
-
kpiDefinition.chart.dimensions.forEach(dimension => {
|
|
1069
|
+
kpiDefinition.chart.dimensions.forEach((dimension) => {
|
|
1087
1070
|
oData[dimension.name] = oContext.getProperty(dimension.name);
|
|
1088
1071
|
});
|
|
1089
|
-
kpiDefinition.chart.measures.forEach(measure => {
|
|
1072
|
+
kpiDefinition.chart.measures.forEach((measure) => {
|
|
1090
1073
|
oData[measure.name] = oContext.getProperty(measure.name);
|
|
1091
1074
|
});
|
|
1092
1075
|
|
|
1093
1076
|
return oData;
|
|
1094
1077
|
});
|
|
1095
1078
|
|
|
1096
|
-
oKPIModel.setProperty(
|
|
1079
|
+
oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/chartData`, chartData);
|
|
1097
1080
|
});
|
|
1098
1081
|
}
|
|
1099
1082
|
|
|
@@ -1134,7 +1117,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1134
1117
|
width: "25rem",
|
|
1135
1118
|
height: "auto"
|
|
1136
1119
|
});
|
|
1137
|
-
this.oCard.setHost(oHost
|
|
1120
|
+
this.oCard.setHost(oHost);
|
|
1138
1121
|
|
|
1139
1122
|
this.oPopover = new Popover("kpi-Popover", {
|
|
1140
1123
|
showHeader: false,
|
|
@@ -1147,7 +1130,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1147
1130
|
resolve(this.oPopover);
|
|
1148
1131
|
});
|
|
1149
1132
|
})
|
|
1150
|
-
.catch(function() {
|
|
1133
|
+
.catch(function () {
|
|
1151
1134
|
reject();
|
|
1152
1135
|
});
|
|
1153
1136
|
});
|
|
@@ -1161,7 +1144,7 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1161
1144
|
const oKPIModel = oKPITag.getModel("kpiModel") as JSONModel;
|
|
1162
1145
|
|
|
1163
1146
|
if (this.aKPIDefinitions && this.aKPIDefinitions.length) {
|
|
1164
|
-
const kpiDefinition = this.aKPIDefinitions.find(function(oDef) {
|
|
1147
|
+
const kpiDefinition = this.aKPIDefinitions.find(function (oDef) {
|
|
1165
1148
|
return oDef.id === kpiID;
|
|
1166
1149
|
});
|
|
1167
1150
|
|
|
@@ -1174,14 +1157,14 @@ class KPIManagementControllerExtension extends ControllerExtension {
|
|
|
1174
1157
|
];
|
|
1175
1158
|
|
|
1176
1159
|
Promise.all(aPromises)
|
|
1177
|
-
.then(aResults => {
|
|
1178
|
-
this.oCard.setManifest(oKPIModel.getProperty(
|
|
1160
|
+
.then((aResults) => {
|
|
1161
|
+
this.oCard.setManifest(oKPIModel.getProperty(`/${kpiID}/manifest`));
|
|
1179
1162
|
this.oCard.refresh();
|
|
1180
1163
|
|
|
1181
1164
|
const oPopover = aResults[2];
|
|
1182
1165
|
oPopover.openBy(oKPITag, false);
|
|
1183
1166
|
})
|
|
1184
|
-
.catch(err => {
|
|
1167
|
+
.catch((err) => {
|
|
1185
1168
|
Log.error(err);
|
|
1186
1169
|
});
|
|
1187
1170
|
}
|