@sapui5/sap.fe.core 1.102.0 → 1.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) 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 +62 -26
  4. package/src/sap/fe/core/AppComponent.ts +56 -40
  5. package/src/sap/fe/core/AppStateHandler.js +10 -10
  6. package/src/sap/fe/core/AppStateHandler.ts +9 -9
  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 +236 -109
  10. package/src/sap/fe/core/CommonUtils.ts +252 -136
  11. package/src/sap/fe/core/ExtensionAPI.js +24 -27
  12. package/src/sap/fe/core/ExtensionAPI.ts +36 -38
  13. package/src/sap/fe/core/PageController.js +4 -4
  14. package/src/sap/fe/core/PageController.ts +4 -5
  15. package/src/sap/fe/core/TemplateComponent.js +1 -1
  16. package/src/sap/fe/core/TemplateComponent.ts +6 -6
  17. package/src/sap/fe/core/TemplateModel.js +1 -1
  18. package/src/sap/fe/core/TemplateModel.ts +1 -1
  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 +8 -8
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
  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/controllerextensions/EditFlow.js +129 -118
  26. package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
  27. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  28. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  29. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
  30. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
  31. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
  32. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
  33. package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
  34. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
  35. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  36. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  37. package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
  38. package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
  41. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  42. package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
  43. package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
  44. package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
  45. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  46. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  47. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  48. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  49. package/src/sap/fe/core/controllerextensions/Share.js +22 -22
  50. package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
  55. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  56. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
  59. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  60. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
  61. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
  62. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
  63. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
  64. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
  65. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
  66. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
  67. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
  68. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
  69. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
  70. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
  71. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
  72. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
  73. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
  74. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
  75. package/src/sap/fe/core/controls/Any.js +9 -5
  76. package/src/sap/fe/core/controls/Any.ts +10 -4
  77. package/src/sap/fe/core/controls/CommandExecution.js +11 -25
  78. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  79. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  80. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  81. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
  82. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  83. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
  84. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  85. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  86. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  87. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  88. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  89. package/src/sap/fe/core/controls/FileWrapper.js +2 -2
  90. package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
  91. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  92. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  93. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  94. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  95. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  96. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  97. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  98. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  99. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  100. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  101. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  102. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
  103. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
  104. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  105. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  106. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  107. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  108. package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
  109. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  110. package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
  111. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  112. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  113. package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
  114. package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
  115. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  116. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  117. package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
  118. package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
  119. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  120. package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
  121. package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
  122. package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
  123. package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
  124. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  125. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  126. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
  127. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
  128. package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
  129. package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
  130. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  131. package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
  132. package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
  133. package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
  134. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  135. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
  136. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
  137. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
  138. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  139. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  140. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  141. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  142. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  143. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  144. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
  145. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
  146. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  147. package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
  148. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  149. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  150. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  151. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  152. package/src/sap/fe/core/converters/helpers/ID.js +46 -46
  153. package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
  154. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  155. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  156. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  157. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
  158. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  159. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  160. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  161. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  162. package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
  163. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
  164. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
  165. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
  166. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  167. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  168. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  169. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  170. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  171. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  172. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  173. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  174. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
  175. package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
  176. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  177. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  178. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  179. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  180. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  181. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  182. package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
  183. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
  184. package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
  185. package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
  186. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  187. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  188. package/src/sap/fe/core/helpers/EditState.js +1 -6
  189. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  190. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  191. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  192. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  193. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  194. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  195. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  196. package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
  197. package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
  198. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  199. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  200. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  201. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  202. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  203. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  204. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  205. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  206. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  207. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  208. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  209. package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
  210. package/src/sap/fe/core/library.js +42 -3
  211. package/src/sap/fe/core/library.ts +38 -0
  212. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  213. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  214. package/src/sap/fe/core/messagebundle.properties +49 -35
  215. package/src/sap/fe/core/messagebundle_ar.properties +13 -5
  216. package/src/sap/fe/core/messagebundle_bg.properties +13 -5
  217. package/src/sap/fe/core/messagebundle_ca.properties +13 -5
  218. package/src/sap/fe/core/messagebundle_cs.properties +13 -5
  219. package/src/sap/fe/core/messagebundle_cy.properties +14 -6
  220. package/src/sap/fe/core/messagebundle_da.properties +13 -5
  221. package/src/sap/fe/core/messagebundle_de.properties +15 -7
  222. package/src/sap/fe/core/messagebundle_el.properties +14 -6
  223. package/src/sap/fe/core/messagebundle_en.properties +9 -1
  224. package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
  225. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
  226. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
  227. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
  228. package/src/sap/fe/core/messagebundle_es.properties +13 -5
  229. package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
  230. package/src/sap/fe/core/messagebundle_et.properties +13 -5
  231. package/src/sap/fe/core/messagebundle_fi.properties +14 -6
  232. package/src/sap/fe/core/messagebundle_fr.properties +14 -6
  233. package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
  234. package/src/sap/fe/core/messagebundle_hi.properties +14 -6
  235. package/src/sap/fe/core/messagebundle_hr.properties +14 -6
  236. package/src/sap/fe/core/messagebundle_hu.properties +13 -5
  237. package/src/sap/fe/core/messagebundle_id.properties +13 -5
  238. package/src/sap/fe/core/messagebundle_it.properties +33 -25
  239. package/src/sap/fe/core/messagebundle_iw.properties +13 -5
  240. package/src/sap/fe/core/messagebundle_ja.properties +14 -6
  241. package/src/sap/fe/core/messagebundle_kk.properties +13 -5
  242. package/src/sap/fe/core/messagebundle_ko.properties +13 -5
  243. package/src/sap/fe/core/messagebundle_lt.properties +13 -5
  244. package/src/sap/fe/core/messagebundle_lv.properties +14 -6
  245. package/src/sap/fe/core/messagebundle_ms.properties +13 -5
  246. package/src/sap/fe/core/messagebundle_nl.properties +13 -5
  247. package/src/sap/fe/core/messagebundle_no.properties +13 -5
  248. package/src/sap/fe/core/messagebundle_pl.properties +13 -5
  249. package/src/sap/fe/core/messagebundle_pt.properties +13 -5
  250. package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
  251. package/src/sap/fe/core/messagebundle_ro.properties +13 -5
  252. package/src/sap/fe/core/messagebundle_ru.properties +13 -5
  253. package/src/sap/fe/core/messagebundle_sh.properties +13 -5
  254. package/src/sap/fe/core/messagebundle_sk.properties +13 -5
  255. package/src/sap/fe/core/messagebundle_sl.properties +17 -9
  256. package/src/sap/fe/core/messagebundle_sv.properties +14 -6
  257. package/src/sap/fe/core/messagebundle_th.properties +13 -5
  258. package/src/sap/fe/core/messagebundle_tr.properties +13 -5
  259. package/src/sap/fe/core/messagebundle_uk.properties +13 -5
  260. package/src/sap/fe/core/messagebundle_vi.properties +13 -5
  261. package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
  262. package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
  263. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  264. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  265. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
  266. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
  267. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  268. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  269. package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
  270. package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
  271. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  272. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  273. package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
  274. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  275. package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
  276. package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
  277. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  278. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  279. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
  280. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
  281. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  282. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  283. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  284. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  285. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  286. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  287. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  288. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  289. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  290. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  291. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  292. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  294. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  295. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  296. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  297. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  298. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  299. package/src/sap/fe/core/templating/FilterHelper.js +10 -9
  300. package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
  301. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  302. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  303. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  304. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  305. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  306. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  307. package/src/sap/fe/core/templating/UIFormatters.js +148 -93
  308. package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
  309. package/src/sap/fe/core/type/Email.js +2 -2
  310. package/src/sap/fe/core/type/Email.ts +2 -2
  311. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -7,17 +7,17 @@ import MessageItem from "sap/m/MessageItem";
7
7
  import MessageToast from "sap/m/MessageToast";
8
8
  import MessageView from "sap/m/MessageView";
9
9
  import Text from "sap/m/Text";
10
- import ManagedObject from "sap/ui/base/ManagedObject";
10
+ import type ManagedObject from "sap/ui/base/ManagedObject";
11
11
  import Core from "sap/ui/core/Core";
12
12
  import DateFormat from "sap/ui/core/format/DateFormat";
13
13
  import IconPool from "sap/ui/core/IconPool";
14
14
  import CoreLib from "sap/ui/core/library";
15
15
  import Message from "sap/ui/core/message/Message";
16
- import Control from "sap/ui/mdc/Control";
16
+ import type Control from "sap/ui/mdc/Control";
17
17
  import Filter from "sap/ui/model/Filter";
18
18
  import FilterOperator from "sap/ui/model/FilterOperator";
19
19
  import JSONModel from "sap/ui/model/json/JSONModel";
20
- import { CoreEx } from "types/extension_types";
20
+ import type { CoreEx } from "types/extension_types";
21
21
 
22
22
  const MessageType = CoreLib.MessageType;
23
23
  let aMessageList: any[] = [];
@@ -35,11 +35,13 @@ export type messageHandlingType = {
35
35
  oContext?: any,
36
36
  bHasEtagMessage?: boolean,
37
37
  bShowBoundTransition?: boolean,
38
- errorTargetsInAPM?: boolean
38
+ showErrorInAPD?: boolean,
39
+ bShowMessageBox?: boolean,
40
+ concurrentEditFlag?: boolean
39
41
  ) => Promise<any>;
40
42
  removeUnboundTransitionMessages: () => void;
41
- removeBoundTransitionMessages: () => void;
42
- modifyETagMessagesOnly: (oMessageManager: any, oResourceBundle: any) => boolean;
43
+ modifyETagMessagesOnly: (oMessageManager: any, oResourceBundle: any, concurrentEditFlag: boolean | undefined) => boolean;
44
+ removeBoundTransitionMessages: (sPathToBeRemoved?: string) => void;
43
45
  getRetryAfterMessage: (oMessage: any, bMessageDialog?: any) => any;
44
46
  prepareMessageViewForDialog: (oMessageDialogModel: JSONModel, bStrictHandlingFlow: boolean) => any;
45
47
  };
@@ -74,41 +76,40 @@ function fnFormatTechnicalDetails() {
74
76
  function getPaths() {
75
77
  const sTD = "technicalDetails"; // name of property in message model data for technical details
76
78
  return [
77
- { "groupName": "", "property": sTD + "/status" },
78
- { "groupName": "", "property": sTD + "/statusText" },
79
- { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ComponentId" },
80
- { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceId" },
81
- { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceRepository" },
82
- { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceVersion" },
83
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/Analysis" },
84
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/Note" },
85
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/DetailedNote" },
86
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ExceptionCategory" },
87
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.TimeStamp" },
88
- { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.TransactionId" },
89
- { "groupName": "Messages", "property": sTD + "/error/code" },
90
- { "groupName": "Messages", "property": sTD + "/error/message" }
79
+ { "groupName": "", "property": `${sTD}/status` },
80
+ { "groupName": "", "property": `${sTD}/statusText` },
81
+ { "groupName": "Application", "property": `${sTD}/error/@SAP__common.Application/ComponentId` },
82
+ { "groupName": "Application", "property": `${sTD}/error/@SAP__common.Application/ServiceId` },
83
+ { "groupName": "Application", "property": `${sTD}/error/@SAP__common.Application/ServiceRepository` },
84
+ { "groupName": "Application", "property": `${sTD}/error/@SAP__common.Application/ServiceVersion` },
85
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.ErrorResolution/Analysis` },
86
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.ErrorResolution/Note` },
87
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.ErrorResolution/DetailedNote` },
88
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.ExceptionCategory` },
89
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.TimeStamp` },
90
+ { "groupName": "ErrorResolution", "property": `${sTD}/error/@SAP__common.TransactionId` },
91
+ { "groupName": "Messages", "property": `${sTD}/error/code` },
92
+ { "groupName": "Messages", "property": `${sTD}/error/message` }
91
93
  ];
92
94
  }
93
95
 
94
96
  let sHTML = "Object.keys(" + "${technicalDetails}" + ').length > 0 ? "<h2>Technical Details</h2>" : "" ';
95
97
  getPaths().forEach(function (oProperty: { groupName: string; property: string }) {
96
- sHTML = sHTML + insertGroupName(oProperty) + "" + insertDetail(oProperty) + " + ";
98
+ sHTML = `${sHTML + insertGroupName(oProperty)}${insertDetail(oProperty)} + `;
97
99
  });
98
100
  return sHTML;
99
101
  }
100
102
  function fnFormatDescription() {
101
- const sHTML = "(${" + 'description} ? ("<h2>Description</h2>" + ${' + 'description}) : "")';
102
- return sHTML;
103
+ return "(${" + 'description} ? ("<h2>Description</h2>" + ${' + 'description}) : "")';
103
104
  }
104
105
  /**
105
106
  * Calculates the highest priority message type(Error/Warning/Success/Information) from the available messages.
106
-
107
+ *
107
108
  * @function
108
109
  * @name sap.fe.core.actions.messageHandling.fnGetHighestMessagePriority
109
110
  * @memberof sap.fe.core.actions.messageHandling
110
- * @param {Array} [aMessages] Messages list
111
- * @returns {string} Highest priority message from the available messages
111
+ * @param [aMessages] Messages list
112
+ * @returns Highest priority message from the available messages
112
113
  * @private
113
114
  * @ui5-restricted
114
115
  */
@@ -133,14 +134,19 @@ function fnGetHighestMessagePriority(aMessages: any[]) {
133
134
  }
134
135
  // function which modify e-Tag messages only.
135
136
  // returns : true, if any e-Tag message is modified, otherwise false.
136
- function fnModifyETagMessagesOnly(oMessageManager: any, oResourceBundle: any) {
137
+ function fnModifyETagMessagesOnly(oMessageManager: any, oResourceBundle: any, concurrentEditFlag: boolean | undefined) {
137
138
  const aMessages = oMessageManager.getMessageModel().getObject("/");
138
139
  let bMessagesModified = false;
139
140
  let sEtagMessage = "";
140
141
  aMessages.forEach(function (oMessage: any, i: any) {
141
142
  const oTechnicalDetails = oMessage.getTechnicalDetails();
142
143
  if (oTechnicalDetails && oTechnicalDetails.httpStatus === 412) {
143
- sEtagMessage = sEtagMessage || oResourceBundle.getText("C_APP_COMPONENT_SAPFE_ETAG_TECHNICAL_ISSUES");
144
+ if (oTechnicalDetails.isConcurrentModification && concurrentEditFlag) {
145
+ sEtagMessage =
146
+ sEtagMessage || oResourceBundle.getText("C_APP_COMPONENT_SAPFE_ETAG_TECHNICAL_ISSUES_CONCURRENT_MODIFICATION");
147
+ } else {
148
+ sEtagMessage = sEtagMessage || oResourceBundle.getText("C_APP_COMPONENT_SAPFE_ETAG_TECHNICAL_ISSUES");
149
+ }
144
150
  oMessageManager.removeMessages(aMessages[i]);
145
151
  oMessage.setMessage(sEtagMessage);
146
152
  oMessage.target = "";
@@ -179,10 +185,9 @@ function getRetryAfterMessage(oMessage: any, bMessageDialog?: any) {
179
185
  //same year
180
186
  if (bMessageDialog) {
181
187
  //less than 2 min
182
- sRetryAfterMessage =
183
- oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_TITLE") +
184
- " " +
185
- oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_DESC");
188
+ sRetryAfterMessage = `${oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_TITLE")} ${oResourceBundle.getText(
189
+ "C_MESSAGE_HANDLING_SAPFE_503_DESC"
190
+ )}`;
186
191
  } else if (dNow.getMonth() !== dRetryAfter.getMonth() || dNow.getDate() !== dRetryAfter.getDate()) {
187
192
  oDateFormat = DateFormat.getDateTimeInstance({
188
193
  pattern: "MMMM dd 'at' hh:mm a"
@@ -268,8 +273,10 @@ function showUnboundMessages(
268
273
  oContext?: any,
269
274
  bHasEtagMessage?: boolean,
270
275
  bShowBoundTransition?: boolean,
271
- errorTargetsInAPM?: boolean
272
- ) {
276
+ showErrorInAPD?: boolean,
277
+ bShowMessageBox?: boolean,
278
+ concurrentEditFlag?: boolean
279
+ ): Promise<any> {
273
280
  let aUnboundMessages = this.getMessages();
274
281
  const oMessageManager = Core.getMessageManager();
275
282
  let sHighestPriority;
@@ -334,13 +341,9 @@ function showUnboundMessages(
334
341
  });
335
342
  }
336
343
  const oMessageDialogModel = (oMessageView && (oMessageView.getModel() as JSONModel)) || new JSONModel();
337
- if (
338
- aUnboundMessages.length === 1 &&
339
- (aUnboundMessages[0].getCode() === "503" ||
340
- (aUnboundMessages[0].getTarget() !== undefined && aUnboundMessages[0].getTarget() !== ""))
341
- ) {
344
+ if (aUnboundMessages.length === 1 && (aUnboundMessages[0].getCode() === "503" || bShowMessageBox)) {
342
345
  if (aUnboundMessages[0].getCode() !== "503") {
343
- showMessageBox = !errorTargetsInAPM;
346
+ showMessageBox = !showErrorInAPD;
344
347
  } else {
345
348
  showMessageBox = true;
346
349
  }
@@ -349,14 +352,17 @@ function showUnboundMessages(
349
352
  aCurrentContexts = oListBinding.getCurrentContexts();
350
353
  if (aCurrentContexts && aCurrentContexts.length > 0) {
351
354
  // Don't show dialog incase there are no errors to show
352
- showMessageDialog = !errorTargetsInAPM; // if false, show messages in dialog
355
+ if (oContext && oContext?.getObject()?.IsActiveEntity && !showErrorInAPD) {
356
+ showMessageDialog = true;
357
+ } else {
358
+ showMessageDialog = !showErrorInAPD;
359
+ } // if false, show messages in dialog
353
360
  // As fitering has already happened here hence
354
361
  // using the message model again for the message dialog view and then filtering on that binding again is unnecessary.
355
362
  // So we create new json model to use for the message dialog view.
356
363
  const aMessages: any[] = [];
357
- aCurrentContexts.forEach(function (oContext: any) {
358
- let oMessage;
359
- oMessage = oContext.getObject();
364
+ aCurrentContexts.forEach(function (currentContext: any) {
365
+ const oMessage = currentContext.getObject();
360
366
  aMessages.push(oMessage);
361
367
  aMessageDataList = aMessages;
362
368
  });
@@ -396,13 +402,12 @@ function showUnboundMessages(
396
402
  .getLibraryResourceBundle("sap.fe.core", true)
397
403
  .then(function (oResourceBundle: any) {
398
404
  const bStrictHandlingFlow = false;
399
- const bHasEtagMessage = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle);
405
+ const messageHasETag = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle, concurrentEditFlag);
400
406
  const oMessageObject = prepareMessageViewForDialog(oMessageDialogModel, bStrictHandlingFlow);
401
407
  oDialog =
402
408
  oDialog ||
403
409
  new Dialog({
404
410
  resizable: true,
405
- content: oMessageObject.oMessageView,
406
411
  endButton: new Button({
407
412
  press: function () {
408
413
  dialogCloseHandler();
@@ -431,8 +436,9 @@ function showUnboundMessages(
431
436
  aResolveFunctions = [];
432
437
  }
433
438
  });
439
+ oDialog.addContent(oMessageObject.oMessageView);
434
440
 
435
- if (bHasEtagMessage) {
441
+ if (messageHasETag) {
436
442
  sap.ui.require(["sap/m/ButtonType"], function (ButtonType: any) {
437
443
  oDialog.setBeginButton(
438
444
  new Button({
@@ -457,6 +463,7 @@ function showUnboundMessages(
457
463
  (oDialog.getCustomHeader() as any).getContentMiddle()[0].setText(sHighestPriorityText);
458
464
  oMessageView.navigateBack();
459
465
  oDialog.open();
466
+ resolve(oDialog);
460
467
  })
461
468
  .catch(reject);
462
469
  });
@@ -468,12 +475,12 @@ function showUnboundMessages(
468
475
  let formattedTextString = "<html><body>";
469
476
  const retryAfterMessage = getRetryAfterMessage(oMessage, true);
470
477
  if (retryAfterMessage) {
471
- formattedTextString = "<h6>" + retryAfterMessage + "</h6><br>";
478
+ formattedTextString = `<h6>${retryAfterMessage}</h6><br>`;
472
479
  }
473
- if (oMessage.getCode() !== "503") {
474
- formattedTextString = formattedTextString + oMessage.additionalText + ": " + oMessage.getMessage() + "</html></body>";
480
+ if (oMessage.getCode() !== "503" && oMessage.getAdditionalText() !== undefined) {
481
+ formattedTextString = `${formattedTextString + oMessage.getAdditionalText()}: ${oMessage.getMessage()}</html></body>`;
475
482
  } else {
476
- formattedTextString = formattedTextString + oMessage.getMessage() + "</html></body>";
483
+ formattedTextString = `${formattedTextString + oMessage.getMessage()}</html></body>`;
477
484
  }
478
485
  const formattedText: any = new FormattedText({
479
486
  htmlText: formattedTextString
@@ -512,17 +519,39 @@ function getTranslatedTextForMessageDialog(sHighestPriority: any) {
512
519
  function removeUnboundTransitionMessages() {
513
520
  removeTransitionMessages(false);
514
521
  }
515
- function removeBoundTransitionMessages() {
516
- removeTransitionMessages(true);
522
+ function removeBoundTransitionMessages(sPathToBeRemoved?: string) {
523
+ removeTransitionMessages(true, sPathToBeRemoved);
524
+ }
525
+
526
+ function getMessagesFromMessageModel(oMessageModel: any, sPathToBeRemoved?: string) {
527
+ if (sPathToBeRemoved === undefined) {
528
+ return oMessageModel.getObject("/");
529
+ }
530
+ const listBinding = oMessageModel.bindList("/");
531
+ listBinding.filter(
532
+ new Filter({
533
+ path: "target",
534
+ operator: FilterOperator.StartsWith,
535
+ value1: sPathToBeRemoved
536
+ })
537
+ );
538
+
539
+ return listBinding.getCurrentContexts().map(function (oContext: any) {
540
+ return oContext.getObject();
541
+ });
517
542
  }
518
- function getMessages(bBoundMessages: boolean = false, bTransitionOnly: boolean = false) {
543
+ function getMessages(bBoundMessages: boolean = false, bTransitionOnly: boolean = false, sPathToBeRemoved?: string) {
519
544
  let i;
520
545
  const oMessageManager = (Core as CoreEx as any).getMessageManager(),
521
546
  oMessageModel = oMessageManager.getMessageModel(),
522
- aMessages = oMessageModel.getObject("/"),
523
547
  oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core"),
524
548
  aTransitionMessages = [];
525
-
549
+ let aMessages: any[] = [];
550
+ if (bBoundMessages && bTransitionOnly && sPathToBeRemoved) {
551
+ aMessages = getMessagesFromMessageModel(oMessageModel, sPathToBeRemoved);
552
+ } else {
553
+ aMessages = oMessageModel.getObject("/");
554
+ }
526
555
  for (i = 0; i < aMessages.length; i++) {
527
556
  if (
528
557
  (!bTransitionOnly || aMessages[i].persistent) &&
@@ -539,14 +568,15 @@ function getMessages(bBoundMessages: boolean = false, bTransitionOnly: boolean =
539
568
  aTransitionMessages[i].message !== "" &&
540
569
  aTransitionMessages[i].message.indexOf(oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX")) === -1
541
570
  ) {
542
- aTransitionMessages[i].message =
543
- "\n" + oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX") + aTransitionMessages[i].message;
571
+ aTransitionMessages[i].message = `\n${oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX")}${
572
+ aTransitionMessages[i].message
573
+ }`;
544
574
  }
545
575
  }
546
576
  return aTransitionMessages;
547
577
  }
548
- function removeTransitionMessages(bBoundMessages: any) {
549
- const aMessagesToBeDeleted = getMessages(bBoundMessages, true);
578
+ function removeTransitionMessages(bBoundMessages: any, sPathToBeRemoved?: string) {
579
+ const aMessagesToBeDeleted = getMessages(bBoundMessages, true, sPathToBeRemoved);
550
580
 
551
581
  if (aMessagesToBeDeleted.length > 0) {
552
582
  Core.getMessageManager().removeMessages(aMessagesToBeDeleted);