@sapui5/sap.suite.ui.generic.template 1.152.1 → 1.154.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 (265) hide show
  1. package/package.json +1 -1
  2. package/src/sap/suite/ui/generic/template/.library +1 -1
  3. package/src/sap/suite/ui/generic/template/AnalyticalListPage/controller/ControllerImplementation.js +31 -2
  4. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n.properties +7 -2
  5. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ar.properties +3 -0
  6. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_bg.properties +3 -0
  7. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ca.properties +3 -0
  8. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cnr.properties +3 -0
  9. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cs.properties +3 -0
  10. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_cy.properties +3 -0
  11. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_da.properties +3 -0
  12. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_de.properties +3 -0
  13. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_el.properties +3 -0
  14. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en.properties +3 -0
  15. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_GB.properties +3 -0
  16. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_sappsd.properties +3 -0
  17. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_en_US_saprigi.properties +3 -0
  18. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es.properties +3 -0
  19. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_es_MX.properties +3 -0
  20. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_et.properties +3 -0
  21. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fi.properties +3 -0
  22. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr.properties +3 -0
  23. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_fr_CA.properties +3 -0
  24. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hi.properties +3 -0
  25. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hr.properties +3 -0
  26. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_hu.properties +3 -0
  27. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_id.properties +3 -0
  28. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_it.properties +3 -0
  29. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_iw.properties +3 -0
  30. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ja.properties +3 -0
  31. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_kk.properties +3 -0
  32. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ko.properties +3 -0
  33. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lt.properties +3 -0
  34. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_lv.properties +3 -0
  35. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_mk.properties +3 -0
  36. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ms.properties +3 -0
  37. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_nl.properties +3 -0
  38. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_no.properties +3 -0
  39. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pl.properties +3 -0
  40. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt.properties +3 -0
  41. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_pt_PT.properties +3 -0
  42. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ro.properties +3 -0
  43. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_ru.properties +3 -0
  44. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sh.properties +3 -0
  45. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sk.properties +3 -0
  46. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sl.properties +3 -0
  47. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sr.properties +3 -0
  48. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_sv.properties +3 -0
  49. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_th.properties +3 -0
  50. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_tr.properties +3 -0
  51. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_uk.properties +3 -0
  52. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_vi.properties +3 -0
  53. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_CN.properties +3 -0
  54. package/src/sap/suite/ui/generic/template/AnalyticalListPage/i18n/i18n_zh_TW.properties +3 -0
  55. package/src/sap/suite/ui/generic/template/AnalyticalListPage/manifest.json +8 -3
  56. package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/FilterContainer.fragment.xml +2 -1
  57. package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/HeaderCommands.fragment.xml +1 -1
  58. package/src/sap/suite/ui/generic/template/AnalyticalListPage/view/fragments/SmartFilterBar.fragment.xml +1 -1
  59. package/src/sap/suite/ui/generic/template/Canvas/manifest.json +1 -1
  60. package/src/sap/suite/ui/generic/template/ListReport/Component.js +25 -1
  61. package/src/sap/suite/ui/generic/template/ListReport/controller/ControllerImplementation.js +121 -25
  62. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n.properties +6 -3
  63. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ar.properties +2 -0
  64. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_bg.properties +2 -0
  65. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ca.properties +2 -0
  66. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cnr.properties +2 -0
  67. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cs.properties +2 -0
  68. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_cy.properties +2 -0
  69. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_da.properties +2 -0
  70. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_de.properties +2 -0
  71. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_el.properties +2 -0
  72. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en.properties +3 -1
  73. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_GB.properties +2 -0
  74. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_sappsd.properties +2 -0
  75. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_en_US_saprigi.properties +2 -0
  76. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es.properties +3 -1
  77. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_es_MX.properties +2 -0
  78. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_et.properties +2 -0
  79. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fi.properties +2 -0
  80. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr.properties +2 -0
  81. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_fr_CA.properties +2 -0
  82. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hi.properties +2 -0
  83. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hr.properties +2 -0
  84. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_hu.properties +2 -0
  85. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_id.properties +2 -0
  86. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_it.properties +2 -0
  87. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_iw.properties +2 -0
  88. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ja.properties +4 -2
  89. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_kk.properties +2 -0
  90. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ko.properties +2 -0
  91. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lt.properties +2 -0
  92. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_lv.properties +2 -0
  93. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_mk.properties +2 -0
  94. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ms.properties +2 -0
  95. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_nl.properties +2 -0
  96. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_no.properties +2 -0
  97. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pl.properties +2 -0
  98. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt.properties +2 -0
  99. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_pt_PT.properties +2 -0
  100. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ro.properties +2 -0
  101. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_ru.properties +2 -0
  102. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sh.properties +2 -0
  103. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sk.properties +2 -0
  104. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sl.properties +2 -0
  105. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sr.properties +2 -0
  106. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_sv.properties +2 -0
  107. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_th.properties +2 -0
  108. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_tr.properties +2 -0
  109. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_uk.properties +3 -1
  110. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_vi.properties +2 -0
  111. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_CN.properties +4 -2
  112. package/src/sap/suite/ui/generic/template/ListReport/i18n/i18n_zh_TW.properties +5 -3
  113. package/src/sap/suite/ui/generic/template/ListReport/manifest.json +7 -2
  114. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/HeaderCommands.fragment.xml +21 -15
  115. package/src/sap/suite/ui/generic/template/ListReport/view/fragments/SmartFilterBar.fragment.xml +1 -1
  116. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +96 -14
  117. package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +1 -1
  118. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
  119. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +4 -0
  120. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +4 -0
  121. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +4 -0
  122. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +4 -0
  123. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +4 -0
  124. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +4 -0
  125. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +4 -0
  126. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +4 -0
  127. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +4 -0
  128. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +4 -0
  129. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +4 -0
  130. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_sappsd.properties +4 -0
  131. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
  132. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +5 -1
  133. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +4 -0
  134. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +4 -0
  135. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +4 -0
  136. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +4 -0
  137. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +4 -0
  138. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +4 -0
  139. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +4 -0
  140. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +4 -0
  141. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +4 -0
  142. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +4 -0
  143. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +4 -0
  144. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +4 -0
  145. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +30 -26
  146. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +4 -0
  147. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +4 -0
  148. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +4 -0
  149. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +4 -0
  150. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +4 -0
  151. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +4 -0
  152. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +4 -0
  153. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +4 -0
  154. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +4 -0
  155. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +4 -0
  156. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +4 -0
  157. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +4 -0
  158. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +4 -0
  159. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +4 -0
  160. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +4 -0
  161. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +4 -0
  162. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +4 -0
  163. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +4 -0
  164. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +4 -0
  165. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +8 -4
  166. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +4 -0
  167. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +4 -0
  168. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +8 -4
  169. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +13 -5
  170. package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +2 -2
  171. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  172. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/PageLevelCommands.fragment.xml +2 -0
  173. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTableUiTableCommons.fragment.xml +1 -1
  174. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  175. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  176. package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +39 -3
  177. package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +39 -5
  178. package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +17 -0
  179. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +3 -2
  180. package/src/sap/suite/ui/generic/template/detailTemplates/i18n/i18n_es.properties +1 -1
  181. package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +1 -0
  182. package/src/sap/suite/ui/generic/template/fragments/SmartTableUiTableCommons.fragment.xml +1 -0
  183. package/src/sap/suite/ui/generic/template/fragments/TableColumnListItem.fragment.xml +3 -0
  184. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +3 -0
  185. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartFilterBarWrapper.js +8 -3
  186. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartTableChartCommon.js +7 -0
  187. package/src/sap/suite/ui/generic/template/genericUtilities/controlStateWrapperFactory/SmartVariantManagementWrapper.js +35 -43
  188. package/src/sap/suite/ui/generic/template/genericUtilities/designtime/messagebundle.properties +0 -0
  189. package/src/sap/suite/ui/generic/template/lib/AppComponent.js +28 -7
  190. package/src/sap/suite/ui/generic/template/lib/Application.js +13 -0
  191. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +88 -4
  192. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +36 -5
  193. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +45 -2
  194. package/src/sap/suite/ui/generic/template/lib/MessageUtils.js +1 -0
  195. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillAIOrchestrator.js +142 -8
  196. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler.js +21 -6
  197. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController.js +234 -13
  198. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFileHandler.js +218 -0
  199. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer.js +83 -18
  200. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +165 -6
  201. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer.js +106 -6
  202. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +193 -30
  203. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +610 -27
  204. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +71 -2
  205. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +47 -1
  206. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +47 -1
  207. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +47 -1
  208. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +47 -1
  209. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +47 -1
  210. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +47 -1
  211. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +48 -2
  212. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +47 -1
  213. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +47 -1
  214. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +47 -1
  215. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +47 -1
  216. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +47 -1
  217. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +47 -1
  218. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saptrc.properties +7 -1
  219. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +49 -3
  220. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +47 -1
  221. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +47 -1
  222. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +47 -1
  223. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +50 -4
  224. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +47 -1
  225. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +47 -1
  226. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +47 -1
  227. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +47 -1
  228. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +47 -1
  229. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +47 -1
  230. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +47 -1
  231. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +47 -1
  232. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +47 -1
  233. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +47 -1
  234. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +47 -1
  235. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +47 -1
  236. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +47 -1
  237. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +47 -1
  238. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +47 -1
  239. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +47 -1
  240. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +47 -1
  241. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +47 -1
  242. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +47 -1
  243. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +47 -1
  244. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +47 -1
  245. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +47 -1
  246. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +47 -1
  247. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +47 -1
  248. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +47 -1
  249. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +47 -1
  250. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +49 -3
  251. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +47 -1
  252. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +47 -1
  253. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +47 -1
  254. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +47 -1
  255. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +48 -2
  256. package/src/sap/suite/ui/generic/template/lib/insights/InsightsCardHelper.js +24 -4
  257. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +27 -7
  258. package/src/sap/suite/ui/generic/template/lib/presentationControl/SmartTableHandler.js +4 -0
  259. package/src/sap/suite/ui/generic/template/library.js +1 -1
  260. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +3 -0
  261. package/src/sap/suite/ui/generic/template/listTemplates/fragments/TableCommands.fragment.xml +23 -19
  262. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +271 -0
  263. package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +9 -0
  264. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +9 -0
  265. package/src/sap/suite/ui/generic/template/themes/sap_hcb/base_ObjectPage.less +9 -0
@@ -191,13 +191,40 @@ sap.ui.define([
191
191
  keyUser: true
192
192
  };
193
193
 
194
+ /**
195
+ * @type {DesigntimeSetting}
196
+ * App-level setting: controls the Smart Summarization button visibility across all pages.
197
+ * Always written as a global manifest change (settings/aiConfiguration/smartSummarization/visibility).
198
+ */
199
+ const smartSummarizationVisibility = {
200
+ id: "smartSummarizationVisibility",
201
+ name: oResourceBundle.getText('RTA_SMART_SUMMARIZATION_VISIBILITY'),
202
+ description: oResourceBundle.getText('RTA_SMART_SUMMARIZATION_VISIBILITY_DESC'),
203
+ type: "string",
204
+ value: "ShowOnAllPages",
205
+ enums: [
206
+ {
207
+ id: "ShowOnAllPages",
208
+ name: oResourceBundle.getText("RTA_SMART_SUMMARIZATION_OPTION_AVAILABLE_FOR_ALL_PAGES")
209
+ },
210
+ {
211
+ id: "HideOnAllPages",
212
+ name: oResourceBundle.getText("RTA_SMART_SUMMARIZATION_OPTION_NOT_AVAILABLE_FOR_ALL_PAGES")
213
+ }
214
+ ],
215
+ getPath: () => "settings/aiConfiguration/smartSummarization/visibility",
216
+ bSupportsGlobalScope: true,
217
+ keyUser: true
218
+ };
219
+
194
220
  return [
195
221
  smartVariantManagement,
196
222
  hideVariantManagement,
197
223
  enableTableFilterInPageVariant,
198
224
  initialLoad,
199
225
  openInEditMode,
200
- defaultContentView
226
+ defaultContentView,
227
+ smartSummarizationVisibility
201
228
  ];
202
229
 
203
230
  }
@@ -240,6 +267,9 @@ sap.ui.define([
240
267
  case "defaultContentView":
241
268
  mPropertyValues[sProperty] = mLrOrALPSettings.defaultContentView ?? oSetting.value;
242
269
  break;
270
+ case "smartSummarizationVisibility":
271
+ mPropertyValues[sProperty] = ObjectPath.get("aiConfiguration.smartSummarization.visibility", mLrOrALPSettings) ?? oSetting.value;
272
+ break;
243
273
  default:
244
274
  break;
245
275
  }
@@ -262,6 +292,11 @@ sap.ui.define([
262
292
  const sComponentName = oComponent.getMetadata().getComponentName();
263
293
  const mLrOrALPSettings = oComponent.mProperties;
264
294
 
295
+ // Merge app-level aiConfiguration into the settings for reading smartSummarizationVisibility
296
+ const oAppComponent = oComponent.getAppComponent();
297
+ const oGlobalSettings = oAppComponent.getManifestEntry("sap.ui.generic.app")?.settings;
298
+ const mSettingsWithGlobal = Object.assign({}, mLrOrALPSettings, { aiConfiguration: oGlobalSettings?.aiConfiguration });
299
+
265
300
  // Get all the designtime settings
266
301
  const aAllDesigntimeSettings = getAllDesigntimeSettings(oControl);
267
302
  // Get the allowed designtime settings based on the floorplan
@@ -276,7 +311,7 @@ sap.ui.define([
276
311
 
277
312
 
278
313
  // Get the current values of the properties
279
- const mRuntimeAdaptationPropertyValues = getRuntimeAdapationProperties(aAllowedDesigntimeSettings, mLrOrALPSettings);
314
+ const mRuntimeAdaptationPropertyValues = getRuntimeAdapationProperties(aAllowedDesigntimeSettings, mSettingsWithGlobal);
280
315
  // Save the unchanged data to compare later
281
316
  const mUnchangedData = deepClone(mRuntimeAdaptationPropertyValues);
282
317
  // Get the settings of the dialog from the designtime settings using which the dialog will be created
@@ -293,7 +328,8 @@ sap.ui.define([
293
328
  * @type {ControlChangeParams}
294
329
  */
295
330
  const mPathParameters = {
296
- sChangeType: designtimeUtils.ChangeType.ChangePageConfiguration
331
+ sChangeType: designtimeUtils.ChangeType.ChangePageConfiguration,
332
+ sScope: designtimeUtils.SettingScope.Application
297
333
  };
298
334
  return designtimeUtils.extractChanges(mPropertyValuesEntered, mUnchangedData, aAllowedDesigntimeSettings, oComponent, mPathParameters);
299
335
 
@@ -75,6 +75,9 @@ sap.ui.define([
75
75
  case "showRelatedApps":
76
76
  mPropertyValues[sProperty] = mSettings[sProperty] ?? oSetting.value;
77
77
  break;
78
+ case "smartSummarizationVisibility":
79
+ mPropertyValues[sProperty] = ObjectPath.get("aiConfiguration.smartSummarization.visibility", mSettings) ?? oSetting.value;
80
+ break;
78
81
  default:
79
82
  break;
80
83
  }
@@ -140,23 +143,52 @@ sap.ui.define([
140
143
  keyUser: true
141
144
  };
142
145
 
146
+ /**
147
+ * @type {DesigntimeSetting}
148
+ * App-level setting: controls the Smart Summarization button visibility across all pages.
149
+ * Always written as a global manifest change (settings/aiConfiguration/smartSummarization/visibility).
150
+ */
151
+ const smartSummarizationVisibility = {
152
+ id: "smartSummarizationVisibility",
153
+ name: oResourceBundle.getText('RTA_SMART_SUMMARIZATION_VISIBILITY'),
154
+ description: oResourceBundle.getText('RTA_SMART_SUMMARIZATION_VISIBILITY_DESC'),
155
+ type: "string",
156
+ value: "ShowOnAllPages",
157
+ enums: [
158
+ {
159
+ id: "ShowOnAllPages",
160
+ name: oResourceBundle.getText("RTA_SMART_SUMMARIZATION_OPTION_AVAILABLE_FOR_ALL_PAGES")
161
+ },
162
+ {
163
+ id: "HideOnAllPages",
164
+ name: oResourceBundle.getText("RTA_SMART_SUMMARIZATION_OPTION_NOT_AVAILABLE_FOR_ALL_PAGES")
165
+ }
166
+ ],
167
+ getPath: () => "settings/aiConfiguration/smartSummarization/visibility",
168
+ bSupportsGlobalScope: true,
169
+ keyUser: true
170
+ };
171
+
143
172
  return [
144
173
  editableHeaderContent,
145
174
  tableVariantManagement,
146
175
  chartVariantManagement,
147
- showRelatedApps
176
+ showRelatedApps,
177
+ smartSummarizationVisibility
148
178
  ];
149
179
 
150
180
  };
151
181
 
152
182
 
153
183
 
154
- function getObjectPageSettings(oComponent) {
184
+ function getObjectPageSettings(oComponent, oAppComponent) {
185
+ const oGlobalSettings = oAppComponent.getManifestEntry("sap.ui.generic.app")?.settings;
155
186
  return {
156
187
  editableHeaderContent: JSON.parse(oComponent.getEditableHeaderContent()),
157
188
  tableVariantManagement: ObjectPath.get(["variantManagement"], oComponent.getTableSettings()),
158
189
  chartVariantManagement: ObjectPath.get(["variantManagement"], oComponent.getChartSettings()),
159
- showRelatedApps: JSON.parse(oComponent.getShowRelatedApps())
190
+ showRelatedApps: JSON.parse(oComponent.getShowRelatedApps()),
191
+ aiConfiguration: oGlobalSettings?.aiConfiguration
160
192
  };
161
193
  }
162
194
 
@@ -172,8 +204,9 @@ sap.ui.define([
172
204
  async function fnOpenObjectPageConfigurationDialog(oControl, mPropertyBag) {
173
205
  const oResourceModel = oControl.getModel("i18n");
174
206
  const oComponent = designtimeUtils.getOwnerComponentFor(oControl);
207
+ const oAppComponent = oComponent.getAppComponent();
175
208
 
176
- const mObjectPageSettings = getObjectPageSettings(oComponent);
209
+ const mObjectPageSettings = getObjectPageSettings(oComponent, oAppComponent);
177
210
 
178
211
  // Get all the designtime settings
179
212
  const aAllDesigntimeSettings = getAllDesigntimeSettings(oControl);
@@ -203,7 +236,8 @@ sap.ui.define([
203
236
  * @type {ControlChangeParams}
204
237
  */
205
238
  const mPathParameters = {
206
- sChangeType: designtimeUtils.ChangeType.ChangePageConfiguration
239
+ sChangeType: designtimeUtils.ChangeType.ChangePageConfiguration,
240
+ sScope: designtimeUtils.SettingScope.Application
207
241
  };
208
242
  return designtimeUtils.extractChanges(mPropertyValuesEntered, mUnchangedData, aAllowedDesigntimeSettings, oComponent, mPathParameters);
209
243
 
@@ -604,6 +604,23 @@ sap.ui.define([
604
604
 
605
605
  const oHelper = {
606
606
  getDesigntime: function (oSmartTable) {
607
+ const oComponent = designtimeUtils.getOwnerComponentFor(oSmartTable);
608
+ const sComponentName = oComponent.getMetadata().getComponentName();
609
+ // Tables in reuse/extension components have no FE manifest settings to configure.
610
+ if (sComponentName !== sObjectPageComponentName && sComponentName !== sListReportComponentName) {
611
+ return {};
612
+ }
613
+ if (sComponentName === sObjectPageComponentName) {
614
+ const sLocalId = designtimeUtils.getLocalId(oSmartTable);
615
+ // Null means the table is not part of the FE-owned view.
616
+ if (!sLocalId) {
617
+ return {};
618
+ }
619
+ // No manifest section means the table was added by the application, not by FE.
620
+ if (!oComponent.getSections()?.[getSectionKey(oSmartTable)]) {
621
+ return {};
622
+ }
623
+ }
607
624
  return {
608
625
  actions: {
609
626
  settings: {
@@ -160,9 +160,10 @@ sap.ui.define([ "sap/suite/ui/generic/template/genericUtilities/FeLogger", "sap/
160
160
  oBusyHelper.setBusy(oApplyPromise);
161
161
  }
162
162
 
163
- // Event handler for the Apply button. Only visible in draft scenarios and not on the object root.
163
+ // Called from the Apply button (draft sub-object pages) and from the PrimaryAction keyboard shortcut.
164
+ // oEvent is present when triggered by a button; absent (null/undefined) when triggered by the shortcut.
164
165
  function fnApplyAndUp(oEvent) {
165
- var oControl = oEvent.getSource();
166
+ var oControl = oEvent && oEvent.getSource();
166
167
  var oCRUDActionHandler = oTemplateUtils.oComponentUtils.getCRUDActionHandler();
167
168
 
168
169
  // Pre-check validation to decide navigation
@@ -9,4 +9,4 @@ MESSAGE_BUTTON_TYPE=Mensajes
9
9
 
10
10
  ST_DETAIL_TITLE_VALIDATION=Mensajes de validaci\u00F3n
11
11
 
12
- ST_DETAIL_TITLE_DELETE=Borrar
12
+ ST_DETAIL_TITLE_DELETE=Eliminar
@@ -10,6 +10,7 @@
10
10
  afterQueryProcessing="._templateEventHandlers.onEasyFilterAfterQueryProcessing"
11
11
  clearFilters="._templateEventHandlers.onEasyFilterClearFilters"
12
12
  dataFetcher="._templateEventHandlers.onEasyFilterDataFetcher"
13
+ complexFilterApplied="._templateEventHandlers.onEasyFilterComplexFilterApplied"
13
14
  />
14
15
  </VBox>
15
16
  </core:FragmentDefinition>
@@ -8,6 +8,7 @@
8
8
  selectionChange="._templateEventHandlers.onMultiSelectionChange"
9
9
  selectionMode="{tableSettings>mode}" />
10
10
  <plugins.ContextMenuSetting scope="Selection"/>
11
+ <core:CommandExecution execute="._templateEventHandlers.onNavigateToDetails" command="NavigateToDetails"/>
11
12
  </table:dependents>
12
13
  <table:rowSettingsTemplate>
13
14
  <table:RowSettings
@@ -31,6 +31,9 @@
31
31
  type="{parts: [{path: 'listEntitySet>'}, {path: 'parameter>/settings/subPages/'}, {path: 'parameter>/manifest/'}, {path: 'parameter>/treeNode/'}, {path:'parameter>/isDraftEnabled'}, {path: 'facet>Target/AnnotationPath'}], formatter: 'AH.getColumnListItemType'}"
32
32
  navigated="{parts: [{path: '_templPriv>/generic/currentActiveChildContext'}, {path: ''}], formatter: 'RuntimeFormatters.setRowNavigated.bind($control)'}"
33
33
  detailPress="._templateEventHandlers.onEdit">
34
+ <dependents>
35
+ <core:CommandExecution execute="._templateEventHandlers.onNavigateToDetails" command="NavigateToDetails"/>
36
+ </dependents>
34
37
  <template:if test="{parts: [{path: 'listEntitySet>name'}, {path: 'parameter>/settings/subPages/'}, {path: 'facet>Target/AnnotationPath'}], formatter: 'AH.getDisplayNavigationIntent'}">
35
38
  <customData>
36
39
  <core:CustomData key="CrossNavigation"
@@ -126,6 +126,9 @@ sap.ui.define([
126
126
  if (oControlHelper.isObjectPageSubSection(oControl)){
127
127
  return oControl.getBlocks().concat(oControl.getMoreBlocks());
128
128
  }
129
+ if (isControlOfType("sap/ui/layout/form/Form", oControl)){
130
+ return oControl.getFormContainers();
131
+ }
129
132
  if (isControlOfType("sap/ui/comp/smartform/Group", oControl)){
130
133
  return oControl.getFormElements();
131
134
  }
@@ -190,7 +190,13 @@ sap.ui.define([
190
190
  function fnSetState(oState) {
191
191
  // Don't cause side effects (filter change event), if setting state is no real change.
192
192
  // If this comparison fails for state that actually are identically, maybe it needs to be enhanced (e.g. ignoring order in some arrays might be needed)
193
- if (JSON.stringify(oState) === JSON.stringify(fnGetState())){
193
+ // If default values present - always set state, to ensure that DefaultValues will be converted to tokens.
194
+ // SFB will have DefaultValues only in case then SFB currently have selected variant with DefaultValues.
195
+ // In case then application is restored from state, SFB will load variant with DefaultValues.
196
+ // SFB ui state and state from URL will be equals. But SFB will have DefaultValues in corresponding ValueHelp controls.
197
+ // To override DefaultValues and to convert to tokens, FEv2 will set state from URL.
198
+ var oUiState = oSmartFilterBar.getUiState();
199
+ if (JSON.stringify(oState) === JSON.stringify(fnGetState()) && !oUiState.getDefaultValues()){
194
200
  return;
195
201
  }
196
202
 
@@ -198,8 +204,7 @@ sap.ui.define([
198
204
 
199
205
  // SFB expects a UIState object - not serializable, but a managed object, actually containing also information not belonging to SFBs state
200
206
  // => get current UIState object from SFB, replace only relevant information, and set it again
201
- var oUiState = oSmartFilterBar.getUiState(),
202
- oSmartVariant = oSmartFilterBar.getSmartVariant(),
207
+ var oSmartVariant = oSmartFilterBar.getSmartVariant(),
203
208
  bIsCurrentVariantModifiedBeforeSetState = oSmartVariant.currentVariantGetModified();
204
209
 
205
210
  oUiState.getSelectionVariant().SelectOptions = oState && oState.selectOptions;
@@ -166,6 +166,13 @@ sap.ui.define([
166
166
  oState.variantId = oState.sVariantId;
167
167
  }
168
168
 
169
+ // Compare current passed and control states. If states are same, setting state make no change, but trigger table refresh.
170
+ // For performance reason we compare object stringified versions. Object key order should not change as it only get applied at runtime.
171
+ var oControlState = bVariantManagementActive ? oVariantManagementStateWrapper.getState() : oSmartControlStateWrapper.getState();
172
+ if (JSON.stringify(oState) === JSON.stringify(oControlState)) {
173
+ return;
174
+ }
175
+
169
176
  if (bVariantManagementActive) {
170
177
  // In case VariantManagement is configured
171
178
  oVariantManagementStateWrapper.setState(oState);
@@ -151,52 +151,44 @@ sap.ui.define([
151
151
  };
152
152
  }
153
153
 
154
- function fnApplyVariantState() {
155
- bIsApplyingVariant = true;
156
- if (!oPreliminaryState) {
157
- // if no state is provided set default variant (not modified)
158
- // use cases:
159
- // - LR: if appStateKey in the URL that cannot be read
160
- // - OP: if switching to different object instance (in discovery mode always, in persistency mode when page was not shown)
161
- fnSetVariant(oSmartVariantManagement.getDefaultVariantId());
162
- } else if (oPreliminaryState.modified) {
163
- // Special logic according to UX: If variant was modified anyway, there's no benefit for the user to see the name (but it could be confusing), so standard variant (not default!) should be
164
- // set (which is achieved by empty string)
165
- fnSetVariant("");
166
- oSmartVariantManagement.currentVariantSetModified(true);
167
- // Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
168
- // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
169
- fnSetManagedControlStates(oPreliminaryState);
170
- } else {
171
- fnSetVariant(oPreliminaryState.variantId);
172
- // if managedControlStates is not provided (legacy or maybe broken state), applying VM state should not break
173
- // don't apply undefined to managedControlWrappers, but just leave them untouched
174
- if (oPreliminaryState.managedControlStates){
175
- if (oSmartFilterBarWrapper) {
176
- // SmartFilterBarWrapper.setState is invoked to apply the state changes modified by "modifyStartupExtension"
177
- oSmartFilterBarWrapper.setState(oPreliminaryState.managedControlStates[oSmartFilterBarWrapper.getLocalId()]);
178
- }
179
- if (oPreliminaryState.variantId !== oSmartVariantManagement.getCurrentVariantId()){
180
- // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
181
- // standard variant is set (by VM). Additionally, it should be marked as modified.
182
- oSmartVariantManagement.currentVariantSetModified(true);
183
- }
184
- }
185
- }
186
- bIsApplyingVariant = false;
187
- }
188
-
189
154
  function setState(oState) {
190
155
  oPreliminaryState = oState;
191
156
 
192
- // If all managed controls are already initialized (e.g., during iAppState restoration on back-navigation),
193
- // apply state synchronously to avoid race condition with loadData() in IappStateHandler.
194
- // When controls are not yet initialized (initial app load), defer as before.
195
- if (bAllControlsInitialized) {
196
- fnApplyVariantState();
197
- } else {
198
- oAllControlsInitializedPromise.then(fnApplyVariantState);
199
- }
157
+ // Wait for all managed controls to be initialized before applying state
158
+ return oAllControlsInitializedPromise.then(function() {
159
+ bIsApplyingVariant = true;
160
+ if (!oPreliminaryState) {
161
+ // if no state is provided set default variant (not modified)
162
+ // use cases:
163
+ // - LR: if appStateKey in the URL that cannot be read
164
+ // - OP: if switching to different object instance (in discovery mode always, in persistency mode when page was not shown)
165
+ fnSetVariant(oSmartVariantManagement.getDefaultVariantId());
166
+ } else if (oPreliminaryState.modified) {
167
+ // Special logic according to UX: If variant was modified anyway, there's no benefit for the user to see the name (but it could be confusing), so standard variant (not default!) should be
168
+ // set (which is achieved by empty string)
169
+ fnSetVariant("");
170
+ oSmartVariantManagement.currentVariantSetModified(true);
171
+ // Usually restoring the state of any of the managed controls should mark the variant as dirty, but there might be edge cases (state from an old release not containing information for any
172
+ // managed control now relevant), so to be on the safe side, we set modified=true explicitly.
173
+ fnSetManagedControlStates(oPreliminaryState);
174
+ } else {
175
+ fnSetVariant(oPreliminaryState.variantId);
176
+ // if managedControlStates is not provided (legacy or maybe broken state), applying VM state should not break
177
+ // don't apply undefined to managedControlWrappers, but just leave them untouched
178
+ if (oPreliminaryState.managedControlStates){
179
+ if (oSmartFilterBarWrapper) {
180
+ // SmartFilterBarWrapper.setState is invoked to apply the state changes modified by "modifyStartupExtension"
181
+ oSmartFilterBarWrapper.setState(oPreliminaryState.managedControlStates[oSmartFilterBarWrapper.getLocalId()]);
182
+ }
183
+ if (oPreliminaryState.variantId !== oSmartVariantManagement.getCurrentVariantId()){
184
+ // variant could not be set because it is not known, i.e. it could be private and URL was shared, or could be deleted after page was bookmarked. In this case,
185
+ // standard variant is set (by VM). Additionally, it should be marked as modified.
186
+ oSmartVariantManagement.currentVariantSetModified(true);
187
+ }
188
+ }
189
+ }
190
+ bIsApplyingVariant = false;
191
+ });
200
192
  }
201
193
 
202
194
  function attachStateChanged(fnHandler) {
@@ -290,8 +290,21 @@ sap.ui.define([
290
290
  // - FCL: only used in case the App runs in FCL. In this case the FlexibleColumnLayoutHandler instantiates and maintains this subsection
291
291
  // - messagePage: is used to control the MessagePage. It is set on demand by the NavigationController.
292
292
  // Moreover, this function attaches the ui5 message model as named model to the AppComponent with name _templPrivMessage
293
- function setGlobalTemplateModels(){
294
- oTemplateContract.oTemplatePrivateGlobalModel.setProperty("/generic", {
293
+ function setGlobalTemplateModels() {
294
+ var oGenericApp = oAppComponent.getManifestEntry("sap.ui.generic.app");
295
+ var oGlobalSettings = oGenericApp && oGenericApp.settings;
296
+ var sSummarizationVisibility = oGlobalSettings?.aiConfiguration?.smartSummarization?.visibility;
297
+ var bShowSummarizationButton = true;
298
+ if (sSummarizationVisibility !== undefined) {
299
+ var aValidVisibilityValues = ["ShowOnAllPages", "HideOnAllPages"];
300
+ if (!aValidVisibilityValues.includes(sSummarizationVisibility)) {
301
+ oLogger.warning("Manifest setting 'aiConfiguration.smartSummarization.visibility' has invalid value '" + sSummarizationVisibility + "'. Valid values: ShowOnAllPages | HideOnAllPages. Falling back to default: ShowOnAllPages.");
302
+ } else {
303
+ bShowSummarizationButton = (sSummarizationVisibility === "ShowOnAllPages");
304
+ }
305
+ }
306
+ oAppComponent.setModel(oTemplateContract.oTemplatePrivateGlobalModel, "_templPrivGlobal");
307
+ oAppComponent.getModel("_templPrivGlobal").setProperty("/generic", {
295
308
  // Since draft saving is done globally, there is a global state which applies to all DraftIndicators
296
309
  draftIndicatorState: DraftIndicatorState.Clear,
297
310
  // if the ShellService is unavailable some of its tasks have to be done by ourselves. Assume that this is not the case.
@@ -303,10 +316,10 @@ sap.ui.define([
303
316
  isSummarizationEnabled : false,
304
317
  isEasyFilterEnabled : false,
305
318
  isErrorExplanationEnabled : false,
306
- isEasyFillEnabled: false
319
+ isEasyFillEnabled: false,
320
+ summarizationButtonVisibility: bShowSummarizationButton
307
321
  }
308
322
  });
309
- oAppComponent.setModel(oTemplateContract.oTemplatePrivateGlobalModel, "_templPrivGlobal");
310
323
  oTemplateContract.oShellServicePromise.catch(function(){
311
324
  // it turns out that the ShellService is not available
312
325
  oTemplateContract.oTemplatePrivateGlobalModel.setProperty("/generic/shellServiceUnavailable", true);
@@ -460,6 +473,7 @@ sap.ui.define([
460
473
  oTemplateContract.appSettings = new ManagedObjectModel(oAppComponent);
461
474
  oTemplateContract.oBusyHelper.setBusy(oTemplateContract.oShellServicePromise, undefined, undefined, true);
462
475
  fnDeregister = fnRegisterAppComponent(oAppRegistryEntry);
476
+ setGlobalTemplateModels();
463
477
 
464
478
  var oModel = oAppComponent.getModel();
465
479
  oTemplateContract.bCreateRequestsCanonical = true;
@@ -475,7 +489,6 @@ sap.ui.define([
475
489
  }
476
490
  // workaround until Modules Factory is available
477
491
  oApplicationController = new ApplicationController(oModel);
478
- setGlobalTemplateModels();
479
492
  oNavigationController = new NavigationController(oTemplateContract);
480
493
  attachToApplicationController();
481
494
  CRUDHelper.enableAutomaticDraftSaving(oTemplateContract);
@@ -767,7 +780,7 @@ sap.ui.define([
767
780
  }
768
781
 
769
782
  function fnNormalizeQuickVariantSelectionXEntitySets(oConfig){
770
- fnAddMissingEntitySetsToQuickVariantSelectionX(oConfig.pages[0]);
783
+ fnAddMissingEntitySetsToQuickVariantSelectionX(oConfig.pages && oConfig.pages[0]);
771
784
  }
772
785
 
773
786
  // handling of deprecated properties which are still supported for compatibility reasons
@@ -961,7 +974,7 @@ sap.ui.define([
961
974
  * @public
962
975
  * @extends sap.ui.core.UIComponent
963
976
  * @author SAP SE
964
- * @version 1.152.1
977
+ * @version 1.154.0
965
978
  * @name sap.suite.ui.generic.template.lib.AppComponent
966
979
  */
967
980
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -1073,6 +1086,14 @@ sap.ui.define([
1073
1086
  noDataRepresentation: {
1074
1087
  type: "string",
1075
1088
  defaultValue: "illustration" // Possible values: 'illustration', 'illustrationWithFallback' and 'textOnly'
1089
+ },
1090
+ aiConfiguration: {
1091
+ type: "object",
1092
+ defaultValue: {
1093
+ smartSummarization: {
1094
+ visibility: "ShowOnAllPages" // Possible values ShowOnAllPages or HideOnAllPages,
1095
+ }
1096
+ }
1076
1097
  }
1077
1098
  },
1078
1099
  events: {
@@ -810,6 +810,18 @@ sap.ui.define(["sap/ui/base/Object",
810
810
  return oTemplateContract.oNavigationControllerProxy.preloadComponent(sRouteName);
811
811
  }
812
812
 
813
+ // Returns true when a navigation call will open in a new tab rather than replacing the current app.
814
+ // sap-ushell-navmode (manifest-level) takes priority; sap-ushell-next-navmode (FLP startup parameter,
815
+ // system-level) is the fallback — mirroring how NavigationHandler itself determines explace.
816
+ function fnIsExplaceNavigation(oOutboundParameters) {
817
+ if (oOutboundParameters && oOutboundParameters["sap-ushell-navmode"] === "explace") {
818
+ return true;
819
+ }
820
+ var oComponentData = oTemplateContract.oAppComponent.getComponentData && oTemplateContract.oAppComponent.getComponentData();
821
+ var oStartupParams = oComponentData && oComponentData.startupParameters;
822
+ return !!(oStartupParams && oStartupParams["sap-ushell-next-navmode"] && oStartupParams["sap-ushell-next-navmode"][0] === "explace");
823
+ }
824
+
813
825
  oTemplateContract.oApplicationProxy = { // inject own api for AppComponent into the Template Contract. Other classes (NavigationController, BusyHelper) will call these functions accordingly.
814
826
  createDraftSiblingPromise: oContextBookkeeping.createDraftSiblingPromise,
815
827
  getDraftSiblingPromise: oContextBookkeeping.getDraftSiblingPromise,
@@ -916,6 +928,7 @@ sap.ui.define(["sap/ui/base/Object",
916
928
  mustRequireRequestsCanonical: mustRequireRequestsCanonical,
917
929
  getNavigationHandler: getNavigationHandler,
918
930
  navigateExternal: fnNavigateExternal,
931
+ isExplaceNavigation: fnIsExplaceNavigation,
919
932
  getStatePreservationMode: getStatePreservationMode,
920
933
  setObjectInEditMode: fnSetObjectInEditMode,
921
934
  getObjectInEditMode: fnGetObjectInEditMode,
@@ -722,7 +722,7 @@ sap.ui.define(["sap/ui/base/Object",
722
722
  // null object has to be passed as the fourth argument (i.e. for oInnerAppData) to the navigate method as an indicator that the state should not be overwritten
723
723
  // Explace outbounds must bypass fnNavigateExternal to avoid setting the app busy and consuming the re-entry guard.
724
724
  // getNavigationHandler() returns a ghost stub (no .navigate) when ghostapp=true — guard before calling.
725
- if (oOutbound.parameters && oOutbound.parameters["sap-ushell-navmode"] === "explace") {
725
+ if (oServices.oApplication.isExplaceNavigation(oOutbound.parameters)) {
726
726
  var oNavHandler = oServices.oApplication.getNavigationHandler();
727
727
  if (oNavHandler.navigate) {
728
728
  oNavHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, oCommonUtils.handleError, null, "explace");
@@ -742,7 +742,15 @@ sap.ui.define(["sap/ui/base/Object",
742
742
  oCommonUtils.removePropertiesFromNavigationContext(oSelectionVariant, oEventSource);
743
743
  oController.adaptNavigationParameterExtension(oSelectionVariant, oObjectInfo);
744
744
  oCommonUtils.setComponentRefreshBehaviour(oOutbound);
745
- oServices.oApplication.navigateExternal(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, oCommonUtils.handleError);
745
+ // SmartLink outbounds have no manifest parameters so sap-ushell-navmode is never set.
746
+ // System-level sap-ushell-next-navmode can still force a new tab — bypass the re-entry guard in that case.
747
+ if (oServices.oApplication.isExplaceNavigation()) {
748
+ if (oNavigationHandler.navigate) {
749
+ oNavigationHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, oCommonUtils.handleError, null, "explace");
750
+ }
751
+ } else {
752
+ oServices.oApplication.navigateExternal(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, oCommonUtils.handleError);
753
+ }
746
754
  }
747
755
 
748
756
  function fnHideTitleArea(oSmLiContent,aContactTitleArea) {
@@ -1115,8 +1123,15 @@ sap.ui.define(["sap/ui/base/Object",
1115
1123
  // The value "sEntitySet" holds the entity set of an object page or a table.
1116
1124
  //
1117
1125
  // Sometimes, the SmartLink is located on a field group which belongs to the child entity set of object page.
1118
- // So, we have to always derive the entity type from the smart link's binding context.
1126
+ // So, we try to derive the entity type from the SmartLink's binding context.
1119
1127
  var oEntityType = ModelUtil.getEntityTypeFromContext(oControl.getBindingContext());
1128
+ // CS20260013063140: ModelUtil.getEntityTypeFromContext returns null when the SmartLink
1129
+ // is resolved via SmartLinkDelegate, because the binding context is not yet resolvable
1130
+ // to an entity type at that point.
1131
+ // Fall back to deriving the entity type from the enclosing entity set instead.
1132
+ if (!oEntityType) {
1133
+ oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType);
1134
+ }
1120
1135
  var oField = oEntityType.property.find(function (oProperty) { return oProperty.name === sSourceClickedField; });
1121
1136
  var sTextArrangement = "descriptionAndId";
1122
1137
  if (oField) { // TODO: Need to provide the correct field Object using the entityType and corresponding association (should be handled by a BLI)
@@ -1803,6 +1818,73 @@ sap.ui.define(["sap/ui/base/Object",
1803
1818
 
1804
1819
  }
1805
1820
 
1821
+ /**
1822
+ * Handles Alt+Enter keyboard shortcut on a focused row in a UI Table or Responsive Table.
1823
+ * For UI Table: finds the RowActionItem for the focused row and fires its press event.
1824
+ * For Responsive Table: finds the focused ColumnListItem and fires its press event.
1825
+ * Both paths trigger the same navigation as clicking the chevron/row, preserving
1826
+ * cross-app navigation and all existing navigation logic.
1827
+ * Does nothing if the table has no navigation configured or the focused row is not navigable.
1828
+ * @param {sap.ui.base.Event} oEvent - execute event from the CommandExecution placed in the table dependents
1829
+ */
1830
+ function onNavigateToDetails(oEvent) {
1831
+ var oParent = oEvent.getSource().getParent();
1832
+ var oTable = oParent.isA("sap.m.ListItemBase") ? oParent.getParent() : oParent;
1833
+ var oFocusedDom = document.activeElement;
1834
+ if (controlHelper.isUiTable(oTable)) {
1835
+ if (oTable.getRowActionCount() === 0) {
1836
+ return;
1837
+ }
1838
+ var oFocusedRow = oTable.getRows().find(function(oRow) {
1839
+ var oDomRef = oRow.getDomRef();
1840
+ return oDomRef && oDomRef.contains(oFocusedDom);
1841
+ });
1842
+ if (!oFocusedRow || !oFocusedRow.getBindingContext()) {
1843
+ return;
1844
+ }
1845
+ // Find the per-row RowAction clone using only public APIs (findAggregatedObjects + isA).
1846
+ // sap.ui.table.Row offers no public getter for its RowAction instance, and
1847
+ // getRowActionTemplate() returns only the template which has no row binding.
1848
+ var oRowAction = oFocusedRow.findAggregatedObjects(false, function(oChild) {
1849
+ return oChild.isA("sap.ui.table.RowAction");
1850
+ })[0];
1851
+ if (!oRowAction || !oRowAction.getVisible()) {
1852
+ return;
1853
+ }
1854
+ var oNavItem = oRowAction.getItems().find(function(oItem) {
1855
+ return oItem.getType() === "Navigation" && oItem.getVisible();
1856
+ });
1857
+ if (!oNavItem) {
1858
+ return;
1859
+ }
1860
+ // Fire press on the RowActionItem — triggers the same onListNavigate handler as a chevron click,
1861
+ // preserving cross-app navigation (CrossNavigation custom data) and all existing navigation logic.
1862
+ oNavItem.firePress({
1863
+ row: oFocusedRow,
1864
+ item: oNavItem
1865
+ });
1866
+ } else if (controlHelper.isMTable(oTable)) {
1867
+ // CommandExecution is on the row; oParent IS the focused ColumnListItem.
1868
+ var oFocusedItem = oParent;
1869
+ // Only navigate if the item has type Navigation and has a binding context
1870
+ if (!oFocusedItem || !oFocusedItem.getBindingContext() ||
1871
+ oFocusedItem.getType() !== "Navigation") {
1872
+ return;
1873
+ }
1874
+ // ListReport/ObjectPage wire onListNavigate to the table's itemPress event.
1875
+ // ALP wires it to the ColumnListItem's press event instead (no itemPress on table).
1876
+ // hasListeners distinguishes the two patterns without touching private APIs.
1877
+ if (oTable.hasListeners("itemPress")) {
1878
+ oTable.fireItemPress({
1879
+ listItem: oFocusedItem,
1880
+ srcControl: oFocusedItem
1881
+ });
1882
+ } else {
1883
+ oFocusedItem.firePress();
1884
+ }
1885
+ }
1886
+ }
1887
+
1806
1888
  /**
1807
1889
  * Navigation from table
1808
1890
  * @param {sap.ui.base.EventProvider} oEventOrSource - either event triggering navigation, or it's source control (if the event needs to be faked - then the control should be a ColumnListItem or mTable)
@@ -2724,7 +2806,7 @@ sap.ui.define(["sap/ui/base/Object",
2724
2806
  oCommonUtils.setComponentRefreshBehaviour(oOutbound);
2725
2807
  // Explace outbounds must bypass fnNavigateExternal to avoid setting the app busy and consuming the re-entry guard.
2726
2808
  // getNavigationHandler() returns a ghost stub (no .navigate) when ghostapp=true — guard before calling.
2727
- if (oOutbound.parameters && oOutbound.parameters["sap-ushell-navmode"] === "explace") {
2809
+ if (oServices.oApplication.isExplaceNavigation(oOutbound.parameters)) {
2728
2810
  var oNavHandler = oServices.oApplication.getNavigationHandler();
2729
2811
  if (oNavHandler.navigate) {
2730
2812
  oNavHandler.navigate(oOutbound.semanticObject, oOutbound.action, oSelectionVariant.toJSONString(), null, oCommonUtils.handleError, null, "explace");
@@ -2993,12 +3075,14 @@ sap.ui.define(["sap/ui/base/Object",
2993
3075
  var fnApplyCellHiddenBindings = testableHelper.testable(fnApplyCellHiddenBindings, "fnApplyCellHiddenBindings");
2994
3076
  var fnAttachRowsUpdateHandler = testableHelper.testable(fnAttachRowsUpdateHandler, "fnAttachRowsUpdateHandler");
2995
3077
  var fnHandleTableCellVisibility = testableHelper.testable(fnHandleTableCellVisibility, "fnHandleTableCellVisibility");
3078
+ var onNavigateToDetails = testableHelper.testable(onNavigateToDetails, "onNavigateToDetails");
2996
3079
  /* eslint-enable */
2997
3080
 
2998
3081
  return {
2999
3082
  onDataReceived: onDataReceived,
3000
3083
  onBeforeRebindTable: onBeforeRebindTable,
3001
3084
  onListNavigate: onListNavigate,
3085
+ onNavigateToDetails: onNavigateToDetails,
3002
3086
  onEditNavigateIntent: fnNavigateIntentManifest,
3003
3087
  onRelatedAppNavigation: onRelatedAppNavigation,
3004
3088
  onDataFieldWithNavigationPath: onDataFieldWithNavigationPath,