@sapui5/sap.fe.core 1.102.2 → 1.104.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 (324) hide show
  1. package/package.json +6 -6
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +73 -30
  4. package/src/sap/fe/core/AppComponent.ts +65 -43
  5. package/src/sap/fe/core/AppStateHandler.js +82 -70
  6. package/src/sap/fe/core/AppStateHandler.ts +32 -37
  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 +227 -126
  10. package/src/sap/fe/core/CommonUtils.ts +240 -163
  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/BuildingBlock.js +181 -43
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +150 -24
  23. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +585 -210
  24. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +246 -96
  25. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +30 -30
  26. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +32 -29
  27. package/src/sap/fe/core/controllerextensions/EditFlow.js +379 -330
  28. package/src/sap/fe/core/controllerextensions/EditFlow.ts +253 -245
  29. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  30. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  31. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +101 -74
  32. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +69 -79
  33. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +67 -67
  34. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +76 -76
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +85 -77
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +103 -99
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  39. package/src/sap/fe/core/controllerextensions/MassEdit.js +9 -9
  40. package/src/sap/fe/core/controllerextensions/MassEdit.ts +20 -27
  41. package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
  42. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +21 -14
  43. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  44. package/src/sap/fe/core/controllerextensions/PageReady.ts +98 -34
  45. package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
  46. package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
  47. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  48. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  49. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  50. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  51. package/src/sap/fe/core/controllerextensions/Share.js +170 -139
  52. package/src/sap/fe/core/controllerextensions/Share.ts +117 -118
  53. package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
  54. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  55. package/src/sap/fe/core/controllerextensions/ViewState.js +200 -131
  56. package/src/sap/fe/core/controllerextensions/ViewState.ts +141 -148
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  59. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +11 -10
  60. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +17 -20
  61. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  62. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
  63. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
  64. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
  65. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +190 -141
  66. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +258 -210
  67. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +183 -125
  68. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +213 -156
  69. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +164 -140
  70. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +180 -150
  71. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
  72. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
  73. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +71 -41
  74. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +102 -82
  75. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +61 -71
  76. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +56 -64
  77. package/src/sap/fe/core/controls/Any.js +9 -5
  78. package/src/sap/fe/core/controls/Any.ts +10 -4
  79. package/src/sap/fe/core/controls/CommandExecution.js +11 -25
  80. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  81. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  82. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  83. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
  84. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  85. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
  86. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  87. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  88. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  89. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  90. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  91. package/src/sap/fe/core/controls/FileWrapper.js +7 -2
  92. package/src/sap/fe/core/controls/FileWrapper.ts +15 -11
  93. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  94. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  95. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  96. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  97. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  98. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  99. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  100. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  101. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  102. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  103. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  104. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +49 -49
  105. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +54 -54
  106. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  107. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +22 -35
  108. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  109. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  110. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  111. package/src/sap/fe/core/converters/ConverterContext.ts +52 -61
  112. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  113. package/src/sap/fe/core/converters/ManifestSettings.ts +17 -15
  114. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  115. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  116. package/src/sap/fe/core/converters/MetaModelConverter.js +64 -35
  117. package/src/sap/fe/core/converters/MetaModelConverter.ts +154 -129
  118. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  119. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  120. package/src/sap/fe/core/converters/annotations/DataField.js +58 -35
  121. package/src/sap/fe/core/converters/annotations/DataField.ts +102 -76
  122. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  123. package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
  124. package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
  125. package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
  126. package/src/sap/fe/core/converters/controls/Common/Chart.ts +26 -33
  127. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  128. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  129. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +30 -28
  130. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +60 -61
  131. package/src/sap/fe/core/converters/controls/Common/Form.js +27 -28
  132. package/src/sap/fe/core/converters/controls/Common/Form.ts +44 -57
  133. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  134. package/src/sap/fe/core/converters/controls/Common/KPI.ts +49 -52
  135. package/src/sap/fe/core/converters/controls/Common/Table.js +181 -197
  136. package/src/sap/fe/core/converters/controls/Common/Table.ts +251 -280
  137. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  138. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
  139. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
  140. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +65 -59
  141. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  142. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  143. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  144. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  145. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  146. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  147. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +77 -73
  148. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +101 -97
  149. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  150. package/src/sap/fe/core/converters/helpers/Aggregation.ts +12 -15
  151. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  152. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  153. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  154. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  155. package/src/sap/fe/core/converters/helpers/ID.js +48 -46
  156. package/src/sap/fe/core/converters/helpers/ID.ts +26 -25
  157. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  158. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  159. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  160. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -5
  161. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  162. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  163. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  164. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  165. package/src/sap/fe/core/converters/templates/ListReportConverter.js +55 -42
  166. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +81 -66
  167. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
  168. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
  169. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  170. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  171. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  172. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  173. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  174. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  175. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  176. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  177. package/src/sap/fe/core/formatters/StandardFormatter.js +96 -0
  178. package/src/sap/fe/core/formatters/StandardFormatter.ts +70 -0
  179. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  180. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  181. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  182. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  183. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  184. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  185. package/src/sap/fe/core/helpers/BindingToolkit.js +1832 -0
  186. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +396 -269
  187. package/src/sap/fe/core/helpers/ClassSupport.js +49 -12
  188. package/src/sap/fe/core/helpers/ClassSupport.ts +37 -10
  189. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  190. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  191. package/src/sap/fe/core/helpers/EditState.js +1 -6
  192. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  193. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  194. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  195. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  196. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  197. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  198. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  199. package/src/sap/fe/core/helpers/MassEditHelper.js +306 -280
  200. package/src/sap/fe/core/helpers/MassEditHelper.ts +380 -360
  201. package/src/sap/fe/core/helpers/MessageStrip.js +81 -0
  202. package/src/sap/fe/core/helpers/MessageStrip.ts +79 -0
  203. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  204. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  205. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  206. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  207. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  208. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  209. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  210. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  211. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  212. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  213. package/src/sap/fe/core/helpers/ToES6Promise.js +32 -0
  214. package/src/sap/fe/core/helpers/ToES6Promise.ts +19 -0
  215. package/src/sap/fe/core/jsx-runtime/Fragment.js +16 -0
  216. package/src/sap/fe/core/jsx-runtime/Fragment.ts +3 -0
  217. package/src/sap/fe/core/jsx-runtime/jsx-control.js +99 -0
  218. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +82 -0
  219. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +105 -0
  220. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +89 -0
  221. package/src/sap/fe/core/jsx-runtime/jsx.js +12 -90
  222. package/src/sap/fe/core/jsx-runtime/jsx.ts +24 -85
  223. package/src/sap/fe/core/library.js +42 -3
  224. package/src/sap/fe/core/library.ts +38 -0
  225. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  226. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  227. package/src/sap/fe/core/messagebundle.properties +39 -63
  228. package/src/sap/fe/core/messagebundle_ar.properties +25 -39
  229. package/src/sap/fe/core/messagebundle_bg.properties +25 -39
  230. package/src/sap/fe/core/messagebundle_ca.properties +25 -39
  231. package/src/sap/fe/core/messagebundle_cs.properties +25 -39
  232. package/src/sap/fe/core/messagebundle_cy.properties +25 -39
  233. package/src/sap/fe/core/messagebundle_da.properties +25 -39
  234. package/src/sap/fe/core/messagebundle_de.properties +25 -39
  235. package/src/sap/fe/core/messagebundle_el.properties +26 -40
  236. package/src/sap/fe/core/messagebundle_en.properties +25 -39
  237. package/src/sap/fe/core/messagebundle_en_GB.properties +25 -39
  238. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +25 -39
  239. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +25 -39
  240. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +26 -18
  241. package/src/sap/fe/core/messagebundle_es.properties +27 -41
  242. package/src/sap/fe/core/messagebundle_es_MX.properties +25 -39
  243. package/src/sap/fe/core/messagebundle_et.properties +25 -39
  244. package/src/sap/fe/core/messagebundle_fi.properties +25 -39
  245. package/src/sap/fe/core/messagebundle_fr.properties +26 -40
  246. package/src/sap/fe/core/messagebundle_fr_CA.properties +25 -39
  247. package/src/sap/fe/core/messagebundle_hi.properties +25 -39
  248. package/src/sap/fe/core/messagebundle_hr.properties +25 -39
  249. package/src/sap/fe/core/messagebundle_hu.properties +25 -39
  250. package/src/sap/fe/core/messagebundle_id.properties +25 -39
  251. package/src/sap/fe/core/messagebundle_it.properties +41 -55
  252. package/src/sap/fe/core/messagebundle_iw.properties +25 -39
  253. package/src/sap/fe/core/messagebundle_ja.properties +25 -39
  254. package/src/sap/fe/core/messagebundle_kk.properties +25 -39
  255. package/src/sap/fe/core/messagebundle_ko.properties +30 -44
  256. package/src/sap/fe/core/messagebundle_lt.properties +25 -39
  257. package/src/sap/fe/core/messagebundle_lv.properties +25 -39
  258. package/src/sap/fe/core/messagebundle_ms.properties +25 -39
  259. package/src/sap/fe/core/messagebundle_nl.properties +27 -41
  260. package/src/sap/fe/core/messagebundle_no.properties +25 -39
  261. package/src/sap/fe/core/messagebundle_pl.properties +26 -40
  262. package/src/sap/fe/core/messagebundle_pt.properties +26 -40
  263. package/src/sap/fe/core/messagebundle_pt_PT.properties +25 -39
  264. package/src/sap/fe/core/messagebundle_ro.properties +25 -39
  265. package/src/sap/fe/core/messagebundle_ru.properties +25 -39
  266. package/src/sap/fe/core/messagebundle_sh.properties +25 -39
  267. package/src/sap/fe/core/messagebundle_sk.properties +25 -39
  268. package/src/sap/fe/core/messagebundle_sl.properties +25 -39
  269. package/src/sap/fe/core/messagebundle_sv.properties +25 -39
  270. package/src/sap/fe/core/messagebundle_th.properties +25 -39
  271. package/src/sap/fe/core/messagebundle_tr.properties +25 -39
  272. package/src/sap/fe/core/messagebundle_uk.properties +25 -39
  273. package/src/sap/fe/core/messagebundle_vi.properties +25 -39
  274. package/src/sap/fe/core/messagebundle_zh_CN.properties +25 -39
  275. package/src/sap/fe/core/messagebundle_zh_TW.properties +25 -39
  276. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  277. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  278. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +97 -69
  279. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +68 -69
  280. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  281. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  282. package/src/sap/fe/core/services/NavigationServiceFactory.js +61 -49
  283. package/src/sap/fe/core/services/NavigationServiceFactory.ts +63 -52
  284. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  285. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  286. package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
  287. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  288. package/src/sap/fe/core/services/ShellServicesFactory.js +92 -76
  289. package/src/sap/fe/core/services/ShellServicesFactory.ts +95 -82
  290. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  291. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  292. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +224 -198
  293. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +138 -139
  294. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  295. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  296. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  297. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  298. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  299. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  300. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  301. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  302. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  303. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  304. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  305. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  306. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  307. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  308. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  309. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  310. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  311. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  312. package/src/sap/fe/core/templating/FilterHelper.js +16 -15
  313. package/src/sap/fe/core/templating/FilterHelper.ts +18 -18
  314. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  315. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  316. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  317. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  318. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  319. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  320. package/src/sap/fe/core/templating/UIFormatters.js +152 -95
  321. package/src/sap/fe/core/templating/UIFormatters.ts +202 -128
  322. package/src/sap/fe/core/type/Email.js +2 -2
  323. package/src/sap/fe/core/type/Email.ts +2 -2
  324. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -1,27 +1,27 @@
1
- import { EntityType } from "@sap-ux/annotation-converter";
2
- import { UIAnnotationTerms } from "@sap-ux/vocabularies-types";
3
- import {
1
+ import type { EntityType } from "@sap-ux/vocabularies-types";
2
+ import type {
4
3
  LineItem,
5
- PresentationVariantTypeTypes,
6
- SelectionPresentationVariantTypeTypes,
7
- SelectionVariantTypeTypes
8
- } from "@sap-ux/vocabularies-types/dist/generated/UI";
9
- import { BaseAction, getActionsFromManifest } from "sap/fe/core/converters/controls/Common/Action";
10
- import { ChartVisualization } from "sap/fe/core/converters/controls/Common/Chart";
11
- import { TableVisualization } from "sap/fe/core/converters/controls/Common/Table";
4
+ PresentationVariant,
5
+ SelectionPresentationVariant,
6
+ SelectionVariant
7
+ } from "@sap-ux/vocabularies-types/vocabularies/UI";
8
+ import { UIAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/UI";
9
+ import type { BaseAction } from "sap/fe/core/converters/controls/Common/Action";
10
+ import { getActionsFromManifest } from "sap/fe/core/converters/controls/Common/Action";
11
+ import type { ChartVisualization } from "sap/fe/core/converters/controls/Common/Chart";
12
+ import type { TableVisualization } from "sap/fe/core/converters/controls/Common/Table";
13
+ import type { CustomElementFilterField, FilterField } from "sap/fe/core/converters/controls/ListReport/FilterBar";
12
14
  import {
13
- CustomElementFilterField,
14
- FilterField,
15
15
  getFilterBarhideBasicSearch,
16
16
  getManifestFilterFields,
17
17
  getSelectionFields
18
18
  } from "sap/fe/core/converters/controls/ListReport/FilterBar";
19
- import ConverterContext from "sap/fe/core/converters/ConverterContext";
20
- import { ConfigurableObject, insertCustomElements } from "sap/fe/core/converters/helpers/ConfigurableObject";
21
- import { annotationExpression, compileBinding } from "sap/fe/core/helpers/BindingExpression";
19
+ import type ConverterContext from "sap/fe/core/converters/ConverterContext";
20
+ import type { ConfigurableObject } from "sap/fe/core/converters/helpers/ConfigurableObject";
21
+ import { insertCustomElements } from "sap/fe/core/converters/helpers/ConfigurableObject";
22
+ import { compileExpression, getExpressionFromAnnotation } from "sap/fe/core/helpers/BindingToolkit";
23
+ import type { DataVisualizationAnnotations, DataVisualizationDefinition } from "../controls/Common/DataVisualization";
22
24
  import {
23
- DataVisualizationAnnotations,
24
- DataVisualizationDefinition,
25
25
  getDataVisualizationConfiguration,
26
26
  getDefaultChart,
27
27
  getDefaultLineItem,
@@ -31,20 +31,19 @@ import {
31
31
  isPresentationCompliant,
32
32
  isSelectionPresentationCompliant
33
33
  } from "../controls/Common/DataVisualization";
34
- import { getKPIDefinitions, KPIDefinition } from "../controls/Common/KPI";
35
- import { ChartID, CustomTabID, FilterBarID, FilterVariantManagementID, IconTabBarID, TableID } from "../helpers/ID";
36
- import {
34
+ import type { KPIDefinition } from "../controls/Common/KPI";
35
+ import { getKPIDefinitions } from "../controls/Common/KPI";
36
+ import { getChartID, getCustomTabID, getFilterBarID, getFilterVariantManagementID, getIconTabBarID, getTableID } from "../helpers/ID";
37
+ import type {
37
38
  CombinedViewPathConfiguration,
38
39
  CustomViewTemplateConfiguration,
39
40
  MultipleViewsConfiguration,
40
41
  SingleViewPathConfiguration,
41
- TemplateType,
42
- VariantManagementType,
43
- ViewPathConfiguration,
44
- VisualizationType
42
+ ViewPathConfiguration
45
43
  } from "../ManifestSettings";
44
+ import { TemplateType, VariantManagementType, VisualizationType } from "../ManifestSettings";
46
45
 
47
- type ViewAnnotationsTypeTypes = SelectionPresentationVariantTypeTypes | SelectionVariantTypeTypes;
46
+ type ViewAnnotations = SelectionPresentationVariant | SelectionVariant;
48
47
  type VariantManagementDefinition = {
49
48
  id: string;
50
49
  targetControlIds: string;
@@ -73,15 +72,18 @@ type DefaultSemanticDate = ConfigurableObject & {
73
72
  operator: string;
74
73
  };
75
74
 
75
+ type MultiViewsControlConfiguration = {
76
+ id: string;
77
+ showTabCounts?: boolean;
78
+ };
79
+
76
80
  export type ListReportDefinition = {
77
81
  mainEntitySet: string;
78
82
  mainEntityType: string; // entityType> at the start of LR templating
79
83
  singleTableId?: string; // only with single Table mode
80
84
  singleChartId?: string; // only with single Table mode
81
- displayMultiVisualizations: boolean;
82
- iconTabBarId: string;
83
85
  stickySubheaderProvider?: string;
84
- showTabCounts?: boolean; // only with multi Table mode
86
+ multiViewsControl?: MultiViewsControlConfiguration; // only with multi Table mode
85
87
  headerActions: BaseAction[];
86
88
  showPinnableToggle?: boolean;
87
89
  filterBar: {
@@ -91,7 +93,6 @@ export type ListReportDefinition = {
91
93
  };
92
94
  views: ListReportViewDefinition[];
93
95
  filterConditions: object;
94
- isMultiEntitySets: boolean;
95
96
  filterBarId: string;
96
97
  variantManagement: VariantManagementDefinition;
97
98
  hasMultiVisualizations: boolean;
@@ -148,8 +149,9 @@ type ContentAreaID = {
148
149
 
149
150
  /**
150
151
  * Retrieves all list report tables.
151
- * @param {ListReportViewDefinition[]} views The list report views configured in the manifest
152
- * @returns {TableVisualization[]} The list report table
152
+ *
153
+ * @param views The list report views configured in the manifest
154
+ * @returns The list report table
153
155
  */
154
156
  function getTableVisualizations(views: ListReportViewDefinition[]): TableVisualization[] {
155
157
  const tables: TableVisualization[] = [];
@@ -200,16 +202,16 @@ const getDefaultSemanticDates = function (filterFields: Record<string, CustomEle
200
202
  /**
201
203
  * Find a visualization annotation that can be used for rendering the list report.
202
204
  *
203
- * @param {EntityType} entityType The current EntityType
205
+ * @param entityType The current EntityType
204
206
  * @param converterContext
205
207
  * @param bIsALP
206
- * @returns {LineItem | PresentationVariantTypeTypes | undefined} A compliant annotation for rendering the list report
208
+ * @returns A compliant annotation for rendering the list report
207
209
  */
208
210
  function getCompliantVisualizationAnnotation(
209
211
  entityType: EntityType,
210
212
  converterContext: ConverterContext,
211
213
  bIsALP: Boolean
212
- ): LineItem | PresentationVariantTypeTypes | SelectionPresentationVariantTypeTypes | undefined {
214
+ ): LineItem | PresentationVariant | SelectionPresentationVariant | undefined {
213
215
  const annotationPath = converterContext.getManifestWrapper().getDefaultTemplateAnnotationPath();
214
216
  const selectionPresentationVariant = getSelectionPresentationVariant(entityType, annotationPath, converterContext);
215
217
  if (annotationPath && selectionPresentationVariant) {
@@ -262,12 +264,12 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
262
264
  let chartControlId = "";
263
265
  let title: string | undefined = "";
264
266
  let selectionVariantPath = "";
265
- const isMultipleViewConfiguration = function (config: ViewConfiguration): config is MultipleViewConfiguration {
266
- return (config as MultipleViewConfiguration).key !== undefined;
267
+ const isMultipleViewConfiguration = function (currentConfig: ViewConfiguration): currentConfig is MultipleViewConfiguration {
268
+ return (currentConfig as MultipleViewConfiguration).key !== undefined;
267
269
  };
268
- const createVisualization = function (presentation: DataVisualizationDefinition, isPrimary?: boolean) {
270
+ const createVisualization = function (currentPresentation: DataVisualizationDefinition, isPrimary?: boolean) {
269
271
  let defaultVisualization;
270
- for (const visualization of presentation.visualizations) {
272
+ for (const visualization of currentPresentation.visualizations) {
271
273
  if (isPrimary && visualization.type === VisualizationType.Chart) {
272
274
  defaultVisualization = visualization;
273
275
  break;
@@ -277,7 +279,7 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
277
279
  break;
278
280
  }
279
281
  }
280
- const presentationCreated = Object.assign({}, presentation);
282
+ const presentationCreated = Object.assign({}, currentPresentation);
281
283
  if (defaultVisualization) {
282
284
  presentationCreated.visualizations = [defaultVisualization];
283
285
  }
@@ -346,9 +348,9 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
346
348
  } else if (isMultipleViewConfiguration(config)) {
347
349
  // key exists only on multi tables mode
348
350
  const resolvedTarget = converterContext.getEntityTypeAnnotation((config as SingleViewPathConfiguration).annotationPath);
349
- const viewAnnotation: ViewAnnotationsTypeTypes = resolvedTarget.annotation as ViewAnnotationsTypeTypes;
351
+ const viewAnnotation: ViewAnnotations = resolvedTarget.annotation;
350
352
  converterContext = resolvedTarget.converterContext;
351
- title = compileBinding(annotationExpression(viewAnnotation.Text));
353
+ title = compileExpression(getExpressionFromAnnotation(viewAnnotation.Text));
352
354
  // Need to loop on table into views since multi table mode get specific configuration (hidden filters or Table Id)
353
355
  presentation.visualizations.forEach((visualizationDefinition, index) => {
354
356
  switch (visualizationDefinition.type) {
@@ -356,15 +358,13 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
356
358
  const tableVisualization = presentation.visualizations[index] as TableVisualization;
357
359
  const filters = tableVisualization.control.filters || {};
358
360
  filters.hiddenFilters = filters.hiddenFilters || { paths: [] };
359
- if (!(config as SingleViewPathConfiguration).keepPreviousPresonalization) {
361
+ if (!(config as SingleViewPathConfiguration).keepPreviousPersonalization) {
360
362
  // Need to override Table Id to match with Tab Key (currently only table is managed in multiple view mode)
361
- tableVisualization.annotation.id = TableID((config as SingleViewPathConfiguration).key || "", "LineItem");
363
+ tableVisualization.annotation.id = getTableID((config as SingleViewPathConfiguration).key || "", "LineItem");
362
364
  }
363
365
  config = config as ViewAnnotationConfiguration;
364
366
  if (config && config.annotation && config.annotation.term === UIAnnotationTerms.SelectionPresentationVariant) {
365
- selectionVariantPath = (
366
- config.annotation as SelectionPresentationVariantTypeTypes
367
- ).SelectionVariant.fullyQualifiedName.split("@")[1];
367
+ selectionVariantPath = config.annotation.SelectionVariant.fullyQualifiedName.split("@")[1];
368
368
  } else {
369
369
  selectionVariantPath = (config as SingleViewPathConfiguration).annotationPath;
370
370
  }
@@ -378,7 +378,7 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
378
378
  break;
379
379
  case VisualizationType.Chart:
380
380
  const chartVisualization = presentation.visualizations[index] as ChartVisualization;
381
- chartVisualization.id = ChartID((config as SingleViewPathConfiguration).key || "", "Chart");
381
+ chartVisualization.id = getChartID((config as SingleViewPathConfiguration).key || "", "Chart");
382
382
  chartVisualization.multiViews = true;
383
383
  break;
384
384
  default:
@@ -408,7 +408,7 @@ const getView = function (viewConverterConfiguration: ViewConverterSettings): Li
408
408
  const title = config.label,
409
409
  fragment = config.template,
410
410
  type = config.type,
411
- customTabId = CustomTabID(config.key || ""),
411
+ customTabId = getCustomTabID(config.key || ""),
412
412
  visible = config.visible;
413
413
  return {
414
414
  title,
@@ -452,7 +452,7 @@ const getViews = function (
452
452
  path = path as SingleViewPathConfiguration;
453
453
  const manifestWrapper = converterContext.getManifestWrapper(),
454
454
  viewConverterContext = converterContext.getConverterContextFor(
455
- path.contextPath || (path.entitySet && "/" + path.entitySet) || converterContext.getContextPath()
455
+ path.contextPath || (path.entitySet && `/${path.entitySet}`) || converterContext.getContextPath()
456
456
  ),
457
457
  entityType = viewConverterContext.getEntityType();
458
458
 
@@ -480,7 +480,7 @@ const getViews = function (
480
480
  converterContext: viewConverterContext,
481
481
  annotation,
482
482
  annotationPath: path.annotationPath,
483
- keepPreviousPresonalization: path.keepPreviousPresonalization,
483
+ keepPreviousPersonalization: path.keepPreviousPersonalization,
484
484
  key: path.key,
485
485
  visible: path.visible
486
486
  });
@@ -506,6 +506,21 @@ const getViews = function (
506
506
  });
507
507
  };
508
508
 
509
+ const getMultiViewsControl = function (
510
+ converterContext: ConverterContext,
511
+ views: ListReportViewDefinition[]
512
+ ): MultiViewsControlConfiguration | undefined {
513
+ const manifestWrapper = converterContext.getManifestWrapper();
514
+ const viewsDefinition: MultipleViewsConfiguration | undefined = manifestWrapper.getViewConfiguration();
515
+ if (views.length > 1 && !hasMultiVisualizations(converterContext)) {
516
+ return {
517
+ showTabCounts: viewsDefinition ? viewsDefinition?.showCounts || manifestWrapper.hasMultipleEntitySets() : undefined, // with multi EntitySets, tab counts are displayed by default
518
+ id: getIconTabBarID()
519
+ };
520
+ }
521
+ return undefined;
522
+ };
523
+
509
524
  function getAlpViewConfig(converterContext: ConverterContext, viewConfigs: ViewConverterSettings[]): ViewConverterSettings[] {
510
525
  const entityType = converterContext.getEntityType();
511
526
  const annotation = getCompliantVisualizationAnnotation(entityType, converterContext, true);
@@ -532,6 +547,13 @@ function getAlpViewConfig(converterContext: ConverterContext, viewConfigs: ViewC
532
547
  return viewConfigs;
533
548
  }
534
549
 
550
+ function hasMultiVisualizations(converterContext: ConverterContext): boolean {
551
+ return (
552
+ converterContext.getManifestWrapper().hasMultipleVisualizations() ||
553
+ converterContext.getTemplateType() === TemplateType.AnalyticalListPage
554
+ );
555
+ }
556
+
535
557
  export const getHeaderActions = function (converterContext: ConverterContext): BaseAction[] {
536
558
  const manifestWrapper = converterContext.getManifestWrapper();
537
559
  return insertCustomElements([], getActionsFromManifest(manifestWrapper.getHeaderActions(), converterContext));
@@ -554,7 +576,7 @@ export const checkChartFilterBarId = function (views: ListReportViewDefinition[]
554
576
  * Creates the ListReportDefinition for multiple entity sets (multiple table mode).
555
577
  *
556
578
  * @param converterContext The converter context
557
- * @returns {ListReportDefinition} The list report definition based on annotation + manifest
579
+ * @returns The list report definition based on annotation + manifest
558
580
  */
559
581
  export const convertPage = function (converterContext: ConverterContext): ListReportDefinition {
560
582
  const entityType = converterContext.getEntityType();
@@ -570,14 +592,13 @@ export const convertPage = function (converterContext: ConverterContext): ListRe
570
592
  const viewsDefinition: MultipleViewsConfiguration | undefined = manifestWrapper.getViewConfiguration();
571
593
  const hasMultipleEntitySets = manifestWrapper.hasMultipleEntitySets();
572
594
  const views: ListReportViewDefinition[] = getViews(converterContext, viewsDefinition);
573
- const showTabCounts = viewsDefinition ? viewsDefinition?.showCounts || hasMultipleEntitySets : undefined; // with multi EntitySets, tab counts are displayed by default
574
595
  const lrTableVisualizations = getTableVisualizations(views);
575
596
  const lrChartVisualizations = getChartVisualizations(views);
576
597
  const showPinnableToggle = lrTableVisualizations.some((table) => table.control.type === "ResponsiveTable");
577
598
  let singleTableId = "";
578
599
  let singleChartId = "";
579
- const filterBarId = FilterBarID(sContextPath);
580
- const filterVariantManagementID = FilterVariantManagementID(filterBarId);
600
+ const filterBarId = getFilterBarID(sContextPath);
601
+ const filterVariantManagementID = getFilterVariantManagementID(filterBarId);
581
602
  const fbConfig = manifestWrapper.getFilterConfiguration();
582
603
  const filterInitialLayout = fbConfig?.initialLayout !== undefined ? fbConfig?.initialLayout.toLowerCase() : "compact";
583
604
  const filterLayout = fbConfig?.layout !== undefined ? fbConfig?.layout.toLowerCase() : "compact";
@@ -601,8 +622,7 @@ export const convertPage = function (converterContext: ConverterContext): ListRe
601
622
 
602
623
  // Sort header actions according to position attributes in manifest
603
624
  const headerActions = getHeaderActions(converterContext);
604
- const hasMultiVisualizations: boolean =
605
- manifestWrapper.hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
625
+ const multiViewControl = getMultiViewsControl(converterContext, views);
606
626
  if (hasMultipleEntitySets) {
607
627
  checkChartFilterBarId(views, filterBarId);
608
628
  }
@@ -619,23 +639,19 @@ export const convertPage = function (converterContext: ConverterContext): ListRe
619
639
  const targetControlIds = [
620
640
  ...(hideFilterBar ? [] : [filterBarId]),
621
641
  ...(manifestWrapper.getVariantManagement() !== VariantManagementType.Control ? visualizationIds : []),
622
- ...(!hasMultiVisualizations && views.length > 1 ? [IconTabBarID()] : [])
642
+ ...(multiViewControl ? [multiViewControl.id] : [])
623
643
  ];
624
644
 
625
- const iconTabBarId = "fe::TabMultipleMode";
626
- const displayMultiVisualizations = views.length > 1 && !hasMultiVisualizations;
627
645
  const stickySubheaderProvider =
628
- displayMultiVisualizations && manifestWrapper.getStickyMultiTabHeaderConfiguration() ? iconTabBarId : undefined;
646
+ multiViewControl && manifestWrapper.getStickyMultiTabHeaderConfiguration() ? multiViewControl.id : undefined;
629
647
 
630
648
  return {
631
649
  mainEntitySet: sContextPath,
632
- mainEntityType: sContextPath + "/",
633
- displayMultiVisualizations,
634
- iconTabBarId,
650
+ mainEntityType: `${sContextPath}/`,
651
+ multiViewsControl: multiViewControl,
635
652
  stickySubheaderProvider,
636
653
  singleTableId,
637
654
  singleChartId,
638
- showTabCounts,
639
655
  headerActions,
640
656
  showPinnableToggle: showPinnableToggle,
641
657
  filterBar: {
@@ -653,8 +669,7 @@ export const convertPage = function (converterContext: ConverterContext): ListRe
653
669
  id: filterVariantManagementID,
654
670
  targetControlIds: targetControlIds.join(",")
655
671
  },
656
- isMultiEntitySets: hasMultipleEntitySets,
657
- hasMultiVisualizations: hasMultiVisualizations,
672
+ hasMultiVisualizations: hasMultiVisualizations(converterContext),
658
673
  templateType: manifestWrapper.getTemplateType(),
659
674
  useSemanticDateRange,
660
675
  filterInitialLayout,