@sapui5/sap.fe.core 1.99.0 → 1.101.1

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 (289) hide show
  1. package/package.json +6 -4
  2. package/src/sap/fe/core/.library +2 -3
  3. package/src/sap/fe/core/AnnotationHelper.js +43 -92
  4. package/src/sap/fe/core/AnnotationHelper.ts +43 -107
  5. package/src/sap/fe/core/AppComponent.js +381 -399
  6. package/src/sap/fe/core/AppComponent.ts +397 -0
  7. package/src/sap/fe/core/AppStateHandler.js +131 -162
  8. package/src/sap/fe/core/AppStateHandler.ts +2 -2
  9. package/src/sap/fe/core/BaseController.js +82 -58
  10. package/src/sap/fe/core/BaseController.ts +67 -0
  11. package/src/sap/fe/core/CommonUtils.js +179 -31
  12. package/src/sap/fe/core/CommonUtils.ts +295 -125
  13. package/src/sap/fe/core/ExtensionAPI.js +279 -274
  14. package/src/sap/fe/core/ExtensionAPI.ts +242 -0
  15. package/src/sap/fe/core/PageController.js +158 -29
  16. package/src/sap/fe/core/PageController.ts +65 -37
  17. package/src/sap/fe/core/RouterProxy.js +700 -750
  18. package/src/sap/fe/core/RouterProxy.ts +47 -31
  19. package/src/sap/fe/core/Synchronization.js +21 -31
  20. package/src/sap/fe/core/TemplateComponent.js +193 -118
  21. package/src/sap/fe/core/TemplateComponent.ts +104 -109
  22. package/src/sap/fe/core/TemplateModel.js +24 -44
  23. package/src/sap/fe/core/TemplateModel.ts +3 -3
  24. package/src/sap/fe/core/TransactionHelper.js +1368 -1369
  25. package/src/sap/fe/core/TransactionHelper.ts +201 -171
  26. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +406 -0
  27. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +362 -0
  28. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +146 -0
  29. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +129 -0
  30. package/src/sap/fe/core/actions/collaboration/Manage.js +264 -0
  31. package/src/sap/fe/core/actions/collaboration/Manage.ts +246 -0
  32. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +100 -0
  33. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  34. package/src/sap/fe/core/actions/draft.js +324 -220
  35. package/src/sap/fe/core/actions/draft.ts +209 -133
  36. package/src/sap/fe/core/actions/messageHandling.js +79 -48
  37. package/src/sap/fe/core/actions/messageHandling.ts +113 -83
  38. package/src/sap/fe/core/actions/operations.js +37 -18
  39. package/src/sap/fe/core/actions/operations.ts +51 -20
  40. package/src/sap/fe/core/actions/sticky.js +17 -4
  41. package/src/sap/fe/core/actions/sticky.ts +21 -4
  42. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +60 -0
  43. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +37 -0
  44. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +165 -0
  45. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +178 -0
  46. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +707 -0
  47. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +628 -0
  48. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +436 -0
  49. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +431 -0
  50. package/src/sap/fe/core/controllerextensions/EditFlow.js +1854 -1669
  51. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1792 -0
  52. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +79 -54
  53. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +60 -0
  54. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +716 -779
  55. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +785 -0
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +796 -816
  57. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +810 -0
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1056 -1005
  59. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +1001 -0
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.js +498 -532
  61. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +13 -12
  62. package/src/sap/fe/core/controllerextensions/MassEdit.js +141 -169
  63. package/src/sap/fe/core/controllerextensions/MassEdit.ts +155 -0
  64. package/src/sap/fe/core/controllerextensions/MessageHandler.js +221 -244
  65. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +215 -0
  66. package/src/sap/fe/core/controllerextensions/PageReady.js +312 -345
  67. package/src/sap/fe/core/controllerextensions/PageReady.ts +57 -53
  68. package/src/sap/fe/core/controllerextensions/Paginator.js +188 -175
  69. package/src/sap/fe/core/controllerextensions/Paginator.ts +169 -0
  70. package/src/sap/fe/core/controllerextensions/Placeholder.js +157 -149
  71. package/src/sap/fe/core/controllerextensions/Placeholder.ts +149 -0
  72. package/src/sap/fe/core/controllerextensions/Routing.js +144 -125
  73. package/src/sap/fe/core/controllerextensions/Routing.ts +131 -0
  74. package/src/sap/fe/core/controllerextensions/RoutingListener.js +7 -6
  75. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  76. package/src/sap/fe/core/controllerextensions/Share.js +230 -268
  77. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  78. package/src/sap/fe/core/controllerextensions/SideEffects.js +603 -644
  79. package/src/sap/fe/core/controllerextensions/SideEffects.ts +68 -68
  80. package/src/sap/fe/core/controllerextensions/ViewState.js +774 -806
  81. package/src/sap/fe/core/controllerextensions/ViewState.ts +796 -0
  82. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  83. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  84. package/src/sap/fe/core/controls/Any.js +28 -0
  85. package/src/sap/fe/core/controls/Any.ts +30 -0
  86. package/src/sap/fe/core/controls/CommandExecution.js +92 -68
  87. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  88. package/src/sap/fe/core/controls/ConditionalWrapper.js +165 -79
  89. package/src/sap/fe/core/controls/ConditionalWrapper.ts +74 -0
  90. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +366 -0
  91. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +278 -0
  92. package/src/sap/fe/core/controls/CustomQuickViewPage.js +167 -125
  93. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +116 -0
  94. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +44 -5
  95. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +163 -122
  96. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +155 -0
  97. package/src/sap/fe/core/controls/FieldWrapper.js +212 -141
  98. package/src/sap/fe/core/controls/FieldWrapper.ts +104 -0
  99. package/src/sap/fe/core/controls/FileWrapper.js +313 -0
  100. package/src/sap/fe/core/controls/FileWrapper.ts +169 -0
  101. package/src/sap/fe/core/controls/FilterBar.js +197 -159
  102. package/src/sap/fe/core/controls/FilterBar.ts +148 -0
  103. package/src/sap/fe/core/controls/FormElementWrapper.js +100 -39
  104. package/src/sap/fe/core/controls/FormElementWrapper.ts +37 -0
  105. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +37 -42
  106. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  107. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +147 -115
  108. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +102 -0
  109. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +300 -265
  110. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +252 -0
  111. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +185 -140
  112. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  113. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +335 -322
  114. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  115. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +37 -42
  116. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +75 -74
  117. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +71 -0
  118. package/src/sap/fe/core/converters/ConverterContext.js +348 -379
  119. package/src/sap/fe/core/converters/ConverterContext.ts +19 -16
  120. package/src/sap/fe/core/converters/ManifestSettings.js +13 -1
  121. package/src/sap/fe/core/converters/ManifestSettings.ts +17 -2
  122. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -378
  123. package/src/sap/fe/core/converters/ManifestWrapper.ts +10 -0
  124. package/src/sap/fe/core/converters/MetaModelConverter.js +6 -4
  125. package/src/sap/fe/core/converters/MetaModelConverter.ts +5 -2
  126. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  127. package/src/sap/fe/core/converters/TemplateConverter.ts +2 -1
  128. package/src/sap/fe/core/converters/annotations/DataField.js +26 -13
  129. package/src/sap/fe/core/converters/annotations/DataField.ts +40 -17
  130. package/src/sap/fe/core/converters/controls/Common/Action.js +10 -10
  131. package/src/sap/fe/core/converters/controls/Common/Action.ts +20 -19
  132. package/src/sap/fe/core/converters/controls/Common/Chart.js +8 -8
  133. package/src/sap/fe/core/converters/controls/Common/Chart.ts +12 -11
  134. package/src/sap/fe/core/converters/controls/Common/Form.js +6 -6
  135. package/src/sap/fe/core/converters/controls/Common/Form.ts +7 -3
  136. package/src/sap/fe/core/converters/controls/Common/KPI.js +1 -1
  137. package/src/sap/fe/core/converters/controls/Common/KPI.ts +2 -2
  138. package/src/sap/fe/core/converters/controls/Common/Table.js +326 -86
  139. package/src/sap/fe/core/converters/controls/Common/Table.ts +384 -167
  140. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +120 -55
  141. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +158 -98
  142. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +206 -223
  143. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +263 -287
  144. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +6 -6
  145. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +20 -18
  146. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +5 -2
  147. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +4 -1
  148. package/src/sap/fe/core/converters/helpers/Aggregation.js +115 -133
  149. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  150. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  151. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  152. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  153. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  154. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  155. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +1 -1
  156. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +0 -4
  157. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +51 -27
  158. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +69 -43
  159. package/src/sap/fe/core/converters/templates/ListReportConverter.js +42 -25
  160. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +91 -65
  161. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +11 -9
  162. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +8 -8
  163. package/src/sap/fe/core/designtime/AppComponent.designtime.js +92 -98
  164. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  165. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  166. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  167. package/src/sap/fe/core/formatters/KPIFormatter.js +3 -12
  168. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -2
  169. package/src/sap/fe/core/formatters/TableFormatter.js +53 -2
  170. package/src/sap/fe/core/formatters/TableFormatter.ts +51 -0
  171. package/src/sap/fe/core/formatters/ValueFormatter.js +4 -4
  172. package/src/sap/fe/core/formatters/ValueFormatter.ts +4 -7
  173. package/src/sap/fe/core/fpm/Component.js +80 -55
  174. package/src/sap/fe/core/fpm/Component.ts +43 -0
  175. package/src/sap/fe/core/helpers/AppStartupHelper.js +323 -309
  176. package/src/sap/fe/core/helpers/AppStartupHelper.ts +363 -337
  177. package/src/sap/fe/core/helpers/BindingExpression.js +7 -7
  178. package/src/sap/fe/core/helpers/BindingExpression.ts +7 -7
  179. package/src/sap/fe/core/helpers/ClassSupport.js +307 -166
  180. package/src/sap/fe/core/helpers/ClassSupport.ts +348 -155
  181. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +5 -4
  182. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -5
  183. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  184. package/src/sap/fe/core/helpers/FPMHelper.ts +1 -1
  185. package/src/sap/fe/core/helpers/MassEditHelper.js +735 -684
  186. package/src/sap/fe/core/helpers/MassEditHelper.ts +803 -0
  187. package/src/sap/fe/core/helpers/ModelHelper.js +53 -1
  188. package/src/sap/fe/core/helpers/ModelHelper.ts +46 -0
  189. package/src/sap/fe/core/helpers/PasteHelper.js +4 -4
  190. package/src/sap/fe/core/helpers/PasteHelper.ts +4 -3
  191. package/src/sap/fe/core/helpers/SemanticDateOperators.js +7 -3
  192. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +7 -1
  193. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +1 -1
  194. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +1 -1
  195. package/src/sap/fe/core/helpers/StableIdHelper.js +1 -7
  196. package/src/sap/fe/core/helpers/StableIdHelper.ts +0 -4
  197. package/src/sap/fe/core/jsx-runtime/jsx.js +35 -5
  198. package/src/sap/fe/core/jsx-runtime/jsx.ts +22 -8
  199. package/src/sap/fe/core/library.js +425 -451
  200. package/src/sap/fe/core/library.support.js +22 -33
  201. package/src/sap/fe/core/library.support.ts +23 -0
  202. package/src/sap/fe/core/library.ts +420 -0
  203. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +5 -3
  204. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +4 -4
  205. package/src/sap/fe/core/messagebundle.properties +45 -13
  206. package/src/sap/fe/core/messagebundle_ar.properties +29 -7
  207. package/src/sap/fe/core/messagebundle_bg.properties +29 -7
  208. package/src/sap/fe/core/messagebundle_ca.properties +29 -7
  209. package/src/sap/fe/core/messagebundle_cs.properties +29 -7
  210. package/src/sap/fe/core/messagebundle_cy.properties +29 -7
  211. package/src/sap/fe/core/messagebundle_da.properties +29 -7
  212. package/src/sap/fe/core/messagebundle_de.properties +29 -7
  213. package/src/sap/fe/core/messagebundle_el.properties +29 -7
  214. package/src/sap/fe/core/messagebundle_en.properties +29 -7
  215. package/src/sap/fe/core/messagebundle_en_GB.properties +29 -7
  216. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +29 -7
  217. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +29 -7
  218. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +29 -7
  219. package/src/sap/fe/core/messagebundle_es.properties +29 -7
  220. package/src/sap/fe/core/messagebundle_es_MX.properties +29 -7
  221. package/src/sap/fe/core/messagebundle_et.properties +29 -7
  222. package/src/sap/fe/core/messagebundle_fi.properties +30 -8
  223. package/src/sap/fe/core/messagebundle_fr.properties +31 -9
  224. package/src/sap/fe/core/messagebundle_fr_CA.properties +31 -9
  225. package/src/sap/fe/core/messagebundle_hi.properties +29 -7
  226. package/src/sap/fe/core/messagebundle_hr.properties +29 -7
  227. package/src/sap/fe/core/messagebundle_hu.properties +29 -7
  228. package/src/sap/fe/core/messagebundle_id.properties +29 -7
  229. package/src/sap/fe/core/messagebundle_it.properties +29 -7
  230. package/src/sap/fe/core/messagebundle_iw.properties +29 -7
  231. package/src/sap/fe/core/messagebundle_ja.properties +28 -6
  232. package/src/sap/fe/core/messagebundle_kk.properties +29 -7
  233. package/src/sap/fe/core/messagebundle_ko.properties +29 -7
  234. package/src/sap/fe/core/messagebundle_lt.properties +29 -7
  235. package/src/sap/fe/core/messagebundle_lv.properties +30 -8
  236. package/src/sap/fe/core/messagebundle_ms.properties +29 -7
  237. package/src/sap/fe/core/messagebundle_nl.properties +29 -7
  238. package/src/sap/fe/core/messagebundle_no.properties +29 -7
  239. package/src/sap/fe/core/messagebundle_pl.properties +29 -7
  240. package/src/sap/fe/core/messagebundle_pt.properties +30 -8
  241. package/src/sap/fe/core/messagebundle_pt_PT.properties +29 -7
  242. package/src/sap/fe/core/messagebundle_ro.properties +29 -7
  243. package/src/sap/fe/core/messagebundle_ru.properties +29 -7
  244. package/src/sap/fe/core/messagebundle_sh.properties +29 -7
  245. package/src/sap/fe/core/messagebundle_sk.properties +29 -7
  246. package/src/sap/fe/core/messagebundle_sl.properties +29 -7
  247. package/src/sap/fe/core/messagebundle_sv.properties +30 -8
  248. package/src/sap/fe/core/messagebundle_th.properties +28 -6
  249. package/src/sap/fe/core/messagebundle_tr.properties +32 -10
  250. package/src/sap/fe/core/messagebundle_uk.properties +29 -7
  251. package/src/sap/fe/core/messagebundle_vi.properties +29 -7
  252. package/src/sap/fe/core/messagebundle_zh_CN.properties +29 -7
  253. package/src/sap/fe/core/messagebundle_zh_TW.properties +29 -7
  254. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +47 -73
  255. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +1 -1
  256. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +158 -196
  257. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +5 -6
  258. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +70 -96
  259. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +7 -6
  260. package/src/sap/fe/core/services/NavigationServiceFactory.js +287 -342
  261. package/src/sap/fe/core/services/NavigationServiceFactory.ts +11 -14
  262. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +70 -105
  263. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +6 -3
  264. package/src/sap/fe/core/services/RoutingServiceFactory.js +796 -820
  265. package/src/sap/fe/core/services/RoutingServiceFactory.ts +62 -53
  266. package/src/sap/fe/core/services/ShellServicesFactory.js +694 -741
  267. package/src/sap/fe/core/services/ShellServicesFactory.ts +33 -33
  268. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +570 -595
  269. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +23 -4
  270. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +357 -389
  271. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +25 -29
  272. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +43 -5
  273. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +7 -4
  274. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  275. package/src/sap/fe/core/support/CommonHelper.ts +1 -4
  276. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  277. package/src/sap/fe/core/templating/DataModelPathHelper.js +91 -90
  278. package/src/sap/fe/core/templating/DataModelPathHelper.ts +126 -123
  279. package/src/sap/fe/core/templating/DisplayModeFormatter.js +23 -3
  280. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +26 -5
  281. package/src/sap/fe/core/templating/FilterHelper.js +25 -32
  282. package/src/sap/fe/core/templating/FilterHelper.ts +36 -35
  283. package/src/sap/fe/core/templating/PropertyHelper.js +16 -2
  284. package/src/sap/fe/core/templating/PropertyHelper.ts +31 -24
  285. package/src/sap/fe/core/templating/UIFormatters.js +150 -44
  286. package/src/sap/fe/core/templating/UIFormatters.ts +165 -67
  287. package/src/sap/fe/core/type/Email.js +26 -8
  288. package/src/sap/fe/core/type/Email.ts +8 -7
  289. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +0 -75
@@ -1,22 +1,23 @@
1
- import MessageToast from "sap/m/MessageToast";
2
- import MessageItem from "sap/m/MessageItem";
3
- import MessageView from "sap/m/MessageView";
1
+ import Bar from "sap/m/Bar";
4
2
  import Button from "sap/m/Button";
5
3
  import Dialog from "sap/m/Dialog";
4
+ import FormattedText from "sap/m/FormattedText";
5
+ import MessageBox from "sap/m/MessageBox";
6
+ import MessageItem from "sap/m/MessageItem";
7
+ import MessageToast from "sap/m/MessageToast";
8
+ import MessageView from "sap/m/MessageView";
6
9
  import Text from "sap/m/Text";
10
+ import ManagedObject from "sap/ui/base/ManagedObject";
11
+ import Core from "sap/ui/core/Core";
12
+ import DateFormat from "sap/ui/core/format/DateFormat";
13
+ import IconPool from "sap/ui/core/IconPool";
7
14
  import CoreLib from "sap/ui/core/library";
15
+ import Message from "sap/ui/core/message/Message";
16
+ import Control from "sap/ui/mdc/Control";
8
17
  import Filter from "sap/ui/model/Filter";
9
18
  import FilterOperator from "sap/ui/model/FilterOperator";
10
- import Message from "sap/ui/core/message/Message";
11
- import IconPool from "sap/ui/core/IconPool";
12
19
  import JSONModel from "sap/ui/model/json/JSONModel";
13
- import DateFormat from "sap/ui/core/format/DateFormat";
14
- import ResourceBundle from "sap/base/i18n/ResourceBundle";
15
- import Control from "sap/ui/mdc/Control";
16
- import ManagedObject from "sap/ui/base/ManagedObject";
17
- import Bar from "sap/m/Bar";
18
- import MessageBox from "sap/m/MessageBox";
19
- import FormattedText from "sap/m/FormattedText";
20
+ import { CoreEx } from "types/extension_types";
20
21
 
21
22
  const MessageType = CoreLib.MessageType;
22
23
  let aMessageList: any[] = [];
@@ -39,6 +40,7 @@ export type messageHandlingType = {
39
40
  removeBoundTransitionMessages: () => void;
40
41
  modifyETagMessagesOnly: (oMessageManager: any, oResourceBundle: any) => boolean;
41
42
  getRetryAfterMessage: (oMessage: any, bMessageDialog?: any) => any;
43
+ prepareMessageViewForDialog: (oMessageDialogModel: JSONModel, bStrictHandlingFlow: boolean) => any;
42
44
  };
43
45
 
44
46
  function fnFormatTechnicalDetails() {
@@ -89,7 +91,7 @@ function fnFormatTechnicalDetails() {
89
91
  }
90
92
 
91
93
  let sHTML = "Object.keys(" + "${technicalDetails}" + ').length > 0 ? "<h2>Technical Details</h2>" : "" ';
92
- getPaths().forEach(function(oProperty: { groupName: string; property: string }) {
94
+ getPaths().forEach(function (oProperty: { groupName: string; property: string }) {
93
95
  sHTML = sHTML + insertGroupName(oProperty) + "" + insertDetail(oProperty) + " + ";
94
96
  });
95
97
  return sHTML;
@@ -134,7 +136,7 @@ function fnModifyETagMessagesOnly(oMessageManager: any, oResourceBundle: any) {
134
136
  const aMessages = oMessageManager.getMessageModel().getObject("/");
135
137
  let bMessagesModified = false;
136
138
  let sEtagMessage = "";
137
- aMessages.forEach(function(oMessage: any, i: any) {
139
+ aMessages.forEach(function (oMessage: any, i: any) {
138
140
  const oTechnicalDetails = oMessage.getTechnicalDetails();
139
141
  if (oTechnicalDetails && oTechnicalDetails.httpStatus === 412) {
140
142
  sEtagMessage = sEtagMessage || oResourceBundle.getText("C_APP_COMPONENT_SAPFE_ETAG_TECHNICAL_ISSUES");
@@ -152,12 +154,16 @@ function dialogCloseHandler() {
152
154
  oDialog.close();
153
155
  oBackButton.setVisible(false);
154
156
  aMessageList = [];
157
+ const oMessageDialogModel: any = oMessageView.getModel();
158
+ if (oMessageDialogModel) {
159
+ oMessageDialogModel.setData({});
160
+ }
155
161
  removeUnboundTransitionMessages();
156
162
  }
157
- function getRetryAfterMessage(oMessage: any, bMessageDialog: any) {
163
+ function getRetryAfterMessage(oMessage: any, bMessageDialog?: any) {
158
164
  const dNow = new Date();
159
165
  const oTechnicalDetails = oMessage.getTechnicalDetails();
160
- const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
166
+ const oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
161
167
  let sRetryAfterMessage;
162
168
  if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503 && oTechnicalDetails.retryAfter) {
163
169
  const dRetryAfter = oTechnicalDetails.retryAfter;
@@ -196,6 +202,65 @@ function getRetryAfterMessage(oMessage: any, bMessageDialog: any) {
196
202
  }
197
203
  return sRetryAfterMessage;
198
204
  }
205
+
206
+ function prepareMessageViewForDialog(oMessageDialogModel: JSONModel, bStrictHandlingFlow: boolean) {
207
+ if (!bStrictHandlingFlow) {
208
+ oMessageTemplate =
209
+ oMessageTemplate ||
210
+ new MessageItem(undefined, {
211
+ counter: { path: "counter" },
212
+ title: "{message}",
213
+ subtitle: "{additionalText}",
214
+ longtextUrl: "{descriptionUrl}",
215
+ type: { path: "type" },
216
+ description:
217
+ "{= ${" +
218
+ "description} || ${technicalDetails} ? " +
219
+ '"<html><body>" + ' +
220
+ fnFormatDescription() +
221
+ " + " +
222
+ fnFormatTechnicalDetails() +
223
+ '"</body></html>"' +
224
+ ' : "" }',
225
+ markupDescription: true
226
+ });
227
+ } else {
228
+ oMessageTemplate = new MessageItem({
229
+ title: "{message}",
230
+ type: "Warning",
231
+ longtextUrl: "{descriptionUrl}"
232
+ });
233
+ }
234
+ oMessageView =
235
+ oMessageView ||
236
+ new MessageView({
237
+ showDetailsPageHeader: false,
238
+ itemSelect: function () {
239
+ oBackButton.setVisible(true);
240
+ },
241
+ items: {
242
+ path: "/",
243
+ template: oMessageTemplate
244
+ }
245
+ });
246
+ oBackButton =
247
+ oBackButton ||
248
+ new Button({
249
+ icon: IconPool.getIconURI("nav-back"),
250
+ visible: false,
251
+ press: function (this: Button) {
252
+ oMessageView.navigateBack();
253
+ this.setVisible(false);
254
+ }
255
+ });
256
+ // Update proper ETag Mismatch error
257
+ oMessageView.setModel(oMessageDialogModel);
258
+ return {
259
+ oMessageView,
260
+ oBackButton
261
+ };
262
+ }
263
+
199
264
  function showUnboundMessages(
200
265
  this: messageHandlingType,
201
266
  aCustomMessages?: any[],
@@ -204,7 +269,7 @@ function showUnboundMessages(
204
269
  bShowBoundTransition?: boolean
205
270
  ) {
206
271
  let aUnboundMessages = this.getMessages();
207
- const oMessageManager = (sap.ui.getCore() as any).getMessageManager();
272
+ const oMessageManager = Core.getMessageManager();
208
273
  let sHighestPriority;
209
274
  let sHighestPriorityText;
210
275
  const aFilters = [
@@ -218,10 +283,10 @@ function showUnboundMessages(
218
283
  aUnboundMessages = aUnboundMessages.concat(getMessages(true, true));
219
284
  // we only want to show bound transition messages not bound state messages hence add a filter for the same
220
285
  aFilters.push(new Filter({ path: "persistent", operator: FilterOperator.EQ, value1: true }));
221
- const fnCheckControlIdInDialog = function(aControlIds: any) {
286
+ const fnCheckControlIdInDialog = function (aControlIds: any) {
222
287
  let index = Infinity,
223
- oControl = sap.ui.getCore().byId(aControlIds[0]) as ManagedObject;
224
- const errorFieldControl = sap.ui.getCore().byId(aControlIds[0]) as Control;
288
+ oControl = Core.byId(aControlIds[0]) as ManagedObject;
289
+ const errorFieldControl = Core.byId(aControlIds[0]) as Control;
225
290
  while (oControl) {
226
291
  const fieldRankinDialog =
227
292
  oControl instanceof Dialog
@@ -252,7 +317,7 @@ function showUnboundMessages(
252
317
  aFilters.push(new Filter({ path: "target", operator: FilterOperator.EQ, value1: "" }));
253
318
  }
254
319
  if (aCustomMessages && aCustomMessages.length) {
255
- aCustomMessages.forEach(function(oMessage: any) {
320
+ aCustomMessages.forEach(function (oMessage: any) {
256
321
  const messageCode = oMessage.code ? oMessage.code : "";
257
322
  oMessageManager.addMessages(
258
323
  new Message({
@@ -266,7 +331,7 @@ function showUnboundMessages(
266
331
  //The target and persistent properties of the message are hardcoded as "" and true because the function deals with only unbound messages.
267
332
  });
268
333
  }
269
- const oMessageDialogModel = new JSONModel();
334
+ const oMessageDialogModel = (oMessageView && (oMessageView.getModel() as JSONModel)) || new JSONModel();
270
335
  if (aUnboundMessages.length === 1 && aUnboundMessages[0].getCode() === "503") {
271
336
  showMessageBox = true;
272
337
  } else {
@@ -279,7 +344,7 @@ function showUnboundMessages(
279
344
  // using the message model again for the message dialog view and then filtering on that binding again is unnecessary.
280
345
  // So we create new json model to use for the message dialog view.
281
346
  const aMessages: any[] = [];
282
- aCurrentContexts.forEach(function(oContext: any) {
347
+ aCurrentContexts.forEach(function (oContext: any) {
283
348
  let oMessage;
284
349
  if (
285
350
  oContext.getObject().technicalDetails &&
@@ -298,75 +363,39 @@ function showUnboundMessages(
298
363
  // if(aMessages.length === 0 && aMessageList.length) {
299
364
  // oMessageDialogModel.setData(aMessages);
300
365
  // }
301
- oMessageDialogModel.setData(aMessageDataList);
366
+ let existingMessages: any[] = [];
367
+ if (Array.isArray(oMessageDialogModel.getData())) {
368
+ existingMessages = oMessageDialogModel.getData();
369
+ }
370
+ oMessageDialogModel.setData(aMessageDataList.concat(existingMessages));
302
371
  }
303
372
  }
304
373
  if (aUnboundMessages.length === 0 && !aCustomMessages && !bHasEtagMessage) {
305
374
  // Don't show the popup if there are no transient messages
306
375
  return Promise.resolve(true);
307
376
  } else if (aUnboundMessages.length === 1 && aUnboundMessages[0].getType() === MessageType.Success && !aCustomMessages) {
308
- return new Promise<void>(resolve => {
377
+ return new Promise<void>((resolve) => {
309
378
  MessageToast.show(aUnboundMessages[0].message);
310
379
  oMessageManager.removeMessages(aUnboundMessages);
311
380
  resolve();
312
381
  });
313
382
  } else if (showMessageDialog) {
314
383
  aResolveFunctions = aResolveFunctions || [];
315
- return new Promise(function(resolve: (value: any) => void, reject: (reason?: any) => void) {
384
+ return new Promise(function (resolve: (value: any) => void, reject: (reason?: any) => void) {
316
385
  aResolveFunctions.push(resolve);
317
- (sap.ui.getCore().getLibraryResourceBundle("sap.fe.core", true) as Promise<ResourceBundle>)
318
- .then(function(oResourceBundle: any) {
319
- oMessageTemplate =
320
- oMessageTemplate ||
321
- new MessageItem(undefined, {
322
- counter: { path: "counter" },
323
- title: "{message}",
324
- subtitle: "{additionalText}",
325
- longtextUrl: "{descriptionUrl}",
326
- type: { path: "type" },
327
- description:
328
- "{= ${" +
329
- "description} || ${technicalDetails} ? " +
330
- '"<html><body>" + ' +
331
- fnFormatDescription() +
332
- " + " +
333
- fnFormatTechnicalDetails() +
334
- '"</body></html>"' +
335
- ' : "" }',
336
- markupDescription: true
337
- });
338
- oMessageView =
339
- oMessageView ||
340
- new MessageView({
341
- showDetailsPageHeader: false,
342
- itemSelect: function() {
343
- oBackButton.setVisible(true);
344
- },
345
- items: {
346
- path: "/",
347
- template: oMessageTemplate
348
- }
349
- });
350
- oBackButton =
351
- oBackButton ||
352
- new Button({
353
- icon: IconPool.getIconURI("nav-back"),
354
- visible: false,
355
- press: function(this: Button) {
356
- oMessageView.navigateBack();
357
- this.setVisible(false);
358
- }
359
- });
360
- // Update proper ETag Mismatch error
386
+ (Core as CoreEx)
387
+ .getLibraryResourceBundle("sap.fe.core", true)
388
+ .then(function (oResourceBundle: any) {
389
+ const bStrictHandlingFlow = false;
361
390
  const bHasEtagMessage = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle);
362
- oMessageView.setModel(oMessageDialogModel);
391
+ const oMessageObject = prepareMessageViewForDialog(oMessageDialogModel, bStrictHandlingFlow);
363
392
  oDialog =
364
393
  oDialog ||
365
394
  new Dialog({
366
395
  resizable: true,
367
- content: oMessageView,
396
+ content: oMessageObject.oMessageView,
368
397
  endButton: new Button({
369
- press: function() {
398
+ press: function () {
370
399
  dialogCloseHandler();
371
400
  // also remove bound transition messages if we were showing them
372
401
  if (bShowBoundTransition) {
@@ -386,7 +415,7 @@ function showUnboundMessages(
386
415
  contentWidth: "37.5em",
387
416
  contentHeight: "21.5em",
388
417
  verticalScrolling: false,
389
- afterClose: function() {
418
+ afterClose: function () {
390
419
  for (let i = 0; i < aResolveFunctions.length; i++) {
391
420
  aResolveFunctions[i].call();
392
421
  }
@@ -395,10 +424,10 @@ function showUnboundMessages(
395
424
  });
396
425
 
397
426
  if (bHasEtagMessage) {
398
- sap.ui.require(["sap/m/ButtonType"], function(ButtonType: any) {
427
+ sap.ui.require(["sap/m/ButtonType"], function (ButtonType: any) {
399
428
  oDialog.setBeginButton(
400
429
  new Button({
401
- press: function() {
430
+ press: function () {
402
431
  dialogCloseHandler();
403
432
  if (oContext.hasPendingChanges()) {
404
433
  oContext.getBinding().resetChanges();
@@ -423,7 +452,7 @@ function showUnboundMessages(
423
452
  .catch(reject);
424
453
  });
425
454
  } else if (showMessageBox) {
426
- return new Promise(function(resolve) {
455
+ return new Promise(function (resolve) {
427
456
  const oMessage = aUnboundMessages[0];
428
457
  if (oMessage.technicalDetails && aMessageList.indexOf(oMessage.technicalDetails.originalMessage.message) === -1) {
429
458
  aMessageList.push(oMessage.technicalDetails.originalMessage.message);
@@ -437,7 +466,7 @@ function showUnboundMessages(
437
466
  htmlText: formattedTextString
438
467
  });
439
468
  MessageBox.error(formattedText, {
440
- onClose: function() {
469
+ onClose: function () {
441
470
  aMessageList = [];
442
471
  if (bShowBoundTransition) {
443
472
  removeBoundTransitionMessages();
@@ -453,7 +482,7 @@ function showUnboundMessages(
453
482
  }
454
483
  }
455
484
  function getTranslatedTextForMessageDialog(sHighestPriority: any) {
456
- const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
485
+ const oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core");
457
486
  switch (sHighestPriority) {
458
487
  case "Error":
459
488
  return oResourceBundle.getText("C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_TITLE_ERROR");
@@ -475,10 +504,10 @@ function removeBoundTransitionMessages() {
475
504
  }
476
505
  function getMessages(bBoundMessages: boolean = false, bTransitionOnly: boolean = false) {
477
506
  let i;
478
- const oMessageManager = (sap.ui.getCore() as any).getMessageManager(),
507
+ const oMessageManager = (Core as CoreEx as any).getMessageManager(),
479
508
  oMessageModel = oMessageManager.getMessageModel(),
480
509
  aMessages = oMessageModel.getObject("/"),
481
- oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle,
510
+ oResourceBundle = (Core as CoreEx).getLibraryResourceBundle("sap.fe.core"),
482
511
  aTransitionMessages = [];
483
512
 
484
513
  for (i = 0; i < aMessages.length; i++) {
@@ -507,7 +536,7 @@ function removeTransitionMessages(bBoundMessages: any) {
507
536
  const aMessagesToBeDeleted = getMessages(bBoundMessages, true);
508
537
 
509
538
  if (aMessagesToBeDeleted.length > 0) {
510
- (sap.ui.getCore() as any).getMessageManager().removeMessages(aMessagesToBeDeleted);
539
+ Core.getMessageManager().removeMessages(aMessagesToBeDeleted);
511
540
  }
512
541
  }
513
542
 
@@ -526,7 +555,8 @@ const messageHandling: messageHandlingType = {
526
555
  removeUnboundTransitionMessages: removeUnboundTransitionMessages,
527
556
  removeBoundTransitionMessages: removeBoundTransitionMessages,
528
557
  modifyETagMessagesOnly: fnModifyETagMessagesOnly,
529
- getRetryAfterMessage: getRetryAfterMessage
558
+ getRetryAfterMessage: getRetryAfterMessage,
559
+ prepareMessageViewForDialog: prepareMessageViewForDialog
530
560
  };
531
561
 
532
562
  export default messageHandling;