@sapui5/sap.fe.core 1.102.0 → 1.103.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/package.json +5 -5
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppComponent.js +62 -26
  4. package/src/sap/fe/core/AppComponent.ts +56 -40
  5. package/src/sap/fe/core/AppStateHandler.js +10 -10
  6. package/src/sap/fe/core/AppStateHandler.ts +9 -9
  7. package/src/sap/fe/core/BaseController.js +11 -9
  8. package/src/sap/fe/core/BaseController.ts +15 -13
  9. package/src/sap/fe/core/CommonUtils.js +236 -109
  10. package/src/sap/fe/core/CommonUtils.ts +252 -136
  11. package/src/sap/fe/core/ExtensionAPI.js +24 -27
  12. package/src/sap/fe/core/ExtensionAPI.ts +36 -38
  13. package/src/sap/fe/core/PageController.js +4 -4
  14. package/src/sap/fe/core/PageController.ts +4 -5
  15. package/src/sap/fe/core/TemplateComponent.js +1 -1
  16. package/src/sap/fe/core/TemplateComponent.ts +6 -6
  17. package/src/sap/fe/core/TemplateModel.js +1 -1
  18. package/src/sap/fe/core/TemplateModel.ts +1 -1
  19. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +1 -1
  20. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +1 -1
  21. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +8 -8
  22. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +11 -10
  23. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +27 -27
  24. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +28 -26
  25. package/src/sap/fe/core/controllerextensions/EditFlow.js +129 -118
  26. package/src/sap/fe/core/controllerextensions/EditFlow.ts +154 -141
  27. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +9 -9
  28. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +10 -10
  29. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +31 -26
  30. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +34 -35
  31. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +70 -70
  32. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +77 -77
  33. package/src/sap/fe/core/controllerextensions/InternalRouting.js +84 -78
  34. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +105 -101
  35. package/src/sap/fe/core/controllerextensions/KPIManagement.js +66 -68
  36. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +106 -123
  37. package/src/sap/fe/core/controllerextensions/MassEdit.js +8 -8
  38. package/src/sap/fe/core/controllerextensions/MassEdit.ts +19 -26
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +20 -12
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +29 -14
  41. package/src/sap/fe/core/controllerextensions/PageReady.js +97 -25
  42. package/src/sap/fe/core/controllerextensions/PageReady.ts +94 -34
  43. package/src/sap/fe/core/controllerextensions/Paginator.js +21 -22
  44. package/src/sap/fe/core/controllerextensions/Paginator.ts +24 -25
  45. package/src/sap/fe/core/controllerextensions/Placeholder.js +4 -6
  46. package/src/sap/fe/core/controllerextensions/Placeholder.ts +12 -14
  47. package/src/sap/fe/core/controllerextensions/Routing.js +10 -11
  48. package/src/sap/fe/core/controllerextensions/Routing.ts +12 -13
  49. package/src/sap/fe/core/controllerextensions/Share.js +22 -22
  50. package/src/sap/fe/core/controllerextensions/Share.ts +30 -29
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +46 -50
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +56 -60
  53. package/src/sap/fe/core/controllerextensions/ViewState.js +65 -62
  54. package/src/sap/fe/core/controllerextensions/ViewState.ts +68 -63
  55. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +5 -5
  56. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -7
  57. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +6 -6
  58. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +12 -17
  59. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +2 -2
  60. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +4 -4
  61. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +7 -9
  62. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +18 -19
  63. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +184 -137
  64. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +253 -206
  65. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +113 -121
  66. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +148 -158
  67. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +198 -148
  68. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +223 -159
  69. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +24 -26
  70. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +35 -33
  71. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +78 -44
  72. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +90 -60
  73. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +52 -55
  74. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +55 -58
  75. package/src/sap/fe/core/controls/Any.js +9 -5
  76. package/src/sap/fe/core/controls/Any.ts +10 -4
  77. package/src/sap/fe/core/controls/CommandExecution.js +11 -25
  78. package/src/sap/fe/core/controls/CommandExecution.ts +11 -25
  79. package/src/sap/fe/core/controls/ConditionalWrapper.js +2 -2
  80. package/src/sap/fe/core/controls/ConditionalWrapper.ts +3 -3
  81. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +22 -22
  82. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +25 -24
  83. package/src/sap/fe/core/controls/CustomQuickViewPage.js +2 -2
  84. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +2 -2
  85. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +3 -3
  86. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +5 -5
  87. package/src/sap/fe/core/controls/FieldWrapper.js +2 -2
  88. package/src/sap/fe/core/controls/FieldWrapper.ts +3 -3
  89. package/src/sap/fe/core/controls/FileWrapper.js +2 -2
  90. package/src/sap/fe/core/controls/FileWrapper.ts +11 -11
  91. package/src/sap/fe/core/controls/FilterBar.js +6 -2
  92. package/src/sap/fe/core/controls/FilterBar.ts +13 -9
  93. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  94. package/src/sap/fe/core/controls/FormElementWrapper.ts +2 -2
  95. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  96. package/src/sap/fe/core/controls/MassEditSelect.ts +0 -4
  97. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +3 -3
  98. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +16 -12
  99. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -22
  100. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +3 -3
  101. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.ts +8 -8
  102. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +47 -47
  103. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +52 -52
  104. package/src/sap/fe/core/controls/massEdit/MassEditDialog.fragment.xml +8 -2
  105. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +89 -88
  106. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +107 -106
  107. package/src/sap/fe/core/converters/ConverterContext.js +26 -33
  108. package/src/sap/fe/core/converters/ConverterContext.ts +51 -60
  109. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  110. package/src/sap/fe/core/converters/ManifestSettings.ts +14 -14
  111. package/src/sap/fe/core/converters/ManifestWrapper.js +59 -45
  112. package/src/sap/fe/core/converters/ManifestWrapper.ts +55 -45
  113. package/src/sap/fe/core/converters/MetaModelConverter.js +50 -32
  114. package/src/sap/fe/core/converters/MetaModelConverter.ts +145 -127
  115. package/src/sap/fe/core/converters/TemplateConverter.js +21 -20
  116. package/src/sap/fe/core/converters/TemplateConverter.ts +27 -24
  117. package/src/sap/fe/core/converters/annotations/DataField.js +54 -34
  118. package/src/sap/fe/core/converters/annotations/DataField.ts +97 -75
  119. package/src/sap/fe/core/converters/common/AnnotationConverter.js +1911 -1495
  120. package/src/sap/fe/core/converters/controls/Common/Action.js +50 -41
  121. package/src/sap/fe/core/converters/controls/Common/Action.ts +56 -46
  122. package/src/sap/fe/core/converters/controls/Common/Chart.js +14 -14
  123. package/src/sap/fe/core/converters/controls/Common/Chart.ts +23 -26
  124. package/src/sap/fe/core/converters/controls/Common/Criticality.js +3 -3
  125. package/src/sap/fe/core/converters/controls/Common/Criticality.ts +4 -4
  126. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +28 -28
  127. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +40 -36
  128. package/src/sap/fe/core/converters/controls/Common/Form.js +25 -27
  129. package/src/sap/fe/core/converters/controls/Common/Form.ts +37 -45
  130. package/src/sap/fe/core/converters/controls/Common/KPI.js +11 -11
  131. package/src/sap/fe/core/converters/controls/Common/KPI.ts +35 -39
  132. package/src/sap/fe/core/converters/controls/Common/Table.js +174 -183
  133. package/src/sap/fe/core/converters/controls/Common/Table.ts +237 -250
  134. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +119 -119
  135. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +144 -141
  136. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +45 -41
  137. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +64 -57
  138. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +28 -26
  139. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +46 -43
  140. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +9 -9
  141. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +14 -13
  142. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +67 -64
  143. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +69 -66
  144. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +73 -72
  145. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +98 -96
  146. package/src/sap/fe/core/converters/helpers/Aggregation.js +2 -4
  147. package/src/sap/fe/core/converters/helpers/Aggregation.ts +10 -13
  148. package/src/sap/fe/core/converters/helpers/BindingHelper.js +31 -31
  149. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +30 -29
  150. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +4 -4
  151. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +9 -9
  152. package/src/sap/fe/core/converters/helpers/ID.js +46 -46
  153. package/src/sap/fe/core/converters/helpers/ID.ts +25 -25
  154. package/src/sap/fe/core/converters/helpers/Key.js +7 -7
  155. package/src/sap/fe/core/converters/helpers/Key.ts +7 -7
  156. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +1 -1
  157. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +4 -4
  158. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +6 -6
  159. package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +10 -10
  160. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +46 -62
  161. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +54 -82
  162. package/src/sap/fe/core/converters/templates/ListReportConverter.js +30 -29
  163. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +40 -40
  164. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +39 -38
  165. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +52 -61
  166. package/src/sap/fe/core/designtime/AppComponent.designtime.js +4 -4
  167. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +4 -4
  168. package/src/sap/fe/core/formatters/CollaborationFormatter.js +2 -2
  169. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +3 -3
  170. package/src/sap/fe/core/formatters/FPMFormatter.js +5 -5
  171. package/src/sap/fe/core/formatters/FPMFormatter.ts +10 -10
  172. package/src/sap/fe/core/formatters/KPIFormatter.js +7 -7
  173. package/src/sap/fe/core/formatters/KPIFormatter.ts +10 -10
  174. package/src/sap/fe/core/formatters/StandardFormatter.js +89 -0
  175. package/src/sap/fe/core/formatters/StandardFormatter.ts +64 -0
  176. package/src/sap/fe/core/formatters/TableFormatter.js +11 -11
  177. package/src/sap/fe/core/formatters/TableFormatter.ts +12 -12
  178. package/src/sap/fe/core/formatters/ValueFormatter.js +8 -8
  179. package/src/sap/fe/core/formatters/ValueFormatter.ts +9 -9
  180. package/src/sap/fe/core/helpers/AppStartupHelper.js +15 -15
  181. package/src/sap/fe/core/helpers/AppStartupHelper.ts +37 -40
  182. package/src/sap/fe/core/helpers/BindingToolkit.js +1809 -0
  183. package/src/sap/fe/core/helpers/{BindingExpression.ts → BindingToolkit.ts} +365 -264
  184. package/src/sap/fe/core/helpers/ClassSupport.js +20 -11
  185. package/src/sap/fe/core/helpers/ClassSupport.ts +14 -10
  186. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +2 -2
  187. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.ts +1 -1
  188. package/src/sap/fe/core/helpers/EditState.js +1 -6
  189. package/src/sap/fe/core/helpers/EditState.ts +5 -10
  190. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +2 -2
  191. package/src/sap/fe/core/helpers/ExcelFormatHelper.ts +4 -4
  192. package/src/sap/fe/core/helpers/FPMHelper.js +1 -1
  193. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -2
  194. package/src/sap/fe/core/helpers/KeepAliveHelper.js +31 -31
  195. package/src/sap/fe/core/helpers/KeepAliveHelper.ts +52 -56
  196. package/src/sap/fe/core/helpers/MassEditHelper.js +281 -254
  197. package/src/sap/fe/core/helpers/MassEditHelper.ts +337 -289
  198. package/src/sap/fe/core/helpers/ModelHelper.js +25 -25
  199. package/src/sap/fe/core/helpers/ModelHelper.ts +34 -32
  200. package/src/sap/fe/core/helpers/PasteHelper.js +3 -10
  201. package/src/sap/fe/core/helpers/PasteHelper.ts +20 -25
  202. package/src/sap/fe/core/helpers/SemanticDateOperators.js +1 -1
  203. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +11 -11
  204. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +3 -3
  205. package/src/sap/fe/core/helpers/SemanticKeyHelper.ts +8 -8
  206. package/src/sap/fe/core/helpers/StableIdHelper.js +12 -12
  207. package/src/sap/fe/core/helpers/StableIdHelper.ts +12 -12
  208. package/src/sap/fe/core/jsx-runtime/jsx.js +1 -1
  209. package/src/sap/fe/core/jsx-runtime/jsx.ts +8 -8
  210. package/src/sap/fe/core/library.js +42 -3
  211. package/src/sap/fe/core/library.ts +38 -0
  212. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +3 -3
  213. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +2 -2
  214. package/src/sap/fe/core/messagebundle.properties +49 -35
  215. package/src/sap/fe/core/messagebundle_ar.properties +13 -5
  216. package/src/sap/fe/core/messagebundle_bg.properties +13 -5
  217. package/src/sap/fe/core/messagebundle_ca.properties +13 -5
  218. package/src/sap/fe/core/messagebundle_cs.properties +13 -5
  219. package/src/sap/fe/core/messagebundle_cy.properties +14 -6
  220. package/src/sap/fe/core/messagebundle_da.properties +13 -5
  221. package/src/sap/fe/core/messagebundle_de.properties +15 -7
  222. package/src/sap/fe/core/messagebundle_el.properties +14 -6
  223. package/src/sap/fe/core/messagebundle_en.properties +9 -1
  224. package/src/sap/fe/core/messagebundle_en_GB.properties +11 -3
  225. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +7 -1
  226. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +9 -1
  227. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +44 -85
  228. package/src/sap/fe/core/messagebundle_es.properties +13 -5
  229. package/src/sap/fe/core/messagebundle_es_MX.properties +13 -5
  230. package/src/sap/fe/core/messagebundle_et.properties +13 -5
  231. package/src/sap/fe/core/messagebundle_fi.properties +14 -6
  232. package/src/sap/fe/core/messagebundle_fr.properties +14 -6
  233. package/src/sap/fe/core/messagebundle_fr_CA.properties +14 -6
  234. package/src/sap/fe/core/messagebundle_hi.properties +14 -6
  235. package/src/sap/fe/core/messagebundle_hr.properties +14 -6
  236. package/src/sap/fe/core/messagebundle_hu.properties +13 -5
  237. package/src/sap/fe/core/messagebundle_id.properties +13 -5
  238. package/src/sap/fe/core/messagebundle_it.properties +33 -25
  239. package/src/sap/fe/core/messagebundle_iw.properties +13 -5
  240. package/src/sap/fe/core/messagebundle_ja.properties +14 -6
  241. package/src/sap/fe/core/messagebundle_kk.properties +13 -5
  242. package/src/sap/fe/core/messagebundle_ko.properties +13 -5
  243. package/src/sap/fe/core/messagebundle_lt.properties +13 -5
  244. package/src/sap/fe/core/messagebundle_lv.properties +14 -6
  245. package/src/sap/fe/core/messagebundle_ms.properties +13 -5
  246. package/src/sap/fe/core/messagebundle_nl.properties +13 -5
  247. package/src/sap/fe/core/messagebundle_no.properties +13 -5
  248. package/src/sap/fe/core/messagebundle_pl.properties +13 -5
  249. package/src/sap/fe/core/messagebundle_pt.properties +13 -5
  250. package/src/sap/fe/core/messagebundle_pt_PT.properties +14 -6
  251. package/src/sap/fe/core/messagebundle_ro.properties +13 -5
  252. package/src/sap/fe/core/messagebundle_ru.properties +13 -5
  253. package/src/sap/fe/core/messagebundle_sh.properties +13 -5
  254. package/src/sap/fe/core/messagebundle_sk.properties +13 -5
  255. package/src/sap/fe/core/messagebundle_sl.properties +17 -9
  256. package/src/sap/fe/core/messagebundle_sv.properties +14 -6
  257. package/src/sap/fe/core/messagebundle_th.properties +13 -5
  258. package/src/sap/fe/core/messagebundle_tr.properties +13 -5
  259. package/src/sap/fe/core/messagebundle_uk.properties +13 -5
  260. package/src/sap/fe/core/messagebundle_vi.properties +13 -5
  261. package/src/sap/fe/core/messagebundle_zh_CN.properties +14 -6
  262. package/src/sap/fe/core/messagebundle_zh_TW.properties +13 -5
  263. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +2 -2
  264. package/src/sap/fe/core/services/AsyncComponentServiceFactory.ts +5 -5
  265. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +2 -2
  266. package/src/sap/fe/core/services/CacheHandlerServiceFactory.ts +14 -14
  267. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -1
  268. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +3 -2
  269. package/src/sap/fe/core/services/NavigationServiceFactory.js +53 -44
  270. package/src/sap/fe/core/services/NavigationServiceFactory.ts +54 -46
  271. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +2 -2
  272. package/src/sap/fe/core/services/ResourceModelServiceFactory.ts +4 -4
  273. package/src/sap/fe/core/services/RoutingServiceFactory.js +55 -55
  274. package/src/sap/fe/core/services/RoutingServiceFactory.ts +67 -65
  275. package/src/sap/fe/core/services/ShellServicesFactory.js +72 -76
  276. package/src/sap/fe/core/services/ShellServicesFactory.ts +76 -82
  277. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +61 -61
  278. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +102 -92
  279. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +20 -15
  280. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +26 -21
  281. package/src/sap/fe/core/support/CommonHelper.js +3 -2
  282. package/src/sap/fe/core/support/CommonHelper.ts +9 -13
  283. package/src/sap/fe/core/support/Diagnostics.js +1 -1
  284. package/src/sap/fe/core/support/Diagnostics.ts +5 -5
  285. package/src/sap/fe/core/templating/CommonFormatters.js +84 -0
  286. package/src/sap/fe/core/templating/CommonFormatters.ts +86 -0
  287. package/src/sap/fe/core/templating/CriticalityFormatters.js +31 -31
  288. package/src/sap/fe/core/templating/CriticalityFormatters.ts +42 -40
  289. package/src/sap/fe/core/templating/DataFieldFormatters.js +8 -8
  290. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -10
  291. package/src/sap/fe/core/templating/DataModelPathHelper.js +16 -15
  292. package/src/sap/fe/core/templating/DataModelPathHelper.ts +42 -32
  293. package/src/sap/fe/core/templating/DisplayModeFormatter.js +1 -1
  294. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +2 -3
  295. package/src/sap/fe/core/templating/EntitySetHelper.js +7 -7
  296. package/src/sap/fe/core/templating/EntitySetHelper.ts +6 -8
  297. package/src/sap/fe/core/templating/FieldControlHelper.js +35 -34
  298. package/src/sap/fe/core/templating/FieldControlHelper.ts +29 -46
  299. package/src/sap/fe/core/templating/FilterHelper.js +10 -9
  300. package/src/sap/fe/core/templating/FilterHelper.ts +13 -13
  301. package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
  302. package/src/sap/fe/core/templating/FilterTemplating.ts +3 -3
  303. package/src/sap/fe/core/templating/PropertyFormatters.js +7 -7
  304. package/src/sap/fe/core/templating/PropertyFormatters.ts +21 -19
  305. package/src/sap/fe/core/templating/PropertyHelper.js +25 -25
  306. package/src/sap/fe/core/templating/PropertyHelper.ts +25 -26
  307. package/src/sap/fe/core/templating/UIFormatters.js +148 -93
  308. package/src/sap/fe/core/templating/UIFormatters.ts +196 -124
  309. package/src/sap/fe/core/type/Email.js +2 -2
  310. package/src/sap/fe/core/type/Email.ts +2 -2
  311. package/src/sap/fe/core/helpers/BindingExpression.js +0 -1732
@@ -1,25 +1,26 @@
1
1
  import Log from "sap/base/Log";
2
- import AppComponent from "sap/fe/core/AppComponent";
2
+ import type AppComponent from "sap/fe/core/AppComponent";
3
3
  import BusyLocker from "sap/fe/core/controllerextensions/BusyLocker";
4
4
  import messageHandling from "sap/fe/core/controllerextensions/messageHandler/messageHandling";
5
5
  import Placeholder from "sap/fe/core/controllerextensions/Placeholder";
6
- import RouterProxy from "sap/fe/core/controllerextensions/routing/RouterProxy";
6
+ import type RouterProxy from "sap/fe/core/controllerextensions/routing/RouterProxy";
7
7
  import AppStartupHelper from "sap/fe/core/helpers/AppStartupHelper";
8
8
  import { defineUI5Class, event } from "sap/fe/core/helpers/ClassSupport";
9
9
  import EditState from "sap/fe/core/helpers/EditState";
10
10
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
11
11
  import SemanticKeyHelper from "sap/fe/core/helpers/SemanticKeyHelper";
12
12
  import BindingParser from "sap/ui/base/BindingParser";
13
- import Event from "sap/ui/base/Event";
13
+ import type Event from "sap/ui/base/Event";
14
14
  import EventProvider from "sap/ui/base/EventProvider";
15
- import Router from "sap/ui/core/routing/Router";
15
+ import type Router from "sap/ui/core/routing/Router";
16
16
  import Service from "sap/ui/core/service/Service";
17
17
  import ServiceFactory from "sap/ui/core/service/ServiceFactory";
18
- import Context from "sap/ui/model/odata/v4/Context";
19
- import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
20
- import ODataModel from "sap/ui/model/odata/v4/ODataModel";
18
+ import type Context from "sap/ui/model/odata/v4/Context";
19
+ import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
20
+ import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
21
21
  import ODataUtils from "sap/ui/model/odata/v4/ODataUtils";
22
- import { ServiceContext } from "types/extension_types";
22
+ import type { ServiceContext } from "types/extension_types";
23
+
23
24
  type RoutingServiceSettings = {};
24
25
  @defineUI5Class("sap.fe.core.services.RoutingServiceEventing")
25
26
  class RoutingServiceEventing extends EventProvider {
@@ -83,8 +84,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
83
84
  /**
84
85
  * Parse a manifest routing configuration for internal usage.
85
86
  *
86
- * @param {object} oRoutingConfig The routing configuration from the manifest
87
- * @param {object} oRootViewConfig The root view configuration from the manifest
87
+ * @param oRoutingConfig The routing configuration from the manifest
88
+ * @param oRootViewConfig The root view configuration from the manifest
88
89
  * @private
89
90
  */
90
91
  _parseRoutingConfiguration(oRoutingConfig: any, oRootViewConfig: any) {
@@ -111,7 +112,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
111
112
 
112
113
  // Check route pattern: all patterns need to end with ':?query:', that we use for parameters
113
114
  if (sRoutePattern.length < 8 || sRoutePattern.indexOf(":?query:") !== sRoutePattern.length - 8) {
114
- Log.warning("Pattern for route " + sRouteName + " doesn't end with ':?query:' : " + sRoutePattern);
115
+ Log.warning(`Pattern for route ${sRouteName} doesn't end with ':?query:' : ${sRoutePattern}`);
115
116
  }
116
117
  const iRouteLevel = this._getViewLevelFromPattern(sRoutePattern, 0);
117
118
  this._mRoutes[sRouteName] = {
@@ -203,11 +204,11 @@ export class RoutingService extends Service<RoutingServiceSettings> {
203
204
  this.sContextPath = "";
204
205
  if (this._mTargets[sDefaultTargetName].options && this._mTargets[sDefaultTargetName].options.settings) {
205
206
  const oSettings = this._mTargets[sDefaultTargetName].options.settings;
206
- this.sContextPath = oSettings.contextPath || "/" + oSettings.entitySet;
207
+ this.sContextPath = oSettings.contextPath || `/${oSettings.entitySet}`;
207
208
  }
208
209
  if (!this.sContextPath) {
209
210
  Log.warning(
210
- "Cannot determine default contextPath: contextPath or entitySet missing in default target: " + sDefaultTargetName
211
+ `Cannot determine default contextPath: contextPath or entitySet missing in default target: ${sDefaultTargetName}`
211
212
  );
212
213
  }
213
214
  } else {
@@ -226,9 +227,9 @@ export class RoutingService extends Service<RoutingServiceSettings> {
226
227
  // After sorting the targets per level we can then go through their navigation object and update the paths accordingly.
227
228
  if (target.options) {
228
229
  const settings = target.options.settings;
229
- const sContextPath = settings.contextPath || (settings.entitySet ? "/" + settings.entitySet : "");
230
+ const sContextPath = settings.contextPath || (settings.entitySet ? `/${settings.entitySet}` : "");
230
231
  if (!settings.fullContextPath && sContextPath) {
231
- settings.fullContextPath = sContextPath + "/";
232
+ settings.fullContextPath = `${sContextPath}/`;
232
233
  }
233
234
  Object.keys(settings.navigation || {}).forEach((sNavName: string) => {
234
235
  // Check if it's a navigation property
@@ -241,11 +242,13 @@ export class RoutingService extends Service<RoutingServiceSettings> {
241
242
  !this._mTargets[sTargetName].options.settings.fullContextPath
242
243
  ) {
243
244
  if (target.viewLevel === 0) {
244
- this._mTargets[sTargetName].options.settings.fullContextPath =
245
- (sNavName.startsWith("/") ? "" : "/") + sNavName + "/";
245
+ this._mTargets[sTargetName].options.settings.fullContextPath = `${
246
+ (sNavName.startsWith("/") ? "" : "/") + sNavName
247
+ }/`;
246
248
  } else {
247
- this._mTargets[sTargetName].options.settings.fullContextPath =
248
- settings.fullContextPath + sNavName + "/";
249
+ this._mTargets[sTargetName].options.settings.fullContextPath = `${
250
+ settings.fullContextPath + sNavName
251
+ }/`;
249
252
  }
250
253
  }
251
254
  });
@@ -258,15 +261,15 @@ export class RoutingService extends Service<RoutingServiceSettings> {
258
261
  /**
259
262
  * Calculates a view level from a pattern by counting the number of segments.
260
263
  *
261
- * @param {string} sPattern The pattern
262
- * @param {number} viewLevel The current level of view
263
- * @returns {number} The level
264
+ * @param sPattern The pattern
265
+ * @param viewLevel The current level of view
266
+ * @returns The level
264
267
  */
265
268
  _getViewLevelFromPattern(sPattern: string, viewLevel: number): number {
266
269
  sPattern = sPattern.replace(":?query:", "");
267
270
  const regex = new RegExp("/[^/]*$");
268
271
  if (sPattern && sPattern[0] !== "/" && sPattern[0] !== "?") {
269
- sPattern = "/" + sPattern;
272
+ sPattern = `/${sPattern}`;
270
273
  }
271
274
  if (sPattern.length) {
272
275
  sPattern = sPattern.replace(regex, "");
@@ -289,7 +292,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
289
292
  }
290
293
 
291
294
  _getComponentId(sOwnerId: any, sComponentId: any) {
292
- if (sComponentId.indexOf(sOwnerId + "---") === 0) {
295
+ if (sComponentId.indexOf(`${sOwnerId}---`) === 0) {
293
296
  return sComponentId.substr(sOwnerId.length + 3);
294
297
  }
295
298
  return sComponentId;
@@ -298,8 +301,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
298
301
  /**
299
302
  * Get target information for a given component.
300
303
  *
301
- * @param {object} oComponentInstance Instance of the component
302
- * @returns {object} The configuration for the target
304
+ * @param oComponentInstance Instance of the component
305
+ * @returns The configuration for the target
303
306
  */
304
307
  getTargetInformationFor(oComponentInstance: any) {
305
308
  const sTargetComponentId = this._getComponentId(oComponentInstance._sOwnerId, oComponentInstance.getId());
@@ -341,10 +344,10 @@ export class RoutingService extends Service<RoutingServiceSettings> {
341
344
  /**
342
345
  * Method to return a map of routing target parameters where the binding syntax is resolved to the current model.
343
346
  *
344
- * @param {object} mParameters Parameters map in the format [k: string] : ComplexBindingSyntax
345
- * @param {string} sTargetRoute Name of the target route
346
- * @param {object} oContext The instance of the binding context
347
- * @returns {Promise} A promise which resolves to the routing target parameters
347
+ * @param mParameters Parameters map in the format [k: string] : ComplexBindingSyntax
348
+ * @param sTargetRoute Name of the target route
349
+ * @param oContext The instance of the binding context
350
+ * @returns A promise which resolves to the routing target parameters
348
351
  */
349
352
  prepareParameters(mParameters: any, sTargetRoute: string, oContext: Context) {
350
353
  let oParametersPromise;
@@ -390,7 +393,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
390
393
  return oParameters;
391
394
  });
392
395
  } catch (oError) {
393
- Log.error("Could not parse the parameters for the navigation to route " + sTargetRoute);
396
+ Log.error(`Could not parse the parameters for the navigation to route ${sTargetRoute}`);
394
397
  oParametersPromise = Promise.resolve(undefined);
395
398
  }
396
399
  return oParametersPromise;
@@ -406,22 +409,21 @@ export class RoutingService extends Service<RoutingServiceSettings> {
406
409
  /**
407
410
  * Navigates to a context.
408
411
  *
409
- * @param {sap.ui.model.odata.v4.Context} oContext The Context to be navigated to
410
- * @param {object} [mParameters] Optional, map containing the following attributes:
411
- * @param {boolean} [mParameters.checkNoHashChange] Navigate to the context without changing the URL
412
- * @param {Promise} [mParameters.asyncContext] The context is created async, navigate to (...) and
412
+ * @param oContext The Context to be navigated to
413
+ * @param [mParameters] Optional, map containing the following attributes:
414
+ * @param [mParameters.checkNoHashChange] Navigate to the context without changing the URL
415
+ * @param [mParameters.asyncContext] The context is created async, navigate to (...) and
413
416
  * wait for Promise to be resolved and then navigate into the context
414
- * @param {boolean} [mParameters.bDeferredContext] The context shall be created deferred at the target page
415
- * @param {boolean} [mParameters.editable] The target page shall be immediately in the edit mode to avoid flickering
416
- * @param {boolean} [mParameters.bPersistOPScroll] The bPersistOPScroll will be used for scrolling to first tab
417
- * @param {number} [mParameters.updateFCLLevel] `+1` if we add a column in FCL, `-1` to remove a column, 0 to stay on the same column
418
- * @param {boolean} [mParameters.noPreservationCache] Do navigation without taking into account the preserved cache mechanism
419
- * @param {boolean} [mParameters.bRecreateContext] Force re-creation of the context instead of using the one passed as parameter
420
- * @param {boolean} [mParameters.bForceFocus] Forces focus selection after navigation
421
- * @param {object} [oViewData] View data
422
- * @param {object} [oCurrentTargetInfo] The target information from which the navigation is triggered
423
- * @returns {Promise} Promise which is resolved once the navigation is triggered
424
- *
417
+ * @param [mParameters.bDeferredContext] The context shall be created deferred at the target page
418
+ * @param [mParameters.editable] The target page shall be immediately in the edit mode to avoid flickering
419
+ * @param [mParameters.bPersistOPScroll] The bPersistOPScroll will be used for scrolling to first tab
420
+ * @param [mParameters.updateFCLLevel] `+1` if we add a column in FCL, `-1` to remove a column, 0 to stay on the same column
421
+ * @param [mParameters.noPreservationCache] Do navigation without taking into account the preserved cache mechanism
422
+ * @param [mParameters.bRecreateContext] Force re-creation of the context instead of using the one passed as parameter
423
+ * @param [mParameters.bForceFocus] Forces focus selection after navigation
424
+ * @param [oViewData] View data
425
+ * @param [oCurrentTargetInfo] The target information from which the navigation is triggered
426
+ * @returns Promise which is resolved once the navigation is triggered
425
427
  * @ui5-restricted
426
428
  * @final
427
429
  */
@@ -481,7 +483,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
481
483
  // Add layout parameter if needed
482
484
  const sLayout = this._calculateLayout(sTargetPath, mParameters);
483
485
  if (sLayout) {
484
- sTargetPath += "?layout=" + sLayout;
486
+ sTargetPath += `?layout=${sLayout}`;
485
487
  }
486
488
 
487
489
  // Navigation parameters for later usage
@@ -569,10 +571,9 @@ export class RoutingService extends Service<RoutingServiceSettings> {
569
571
  * @name sap.fe.core.controllerextensions.Routing#navigateToRoute
570
572
  * @memberof sap.fe.core.controllerextensions.Routing
571
573
  * @static
572
- * @param {string} sTargetRouteName Name of the target route
573
- * @param {object} [oRouteParameters] Parameters to be used with route to create the target hash
574
- * @returns {Promise} Promise that is resolved when the navigation is finalized
575
- *
574
+ * @param sTargetRouteName Name of the target route
575
+ * @param [oRouteParameters] Parameters to be used with route to create the target hash
576
+ * @returns Promise that is resolved when the navigation is finalized
576
577
  * @ui5-restricted
577
578
  * @final
578
579
  */
@@ -584,8 +585,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
584
585
  /**
585
586
  * Checks if one of the current views on the screen is bound to a given context.
586
587
  *
587
- * @param {sap.ui.model.odata.v4.Context} oContext The context
588
- * @returns {boolean} `true` or `false` if the current state is impacted or not
588
+ * @param oContext The context
589
+ * @returns `true` or `false` if the current state is impacted or not
589
590
  */
590
591
  isCurrentStateImpactedBy(oContext: any) {
591
592
  const sPath = oContext.getPath();
@@ -621,7 +622,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
621
622
  }
622
623
  }
623
624
 
624
- _checkContextForSemanticPath(oContext: any) {
625
+ _checkIfContextSupportsSemanticPath(oContext: Context) {
625
626
  const sPath = oContext.getPath();
626
627
 
627
628
  // First, check if this is a level-1 object (path = /aaa(bbb))
@@ -630,8 +631,8 @@ export class RoutingService extends Service<RoutingServiceSettings> {
630
631
  }
631
632
 
632
633
  // Then check if the entity has semantic keys
633
- const oMetaModel = oContext.getModel().getMetaModel(),
634
- sEntitySetName = oMetaModel.getMetaContext(oContext.getPath()).getObject("@sapui.name");
634
+ const oMetaModel = oContext.getModel().getMetaModel() as ODataMetaModel;
635
+ const sEntitySetName = oMetaModel.getMetaContext(oContext.getPath()).getObject("@sapui.name") as any as string;
635
636
  if (!SemanticKeyHelper.getSemanticKeys(oMetaModel, sEntitySetName)) {
636
637
  return false;
637
638
  }
@@ -657,7 +658,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
657
658
  if (this.oLastSemanticMapping && this.oLastSemanticMapping.technicalPath === sPath) {
658
659
  sPath = this.oLastSemanticMapping.semanticPath;
659
660
  }
660
- } else if (this._checkContextForSemanticPath(oContext)) {
661
+ } else if (this._checkIfContextSupportsSemanticPath(oContext)) {
661
662
  // We check if we have to use a semantic path
662
663
  const sSemanticPath = SemanticKeyHelper.getSemanticPath(oContext, true);
663
664
 
@@ -716,7 +717,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
716
717
  * Event handler when a route is matched.
717
718
  * Hides the busy indicator and fires its own 'routematched' event.
718
719
  *
719
- * @param {object} oEvent The event
720
+ * @param oEvent The event
720
721
  */
721
722
  _onRouteMatched(oEvent: Event) {
722
723
  const oAppStateHandler = this.oAppComponent.getAppStateHandler(),
@@ -812,7 +813,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
812
813
  this.bExitOnNavigateBackToRoot = !this.oRouter.match("");
813
814
 
814
815
  const bIsIappState = this.oRouter.getHashChanger().getHash().indexOf("sap-iapp-state") !== -1;
815
- const initPromise = this.oAppComponent
816
+ return this.oAppComponent
816
817
  .getStartupParameters()
817
818
  .then((oStartupParameters: any) => {
818
819
  const bHasStartUpParameters = oStartupParameters !== undefined && Object.keys(oStartupParameters).length !== 0;
@@ -831,8 +832,6 @@ export class RoutingService extends Service<RoutingServiceSettings> {
831
832
  .catch(function (oError: any) {
832
833
  Log.error("Error during routing initialization", oError);
833
834
  });
834
-
835
- return initPromise;
836
835
  }
837
836
 
838
837
  getDefaultCreateHash(oStartupParameters?: any) {
@@ -844,6 +843,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
844
843
  (sNewHash: any) => {
845
844
  if (sNewHash) {
846
845
  (this.oRouter.getHashChanger().replaceHash as any)(sNewHash);
846
+ this.oAppComponent.setStartupModeCreate();
847
847
  this.bExitOnNavigateBackToRoot = true;
848
848
  }
849
849
  }
@@ -858,8 +858,10 @@ export class RoutingService extends Service<RoutingServiceSettings> {
858
858
  ).then((oDeepLink: any) => {
859
859
  let sHash;
860
860
  if (oDeepLink.context) {
861
- const sTechnicalPath = oDeepLink.context.getPath(),
862
- sSemanticPath = SemanticKeyHelper.getSemanticPath(oDeepLink.context);
861
+ const sTechnicalPath = oDeepLink.context.getPath();
862
+ const sSemanticPath = this._checkIfContextSupportsSemanticPath(oDeepLink.context)
863
+ ? SemanticKeyHelper.getSemanticPath(oDeepLink.context)
864
+ : sTechnicalPath;
863
865
 
864
866
  if (sSemanticPath !== sTechnicalPath) {
865
867
  // Store the mapping technical <-> semantic path to avoid recalculating it later
@@ -875,6 +877,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
875
877
  if (sHash) {
876
878
  //Replace the hash with newly created hash
877
879
  (this.oRouter.getHashChanger().replaceHash as any)(sHash);
880
+ this.oAppComponent.setStartupModeDeeplink();
878
881
  }
879
882
  });
880
883
  }
@@ -886,8 +889,7 @@ export class RoutingService extends Service<RoutingServiceSettings> {
886
889
  /**
887
890
  * Gets the name of the Draft root entity set or the sticky-enabled entity set.
888
891
  *
889
- * @returns {string} The name of the root EntitySet
890
- *
892
+ * @returns The name of the root EntitySet
891
893
  * @ui5-restricted
892
894
  */
893
895
  getContextPath() {