@sapui5/sap.fe.core 1.108.2 → 1.110.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 (359) hide show
  1. package/README.md +5 -1
  2. package/package.json +11 -9
  3. package/src/.eslintrc +7 -0
  4. package/src/sap/fe/core/.library +39 -37
  5. package/src/sap/fe/core/.supportrc +3 -3
  6. package/src/sap/fe/core/ActionRuntime.js +72 -27
  7. package/src/sap/fe/core/ActionRuntime.ts +104 -21
  8. package/src/sap/fe/core/AppComponent.js +102 -120
  9. package/src/sap/fe/core/AppComponent.ts +148 -45
  10. package/src/sap/fe/core/AppStateHandler.js +105 -91
  11. package/src/sap/fe/core/AppStateHandler.ts +85 -23
  12. package/src/sap/fe/core/BaseController.js +5 -20
  13. package/src/sap/fe/core/BaseController.ts +11 -2
  14. package/src/sap/fe/core/CommonUtils.js +770 -1079
  15. package/src/sap/fe/core/CommonUtils.ts +750 -491
  16. package/src/sap/fe/core/ExtensionAPI.js +69 -96
  17. package/src/sap/fe/core/ExtensionAPI.ts +15 -17
  18. package/src/sap/fe/core/PageController.js +21 -46
  19. package/src/sap/fe/core/PageController.ts +11 -2
  20. package/src/sap/fe/core/TemplateComponent.js +6 -51
  21. package/src/sap/fe/core/TemplateComponent.ts +27 -16
  22. package/src/sap/fe/core/TemplateModel.js +18 -24
  23. package/src/sap/fe/core/TemplateModel.ts +25 -6
  24. package/src/sap/fe/core/buildingBlocks/AttributeModel.js +8 -23
  25. package/src/sap/fe/core/buildingBlocks/AttributeModel.ts +5 -4
  26. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +146 -180
  27. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +144 -57
  28. package/src/sap/fe/core/buildingBlocks/BuildingBlockFormatter.js +1 -1
  29. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.js +43 -0
  30. package/src/sap/fe/core/buildingBlocks/BuildingBlockFragment.ts +11 -0
  31. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.js +436 -556
  32. package/src/sap/fe/core/buildingBlocks/BuildingBlockRuntime.ts +288 -157
  33. package/src/sap/fe/core/buildingBlocks/TraceInfo.js +215 -202
  34. package/src/sap/fe/core/buildingBlocks/TraceInfo.ts +93 -51
  35. package/src/sap/fe/core/controllerextensions/BusyLocker.js +11 -26
  36. package/src/sap/fe/core/controllerextensions/EditFlow.js +407 -596
  37. package/src/sap/fe/core/controllerextensions/EditFlow.ts +163 -56
  38. package/src/sap/fe/core/controllerextensions/Feedback.js +70 -0
  39. package/src/sap/fe/core/controllerextensions/Feedback.ts +64 -0
  40. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +12 -23
  41. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -1
  42. package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +127 -182
  43. package/src/sap/fe/core/controllerextensions/InternalEditFlow.ts +65 -32
  44. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +96 -198
  45. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +4 -5
  46. package/src/sap/fe/core/controllerextensions/InternalRouting.js +134 -291
  47. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +21 -12
  48. package/src/sap/fe/core/controllerextensions/KPIManagement.js +111 -214
  49. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +44 -44
  50. package/src/sap/fe/core/controllerextensions/MassEdit.js +24 -44
  51. package/src/sap/fe/core/controllerextensions/MassEdit.ts +3 -2
  52. package/src/sap/fe/core/controllerextensions/MessageHandler.js +39 -52
  53. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +26 -7
  54. package/src/sap/fe/core/controllerextensions/PageReady.js +81 -119
  55. package/src/sap/fe/core/controllerextensions/PageReady.ts +36 -15
  56. package/src/sap/fe/core/controllerextensions/Paginator.js +16 -51
  57. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -3
  58. package/src/sap/fe/core/controllerextensions/Placeholder.js +7 -33
  59. package/src/sap/fe/core/controllerextensions/Routing.js +24 -32
  60. package/src/sap/fe/core/controllerextensions/Routing.ts +6 -1
  61. package/src/sap/fe/core/controllerextensions/RoutingListener.js +1 -1
  62. package/src/sap/fe/core/controllerextensions/Share.js +53 -98
  63. package/src/sap/fe/core/controllerextensions/Share.ts +6 -3
  64. package/src/sap/fe/core/controllerextensions/SideEffects.js +103 -174
  65. package/src/sap/fe/core/controllerextensions/SideEffects.ts +37 -22
  66. package/src/sap/fe/core/controllerextensions/ViewState.js +341 -276
  67. package/src/sap/fe/core/controllerextensions/ViewState.ts +236 -84
  68. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +6 -22
  69. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +8 -2
  70. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.js +66 -88
  71. package/src/sap/fe/core/controllerextensions/collaboration/ActivitySync.ts +64 -17
  72. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.js +28 -34
  73. package/src/sap/fe/core/controllerextensions/collaboration/CollaborationCommon.ts +22 -1
  74. package/src/sap/fe/core/controllerextensions/collaboration/Manage.js +69 -65
  75. package/src/sap/fe/core/controllerextensions/collaboration/Manage.ts +31 -12
  76. package/src/sap/fe/core/controllerextensions/collaboration/ManageDialog.fragment.xml +15 -13
  77. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +273 -906
  78. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +142 -420
  79. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +49 -115
  80. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +12 -7
  81. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +70 -89
  82. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +313 -320
  83. package/src/sap/fe/core/controllerextensions/editFlow/operations.js +582 -683
  84. package/src/sap/fe/core/controllerextensions/editFlow/operations.ts +507 -386
  85. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +111 -102
  86. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +102 -79
  87. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +689 -154
  88. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +866 -31
  89. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.js +24 -101
  90. package/src/sap/fe/core/controllerextensions/pageReady/DataQueryWatcher.ts +5 -5
  91. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +91 -217
  92. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +3 -20
  93. package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +1 -0
  94. package/src/sap/fe/core/controls/ActionPartial.fragment.xml +46 -46
  95. package/src/sap/fe/core/controls/Any.js +1 -1
  96. package/src/sap/fe/core/controls/AnyElement.js +1 -1
  97. package/src/sap/fe/core/controls/CommandExecution.js +4 -26
  98. package/src/sap/fe/core/controls/ConditionalWrapper.js +16 -33
  99. package/src/sap/fe/core/controls/ConditionalWrapper.ts +16 -2
  100. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.js +41 -94
  101. package/src/sap/fe/core/controls/CustomFilterFieldContentWrapper.ts +1 -1
  102. package/src/sap/fe/core/controls/CustomQuickViewPage.js +5 -34
  103. package/src/sap/fe/core/controls/CustomQuickViewPage.ts +5 -7
  104. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossDraft.fragment.xml +7 -7
  105. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.js +56 -58
  106. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DataLossOrDraftDiscardHandler.ts +53 -33
  107. package/src/sap/fe/core/controls/FieldWrapper.js +6 -49
  108. package/src/sap/fe/core/controls/FileWrapper.js +51 -136
  109. package/src/sap/fe/core/controls/FileWrapper.ts +25 -29
  110. package/src/sap/fe/core/controls/FilterBar.js +19 -54
  111. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -22
  112. package/src/sap/fe/core/controls/MassEditSelect.js +1 -1
  113. package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +1 -5
  114. package/src/sap/fe/core/controls/MultiValueParameterDelegate.ts +2 -2
  115. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +24 -46
  116. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +14 -41
  117. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +4 -4
  118. package/src/sap/fe/core/controls/filterbar/VisualFilter.js +26 -67
  119. package/src/sap/fe/core/controls/filterbar/VisualFilter.ts +20 -20
  120. package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +12 -48
  121. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +17 -46
  122. package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.ts +3 -3
  123. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +1 -0
  124. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +6 -78
  125. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +4 -4
  126. package/src/sap/fe/core/converters/ConverterContext.js +44 -98
  127. package/src/sap/fe/core/converters/ConverterContext.ts +1 -1
  128. package/src/sap/fe/core/converters/ManifestSettings.js +1 -20
  129. package/src/sap/fe/core/converters/ManifestSettings.ts +16 -9
  130. package/src/sap/fe/core/converters/ManifestWrapper.js +97 -158
  131. package/src/sap/fe/core/converters/ManifestWrapper.ts +4 -0
  132. package/src/sap/fe/core/converters/MetaModelConverter.js +28 -167
  133. package/src/sap/fe/core/converters/MetaModelConverter.ts +9 -3
  134. package/src/sap/fe/core/converters/TemplateConverter.js +10 -22
  135. package/src/sap/fe/core/converters/TemplateConverter.ts +10 -7
  136. package/src/sap/fe/core/converters/annotations/DataField.js +88 -132
  137. package/src/sap/fe/core/converters/annotations/DataField.ts +90 -38
  138. package/src/sap/fe/core/converters/common/AnnotationConverter.js +57 -379
  139. package/src/sap/fe/core/converters/controls/Common/Action.js +45 -115
  140. package/src/sap/fe/core/converters/controls/Common/Action.ts +17 -5
  141. package/src/sap/fe/core/converters/controls/Common/Chart.js +20 -73
  142. package/src/sap/fe/core/converters/controls/Common/Chart.ts +21 -14
  143. package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -9
  144. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +40 -94
  145. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +44 -31
  146. package/src/sap/fe/core/converters/controls/Common/Form.js +26 -63
  147. package/src/sap/fe/core/converters/controls/Common/Form.ts +24 -10
  148. package/src/sap/fe/core/converters/controls/Common/KPI.js +13 -63
  149. package/src/sap/fe/core/converters/controls/Common/Table.js +368 -707
  150. package/src/sap/fe/core/converters/controls/Common/Table.ts +308 -197
  151. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +54 -109
  152. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +15 -9
  153. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +69 -210
  154. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +23 -16
  155. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -80
  156. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +3 -1
  157. package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +1 -19
  158. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +45 -136
  159. package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.ts +10 -10
  160. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +82 -173
  161. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +48 -22
  162. package/src/sap/fe/core/converters/helpers/Aggregation.js +24 -66
  163. package/src/sap/fe/core/converters/helpers/Aggregation.ts +3 -7
  164. package/src/sap/fe/core/converters/helpers/BindingHelper.js +9 -19
  165. package/src/sap/fe/core/converters/helpers/BindingHelper.ts +0 -1
  166. package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +20 -48
  167. package/src/sap/fe/core/converters/helpers/ConfigurableObject.ts +5 -1
  168. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +12 -51
  169. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +13 -11
  170. package/src/sap/fe/core/converters/helpers/ID.js +3 -17
  171. package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
  172. package/src/sap/fe/core/converters/helpers/IssueManager.js +1 -6
  173. package/src/sap/fe/core/converters/helpers/Key.js +10 -19
  174. package/src/sap/fe/core/converters/helpers/Key.ts +3 -3
  175. package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +2 -20
  176. package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +2 -37
  177. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +126 -131
  178. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +112 -31
  179. package/src/sap/fe/core/converters/templates/ListReportConverter.js +67 -131
  180. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +58 -27
  181. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -183
  182. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +73 -104
  183. package/src/sap/fe/core/designtime/AppComponent.designtime.js +74 -67
  184. package/src/sap/fe/core/designtime/AppComponent.designtime.ts +77 -69
  185. package/src/sap/fe/core/formatters/CollaborationFormatter.js +20 -29
  186. package/src/sap/fe/core/formatters/CollaborationFormatter.ts +21 -0
  187. package/src/sap/fe/core/formatters/FPMFormatter.js +3 -7
  188. package/src/sap/fe/core/formatters/KPIFormatter.js +5 -13
  189. package/src/sap/fe/core/formatters/StandardFormatter.js +3 -18
  190. package/src/sap/fe/core/formatters/StandardFormatter.ts +3 -2
  191. package/src/sap/fe/core/formatters/TableFormatter.js +87 -53
  192. package/src/sap/fe/core/formatters/TableFormatter.ts +96 -9
  193. package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -4
  194. package/src/sap/fe/core/formatters/ValueFormatter.js +1 -37
  195. package/src/sap/fe/core/fpm/Component.js +2 -17
  196. package/src/sap/fe/core/helpers/AnnotationEnum.js +10 -20
  197. package/src/sap/fe/core/helpers/AnnotationEnum.ts +6 -6
  198. package/src/sap/fe/core/helpers/AppStartupHelper.js +16 -52
  199. package/src/sap/fe/core/helpers/AppStartupHelper.ts +1 -1
  200. package/src/sap/fe/core/helpers/BindingToolkit.js +106 -364
  201. package/src/sap/fe/core/helpers/BindingToolkit.ts +30 -7
  202. package/src/sap/fe/core/helpers/ClassSupport.js +16 -97
  203. package/src/sap/fe/core/helpers/ClassSupport.ts +7 -4
  204. package/src/sap/fe/core/helpers/DeleteHelper.js +621 -0
  205. package/src/sap/fe/core/helpers/DeleteHelper.ts +796 -0
  206. package/src/sap/fe/core/helpers/DynamicAnnotationPathHelper.js +1 -12
  207. package/src/sap/fe/core/helpers/EditState.js +2 -5
  208. package/src/sap/fe/core/helpers/ExcelFormatHelper.js +1 -10
  209. package/src/sap/fe/core/helpers/FPMHelper.js +3 -8
  210. package/src/sap/fe/core/helpers/FPMHelper.ts +2 -1
  211. package/src/sap/fe/core/helpers/KeepAliveHelper.js +8 -38
  212. package/src/sap/fe/core/helpers/KeepAliveRefreshTypes.js +1 -5
  213. package/src/sap/fe/core/helpers/LoaderUtils.js +1 -7
  214. package/src/sap/fe/core/helpers/MassEditHelper.js +177 -289
  215. package/src/sap/fe/core/helpers/MassEditHelper.ts +124 -91
  216. package/src/sap/fe/core/helpers/MessageStrip.js +12 -28
  217. package/src/sap/fe/core/helpers/MessageStrip.ts +7 -7
  218. package/src/sap/fe/core/helpers/ModelHelper.js +62 -103
  219. package/src/sap/fe/core/helpers/ModelHelper.ts +58 -20
  220. package/src/sap/fe/core/helpers/PasteHelper.js +28 -51
  221. package/src/sap/fe/core/helpers/PasteHelper.ts +10 -9
  222. package/src/sap/fe/core/helpers/SemanticDateOperators.js +112 -136
  223. package/src/sap/fe/core/helpers/SemanticDateOperators.ts +111 -111
  224. package/src/sap/fe/core/helpers/SemanticKeyHelper.js +5 -11
  225. package/src/sap/fe/core/helpers/SideEffectsHelper.js +26 -32
  226. package/src/sap/fe/core/helpers/StableIdHelper.js +166 -218
  227. package/src/sap/fe/core/helpers/StableIdHelper.ts +175 -191
  228. package/src/sap/fe/core/helpers/Synchronization.js +1 -8
  229. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -4
  230. package/src/sap/fe/core/helpers/TypeGuards.js +22 -0
  231. package/src/sap/fe/core/helpers/TypeGuards.ts +9 -0
  232. package/src/sap/fe/core/jsx-runtime/Fragment.js +1 -3
  233. package/src/sap/fe/core/jsx-runtime/ViewLoader.js +3 -23
  234. package/src/sap/fe/core/jsx-runtime/jsx-control.js +3 -23
  235. package/src/sap/fe/core/jsx-runtime/jsx-control.ts +2 -1
  236. package/src/sap/fe/core/jsx-runtime/jsx-xml.js +4 -16
  237. package/src/sap/fe/core/jsx-runtime/jsx-xml.ts +1 -1
  238. package/src/sap/fe/core/jsx-runtime/jsx.js +2 -5
  239. package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
  240. package/src/sap/fe/core/jsx-runtime/useMDXComponents.js +4 -27
  241. package/src/sap/fe/core/jsx-runtime/useMDXComponents.tsx +1 -1
  242. package/src/sap/fe/core/library.js +9 -48
  243. package/src/sap/fe/core/library.support.js +3 -2
  244. package/src/sap/fe/core/library.support.ts +3 -1
  245. package/src/sap/fe/core/library.ts +3 -8
  246. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +74 -39
  247. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +71 -26
  248. package/src/sap/fe/core/messagebundle.properties +113 -67
  249. package/src/sap/fe/core/messagebundle_ar.properties +20 -3
  250. package/src/sap/fe/core/messagebundle_bg.properties +22 -5
  251. package/src/sap/fe/core/messagebundle_ca.properties +21 -4
  252. package/src/sap/fe/core/messagebundle_cs.properties +21 -4
  253. package/src/sap/fe/core/messagebundle_cy.properties +22 -5
  254. package/src/sap/fe/core/messagebundle_da.properties +20 -3
  255. package/src/sap/fe/core/messagebundle_de.properties +38 -21
  256. package/src/sap/fe/core/messagebundle_el.properties +20 -3
  257. package/src/sap/fe/core/messagebundle_en.properties +38 -21
  258. package/src/sap/fe/core/messagebundle_en_GB.properties +20 -3
  259. package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +41 -28
  260. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +41 -24
  261. package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -29
  262. package/src/sap/fe/core/messagebundle_es.properties +40 -23
  263. package/src/sap/fe/core/messagebundle_es_MX.properties +20 -3
  264. package/src/sap/fe/core/messagebundle_et.properties +20 -3
  265. package/src/sap/fe/core/messagebundle_fi.properties +20 -3
  266. package/src/sap/fe/core/messagebundle_fr.properties +21 -4
  267. package/src/sap/fe/core/messagebundle_fr_CA.properties +22 -5
  268. package/src/sap/fe/core/messagebundle_hi.properties +20 -3
  269. package/src/sap/fe/core/messagebundle_hr.properties +22 -5
  270. package/src/sap/fe/core/messagebundle_hu.properties +20 -3
  271. package/src/sap/fe/core/messagebundle_id.properties +20 -3
  272. package/src/sap/fe/core/messagebundle_it.properties +23 -6
  273. package/src/sap/fe/core/messagebundle_iw.properties +20 -3
  274. package/src/sap/fe/core/messagebundle_ja.properties +22 -5
  275. package/src/sap/fe/core/messagebundle_kk.properties +21 -4
  276. package/src/sap/fe/core/messagebundle_ko.properties +20 -3
  277. package/src/sap/fe/core/messagebundle_lt.properties +20 -3
  278. package/src/sap/fe/core/messagebundle_lv.properties +20 -3
  279. package/src/sap/fe/core/messagebundle_ms.properties +20 -3
  280. package/src/sap/fe/core/messagebundle_nl.properties +20 -3
  281. package/src/sap/fe/core/messagebundle_no.properties +20 -3
  282. package/src/sap/fe/core/messagebundle_pl.properties +21 -4
  283. package/src/sap/fe/core/messagebundle_pt.properties +20 -3
  284. package/src/sap/fe/core/messagebundle_pt_PT.properties +20 -3
  285. package/src/sap/fe/core/messagebundle_ro.properties +20 -3
  286. package/src/sap/fe/core/messagebundle_ru.properties +20 -3
  287. package/src/sap/fe/core/messagebundle_sh.properties +20 -3
  288. package/src/sap/fe/core/messagebundle_sk.properties +20 -3
  289. package/src/sap/fe/core/messagebundle_sl.properties +26 -9
  290. package/src/sap/fe/core/messagebundle_sv.properties +20 -3
  291. package/src/sap/fe/core/messagebundle_th.properties +21 -4
  292. package/src/sap/fe/core/messagebundle_tr.properties +20 -3
  293. package/src/sap/fe/core/messagebundle_uk.properties +23 -6
  294. package/src/sap/fe/core/messagebundle_vi.properties +20 -3
  295. package/src/sap/fe/core/messagebundle_zh_CN.properties +20 -3
  296. package/src/sap/fe/core/messagebundle_zh_TW.properties +20 -3
  297. package/src/sap/fe/core/operationsHelper.js +74 -101
  298. package/src/sap/fe/core/operationsHelper.ts +113 -44
  299. package/src/sap/fe/core/rootView/Fcl.controller.js +151 -228
  300. package/src/sap/fe/core/rootView/Fcl.controller.ts +90 -15
  301. package/src/sap/fe/core/rootView/Fcl.view.xml +1 -8
  302. package/src/sap/fe/core/rootView/NavContainer.controller.js +41 -78
  303. package/src/sap/fe/core/rootView/NavContainer.controller.ts +32 -38
  304. package/src/sap/fe/core/rootView/RootViewBaseController.js +110 -181
  305. package/src/sap/fe/core/rootView/RootViewBaseController.ts +37 -17
  306. package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +1 -18
  307. package/src/sap/fe/core/services/CacheHandlerServiceFactory.js +13 -52
  308. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +1 -22
  309. package/src/sap/fe/core/services/NavigationServiceFactory.js +45 -87
  310. package/src/sap/fe/core/services/NavigationServiceFactory.ts +17 -10
  311. package/src/sap/fe/core/services/ResourceModelServiceFactory.js +4 -28
  312. package/src/sap/fe/core/services/RoutingServiceFactory.js +92 -250
  313. package/src/sap/fe/core/services/RoutingServiceFactory.ts +8 -12
  314. package/src/sap/fe/core/services/ShellServicesFactory.js +122 -251
  315. package/src/sap/fe/core/services/ShellServicesFactory.ts +19 -4
  316. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +188 -273
  317. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +143 -154
  318. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +37 -135
  319. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +59 -94
  320. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.js +2 -16
  321. package/src/sap/fe/core/services/view/TemplatingErrorPage.controller.ts +1 -1
  322. package/src/sap/fe/core/support/AnnotationIssue.support.js +6 -9
  323. package/src/sap/fe/core/support/AnnotationIssue.support.ts +4 -4
  324. package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +6 -9
  325. package/src/sap/fe/core/support/CollectionFacetMissingID.support.ts +3 -3
  326. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +6 -9
  327. package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.ts +3 -3
  328. package/src/sap/fe/core/support/CommonHelper.js +7 -16
  329. package/src/sap/fe/core/support/Diagnostics.js +1 -10
  330. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.js +6 -9
  331. package/src/sap/fe/core/support/InvalidAnnotationColumnKey.support.ts +3 -3
  332. package/src/sap/fe/core/templating/CommonFormatters.js +1 -15
  333. package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -20
  334. package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -20
  335. package/src/sap/fe/core/templating/DataModelPathHelper.js +49 -121
  336. package/src/sap/fe/core/templating/DataModelPathHelper.ts +41 -31
  337. package/src/sap/fe/core/templating/DisplayModeFormatter.js +8 -15
  338. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +7 -7
  339. package/src/sap/fe/core/templating/EntitySetHelper.js +6 -31
  340. package/src/sap/fe/core/templating/FieldControlHelper.js +4 -21
  341. package/src/sap/fe/core/templating/FieldControlHelper.ts +1 -1
  342. package/src/sap/fe/core/templating/FilterHelper.js +40 -111
  343. package/src/sap/fe/core/templating/FilterHelper.ts +20 -16
  344. package/src/sap/fe/core/templating/FilterTemplating.js +1 -19
  345. package/src/sap/fe/core/templating/FilterTemplating.ts +1 -1
  346. package/src/sap/fe/core/templating/PropertyFormatters.js +1 -34
  347. package/src/sap/fe/core/templating/PropertyHelper.js +120 -163
  348. package/src/sap/fe/core/templating/PropertyHelper.ts +69 -33
  349. package/src/sap/fe/core/templating/SemanticObjectHelper.js +46 -0
  350. package/src/sap/fe/core/templating/SemanticObjectHelper.ts +34 -0
  351. package/src/sap/fe/core/templating/UIFormatters.js +40 -180
  352. package/src/sap/fe/core/templating/UIFormatters.ts +37 -43
  353. package/src/sap/fe/core/type/DateTimeWithTimezone.js +3 -14
  354. package/src/sap/fe/core/type/Email.js +1 -10
  355. package/src/sap/fe/core/type/TypeUtil.js +1 -11
  356. package/ui5.yaml +0 -1
  357. package/src/sap/fe/core/controls/ActionParameterDialogFieldValueHelp.fragment.xml +0 -35
  358. package/src/sap/fe/core/helpers/LRMessageStrip.js +0 -234
  359. package/src/sap/fe/core/helpers/LRMessageStrip.ts +0 -216
@@ -1,9 +1,13 @@
1
1
  import Log from "sap/base/Log";
2
+ import type FlexibleColumnLayout from "sap/f/FlexibleColumnLayout";
2
3
  import AppStateHandler from "sap/fe/core/AppStateHandler";
3
4
  import RouterProxy from "sap/fe/core/controllerextensions/routing/RouterProxy";
5
+ import type { ContentDensitiesType } from "sap/fe/core/converters/ManifestSettings";
4
6
  import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
5
7
  import ModelHelper from "sap/fe/core/helpers/ModelHelper";
6
8
  import library from "sap/fe/core/library";
9
+ import { changeConfiguration } from "sap/fe/core/manifestMerger/ChangePageConfiguration";
10
+ import type RootViewBaseController from "sap/fe/core/rootView/RootViewBaseController";
7
11
  import type { EnvironmentCapabilitiesService } from "sap/fe/core/services/EnvironmentServiceFactory";
8
12
  import type { NavigationService } from "sap/fe/core/services/NavigationServiceFactory";
9
13
  import type { RoutingService } from "sap/fe/core/services/RoutingServiceFactory";
@@ -11,13 +15,13 @@ import type { IShellServices } from "sap/fe/core/services/ShellServicesFactory";
11
15
  import type { SideEffectsService } from "sap/fe/core/services/SideEffectsServiceFactory";
12
16
  import Diagnostics from "sap/fe/core/support/Diagnostics";
13
17
  import ValueListHelper from "sap/fe/macros/internal/valuehelp/ValueListHelper";
18
+ import type NavContainer from "sap/m/NavContainer";
14
19
  import Core from "sap/ui/core/Core";
15
20
  import type View from "sap/ui/core/mvc/View";
16
21
  import UIComponent from "sap/ui/core/UIComponent";
17
22
  import JSONModel from "sap/ui/model/json/JSONModel";
18
23
  import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
19
24
  import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
20
- import type BaseController from "./BaseController";
21
25
  import { deleteModelCacheData } from "./converters/MetaModelConverter";
22
26
  import SemanticDateOperators from "./helpers/SemanticDateOperators";
23
27
 
@@ -36,6 +40,73 @@ const NAVCONF = {
36
40
  }
37
41
  };
38
42
 
43
+ export type ManifestContentApp = {
44
+ crossNavigation?: {
45
+ outbounds?: Record<
46
+ string,
47
+ {
48
+ semanticObject: string;
49
+ action: string;
50
+ parameters: string;
51
+ }
52
+ >;
53
+ };
54
+ title?: string;
55
+ subTitle?: string;
56
+ icon?: string;
57
+ };
58
+
59
+ export type ManifestContentUI5 = {
60
+ contentDensities?: ContentDensitiesType;
61
+ pageReadyTimeout?: number;
62
+ rootView?: {
63
+ viewName: string;
64
+ };
65
+ routing?: {
66
+ config?: {
67
+ routerClass: string;
68
+ controlId?: string;
69
+ };
70
+ routes: {
71
+ pattern: string;
72
+ name: string;
73
+ target: string;
74
+ }[];
75
+ targets?: Record<
76
+ string,
77
+ {
78
+ id: string;
79
+ name: string;
80
+ options?: {
81
+ settings?: object;
82
+ };
83
+ }
84
+ >;
85
+ };
86
+ models: Record<
87
+ string,
88
+ {
89
+ type?: string;
90
+ dataSource?: string;
91
+ settings?: object;
92
+ }
93
+ >;
94
+ };
95
+
96
+ export type ManifestContent = {
97
+ "sap.app"?: ManifestContentApp;
98
+ "sap.ui5"?: ManifestContentUI5;
99
+ "sap.fe"?: {
100
+ form?: {
101
+ retrieveTextFromValueList?: boolean;
102
+ };
103
+ };
104
+ };
105
+ export type ComponentData = {
106
+ startupParameters?: {
107
+ preferredMode?: string[];
108
+ } & Record<string, unknown[]>;
109
+ };
39
110
  /**
40
111
  * Main class for components used for an application in SAP Fiori elements.
41
112
  *
@@ -60,10 +131,10 @@ const NAVCONF = {
60
131
  services: {
61
132
  resourceModel: {
62
133
  factoryName: "sap.fe.core.services.ResourceModelService",
63
- "startup": "waitFor",
64
- "settings": {
65
- "bundles": ["sap.fe.core.messagebundle"],
66
- "modelName": "sap.fe.i18n"
134
+ startup: "waitFor",
135
+ settings: {
136
+ bundles: ["sap.fe.core.messagebundle"],
137
+ modelName: "sap.fe.i18n"
67
138
  }
68
139
  },
69
140
  routingService: {
@@ -124,7 +195,7 @@ class AppComponent extends UIComponent {
124
195
  private _oAppStateHandler!: AppStateHandler;
125
196
  private bInitializeRouting?: boolean;
126
197
  private _oDiagnostics!: Diagnostics;
127
- private entityContainer: any;
198
+ private entityContainer!: Promise<void>;
128
199
  private startupMode: string = StartupMode.Normal;
129
200
 
130
201
  /**
@@ -134,11 +205,40 @@ class AppComponent extends UIComponent {
134
205
  */
135
206
 
136
207
  _isFclEnabled() {
137
- const oManifestUI5 = this.getManifestEntry("/sap.ui5");
138
- return (
139
- oManifestUI5?.rootView?.viewName === NAVCONF.FCL.VIEWNAME ||
140
- oManifestUI5?.rootView?.viewName === NAVCONF.FCL.VIEWNAME_COMPATIBILITY
141
- );
208
+ const oManifestUI5 = this.getManifestEntry("sap.ui5");
209
+ return oManifestUI5?.routing?.config?.routerClass === NAVCONF.FCL.ROUTERCLASS;
210
+ }
211
+
212
+ /**
213
+ * Provides a hook to initialize feature toggles.
214
+ *
215
+ * This hook is being called by the SAP Fiori elements AppComponent at the time feature toggles can be initialized.
216
+ * To change page configuration use the {@link sap.fe.core.AppComponent#changePageConfiguration} method.
217
+ *
218
+ * @function
219
+ * @name sap.fe.core.AppComponent#initializeFeatureToggles
220
+ * @memberof sap.fe.core.AppComponent
221
+ * @public
222
+ */
223
+ initializeFeatureToggles(): void {
224
+ // this method can be overridden by applications
225
+ }
226
+
227
+ /**
228
+ * Changes the page configuration of SAP Fiori elements.
229
+ *
230
+ * This method enables you to change the page configuration of SAP Fiori elements.
231
+ *
232
+ * @function
233
+ * @name sap.fe.core.AppComponent#changePageConfiguration
234
+ * @memberof sap.fe.core.AppComponent
235
+ * @param pageId The ID of the page for which the configuration is to be changed.
236
+ * @param path The path in the page settings for which the configuration is to be changed.
237
+ * @param value The new value of the configuration. This could be a plain value like a string, or a Boolean, or a structured object.
238
+ * @public
239
+ */
240
+ changePageConfiguration(pageId: string, path: string, value: unknown): void {
241
+ changeConfiguration(this.getManifest(), pageId, path, value);
142
242
  }
143
243
 
144
244
  /**
@@ -179,8 +279,8 @@ class AppComponent extends UIComponent {
179
279
  * @ui5-restricted
180
280
  * @final
181
281
  */
182
- getRootViewController(): BaseController {
183
- return (this.getRootControl() as View).getController() as BaseController;
282
+ getRootViewController(): RootViewBaseController {
283
+ return this.getRootControl().getController();
184
284
  }
185
285
 
186
286
  /**
@@ -194,7 +294,7 @@ class AppComponent extends UIComponent {
194
294
  * @final
195
295
  */
196
296
  getRootContainer() {
197
- return (this.getRootControl() as View).getContent()[0];
297
+ return this.getRootControl().getContent()[0] as NavContainer | FlexibleColumnLayout;
198
298
  }
199
299
 
200
300
  /**
@@ -235,6 +335,8 @@ class AppComponent extends UIComponent {
235
335
  }
236
336
 
237
337
  init() {
338
+ this.initializeFeatureToggles();
339
+
238
340
  const uiModel = new JSONModel({
239
341
  editMode: library.EditMode.Display,
240
342
  isEditable: false,
@@ -268,31 +370,31 @@ class AppComponent extends UIComponent {
268
370
  this.entityContainer = Promise.resolve();
269
371
  }
270
372
 
271
- const oManifestUI5 = (this.getManifest() as any)["sap.ui5"];
373
+ const oManifestUI5 = this.getManifest()["sap.ui5"];
272
374
  if (oManifestUI5?.rootView?.viewName) {
273
375
  // The application specified an own root view in the manifest
274
376
 
275
377
  // Root View was moved from sap.fe.templates to sap.fe.core - keep it compatible
276
378
  if (oManifestUI5.rootView.viewName === NAVCONF.FCL.VIEWNAME_COMPATIBILITY) {
277
379
  oManifestUI5.rootView.viewName = NAVCONF.FCL.VIEWNAME;
278
- } else if (oManifestUI5?.rootView.viewName === NAVCONF.NAVCONTAINER.VIEWNAME_COMPATIBILITY) {
380
+ } else if (oManifestUI5.rootView.viewName === NAVCONF.NAVCONTAINER.VIEWNAME_COMPATIBILITY) {
279
381
  oManifestUI5.rootView.viewName = NAVCONF.NAVCONTAINER.VIEWNAME;
280
382
  }
281
383
 
282
384
  if (
283
385
  oManifestUI5.rootView.viewName === NAVCONF.FCL.VIEWNAME &&
284
- oManifestUI5.routing.config.routerClass === NAVCONF.FCL.ROUTERCLASS
386
+ oManifestUI5.routing?.config?.routerClass === NAVCONF.FCL.ROUTERCLASS
285
387
  ) {
286
388
  Log.info(`Rootcontainer: "${NAVCONF.FCL.VIEWNAME}" - Routerclass: "${NAVCONF.FCL.ROUTERCLASS}"`);
287
389
  } else if (
288
390
  oManifestUI5.rootView.viewName === NAVCONF.NAVCONTAINER.VIEWNAME &&
289
- oManifestUI5.routing.config.routerClass === NAVCONF.NAVCONTAINER.ROUTERCLASS
391
+ oManifestUI5.routing?.config?.routerClass === NAVCONF.NAVCONTAINER.ROUTERCLASS
290
392
  ) {
291
393
  Log.info(`Rootcontainer: "${NAVCONF.NAVCONTAINER.VIEWNAME}" - Routerclass: "${NAVCONF.NAVCONTAINER.ROUTERCLASS}"`);
292
- } else if (oManifestUI5.rootView.viewName.indexOf("sap.fe.core.rootView") !== -1) {
394
+ } else if (oManifestUI5.rootView?.viewName?.indexOf("sap.fe.core.rootView") !== -1) {
293
395
  throw Error(
294
396
  `\nWrong configuration for the couple (rootView/routerClass) in manifest file.\n` +
295
- `Current values are :(${oManifestUI5.rootView.viewName}/${oManifestUI5.routing.config.routerClass})\n` +
397
+ `Current values are :(${oManifestUI5.rootView.viewName}/${oManifestUI5.routing?.config?.routerClass})\n` +
296
398
  `Expected values are \n` +
297
399
  `\t - (${NAVCONF.NAVCONTAINER.VIEWNAME}/${NAVCONF.NAVCONTAINER.ROUTERCLASS})\n` +
298
400
  `\t - (${NAVCONF.FCL.VIEWNAME}/${NAVCONF.FCL.ROUTERCLASS})`
@@ -318,16 +420,16 @@ class AppComponent extends UIComponent {
318
420
  const finalizedRoutingInitialization = () => {
319
421
  this.entityContainer
320
422
  .then(() => {
321
- if ((this.getRootViewController() as any).attachRouteMatchers) {
322
- (this.getRootViewController() as any).attachRouteMatchers();
423
+ if (this.getRootViewController().attachRouteMatchers) {
424
+ this.getRootViewController().attachRouteMatchers();
323
425
  }
324
426
  this.getRouter().initialize();
325
427
  this.getRouterProxy().init(this, this._isFclEnabled());
326
428
  })
327
- .catch((error: any) => {
429
+ .catch((error: Error) => {
328
430
  const oResourceBundle = Core.getLibraryResourceBundle("sap.fe.core");
329
431
 
330
- (this.getRootViewController() as any).displayMessagePage(
432
+ this.getRootViewController().displayErrorPage(
331
433
  oResourceBundle.getText("C_APP_COMPONENT_SAPFE_APPSTART_TECHNICAL_ISSUES"),
332
434
  {
333
435
  title: oResourceBundle.getText("C_COMMON_SAPFE_ERROR"),
@@ -345,12 +447,12 @@ class AppComponent extends UIComponent {
345
447
  if (this.getRootViewController()) {
346
448
  return finalizedRoutingInitialization();
347
449
  } else {
348
- (this.getRootControl() as any).attachAfterInit(function () {
450
+ this.getRootControl().attachAfterInit(function () {
349
451
  finalizedRoutingInitialization();
350
452
  });
351
453
  }
352
454
  })
353
- .catch(function (err: any) {
455
+ .catch(function (err: Error) {
354
456
  Log.error(`cannot cannot initialize routing: ${err}`);
355
457
  });
356
458
  }
@@ -373,7 +475,7 @@ class AppComponent extends UIComponent {
373
475
  getDiagnostics() {
374
476
  return this._oDiagnostics;
375
477
  }
376
- destroy(...args: any[]) {
478
+ destroy(bSuppressInvalidate?: boolean) {
377
479
  // LEAKS, with workaround for some Flex / MDC issue
378
480
  try {
379
481
  // // This one is only a leak if you don't go back to the same component in the long run
@@ -383,14 +485,9 @@ class AppComponent extends UIComponent {
383
485
 
384
486
  delete AppComponent.instanceMap[this.getId()];
385
487
 
386
- // var oRegistry = sap.ui.mdc.p13n.Engine.getInstance()._getRegistry();
387
- // Object.keys(oRegistry).forEach(function(sKey) {
388
- // Object.keys(oRegistry[sKey].controller).forEach(function(sControllerKey) {
389
- // oRegistry[sKey].controller[sControllerKey].destroy();
390
- // });
391
- // });
392
- // sap.ui.mdc.p13n.Engine.getInstance().destroy();
393
- delete (window as any)._routing;
488
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
489
+ // @ts-ignore
490
+ delete (window as unknown)._routing;
394
491
  } catch (e) {
395
492
  Log.info(e as string);
396
493
  }
@@ -400,7 +497,7 @@ class AppComponent extends UIComponent {
400
497
 
401
498
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
402
499
  // @ts-ignore
403
- const oMainModel = (this as any).oModels[undefined];
500
+ const oMainModel = this.oModels[undefined];
404
501
  let oHeaders;
405
502
  if (oMainModel.oRequestor) {
406
503
  oHeaders = jQuery.extend({}, oMainModel.oRequestor.mHeaders);
@@ -408,14 +505,11 @@ class AppComponent extends UIComponent {
408
505
 
409
506
  // As we need to cleanup the application / handle the dirty object we need to call our cleanup before the models are destroyed
410
507
  this.getRoutingService()?.beforeExit();
411
- super.destroy(...args);
508
+ super.destroy(bSuppressInvalidate);
412
509
  if (oHeaders && oMainModel.oRequestor) {
413
510
  oMainModel.oRequestor.mHeaders = oHeaders;
414
511
  }
415
512
  }
416
- getComponentData(): any {
417
- return super.getComponentData();
418
- }
419
513
  getRoutingService(): RoutingService {
420
514
  return {} as RoutingService; // overriden at runtime
421
515
  }
@@ -432,19 +526,28 @@ class AppComponent extends UIComponent {
432
526
  return {} as EnvironmentCapabilitiesService;
433
527
  }
434
528
 
435
- getStartupParameters() {
529
+ async getStartupParameters() {
436
530
  const oComponentData = this.getComponentData();
437
- const oStartUpParameters = (oComponentData && oComponentData.startupParameters) || {};
438
- return Promise.resolve(oStartUpParameters);
531
+ return Promise.resolve((oComponentData && oComponentData.startupParameters) || {});
439
532
  }
440
533
  restore() {
441
534
  // called by FLP when app sap-keep-alive is enabled and app is restored
442
- (this.getRootViewController() as any).viewState.onRestore();
535
+ this.getRootViewController().viewState.onRestore();
443
536
  }
444
537
  suspend() {
445
538
  // called by FLP when app sap-keep-alive is enabled and app is suspended
446
- (this.getRootViewController() as any).viewState.onSuspend();
539
+ this.getRootViewController().viewState.onSuspend();
447
540
  }
448
541
  }
449
542
 
543
+ interface AppComponent extends UIComponent {
544
+ getManifest(): ManifestContent;
545
+ getManifestEntry(entry: "sap.app"): ManifestContentApp;
546
+ getManifestEntry(entry: "sap.ui5"): ManifestContentUI5;
547
+ getComponentData(): ComponentData;
548
+ getRootControl(): {
549
+ getController(): RootViewBaseController;
550
+ } & View;
551
+ }
552
+
450
553
  export default AppComponent;