@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.
Files changed (339) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +66 -30
  4. package/src/sap/fe/core/AppComponent.ts +68 -51
  5. package/src/sap/fe/core/AppStateHandler.js +13 -13
  6. package/src/sap/fe/core/AppStateHandler.ts +18 -18
  7. package/src/sap/fe/core/BaseController.js +11 -9
  8. package/src/sap/fe/core/BaseController.ts +15 -13
  9. package/src/sap/fe/core/CommonUtils.js +279 -188
  10. package/src/sap/fe/core/CommonUtils.ts +306 -215
  11. package/src/sap/fe/core/ExtensionAPI.js +25 -30
  12. package/src/sap/fe/core/ExtensionAPI.ts +37 -41
  13. package/src/sap/fe/core/PageController.js +12 -7
  14. package/src/sap/fe/core/PageController.ts +10 -5
  15. package/src/sap/fe/core/TemplateComponent.js +6 -6
  16. package/src/sap/fe/core/TemplateComponent.ts +11 -11
  17. package/src/sap/fe/core/TemplateModel.js +2 -2
  18. package/src/sap/fe/core/TemplateModel.ts +3 -3
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +306 -78
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +280 -70
  23. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
  24. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
  25. package/src/sap/fe/core/{BusyLocker.js → controllerextensions/BusyLocker.js} +1 -1
  26. package/src/sap/fe/core/{BusyLocker.ts → controllerextensions/BusyLocker.ts} +7 -7
  27. package/src/sap/fe/core/controllerextensions/EditFlow.js +351 -229
  28. package/src/sap/fe/core/controllerextensions/EditFlow.ts +321 -246
  29. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  30. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  31. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +59 -34
  32. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +71 -45
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +72 -72
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +82 -80
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +152 -131
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +171 -152
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  39. package/src/sap/fe/core/controllerextensions/MassEdit.js +11 -10
  40. package/src/sap/fe/core/controllerextensions/MassEdit.ts +31 -37
  41. package/src/sap/fe/core/controllerextensions/MessageHandler.js +21 -13
  42. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +30 -15
  43. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  44. package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
  45. package/src/sap/fe/core/controllerextensions/Paginator.js +19 -11
  46. package/src/sap/fe/core/controllerextensions/Paginator.ts +22 -14
  47. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  48. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  49. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  50. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  51. package/src/sap/fe/core/controllerextensions/Share.js +39 -21
  52. package/src/sap/fe/core/controllerextensions/Share.ts +45 -26
  53. package/src/sap/fe/core/controllerextensions/SideEffects.js +47 -51
  54. package/src/sap/fe/core/controllerextensions/SideEffects.ts +58 -62
  55. package/src/sap/fe/core/controllerextensions/ViewState.js +75 -62
  56. package/src/sap/fe/core/controllerextensions/ViewState.ts +78 -63
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +105 -0
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +99 -0
  59. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +360 -0
  60. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ActivitySync.ts +58 -112
  61. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.js +2 -2
  62. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/CollaborationCommon.ts +7 -7
  63. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +262 -0
  64. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/Manage.ts +20 -21
  65. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/ManageDialog.fragment.xml +0 -0
  66. package/src/sap/fe/core/{actions → controllerextensions}/collaboration/UserDetails.fragment.xml +5 -7
  67. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1631 -0
  68. package/src/sap/fe/core/{TransactionHelper.ts → controllerextensions/editFlow/TransactionHelper.ts} +270 -211
  69. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +772 -0
  70. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/draft.ts +240 -100
  71. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +1199 -0
  72. package/src/sap/fe/core/{actions → controllerextensions/editFlow}/operations.ts +364 -229
  73. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +188 -0
  74. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +185 -0
  75. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +626 -0
  76. package/src/sap/fe/core/{actions → controllerextensions/messageHandler}/messageHandling.ts +112 -69
  77. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +937 -0
  78. package/src/sap/fe/core/{RouterProxy.ts → controllerextensions/routing/RouterProxy.ts} +72 -73
  79. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +21 -18
  80. package/src/sap/fe/core/controls/Any.js +9 -5
  81. package/src/sap/fe/core/controls/Any.ts +10 -4
  82. package/src/sap/fe/core/controls/CommandExecution.js +21 -24
  83. package/src/sap/fe/core/controls/CommandExecution.ts +19 -24
  84. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  85. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  86. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +48 -43
  87. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +51 -46
  88. package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -2
  89. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +3 -2
  90. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +11 -3
  91. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +19 -9
  92. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +14 -8
  93. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  94. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  95. package/src/sap/fe/core/controls/FileWrapper.js +50 -3
  96. package/src/sap/fe/core/controls/FileWrapper.ts +45 -12
  97. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  98. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  99. package/src/sap/fe/core/controls/FormElementWrapper.js +12 -2
  100. package/src/sap/fe/core/controls/FormElementWrapper.ts +14 -3
  101. package/src/sap/fe/core/controls/MassEditSelect.js +33 -0
  102. package/src/sap/fe/core/controls/MassEditSelect.ts +41 -0
  103. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  104. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  105. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  106. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  107. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  108. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +48 -48
  109. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +71 -76
  110. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +36 -65
  111. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +107 -0
  112. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +551 -36
  113. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +605 -36
  114. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  115. package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
  116. package/src/sap/fe/core/converters/ManifestSettings.js +2 -1
  117. package/src/sap/fe/core/converters/ManifestSettings.ts +17 -14
  118. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  119. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  120. package/src/sap/fe/core/converters/MetaModelConverter.js +56 -67
  121. package/src/sap/fe/core/converters/MetaModelConverter.ts +183 -193
  122. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  123. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  124. package/src/sap/fe/core/converters/annotations/DataField.js +73 -37
  125. package/src/sap/fe/core/converters/annotations/DataField.ts +121 -77
  126. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  127. package/src/sap/fe/core/converters/controls/Common/Action.js +51 -49
  128. package/src/sap/fe/core/converters/controls/Common/Action.ts +58 -54
  129. package/src/sap/fe/core/converters/controls/Common/Chart.js +22 -15
  130. package/src/sap/fe/core/converters/controls/Common/Chart.ts +29 -27
  131. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  132. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  133. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
  134. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
  135. package/src/sap/fe/core/converters/controls/Common/Form.js +30 -34
  136. package/src/sap/fe/core/converters/controls/Common/Form.ts +48 -58
  137. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  138. package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
  139. package/src/sap/fe/core/converters/controls/Common/Table.js +318 -244
  140. package/src/sap/fe/core/converters/controls/Common/Table.ts +368 -297
  141. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +135 -125
  142. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +162 -148
  143. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +51 -45
  144. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +79 -67
  145. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  146. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  147. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  148. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  149. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  150. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  151. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +92 -89
  152. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +124 -120
  153. package/src/sap/fe/core/converters/helpers/Aggregation.js +11 -5
  154. package/src/sap/fe/core/converters/helpers/Aggregation.ts +25 -23
  155. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -30
  156. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +31 -29
  157. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  158. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  159. package/src/sap/fe/core/converters/helpers/ID.js +46 -46
  160. package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
  161. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  162. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  163. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  164. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
  165. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  166. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  167. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  168. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  169. package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
  170. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
  171. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +56 -55
  172. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +65 -77
  173. package/src/sap/fe/core/designtime/AppComponent.designtime.js +6 -6
  174. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +10 -8
  175. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  176. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  177. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  178. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  179. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  180. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  181. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
  182. package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
  183. package/src/sap/fe/core/formatters/TableFormatter.js +83 -22
  184. package/src/sap/fe/core/formatters/TableFormatter.ts +80 -25
  185. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  186. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  187. package/src/sap/fe/core/fpm/Component.js +2 -2
  188. package/src/sap/fe/core/fpm/Component.ts +1 -1
  189. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  190. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  191. package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
  192. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +388 -285
  193. package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
  194. package/src/sap/fe/core/helpers/ClassSupport.ts +15 -10
  195. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  196. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  197. package/src/sap/fe/core/helpers/EditState.js +1 -6
  198. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  199. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  200. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  201. package/src/sap/fe/core/helpers/FPMHelper.js +3 -2
  202. package/src/sap/fe/core/helpers/FPMHelper.ts +10 -9
  203. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  204. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  205. package/src/sap/fe/core/helpers/MassEditHelper.js +532 -264
  206. package/src/sap/fe/core/helpers/MassEditHelper.ts +560 -289
  207. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  208. package/src/sap/fe/core/helpers/ModelHelper.ts +50 -58
  209. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  210. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  211. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  212. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  213. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  214. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  215. package/src/sap/fe/core/helpers/StableIdHelper.js +16 -12
  216. package/src/sap/fe/core/helpers/StableIdHelper.ts +20 -16
  217. package/src/sap/fe/core/{Synchronization.js → helpers/Synchronization.js} +1 -1
  218. package/src/sap/fe/core/{Synchronization.ts → helpers/Synchronization.ts} +1 -1
  219. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  220. package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
  221. package/src/sap/fe/core/library.js +51 -3
  222. package/src/sap/fe/core/library.ts +47 -0
  223. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  224. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  225. package/src/sap/fe/core/messagebundle.properties +151 -197
  226. package/src/sap/fe/core/messagebundle_ar.properties +36 -63
  227. package/src/sap/fe/core/messagebundle_bg.properties +36 -63
  228. package/src/sap/fe/core/messagebundle_ca.properties +36 -63
  229. package/src/sap/fe/core/messagebundle_cs.properties +36 -63
  230. package/src/sap/fe/core/messagebundle_cy.properties +36 -63
  231. package/src/sap/fe/core/messagebundle_da.properties +37 -64
  232. package/src/sap/fe/core/messagebundle_de.properties +36 -63
  233. package/src/sap/fe/core/messagebundle_el.properties +38 -65
  234. package/src/sap/fe/core/messagebundle_en.properties +37 -64
  235. package/src/sap/fe/core/messagebundle_en_GB.properties +37 -64
  236. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +44 -73
  237. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +37 -64
  238. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +52 -81
  239. package/src/sap/fe/core/messagebundle_es.properties +36 -63
  240. package/src/sap/fe/core/messagebundle_es_MX.properties +36 -63
  241. package/src/sap/fe/core/messagebundle_et.properties +36 -63
  242. package/src/sap/fe/core/messagebundle_fi.properties +36 -63
  243. package/src/sap/fe/core/messagebundle_fr.properties +39 -66
  244. package/src/sap/fe/core/messagebundle_fr_CA.properties +36 -63
  245. package/src/sap/fe/core/messagebundle_hi.properties +36 -63
  246. package/src/sap/fe/core/messagebundle_hr.properties +36 -63
  247. package/src/sap/fe/core/messagebundle_hu.properties +35 -62
  248. package/src/sap/fe/core/messagebundle_id.properties +37 -64
  249. package/src/sap/fe/core/messagebundle_it.properties +54 -81
  250. package/src/sap/fe/core/messagebundle_iw.properties +36 -63
  251. package/src/sap/fe/core/messagebundle_ja.properties +36 -63
  252. package/src/sap/fe/core/messagebundle_kk.properties +36 -63
  253. package/src/sap/fe/core/messagebundle_ko.properties +36 -63
  254. package/src/sap/fe/core/messagebundle_lt.properties +36 -63
  255. package/src/sap/fe/core/messagebundle_lv.properties +36 -63
  256. package/src/sap/fe/core/messagebundle_ms.properties +37 -64
  257. package/src/sap/fe/core/messagebundle_nl.properties +37 -64
  258. package/src/sap/fe/core/messagebundle_no.properties +36 -63
  259. package/src/sap/fe/core/messagebundle_pl.properties +37 -64
  260. package/src/sap/fe/core/messagebundle_pt.properties +37 -64
  261. package/src/sap/fe/core/messagebundle_pt_PT.properties +36 -63
  262. package/src/sap/fe/core/messagebundle_ro.properties +36 -63
  263. package/src/sap/fe/core/messagebundle_ru.properties +36 -63
  264. package/src/sap/fe/core/messagebundle_sh.properties +36 -63
  265. package/src/sap/fe/core/messagebundle_sk.properties +36 -63
  266. package/src/sap/fe/core/messagebundle_sl.properties +38 -65
  267. package/src/sap/fe/core/messagebundle_sv.properties +36 -63
  268. package/src/sap/fe/core/messagebundle_th.properties +36 -63
  269. package/src/sap/fe/core/messagebundle_tr.properties +36 -63
  270. package/src/sap/fe/core/messagebundle_uk.properties +37 -64
  271. package/src/sap/fe/core/messagebundle_vi.properties +37 -64
  272. package/src/sap/fe/core/messagebundle_zh_CN.properties +36 -63
  273. package/src/sap/fe/core/messagebundle_zh_TW.properties +37 -64
  274. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  275. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  276. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
  277. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
  278. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +6 -3
  279. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +12 -10
  280. package/src/sap/fe/core/services/NavigationServiceFactory.js +54 -45
  281. package/src/sap/fe/core/services/NavigationServiceFactory.ts +61 -49
  282. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  283. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  284. package/src/sap/fe/core/services/RoutingServiceFactory.js +63 -60
  285. package/src/sap/fe/core/services/RoutingServiceFactory.ts +76 -73
  286. package/src/sap/fe/core/services/ShellServicesFactory.js +102 -71
  287. package/src/sap/fe/core/services/ShellServicesFactory.ts +109 -78
  288. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  289. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  290. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +24 -18
  291. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +53 -50
  292. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  293. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  294. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  295. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  296. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  297. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  298. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  299. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  300. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  301. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  302. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  303. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  304. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  305. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +3 -4
  306. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -15
  307. package/src/sap/fe/core/templating/EntitySetHelper.ts +14 -18
  308. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  309. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  310. package/src/sap/fe/core/templating/FilterHelper.js +12 -11
  311. package/src/sap/fe/core/templating/FilterHelper.ts +17 -16
  312. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  313. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  314. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  315. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  316. package/src/sap/fe/core/templating/PropertyHelper.js +79 -56
  317. package/src/sap/fe/core/templating/PropertyHelper.ts +41 -27
  318. package/src/sap/fe/core/templating/UIFormatters.js +163 -97
  319. package/src/sap/fe/core/templating/UIFormatters.ts +210 -129
  320. package/src/sap/fe/core/type/DateTimeWithTimezone.js +47 -0
  321. package/src/sap/fe/core/type/DateTimeWithTimezone.ts +23 -0
  322. package/src/sap/fe/core/type/Email.js +2 -2
  323. package/src/sap/fe/core/type/Email.ts +2 -2
  324. package/src/sap/fe/core/AnnotationHelper.js +0 -331
  325. package/src/sap/fe/core/AnnotationHelper.ts +0 -321
  326. package/src/sap/fe/core/RouterProxy.js +0 -938
  327. package/src/sap/fe/core/TransactionHelper.js +0 -1577
  328. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +0 -406
  329. package/src/sap/fe/core/actions/collaboration/Manage.js +0 -264
  330. package/src/sap/fe/core/actions/draft.js +0 -665
  331. package/src/sap/fe/core/actions/messageHandling.js +0 -579
  332. package/src/sap/fe/core/actions/nonDraft.js +0 -20
  333. package/src/sap/fe/core/actions/nonDraft.ts +0 -12
  334. package/src/sap/fe/core/actions/operations.js +0 -1096
  335. package/src/sap/fe/core/actions/sticky.js +0 -130
  336. package/src/sap/fe/core/actions/sticky.ts +0 -119
  337. package/src/sap/fe/core/formatters/CriticalityFormatter.js +0 -77
  338. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +0 -58
  339. 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 { KPIChartDefinition, KPIDefinition, NavigationInfo } from "sap/fe/core/converters/controls/Common/KPI";
8
- import BaseController from "sap/fe/core/BaseController";
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 { FilterDefinition, RangeDefinition } from "sap/fe/core/converters/helpers/SelectionVariantHelper";
11
- import NumberFormat from "sap/ui/core/format/NumberFormat";
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 GenericTag from "sap/m/GenericTag";
18
- import Popover from "sap/m/Popover";
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 {number} kpiValue The value of the KPI to be tested against.
41
- * @param {number[]} aThresholds Thresholds to be used [DeviationRangeLowValue,ToleranceRangeLowValue,AcceptanceRangeLowValue,AcceptanceRangeHighValue,ToleranceRangeHighValue,DeviationRangeHighValue].
42
- * @returns {MessageType} Returns the corresponding MessageType
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 {number} kpiValue The value of the KPI to be tested against.
70
- * @param {number[]} aThresholds Thresholds to be used [AcceptanceRangeHighValue,ToleranceRangeHighValue,DeviationRangeHighValue].
71
- * @returns {MessageType} Returns the corresponding MessageType
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 {number} kpiValue The value of the KPI to be tested against.
93
- * @param {number[]} aThresholds Thresholds to be used [DeviationRangeLowValue,ToleranceRangeLowValue,AcceptanceRangeLowValue].
94
- * @returns {MessageType} Returns the corresponding MessageType
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 {number|string} trendValue The criticality values.
116
- * @returns {string} Returns the corresponding DeviationIndicator value
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 {sap.m.DeviationIndicator} Returns the corresponding DeviationIndicator value
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 "[" + valueLow + " - " + valueHigh + "]";
226
+ return `[${valueLow} - ${valueHigh}]`;
232
227
 
233
228
  case "Contains":
234
- return "*" + valueLow + "*";
229
+ return `*${valueLow}*`;
235
230
 
236
231
  case "GE":
237
- return "\u2265" + valueLow;
232
+ return `\u2265${valueLow}`;
238
233
 
239
234
  case "GT":
240
- return ">" + valueLow;
235
+ return `>${valueLow}`;
241
236
 
242
237
  case "LE":
243
- return "\u2264" + valueLow;
238
+ return `\u2264${valueLow}`;
244
239
 
245
240
  case "LT":
246
- return "<" + valueLow;
241
+ return `<${valueLow}`;
247
242
 
248
243
  case "NB":
249
- return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", ["[" + valueLow + " - " + valueHigh + "]"]);
244
+ return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", [`[${valueLow} - ${valueHigh}]`]);
250
245
 
251
246
  case "NE":
252
- return "\u2260" + valueLow;
247
+ return `\u2260${valueLow}`;
253
248
 
254
249
  case "NotContains":
255
- return resBundle.getText("C_KPICARD_FILTERSTRING_NOT", ["*" + valueLow + "*"]);
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 "(" + filterDefinition.ranges.map(formatRange).join(",") + ")";
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 += ", " + items[I].label;
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: "{" + dimension.name + "}" };
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: "{" + measure.name + "}" };
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("/" + kpiDefinition.id, {
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("/" + kpiDefinition.id + "/manifest/sap.card/header/actions", [
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValue", kpiValue);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueUnscaled", kpiValueUnscaled);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueNoScale", kpiValueNoScale);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueScale", kpiValueScale);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainUnit", rawUnit);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainUnit", kpiUnit);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainCriticality", criticalityValue);
846
+ oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/mainCriticality`, criticalityValue);
859
847
  oKPIModel.setProperty(
860
- "/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainState",
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/trend", trendValue);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/targetNumber", targetValue);
941
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/targetUnit", targetScale);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/deviationNumber", deviationValue);
935
+ oKPIModel.setProperty(`/${kpiDefinition.id}/manifest/sap.card/data/json/deviationNumber`, deviationValue);
953
936
  } else {
954
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/deviationNumber", "N/A");
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 {KPIDefinition} kpiDefinition The definition of the KPI.
962
- * @param {ODataModel} oMainModel The model used to load the data.
963
- * @param {JSONModel} oKPIModel The JSON model where the data will be stored
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 {Promise} Returns the promise that is resolved when data is loaded.
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("/" + kpiDefinition.entitySet)
972
- : oMainModel.bindList("/" + kpiDefinition.entitySet, undefined, undefined, undefined, { $$groupId: "$auto.LongRunners" });
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValue", "*");
1019
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueUnscaled", "*");
1020
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueNoScale", "*");
1021
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainValueScale", "");
1022
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainUnit", undefined);
1023
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainCriticality", MessageType.None);
1024
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/mainState", "None");
1025
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/trend", "None");
1026
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/targetNumber", undefined);
1027
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/targetUnit", undefined);
1028
- oKPIModel.setProperty("/" + kpiDefinition.id + "/manifest/sap.card/data/json/deviationNumber", undefined);
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 {KPIDefinition} kpiDefinition The definition of the KPI.
1046
- * @param {ODataModel} oMainModel The model used to load the data.
1047
- * @param {JSONModel} oKPIModel The JSON model where the data will be stored
1048
- * @returns {Promise} Returns the promise that is resolved when data is loaded.
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("/" + kpiDefinition.entitySet);
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("/" + kpiDefinition.id + "/manifest/sap.card/data/json/chartData", chartData);
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 as any);
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("/" + kpiID + "/manifest"));
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
  }