@sapui5/sap.fe.core 1.97.0 → 1.100.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 (306) hide show
  1. package/package.json +7 -4
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AnnotationHelper.js +309 -405
  4. package/src/sap/fe/core/AnnotationHelper.ts +315 -0
  5. package/src/sap/fe/core/AppComponent.js +389 -397
  6. package/src/sap/fe/core/AppComponent.ts +403 -0
  7. package/src/sap/fe/core/AppStateHandler.js +198 -181
  8. package/src/sap/fe/core/AppStateHandler.ts +171 -0
  9. package/src/sap/fe/core/BaseController.js +83 -58
  10. package/src/sap/fe/core/BaseController.ts +68 -0
  11. package/src/sap/fe/core/BusyLocker.js +105 -121
  12. package/src/sap/fe/core/BusyLocker.ts +98 -0
  13. package/src/sap/fe/core/CommonUtils.js +2164 -2379
  14. package/src/sap/fe/core/CommonUtils.ts +2177 -0
  15. package/src/sap/fe/core/ExtensionAPI.js +279 -266
  16. package/src/sap/fe/core/ExtensionAPI.ts +250 -0
  17. package/src/sap/fe/core/PageController.js +218 -125
  18. package/src/sap/fe/core/PageController.ts +129 -0
  19. package/src/sap/fe/core/RouterProxy.js +924 -807
  20. package/src/sap/fe/core/RouterProxy.ts +840 -0
  21. package/src/sap/fe/core/Synchronization.js +41 -35
  22. package/src/sap/fe/core/Synchronization.ts +29 -0
  23. package/src/sap/fe/core/TemplateComponent.js +173 -155
  24. package/src/sap/fe/core/TemplateComponent.ts +173 -0
  25. package/src/sap/fe/core/TemplateModel.js +79 -54
  26. package/src/sap/fe/core/TemplateModel.ts +63 -0
  27. package/src/sap/fe/core/TransactionHelper.js +1560 -1579
  28. package/src/sap/fe/core/TransactionHelper.ts +1717 -0
  29. package/src/sap/fe/core/actions/collaboration/ActivitySync.js +392 -0
  30. package/src/sap/fe/core/actions/collaboration/ActivitySync.ts +355 -0
  31. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.js +136 -0
  32. package/src/sap/fe/core/actions/collaboration/CollaborationCommon.ts +119 -0
  33. package/src/sap/fe/core/actions/collaboration/Manage.js +262 -0
  34. package/src/sap/fe/core/actions/collaboration/Manage.ts +244 -0
  35. package/src/sap/fe/core/actions/collaboration/ManageDialog.fragment.xml +103 -0
  36. package/src/sap/fe/core/actions/collaboration/UserDetails.fragment.xml +13 -0
  37. package/src/sap/fe/core/actions/draft.js +521 -581
  38. package/src/sap/fe/core/actions/draft.ts +566 -0
  39. package/src/sap/fe/core/actions/messageHandling.js +564 -511
  40. package/src/sap/fe/core/actions/messageHandling.ts +552 -0
  41. package/src/sap/fe/core/actions/nonDraft.js +17 -19
  42. package/src/sap/fe/core/actions/nonDraft.ts +12 -0
  43. package/src/sap/fe/core/actions/operations.js +1093 -1211
  44. package/src/sap/fe/core/actions/operations.ts +1192 -0
  45. package/src/sap/fe/core/actions/sticky.js +114 -104
  46. package/src/sap/fe/core/actions/sticky.ts +119 -0
  47. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.js +70 -66
  48. package/src/sap/fe/core/controllerextensions/ControllerExtensionMetadata.ts +65 -0
  49. package/src/sap/fe/core/controllerextensions/EditFlow.js +1594 -1701
  50. package/src/sap/fe/core/controllerextensions/EditFlow.ts +1672 -0
  51. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +80 -54
  52. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +61 -0
  53. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +719 -505
  54. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +783 -0
  55. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +797 -813
  56. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +803 -0
  57. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1005 -973
  58. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +978 -0
  59. package/src/sap/fe/core/controllerextensions/KPIManagement.js +530 -476
  60. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +137 -46
  61. package/src/sap/fe/core/controllerextensions/MassEdit.js +144 -0
  62. package/src/sap/fe/core/controllerextensions/MassEdit.ts +156 -0
  63. package/src/sap/fe/core/controllerextensions/MessageHandler.js +234 -232
  64. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +225 -0
  65. package/src/sap/fe/core/controllerextensions/PageReady.js +302 -337
  66. package/src/sap/fe/core/controllerextensions/PageReady.ts +23 -17
  67. package/src/sap/fe/core/controllerextensions/Paginator.js +189 -148
  68. package/src/sap/fe/core/controllerextensions/Paginator.ts +163 -0
  69. package/src/sap/fe/core/controllerextensions/Placeholder.js +158 -146
  70. package/src/sap/fe/core/controllerextensions/Placeholder.ts +151 -0
  71. package/src/sap/fe/core/controllerextensions/Routing.js +145 -106
  72. package/src/sap/fe/core/controllerextensions/Routing.ts +132 -0
  73. package/src/sap/fe/core/controllerextensions/RoutingListener.js +8 -6
  74. package/src/sap/fe/core/controllerextensions/RoutingListener.ts +3 -0
  75. package/src/sap/fe/core/controllerextensions/Share.js +220 -244
  76. package/src/sap/fe/core/controllerextensions/Share.ts +231 -0
  77. package/src/sap/fe/core/controllerextensions/SideEffects.js +593 -634
  78. package/src/sap/fe/core/controllerextensions/SideEffects.ts +29 -27
  79. package/src/sap/fe/core/controllerextensions/ViewState.js +789 -806
  80. package/src/sap/fe/core/controllerextensions/ViewState.ts +805 -0
  81. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +4 -3
  82. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +2 -2
  83. package/src/sap/fe/core/controls/CommandExecution.js +68 -66
  84. package/src/sap/fe/core/controls/CommandExecution.ts +72 -0
  85. package/src/sap/fe/core/controls/ConditionalWrapper.js +91 -75
  86. package/src/sap/fe/core/controls/ConditionalWrapper.ts +83 -0
  87. package/src/sap/fe/core/controls/CustomQuickViewPage.js +131 -125
  88. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +126 -0
  89. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +105 -110
  90. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +101 -0
  91. package/src/sap/fe/core/controls/FieldWrapper.js +122 -140
  92. package/src/sap/fe/core/controls/FieldWrapper.ts +115 -0
  93. package/src/sap/fe/core/controls/FilterBar.js +163 -159
  94. package/src/sap/fe/core/controls/FilterBar.ts +143 -0
  95. package/src/sap/fe/core/controls/FormElementWrapper.js +46 -44
  96. package/src/sap/fe/core/controls/FormElementWrapper.ts +40 -0
  97. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +38 -42
  98. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +31 -0
  99. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +2 -1
  100. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +127 -116
  101. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +98 -0
  102. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +242 -255
  103. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +245 -0
  104. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +151 -141
  105. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +125 -0
  106. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +336 -322
  107. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +337 -0
  108. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +106 -0
  109. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +79 -0
  110. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +70 -0
  111. package/src/sap/fe/core/converters/ConverterContext.js +348 -367
  112. package/src/sap/fe/core/converters/ConverterContext.ts +33 -19
  113. package/src/sap/fe/core/converters/ManifestSettings.js +12 -1
  114. package/src/sap/fe/core/converters/ManifestSettings.ts +16 -1
  115. package/src/sap/fe/core/converters/ManifestWrapper.js +354 -354
  116. package/src/sap/fe/core/converters/ManifestWrapper.ts +34 -6
  117. package/src/sap/fe/core/converters/MetaModelConverter.js +72 -9
  118. package/src/sap/fe/core/converters/MetaModelConverter.ts +75 -16
  119. package/src/sap/fe/core/converters/TemplateConverter.js +1 -1
  120. package/src/sap/fe/core/converters/TemplateConverter.ts +4 -3
  121. package/src/sap/fe/core/converters/annotations/DataField.js +28 -14
  122. package/src/sap/fe/core/converters/annotations/DataField.ts +38 -14
  123. package/src/sap/fe/core/converters/common/AnnotationConverter.js +33 -21
  124. package/src/sap/fe/core/converters/controls/Common/Action.js +11 -2
  125. package/src/sap/fe/core/converters/controls/Common/Action.ts +8 -2
  126. package/src/sap/fe/core/converters/controls/Common/Chart.js +5 -3
  127. package/src/sap/fe/core/converters/controls/Common/Chart.ts +11 -3
  128. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +3 -3
  129. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +2 -2
  130. package/src/sap/fe/core/converters/controls/Common/Form.js +21 -11
  131. package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -6
  132. package/src/sap/fe/core/converters/controls/Common/KPI.js +69 -4
  133. package/src/sap/fe/core/converters/controls/Common/KPI.ts +75 -2
  134. package/src/sap/fe/core/converters/controls/Common/Table.js +507 -408
  135. package/src/sap/fe/core/converters/controls/Common/Table.ts +618 -500
  136. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +592 -0
  137. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +718 -0
  138. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +465 -59
  139. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +462 -72
  140. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +2 -2
  141. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +1 -1
  142. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +17 -9
  143. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +24 -9
  144. package/src/sap/fe/core/converters/helpers/Aggregation.js +118 -121
  145. package/src/sap/fe/core/converters/helpers/Aggregation.ts +28 -5
  146. package/src/sap/fe/core/converters/helpers/BindingHelper.js +20 -6
  147. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +16 -4
  148. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +12 -1
  149. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +11 -0
  150. package/src/sap/fe/core/converters/helpers/IssueManager.js +7 -1
  151. package/src/sap/fe/core/converters/helpers/IssueManager.ts +6 -0
  152. package/src/sap/fe/core/converters/helpers/Key.js +42 -57
  153. package/src/sap/fe/core/converters/helpers/Key.ts +1 -1
  154. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +28 -7
  155. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +23 -6
  156. package/src/sap/fe/core/converters/templates/ListReportConverter.js +20 -7
  157. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +36 -14
  158. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +7 -5
  159. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +5 -1
  160. package/src/sap/fe/core/designtime/AppComponent.designtime.js +93 -90
  161. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +91 -0
  162. package/src/sap/fe/core/formatters/CollaborationFormatter.js +104 -0
  163. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +60 -0
  164. package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
  165. package/src/sap/fe/core/formatters/CriticalityFormatter.ts +1 -1
  166. package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
  167. package/src/sap/fe/core/formatters/FPMFormatter.ts +4 -10
  168. package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
  169. package/src/sap/fe/core/formatters/KPIFormatter.ts +3 -1
  170. package/src/sap/fe/core/formatters/TableFormatter.js +91 -29
  171. package/src/sap/fe/core/formatters/TableFormatter.ts +94 -28
  172. package/src/sap/fe/core/formatters/ValueFormatter.js +30 -5
  173. package/src/sap/fe/core/formatters/ValueFormatter.ts +30 -7
  174. package/src/sap/fe/core/fpm/Component.js +51 -54
  175. package/src/sap/fe/core/fpm/Component.ts +48 -0
  176. package/src/sap/fe/core/helpers/AppStartupHelper.js +373 -0
  177. package/src/sap/fe/core/helpers/AppStartupHelper.ts +417 -0
  178. package/src/sap/fe/core/helpers/BindingExpression.js +489 -442
  179. package/src/sap/fe/core/helpers/BindingExpression.ts +486 -469
  180. package/src/sap/fe/core/helpers/ClassSupport.js +212 -76
  181. package/src/sap/fe/core/helpers/ClassSupport.ts +198 -71
  182. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +64 -59
  183. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +52 -0
  184. package/src/sap/fe/core/helpers/EditState.js +81 -84
  185. package/src/sap/fe/core/helpers/EditState.ts +81 -0
  186. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +62 -48
  187. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +49 -0
  188. package/src/sap/fe/core/helpers/FPMHelper.js +52 -56
  189. package/src/sap/fe/core/helpers/FPMHelper.ts +62 -0
  190. package/src/sap/fe/core/helpers/KeepAliveHelper.js +4 -5
  191. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +10 -10
  192. package/src/sap/fe/core/helpers/MassEditHelper.js +604 -0
  193. package/src/sap/fe/core/helpers/MassEditHelper.ts +699 -0
  194. package/src/sap/fe/core/helpers/ModelHelper.js +253 -225
  195. package/src/sap/fe/core/helpers/ModelHelper.ts +250 -0
  196. package/src/sap/fe/core/helpers/PasteHelper.js +210 -132
  197. package/src/sap/fe/core/helpers/PasteHelper.ts +196 -0
  198. package/src/sap/fe/core/helpers/SemanticDateOperators.js +336 -313
  199. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +334 -0
  200. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +66 -67
  201. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +73 -0
  202. package/src/sap/fe/core/helpers/StableIdHelper.js +4 -7
  203. package/src/sap/fe/core/helpers/StableIdHelper.ts +2 -6
  204. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  205. package/src/sap/fe/core/jsx-runtime/jsx.ts +1 -1
  206. package/src/sap/fe/core/library.js +427 -425
  207. package/src/sap/fe/core/library.support.js +23 -27
  208. package/src/sap/fe/core/library.support.ts +23 -0
  209. package/src/sap/fe/core/library.ts +420 -0
  210. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +64 -0
  211. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +69 -0
  212. package/src/sap/fe/core/messagebundle.properties +78 -13
  213. package/src/sap/fe/core/messagebundle_ar.properties +58 -7
  214. package/src/sap/fe/core/messagebundle_bg.properties +58 -7
  215. package/src/sap/fe/core/messagebundle_ca.properties +58 -7
  216. package/src/sap/fe/core/messagebundle_cs.properties +59 -8
  217. package/src/sap/fe/core/messagebundle_cy.properties +58 -7
  218. package/src/sap/fe/core/messagebundle_da.properties +58 -7
  219. package/src/sap/fe/core/messagebundle_de.properties +58 -7
  220. package/src/sap/fe/core/messagebundle_el.properties +58 -7
  221. package/src/sap/fe/core/messagebundle_en.properties +57 -6
  222. package/src/sap/fe/core/messagebundle_en_GB.properties +57 -6
  223. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +61 -6
  224. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +58 -7
  225. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +58 -7
  226. package/src/sap/fe/core/messagebundle_es.properties +58 -7
  227. package/src/sap/fe/core/messagebundle_es_MX.properties +58 -7
  228. package/src/sap/fe/core/messagebundle_et.properties +58 -7
  229. package/src/sap/fe/core/messagebundle_fi.properties +60 -9
  230. package/src/sap/fe/core/messagebundle_fr.properties +64 -13
  231. package/src/sap/fe/core/messagebundle_fr_CA.properties +59 -8
  232. package/src/sap/fe/core/messagebundle_hi.properties +58 -7
  233. package/src/sap/fe/core/messagebundle_hr.properties +58 -7
  234. package/src/sap/fe/core/messagebundle_hu.properties +59 -8
  235. package/src/sap/fe/core/messagebundle_id.properties +61 -10
  236. package/src/sap/fe/core/messagebundle_it.properties +58 -7
  237. package/src/sap/fe/core/messagebundle_iw.properties +58 -7
  238. package/src/sap/fe/core/messagebundle_ja.properties +58 -7
  239. package/src/sap/fe/core/messagebundle_kk.properties +58 -7
  240. package/src/sap/fe/core/messagebundle_ko.properties +58 -7
  241. package/src/sap/fe/core/messagebundle_lt.properties +58 -7
  242. package/src/sap/fe/core/messagebundle_lv.properties +59 -8
  243. package/src/sap/fe/core/messagebundle_ms.properties +58 -7
  244. package/src/sap/fe/core/messagebundle_nl.properties +58 -7
  245. package/src/sap/fe/core/messagebundle_no.properties +58 -7
  246. package/src/sap/fe/core/messagebundle_pl.properties +58 -7
  247. package/src/sap/fe/core/messagebundle_pt.properties +59 -8
  248. package/src/sap/fe/core/messagebundle_pt_PT.properties +58 -7
  249. package/src/sap/fe/core/messagebundle_ro.properties +58 -7
  250. package/src/sap/fe/core/messagebundle_ru.properties +58 -7
  251. package/src/sap/fe/core/messagebundle_sh.properties +58 -7
  252. package/src/sap/fe/core/messagebundle_sk.properties +58 -7
  253. package/src/sap/fe/core/messagebundle_sl.properties +58 -7
  254. package/src/sap/fe/core/messagebundle_sv.properties +59 -8
  255. package/src/sap/fe/core/messagebundle_th.properties +58 -7
  256. package/src/sap/fe/core/messagebundle_tr.properties +60 -9
  257. package/src/sap/fe/core/messagebundle_uk.properties +58 -7
  258. package/src/sap/fe/core/messagebundle_vi.properties +58 -7
  259. package/src/sap/fe/core/messagebundle_zh_CN.properties +58 -7
  260. package/src/sap/fe/core/messagebundle_zh_TW.properties +58 -7
  261. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +45 -71
  262. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +3 -1
  263. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +231 -202
  264. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +212 -0
  265. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +67 -92
  266. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +10 -6
  267. package/src/sap/fe/core/services/NavigationServiceFactory.js +351 -300
  268. package/src/sap/fe/core/services/NavigationServiceFactory.ts +313 -0
  269. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +114 -81
  270. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +83 -0
  271. package/src/sap/fe/core/services/RoutingServiceFactory.js +927 -1152
  272. package/src/sap/fe/core/services/RoutingServiceFactory.ts +898 -0
  273. package/src/sap/fe/core/services/ShellServicesFactory.js +649 -707
  274. package/src/sap/fe/core/services/ShellServicesFactory.ts +52 -15
  275. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +569 -637
  276. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +78 -102
  277. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +429 -478
  278. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +460 -0
  279. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +10 -8
  280. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +8 -0
  281. package/src/sap/fe/core/support/AnnotationIssue.support.js +15 -3
  282. package/src/sap/fe/core/support/AnnotationIssue.support.ts +16 -2
  283. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -2
  284. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +1 -1
  285. package/src/sap/fe/core/support/CommonHelper.js +1 -1
  286. package/src/sap/fe/core/support/CommonHelper.ts +1 -1
  287. package/src/sap/fe/core/support/Diagnostics.js +36 -48
  288. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +38 -0
  289. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +18 -0
  290. package/src/sap/fe/core/templating/DataModelPathHelper.js +97 -127
  291. package/src/sap/fe/core/templating/DataModelPathHelper.ts +112 -135
  292. package/src/sap/fe/core/templating/DisplayModeFormatter.js +114 -0
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +86 -0
  294. package/src/sap/fe/core/templating/FieldControlHelper.js +8 -8
  295. package/src/sap/fe/core/templating/FieldControlHelper.ts +25 -7
  296. package/src/sap/fe/core/templating/FilterHelper.js +140 -78
  297. package/src/sap/fe/core/templating/FilterHelper.ts +149 -78
  298. package/src/sap/fe/core/templating/PropertyHelper.js +3 -3
  299. package/src/sap/fe/core/templating/PropertyHelper.ts +2 -2
  300. package/src/sap/fe/core/templating/UIFormatters.js +76 -135
  301. package/src/sap/fe/core/templating/UIFormatters.ts +76 -99
  302. package/src/sap/fe/core/type/Email.js +1 -1
  303. package/src/sap/fe/core/type/Email.ts +4 -6
  304. package/ui5.yaml +0 -3
  305. package/src/sap/fe/core/controls/filterbar.d.js +0 -8
  306. package/src/sap/fe/core/controls/filterbar.d.ts +0 -0
@@ -0,0 +1,552 @@
1
+ import MessageToast from "sap/m/MessageToast";
2
+ import MessageItem from "sap/m/MessageItem";
3
+ import MessageView from "sap/m/MessageView";
4
+ import Button from "sap/m/Button";
5
+ import Dialog from "sap/m/Dialog";
6
+ import Text from "sap/m/Text";
7
+ import CoreLib from "sap/ui/core/library";
8
+ import Filter from "sap/ui/model/Filter";
9
+ 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
+ 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
+
21
+ const MessageType = CoreLib.MessageType;
22
+ let aMessageList: any[] = [];
23
+ let aMessageDataList: any[] = [];
24
+ let aResolveFunctions: any[] = [];
25
+ let oDialog: Dialog;
26
+ let oBackButton: Button;
27
+ let oMessageTemplate: MessageItem;
28
+ let oMessageView: MessageView;
29
+
30
+ export type messageHandlingType = {
31
+ getMessages: (bBoundMessages?: any, bTransitionOnly?: any) => any[];
32
+ showUnboundMessages: (
33
+ aCustomMessages?: any[],
34
+ oContext?: any,
35
+ bHasEtagMessage?: boolean,
36
+ bShowBoundTransition?: boolean
37
+ ) => Promise<any>;
38
+ removeUnboundTransitionMessages: () => void;
39
+ removeBoundTransitionMessages: () => void;
40
+ modifyETagMessagesOnly: (oMessageManager: any, oResourceBundle: any) => boolean;
41
+ getRetryAfterMessage: (oMessage: any, bMessageDialog?: any) => any;
42
+ prepareMessageViewForDialog: (oMessageDialogModel: JSONModel, bStrictHandlingFlow: boolean) => any;
43
+ };
44
+
45
+ function fnFormatTechnicalDetails() {
46
+ let sPreviousGroupName: string;
47
+
48
+ // Insert technical detail if it exists
49
+ function insertDetail(oProperty: any) {
50
+ return oProperty.property
51
+ ? "( ${" +
52
+ oProperty.property +
53
+ '} ? ("<p>' +
54
+ oProperty.property.substr(Math.max(oProperty.property.lastIndexOf("/"), oProperty.property.lastIndexOf(".")) + 1) +
55
+ ' : " + ' +
56
+ "${" +
57
+ oProperty.property +
58
+ '} + "</p>") : "" )'
59
+ : "";
60
+ }
61
+ // Insert groupname if it exists
62
+ function insertGroupName(oProperty: any) {
63
+ let sHTML = "";
64
+ if (oProperty.groupName && oProperty.property && oProperty.groupName !== sPreviousGroupName) {
65
+ sHTML += "( ${" + oProperty.property + '} ? "<br><h3>' + oProperty.groupName + '</h3>" : "" ) + ';
66
+ sPreviousGroupName = oProperty.groupName;
67
+ }
68
+ return sHTML;
69
+ }
70
+
71
+ // List of technical details to be shown
72
+ function getPaths() {
73
+ const sTD = "technicalDetails"; // name of property in message model data for technical details
74
+ return [
75
+ { "groupName": "", "property": sTD + "/status" },
76
+ { "groupName": "", "property": sTD + "/statusText" },
77
+ { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ComponentId" },
78
+ { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceId" },
79
+ { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceRepository" },
80
+ { "groupName": "Application", "property": sTD + "/error/@SAP__common.Application/ServiceVersion" },
81
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/Analysis" },
82
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/Note" },
83
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ErrorResolution/DetailedNote" },
84
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.ExceptionCategory" },
85
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.TimeStamp" },
86
+ { "groupName": "ErrorResolution", "property": sTD + "/error/@SAP__common.TransactionId" },
87
+ { "groupName": "Messages", "property": sTD + "/error/code" },
88
+ { "groupName": "Messages", "property": sTD + "/error/message" }
89
+ ];
90
+ }
91
+
92
+ let sHTML = "Object.keys(" + "${technicalDetails}" + ').length > 0 ? "<h2>Technical Details</h2>" : "" ';
93
+ getPaths().forEach(function(oProperty: { groupName: string; property: string }) {
94
+ sHTML = sHTML + insertGroupName(oProperty) + "" + insertDetail(oProperty) + " + ";
95
+ });
96
+ return sHTML;
97
+ }
98
+ function fnFormatDescription() {
99
+ const sHTML = "(${" + 'description} ? ("<h2>Description</h2>" + ${' + 'description}) : "")';
100
+ return sHTML;
101
+ }
102
+ /**
103
+ * Calculates the highest priority message type(Error/Warning/Success/Information) from the available messages.
104
+
105
+ * @function
106
+ * @name sap.fe.core.actions.messageHandling.fnGetHighestMessagePriority
107
+ * @memberof sap.fe.core.actions.messageHandling
108
+ * @param {Array} [aMessages] Messages list
109
+ * @returns {string} Highest priority message from the available messages
110
+ * @private
111
+ * @ui5-restricted
112
+ */
113
+ function fnGetHighestMessagePriority(aMessages: any[]) {
114
+ let sMessagePriority = MessageType.None;
115
+ const iLength = aMessages.length;
116
+ const oMessageCount: any = { Error: 0, Warning: 0, Success: 0, Information: 0 };
117
+
118
+ for (let i = 0; i < iLength; i++) {
119
+ ++oMessageCount[aMessages[i].getType()];
120
+ }
121
+ if (oMessageCount[MessageType.Error] > 0) {
122
+ sMessagePriority = MessageType.Error;
123
+ } else if (oMessageCount[MessageType.Warning] > 0) {
124
+ sMessagePriority = MessageType.Warning;
125
+ } else if (oMessageCount[MessageType.Success] > 0) {
126
+ sMessagePriority = MessageType.Success;
127
+ } else if (oMessageCount[MessageType.Information] > 0) {
128
+ sMessagePriority = MessageType.Information;
129
+ }
130
+ return sMessagePriority;
131
+ }
132
+ // function which modify e-Tag messages only.
133
+ // returns : true, if any e-Tag message is modified, otherwise false.
134
+ function fnModifyETagMessagesOnly(oMessageManager: any, oResourceBundle: any) {
135
+ const aMessages = oMessageManager.getMessageModel().getObject("/");
136
+ let bMessagesModified = false;
137
+ let sEtagMessage = "";
138
+ aMessages.forEach(function(oMessage: any, i: any) {
139
+ const oTechnicalDetails = oMessage.getTechnicalDetails();
140
+ if (oTechnicalDetails && oTechnicalDetails.httpStatus === 412) {
141
+ sEtagMessage = sEtagMessage || oResourceBundle.getText("C_APP_COMPONENT_SAPFE_ETAG_TECHNICAL_ISSUES");
142
+ oMessageManager.removeMessages(aMessages[i]);
143
+ oMessage.setMessage(sEtagMessage);
144
+ oMessage.target = "";
145
+ oMessageManager.addMessages(oMessage);
146
+ bMessagesModified = true;
147
+ }
148
+ });
149
+ return bMessagesModified;
150
+ }
151
+ // Dialog close Handling
152
+ function dialogCloseHandler() {
153
+ oDialog.close();
154
+ oBackButton.setVisible(false);
155
+ aMessageList = [];
156
+ removeUnboundTransitionMessages();
157
+ }
158
+ function getRetryAfterMessage(oMessage: any, bMessageDialog?: any) {
159
+ const dNow = new Date();
160
+ const oTechnicalDetails = oMessage.getTechnicalDetails();
161
+ const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
162
+ let sRetryAfterMessage;
163
+ if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503 && oTechnicalDetails.retryAfter) {
164
+ const dRetryAfter = oTechnicalDetails.retryAfter;
165
+ let oDateFormat;
166
+ if (dNow.getFullYear() !== dRetryAfter.getFullYear()) {
167
+ //different years
168
+ oDateFormat = DateFormat.getDateTimeInstance({
169
+ pattern: "MMMM dd, yyyy 'at' hh:mm a"
170
+ });
171
+ sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR", [oDateFormat.format(dRetryAfter)]);
172
+ } else if (dNow.getFullYear() == dRetryAfter.getFullYear()) {
173
+ //same year
174
+ if (bMessageDialog) {
175
+ //less than 2 min
176
+ sRetryAfterMessage =
177
+ oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_TITLE") +
178
+ " " +
179
+ oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_DESC");
180
+ } else if (dNow.getMonth() !== dRetryAfter.getMonth() || dNow.getDate() !== dRetryAfter.getDate()) {
181
+ oDateFormat = DateFormat.getDateTimeInstance({
182
+ pattern: "MMMM dd 'at' hh:mm a"
183
+ }); //different months or different days of same month
184
+ sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR", [oDateFormat.format(dRetryAfter)]);
185
+ } else {
186
+ //same day
187
+ oDateFormat = DateFormat.getDateTimeInstance({
188
+ pattern: "hh:mm a"
189
+ });
190
+ sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR_DAY", [oDateFormat.format(dRetryAfter)]);
191
+ }
192
+ }
193
+ }
194
+
195
+ if (oTechnicalDetails && oTechnicalDetails.httpStatus === 503 && !oTechnicalDetails.retryAfter) {
196
+ sRetryAfterMessage = oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_ERROR_NO_RETRY_AFTER");
197
+ }
198
+ return sRetryAfterMessage;
199
+ }
200
+
201
+ function prepareMessageViewForDialog(oMessageDialogModel: JSONModel, bStrictHandlingFlow: boolean) {
202
+ if (!bStrictHandlingFlow) {
203
+ oMessageTemplate =
204
+ oMessageTemplate ||
205
+ new MessageItem(undefined, {
206
+ counter: { path: "counter" },
207
+ title: "{message}",
208
+ subtitle: "{additionalText}",
209
+ longtextUrl: "{descriptionUrl}",
210
+ type: { path: "type" },
211
+ description:
212
+ "{= ${" +
213
+ "description} || ${technicalDetails} ? " +
214
+ '"<html><body>" + ' +
215
+ fnFormatDescription() +
216
+ " + " +
217
+ fnFormatTechnicalDetails() +
218
+ '"</body></html>"' +
219
+ ' : "" }',
220
+ markupDescription: true
221
+ });
222
+ } else {
223
+ oMessageTemplate = new MessageItem({
224
+ title: "{message}",
225
+ type: "Warning",
226
+ longtextUrl: "{descriptionUrl}"
227
+ });
228
+ }
229
+ oMessageView =
230
+ oMessageView ||
231
+ new MessageView({
232
+ showDetailsPageHeader: false,
233
+ itemSelect: function() {
234
+ oBackButton.setVisible(true);
235
+ },
236
+ items: {
237
+ path: "/",
238
+ template: oMessageTemplate
239
+ }
240
+ });
241
+ oBackButton =
242
+ oBackButton ||
243
+ new Button({
244
+ icon: IconPool.getIconURI("nav-back"),
245
+ visible: false,
246
+ press: function(this: Button) {
247
+ oMessageView.navigateBack();
248
+ this.setVisible(false);
249
+ }
250
+ });
251
+ // Update proper ETag Mismatch error
252
+ oMessageView.setModel(oMessageDialogModel);
253
+ return {
254
+ oMessageView,
255
+ oBackButton
256
+ };
257
+ }
258
+
259
+ function showUnboundMessages(
260
+ this: messageHandlingType,
261
+ aCustomMessages?: any[],
262
+ oContext?: any,
263
+ bHasEtagMessage?: boolean,
264
+ bShowBoundTransition?: boolean
265
+ ) {
266
+ let aUnboundMessages = this.getMessages();
267
+ const oMessageManager = (sap.ui.getCore() as any).getMessageManager();
268
+ let sHighestPriority;
269
+ let sHighestPriorityText;
270
+ const aFilters = [
271
+ new Filter({ path: "code", operator: FilterOperator.NE, value1: null }),
272
+ new Filter({ path: "persistent", operator: FilterOperator.NE, value1: false })
273
+ ];
274
+ let showMessageDialog = false,
275
+ showMessageBox = false;
276
+
277
+ if (bShowBoundTransition) {
278
+ aUnboundMessages = aUnboundMessages.concat(getMessages(true, true));
279
+ // we only want to show bound transition messages not bound state messages hence add a filter for the same
280
+ aFilters.push(new Filter({ path: "persistent", operator: FilterOperator.EQ, value1: true }));
281
+ const fnCheckControlIdInDialog = function(aControlIds: any) {
282
+ let index = Infinity,
283
+ oControl = sap.ui.getCore().byId(aControlIds[0]) as ManagedObject;
284
+ const errorFieldControl = sap.ui.getCore().byId(aControlIds[0]) as Control;
285
+ while (oControl) {
286
+ const fieldRankinDialog =
287
+ oControl instanceof Dialog
288
+ ? (errorFieldControl.getParent() as any).findElements(true).indexOf(errorFieldControl)
289
+ : Infinity;
290
+ if (oControl instanceof Dialog) {
291
+ if (index > fieldRankinDialog) {
292
+ index = fieldRankinDialog;
293
+ // Set the focus to the dialog's control
294
+ errorFieldControl.focus();
295
+ }
296
+ // messages with target inside sap.m.Dialog should not bring up the message dialog
297
+ return false;
298
+ }
299
+ oControl = oControl.getParent();
300
+ }
301
+ return true;
302
+ };
303
+ aFilters.push(
304
+ new Filter({
305
+ path: "controlIds",
306
+ test: fnCheckControlIdInDialog,
307
+ caseSensitive: true
308
+ })
309
+ );
310
+ } else {
311
+ // only unbound messages have to be shown so add filter accordingly
312
+ aFilters.push(new Filter({ path: "target", operator: FilterOperator.EQ, value1: "" }));
313
+ }
314
+ if (aCustomMessages && aCustomMessages.length) {
315
+ aCustomMessages.forEach(function(oMessage: any) {
316
+ const messageCode = oMessage.code ? oMessage.code : "";
317
+ oMessageManager.addMessages(
318
+ new Message({
319
+ message: oMessage.text,
320
+ type: oMessage.type,
321
+ target: "",
322
+ persistent: true,
323
+ code: messageCode
324
+ })
325
+ );
326
+ //The target and persistent properties of the message are hardcoded as "" and true because the function deals with only unbound messages.
327
+ });
328
+ }
329
+ const oMessageDialogModel = new JSONModel();
330
+ if (aUnboundMessages.length === 1 && aUnboundMessages[0].getCode() === "503") {
331
+ showMessageBox = true;
332
+ } else {
333
+ const oListBinding = oMessageManager.getMessageModel().bindList("/", undefined, undefined, aFilters),
334
+ aCurrentContexts = oListBinding.getCurrentContexts();
335
+ if (aCurrentContexts && aCurrentContexts.length > 0) {
336
+ // Don't show dialog incase there are no errors to show
337
+ showMessageDialog = true;
338
+ // As fitering has already happened here hence
339
+ // using the message model again for the message dialog view and then filtering on that binding again is unnecessary.
340
+ // So we create new json model to use for the message dialog view.
341
+ const aMessages: any[] = [];
342
+ aCurrentContexts.forEach(function(oContext: any) {
343
+ let oMessage;
344
+ if (
345
+ oContext.getObject().technicalDetails &&
346
+ aMessageList.indexOf(oContext.getObject().technicalDetails.originalMessage.message) === -1
347
+ ) {
348
+ aMessageList.push(oContext.getObject().technicalDetails.originalMessage.message);
349
+ oMessage = oContext.getObject();
350
+ aMessages.push(oMessage);
351
+ aMessageDataList = aMessages;
352
+ } else if (!oContext.getObject().technicalDetails) {
353
+ oMessage = oContext.getObject();
354
+ aMessages.push(oMessage);
355
+ aMessageDataList = aMessages;
356
+ }
357
+ });
358
+ // if(aMessages.length === 0 && aMessageList.length) {
359
+ // oMessageDialogModel.setData(aMessages);
360
+ // }
361
+ oMessageDialogModel.setData(aMessageDataList);
362
+ }
363
+ }
364
+ if (aUnboundMessages.length === 0 && !aCustomMessages && !bHasEtagMessage) {
365
+ // Don't show the popup if there are no transient messages
366
+ return Promise.resolve(true);
367
+ } else if (aUnboundMessages.length === 1 && aUnboundMessages[0].getType() === MessageType.Success && !aCustomMessages) {
368
+ return new Promise<void>(resolve => {
369
+ MessageToast.show(aUnboundMessages[0].message);
370
+ oMessageManager.removeMessages(aUnboundMessages);
371
+ resolve();
372
+ });
373
+ } else if (showMessageDialog) {
374
+ aResolveFunctions = aResolveFunctions || [];
375
+ return new Promise(function(resolve: (value: any) => void, reject: (reason?: any) => void) {
376
+ aResolveFunctions.push(resolve);
377
+ (sap.ui.getCore().getLibraryResourceBundle("sap.fe.core", true) as Promise<ResourceBundle>)
378
+ .then(function(oResourceBundle: any) {
379
+ const bStrictHandlingFlow = false;
380
+ const bHasEtagMessage = fnModifyETagMessagesOnly(oMessageManager, oResourceBundle);
381
+ const oMessageObject = prepareMessageViewForDialog(oMessageDialogModel, bStrictHandlingFlow);
382
+ oDialog =
383
+ oDialog ||
384
+ new Dialog({
385
+ resizable: true,
386
+ content: oMessageObject.oMessageView,
387
+ endButton: new Button({
388
+ press: function() {
389
+ dialogCloseHandler();
390
+ // also remove bound transition messages if we were showing them
391
+ if (bShowBoundTransition) {
392
+ removeBoundTransitionMessages();
393
+ }
394
+ },
395
+ text: oResourceBundle.getText("C_COMMON_SAPFE_CLOSE")
396
+ }),
397
+ customHeader: new Bar({
398
+ contentMiddle: [
399
+ new Text({
400
+ text: oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE")
401
+ })
402
+ ],
403
+ contentLeft: [oBackButton]
404
+ }),
405
+ contentWidth: "37.5em",
406
+ contentHeight: "21.5em",
407
+ verticalScrolling: false,
408
+ afterClose: function() {
409
+ for (let i = 0; i < aResolveFunctions.length; i++) {
410
+ aResolveFunctions[i].call();
411
+ }
412
+ aResolveFunctions = [];
413
+ }
414
+ });
415
+
416
+ if (bHasEtagMessage) {
417
+ sap.ui.require(["sap/m/ButtonType"], function(ButtonType: any) {
418
+ oDialog.setBeginButton(
419
+ new Button({
420
+ press: function() {
421
+ dialogCloseHandler();
422
+ if (oContext.hasPendingChanges()) {
423
+ oContext.getBinding().resetChanges();
424
+ }
425
+ oContext.refresh();
426
+ },
427
+ text: oResourceBundle.getText("C_COMMON_SAPFE_REFRESH"),
428
+ type: ButtonType.Emphasized
429
+ })
430
+ );
431
+ });
432
+ } else {
433
+ oDialog.destroyBeginButton();
434
+ }
435
+ sHighestPriority = fnGetHighestMessagePriority(oMessageView.getItems());
436
+ sHighestPriorityText = getTranslatedTextForMessageDialog(sHighestPriority);
437
+ oDialog.setState(sHighestPriority);
438
+ (oDialog.getCustomHeader() as any).getContentMiddle()[0].setText(sHighestPriorityText);
439
+ oMessageView.navigateBack();
440
+ oDialog.open();
441
+ })
442
+ .catch(reject);
443
+ });
444
+ } else if (showMessageBox) {
445
+ return new Promise(function(resolve) {
446
+ const oMessage = aUnboundMessages[0];
447
+ if (oMessage.technicalDetails && aMessageList.indexOf(oMessage.technicalDetails.originalMessage.message) === -1) {
448
+ aMessageList.push(oMessage.technicalDetails.originalMessage.message);
449
+ let formattedTextString = "<html><body>";
450
+ const retryAfterMessage = getRetryAfterMessage(oMessage, true);
451
+ if (retryAfterMessage) {
452
+ formattedTextString = "<h6>" + retryAfterMessage + "</h6><br>";
453
+ }
454
+ formattedTextString = formattedTextString + oMessage.getMessage() + "</html></body>";
455
+ const formattedText: any = new FormattedText({
456
+ htmlText: formattedTextString
457
+ });
458
+ MessageBox.error(formattedText, {
459
+ onClose: function() {
460
+ aMessageList = [];
461
+ if (bShowBoundTransition) {
462
+ removeBoundTransitionMessages();
463
+ }
464
+ removeUnboundTransitionMessages();
465
+ resolve(true);
466
+ }
467
+ });
468
+ }
469
+ });
470
+ } else {
471
+ return Promise.resolve(true);
472
+ }
473
+ }
474
+ function getTranslatedTextForMessageDialog(sHighestPriority: any) {
475
+ const oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle;
476
+ switch (sHighestPriority) {
477
+ case "Error":
478
+ return oResourceBundle.getText("C_COMMON_SAPFE_ERROR_MESSAGES_PAGE_TITLE_ERROR");
479
+ case "Information":
480
+ return oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_INFO");
481
+ case "Success":
482
+ return oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_SUCCESS");
483
+ case "Warning":
484
+ return oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE_WARNING");
485
+ default:
486
+ return oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGES_PAGE_TITLE");
487
+ }
488
+ }
489
+ function removeUnboundTransitionMessages() {
490
+ removeTransitionMessages(false);
491
+ }
492
+ function removeBoundTransitionMessages() {
493
+ removeTransitionMessages(true);
494
+ }
495
+ function getMessages(bBoundMessages: boolean = false, bTransitionOnly: boolean = false) {
496
+ let i;
497
+ const oMessageManager = (sap.ui.getCore() as any).getMessageManager(),
498
+ oMessageModel = oMessageManager.getMessageModel(),
499
+ aMessages = oMessageModel.getObject("/"),
500
+ oResourceBundle = sap.ui.getCore().getLibraryResourceBundle("sap.fe.core") as ResourceBundle,
501
+ aTransitionMessages = [];
502
+
503
+ for (i = 0; i < aMessages.length; i++) {
504
+ if (
505
+ (!bTransitionOnly || aMessages[i].persistent) &&
506
+ ((bBoundMessages && aMessages[i].target !== "") || (!bBoundMessages && (!aMessages[i].target || aMessages[i].target === ""))) &&
507
+ aMessages[i].code
508
+ ) {
509
+ aTransitionMessages.push(aMessages[i]);
510
+ }
511
+ }
512
+
513
+ for (i = 0; i < aTransitionMessages.length; i++) {
514
+ if (
515
+ aTransitionMessages[i].code === "503" &&
516
+ aTransitionMessages[i].message !== "" &&
517
+ aTransitionMessages[i].message.indexOf(oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX")) === -1
518
+ ) {
519
+ aTransitionMessages[i].message =
520
+ "\n" + oResourceBundle.getText("C_MESSAGE_HANDLING_SAPFE_503_BACKEND_PREFIX") + aTransitionMessages[i].message;
521
+ }
522
+ }
523
+ return aTransitionMessages;
524
+ }
525
+ function removeTransitionMessages(bBoundMessages: any) {
526
+ const aMessagesToBeDeleted = getMessages(bBoundMessages, true);
527
+
528
+ if (aMessagesToBeDeleted.length > 0) {
529
+ (sap.ui.getCore() as any).getMessageManager().removeMessages(aMessagesToBeDeleted);
530
+ }
531
+ }
532
+
533
+ /**
534
+ * Static functions for Fiori Message Handling
535
+ *
536
+ * @namespace
537
+ * @alias sap.fe.core.actions.messageHandling
538
+ * @private
539
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
540
+ * @since 1.56.0
541
+ */
542
+ const messageHandling: messageHandlingType = {
543
+ getMessages: getMessages,
544
+ showUnboundMessages: showUnboundMessages,
545
+ removeUnboundTransitionMessages: removeUnboundTransitionMessages,
546
+ removeBoundTransitionMessages: removeBoundTransitionMessages,
547
+ modifyETagMessagesOnly: fnModifyETagMessagesOnly,
548
+ getRetryAfterMessage: getRetryAfterMessage,
549
+ prepareMessageViewForDialog: prepareMessageViewForDialog
550
+ };
551
+
552
+ export default messageHandling;
@@ -1,22 +1,20 @@
1
1
  /*!
2
- * SAPUI5
3
- * (c) Copyright 2009-2021 SAP SE. All rights reserved.
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * (c) Copyright 2009-2021 SAP SE. All rights reserved
4
4
  */
5
+ sap.ui.define([], function () {
6
+ "use strict";
5
7
 
6
- // Provides static functions for the non-draft programming model
7
- sap.ui.define([], function() {
8
- "use strict";
9
-
10
- /**
11
- * Static functions for the non-draft programming model
12
- *
13
- * @namespace
14
- * @alias sap.fe.core.actions.nonDraft
15
- * @private
16
- * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
17
- * @since 1.54.0
18
- */
19
- var nonDraft = {};
20
-
21
- return nonDraft;
22
- });
8
+ /**
9
+ * Static functions for the non-draft programming model
10
+ *
11
+ * @namespace
12
+ * @alias sap.fe.core.actions.nonDraft
13
+ * @private
14
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
15
+ * @since 1.54.0
16
+ */
17
+ var nonDraft = {};
18
+ return nonDraft;
19
+ }, false);
20
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vbkRyYWZ0LnRzIl0sIm5hbWVzIjpbIm5vbkRyYWZ0Il0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7O0FBRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO1NBRWVBLFEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RhdGljIGZ1bmN0aW9ucyBmb3IgdGhlIG5vbi1kcmFmdCBwcm9ncmFtbWluZyBtb2RlbFxuICpcbiAqIEBuYW1lc3BhY2VcbiAqIEBhbGlhcyBzYXAuZmUuY29yZS5hY3Rpb25zLm5vbkRyYWZ0XG4gKiBAcHJpdmF0ZVxuICogQGV4cGVyaW1lbnRhbCBUaGlzIG1vZHVsZSBpcyBvbmx5IGZvciBleHBlcmltZW50YWwgdXNlISA8YnIvPjxiPlRoaXMgaXMgb25seSBhIFBPQyBhbmQgbWF5YmUgZGVsZXRlZDwvYj5cbiAqIEBzaW5jZSAxLjU0LjBcbiAqL1xuY29uc3Qgbm9uRHJhZnQgPSB7fTtcblxuZXhwb3J0IGRlZmF1bHQgbm9uRHJhZnQ7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Static functions for the non-draft programming model
3
+ *
4
+ * @namespace
5
+ * @alias sap.fe.core.actions.nonDraft
6
+ * @private
7
+ * @experimental This module is only for experimental use! <br/><b>This is only a POC and maybe deleted</b>
8
+ * @since 1.54.0
9
+ */
10
+ const nonDraft = {};
11
+
12
+ export default nonDraft;