@sapui5/sap.suite.ui.generic.template 1.153.0 → 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 (259) 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 +122 -20
  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/Component.js +0 -5
  117. package/src/sap/suite/ui/generic/template/ObjectPage/controller/ControllerImplementation.js +87 -36
  118. package/src/sap/suite/ui/generic/template/ObjectPage/controller/SectionTitleHandler.js +1 -1
  119. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n.properties +6 -0
  120. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ar.properties +4 -0
  121. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_bg.properties +4 -0
  122. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ca.properties +4 -0
  123. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cnr.properties +4 -0
  124. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cs.properties +4 -0
  125. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_cy.properties +4 -0
  126. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_da.properties +4 -0
  127. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_de.properties +4 -0
  128. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_el.properties +4 -0
  129. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en.properties +4 -0
  130. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_GB.properties +4 -0
  131. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_sappsd.properties +4 -0
  132. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_en_US_saprigi.properties +4 -0
  133. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es.properties +5 -1
  134. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_es_MX.properties +4 -0
  135. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_et.properties +4 -0
  136. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fi.properties +4 -0
  137. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr.properties +4 -0
  138. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_fr_CA.properties +4 -0
  139. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hi.properties +4 -0
  140. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hr.properties +4 -0
  141. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_hu.properties +4 -0
  142. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_id.properties +4 -0
  143. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_it.properties +4 -0
  144. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_iw.properties +4 -0
  145. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ja.properties +4 -0
  146. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_kk.properties +30 -26
  147. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ko.properties +4 -0
  148. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lt.properties +4 -0
  149. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_lv.properties +4 -0
  150. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_mk.properties +4 -0
  151. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ms.properties +4 -0
  152. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_nl.properties +4 -0
  153. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_no.properties +4 -0
  154. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pl.properties +4 -0
  155. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt.properties +4 -0
  156. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_pt_PT.properties +4 -0
  157. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ro.properties +4 -0
  158. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_ru.properties +4 -0
  159. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sh.properties +4 -0
  160. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sk.properties +4 -0
  161. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sl.properties +4 -0
  162. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sr.properties +4 -0
  163. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_sv.properties +4 -0
  164. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_th.properties +4 -0
  165. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_tr.properties +4 -0
  166. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_uk.properties +8 -4
  167. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_vi.properties +4 -0
  168. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_CN.properties +4 -0
  169. package/src/sap/suite/ui/generic/template/ObjectPage/i18n/i18n_zh_TW.properties +8 -4
  170. package/src/sap/suite/ui/generic/template/ObjectPage/manifest.json +13 -5
  171. package/src/sap/suite/ui/generic/template/ObjectPage/templateSpecificPreparationHelper.js +2 -2
  172. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/Actions.fragment.xml +1 -1
  173. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/PageLevelCommands.fragment.xml +2 -0
  174. package/src/sap/suite/ui/generic/template/ObjectPage/view/fragments/SmartTableUiTableCommons.fragment.xml +1 -1
  175. package/src/sap/suite/ui/generic/template/QuickCreate/manifest.json +1 -1
  176. package/src/sap/suite/ui/generic/template/QuickView/manifest.json +1 -1
  177. package/src/sap/suite/ui/generic/template/designtime/controls/DynamicPage.designtime.js +39 -3
  178. package/src/sap/suite/ui/generic/template/designtime/controls/ObjectPageLayout.designtime.js +39 -5
  179. package/src/sap/suite/ui/generic/template/designtime/controls/SmartTable.designtime.js +17 -0
  180. package/src/sap/suite/ui/generic/template/detailTemplates/detailUtils.js +3 -2
  181. package/src/sap/suite/ui/generic/template/detailTemplates/i18n/i18n_es.properties +1 -1
  182. package/src/sap/suite/ui/generic/template/fragments/EasyFilter.fragment.xml +1 -0
  183. package/src/sap/suite/ui/generic/template/fragments/SmartTableUiTableCommons.fragment.xml +1 -0
  184. package/src/sap/suite/ui/generic/template/fragments/TableColumnListItem.fragment.xml +3 -0
  185. package/src/sap/suite/ui/generic/template/genericUtilities/controlHelper.js +3 -0
  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/lib/AppComponent.js +20 -15
  189. package/src/sap/suite/ui/generic/template/lib/CommonEventHandlers.js +69 -0
  190. package/src/sap/suite/ui/generic/template/lib/CommonUtils.js +32 -1
  191. package/src/sap/suite/ui/generic/template/lib/ContextMenuHandler.js +45 -2
  192. package/src/sap/suite/ui/generic/template/lib/MessageUtils.js +1 -0
  193. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillAIOrchestrator.js +127 -8
  194. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler.js +9 -1
  195. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController.js +234 -13
  196. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFileHandler.js +218 -0
  197. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer.js +6 -2
  198. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillHandler.js +162 -5
  199. package/src/sap/suite/ui/generic/template/lib/ai/EasyFill/fragments/EasyFillDialog.fragment.xml +193 -30
  200. package/src/sap/suite/ui/generic/template/lib/ai/EasyFilterBarHandler.js +581 -26
  201. package/src/sap/suite/ui/generic/template/lib/i18n/i18n.properties +60 -0
  202. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ar.properties +42 -2
  203. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_bg.properties +43 -3
  204. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ca.properties +42 -2
  205. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cnr.properties +42 -2
  206. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cs.properties +40 -0
  207. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_cy.properties +44 -4
  208. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_da.properties +44 -4
  209. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_de.properties +42 -2
  210. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_el.properties +42 -2
  211. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en.properties +40 -0
  212. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_GB.properties +40 -0
  213. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_sappsd.properties +40 -0
  214. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_en_US_saprigi.properties +40 -0
  215. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es.properties +44 -4
  216. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_es_MX.properties +40 -0
  217. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_et.properties +43 -3
  218. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fi.properties +42 -2
  219. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr.properties +40 -0
  220. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_fr_CA.properties +44 -4
  221. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hi.properties +43 -3
  222. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hr.properties +42 -2
  223. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_hu.properties +43 -3
  224. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_id.properties +42 -2
  225. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_it.properties +42 -2
  226. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_iw.properties +42 -2
  227. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ja.properties +43 -3
  228. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_kk.properties +42 -2
  229. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ko.properties +42 -2
  230. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lt.properties +42 -2
  231. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_lv.properties +42 -2
  232. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_mk.properties +44 -4
  233. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ms.properties +43 -3
  234. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_nl.properties +42 -2
  235. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_no.properties +42 -2
  236. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pl.properties +42 -2
  237. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt.properties +42 -2
  238. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_pt_PT.properties +44 -4
  239. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ro.properties +40 -0
  240. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_ru.properties +40 -0
  241. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sh.properties +42 -2
  242. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sk.properties +42 -2
  243. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sl.properties +42 -2
  244. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sr.properties +42 -2
  245. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_sv.properties +42 -2
  246. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_th.properties +44 -4
  247. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_tr.properties +43 -3
  248. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_uk.properties +40 -0
  249. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_vi.properties +43 -3
  250. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_CN.properties +42 -2
  251. package/src/sap/suite/ui/generic/template/lib/i18n/i18n_zh_TW.properties +44 -4
  252. package/src/sap/suite/ui/generic/template/lib/navigation/NavigationController.js +27 -7
  253. package/src/sap/suite/ui/generic/template/library.js +1 -1
  254. package/src/sap/suite/ui/generic/template/listTemplates/fragments/DetailSmartTable.fragment.xml +3 -0
  255. package/src/sap/suite/ui/generic/template/listTemplates/fragments/TableCommands.fragment.xml +23 -19
  256. package/src/sap/suite/ui/generic/template/themes/base/ObjectPage.less +265 -0
  257. package/src/sap/suite/ui/generic/template/themes/sap_belize_base/ObjectPage.less +9 -0
  258. package/src/sap/suite/ui/generic/template/themes/sap_bluecrystal_base/ObjectPage.less +9 -0
  259. 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
  }
@@ -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) {
@@ -293,15 +293,18 @@ sap.ui.define([
293
293
  function setGlobalTemplateModels() {
294
294
  var oGenericApp = oAppComponent.getManifestEntry("sap.ui.generic.app");
295
295
  var oGlobalSettings = oGenericApp && oGenericApp.settings;
296
- var bGlobalHideSummarizationButton = false;
297
- if (oGlobalSettings && oGlobalSettings.hideSummarizationButton !== undefined) {
298
- if (typeof oGlobalSettings.hideSummarizationButton !== "boolean") {
299
- oLogger.warning("Manifest setting 'hideSummarizationButton' must be a boolean. Falling back to default: false.");
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.");
300
302
  } else {
301
- bGlobalHideSummarizationButton = oGlobalSettings.hideSummarizationButton;
303
+ bShowSummarizationButton = (sSummarizationVisibility === "ShowOnAllPages");
302
304
  }
303
305
  }
304
- oTemplateContract.oTemplatePrivateGlobalModel.setProperty("/generic", {
306
+ oAppComponent.setModel(oTemplateContract.oTemplatePrivateGlobalModel, "_templPrivGlobal");
307
+ oAppComponent.getModel("_templPrivGlobal").setProperty("/generic", {
305
308
  // Since draft saving is done globally, there is a global state which applies to all DraftIndicators
306
309
  draftIndicatorState: DraftIndicatorState.Clear,
307
310
  // if the ShellService is unavailable some of its tasks have to be done by ourselves. Assume that this is not the case.
@@ -314,10 +317,9 @@ sap.ui.define([
314
317
  isEasyFilterEnabled : false,
315
318
  isErrorExplanationEnabled : false,
316
319
  isEasyFillEnabled: false,
317
- hideSummarizationButtonGlobal: bGlobalHideSummarizationButton
320
+ summarizationButtonVisibility: bShowSummarizationButton
318
321
  }
319
322
  });
320
- oAppComponent.setModel(oTemplateContract.oTemplatePrivateGlobalModel, "_templPrivGlobal");
321
323
  oTemplateContract.oShellServicePromise.catch(function(){
322
324
  // it turns out that the ShellService is not available
323
325
  oTemplateContract.oTemplatePrivateGlobalModel.setProperty("/generic/shellServiceUnavailable", true);
@@ -471,6 +473,7 @@ sap.ui.define([
471
473
  oTemplateContract.appSettings = new ManagedObjectModel(oAppComponent);
472
474
  oTemplateContract.oBusyHelper.setBusy(oTemplateContract.oShellServicePromise, undefined, undefined, true);
473
475
  fnDeregister = fnRegisterAppComponent(oAppRegistryEntry);
476
+ setGlobalTemplateModels();
474
477
 
475
478
  var oModel = oAppComponent.getModel();
476
479
  oTemplateContract.bCreateRequestsCanonical = true;
@@ -486,7 +489,6 @@ sap.ui.define([
486
489
  }
487
490
  // workaround until Modules Factory is available
488
491
  oApplicationController = new ApplicationController(oModel);
489
- setGlobalTemplateModels();
490
492
  oNavigationController = new NavigationController(oTemplateContract);
491
493
  attachToApplicationController();
492
494
  CRUDHelper.enableAutomaticDraftSaving(oTemplateContract);
@@ -778,7 +780,7 @@ sap.ui.define([
778
780
  }
779
781
 
780
782
  function fnNormalizeQuickVariantSelectionXEntitySets(oConfig){
781
- fnAddMissingEntitySetsToQuickVariantSelectionX(oConfig.pages[0]);
783
+ fnAddMissingEntitySetsToQuickVariantSelectionX(oConfig.pages && oConfig.pages[0]);
782
784
  }
783
785
 
784
786
  // handling of deprecated properties which are still supported for compatibility reasons
@@ -972,7 +974,7 @@ sap.ui.define([
972
974
  * @public
973
975
  * @extends sap.ui.core.UIComponent
974
976
  * @author SAP SE
975
- * @version 1.153.0
977
+ * @version 1.154.0
976
978
  * @name sap.suite.ui.generic.template.lib.AppComponent
977
979
  */
978
980
  var oAppComponent = UIComponent.extend("sap.suite.ui.generic.template.lib.AppComponent", {
@@ -1085,10 +1087,13 @@ sap.ui.define([
1085
1087
  type: "string",
1086
1088
  defaultValue: "illustration" // Possible values: 'illustration', 'illustrationWithFallback' and 'textOnly'
1087
1089
  },
1088
- // Hide Smart Summarization button globally in the application object page
1089
- hideSummarizationButton: {
1090
- type: "boolean",
1091
- defaultValue: false
1090
+ aiConfiguration: {
1091
+ type: "object",
1092
+ defaultValue: {
1093
+ smartSummarization: {
1094
+ visibility: "ShowOnAllPages" // Possible values ShowOnAllPages or HideOnAllPages,
1095
+ }
1096
+ }
1092
1097
  }
1093
1098
  },
1094
1099
  events: {
@@ -1818,6 +1818,73 @@ sap.ui.define(["sap/ui/base/Object",
1818
1818
 
1819
1819
  }
1820
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
+
1821
1888
  /**
1822
1889
  * Navigation from table
1823
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)
@@ -3008,12 +3075,14 @@ sap.ui.define(["sap/ui/base/Object",
3008
3075
  var fnApplyCellHiddenBindings = testableHelper.testable(fnApplyCellHiddenBindings, "fnApplyCellHiddenBindings");
3009
3076
  var fnAttachRowsUpdateHandler = testableHelper.testable(fnAttachRowsUpdateHandler, "fnAttachRowsUpdateHandler");
3010
3077
  var fnHandleTableCellVisibility = testableHelper.testable(fnHandleTableCellVisibility, "fnHandleTableCellVisibility");
3078
+ var onNavigateToDetails = testableHelper.testable(onNavigateToDetails, "onNavigateToDetails");
3011
3079
  /* eslint-enable */
3012
3080
 
3013
3081
  return {
3014
3082
  onDataReceived: onDataReceived,
3015
3083
  onBeforeRebindTable: onBeforeRebindTable,
3016
3084
  onListNavigate: onListNavigate,
3085
+ onNavigateToDetails: onNavigateToDetails,
3017
3086
  onEditNavigateIntent: fnNavigateIntentManifest,
3018
3087
  onRelatedAppNavigation: onRelatedAppNavigation,
3019
3088
  onDataFieldWithNavigationPath: onDataFieldWithNavigationPath,
@@ -1791,6 +1791,36 @@ sap.ui.define(["sap/ui/base/Object",
1791
1791
  var fnRemovePropertiesFromNavigationContext = testableHelper.testable(fnRemovePropertiesFromNavigationContext, "removePropertiesFromNavigationContext");
1792
1792
  /* eslint-enable */
1793
1793
 
1794
+ /**
1795
+ * Returns the first visible, enabled custom Emphasized button in the view, or null.
1796
+ * Skips excluded controls and their children, framework buttons (template:: IDs),
1797
+ * buttons inside dialogs or popovers (including closed ones), buttons in hidden containers,
1798
+ * and the internal buttons of a sap.m.PDFViewer.
1799
+ * Used by Ctrl+Enter on LR (live mode or worklist), ALP (live mode) and OP.
1800
+ * @param {sap.ui.core.mvc.View} oView The view to scan
1801
+ * @param {sap.ui.core.Control[]} aExcludedControls Controls to skip together with their children
1802
+ * @returns {sap.m.Button|null} The button, or null
1803
+ */
1804
+ function fnFindCustomEmphasizedButton(oView, aExcludedControls) {
1805
+ var aButtons = oView.findAggregatedObjects(true, function(oControl) {
1806
+ if (!oControl.isA("sap.m.Button") || oControl.getType() !== "Emphasized" ||
1807
+ !oControl.getVisible() || !oControl.getEnabled() ||
1808
+ aExcludedControls.indexOf(oControl) >= 0 || oControl.getId().indexOf("template::") !== -1) {
1809
+ return false;
1810
+ }
1811
+ for (var oParent = oControl.getParent(); oParent && oParent !== oView; oParent = oParent.getParent()) {
1812
+ if (aExcludedControls.indexOf(oParent) >= 0 ||
1813
+ oParent.isA("sap.m.Dialog") || oParent.isA("sap.m.Popover") ||
1814
+ oParent.isA("sap.m.PDFViewer") ||
1815
+ (oParent.getVisible && !oParent.getVisible())) {
1816
+ return false;
1817
+ }
1818
+ }
1819
+ return true;
1820
+ });
1821
+ return aButtons[0] || null;
1822
+ }
1823
+
1794
1824
  return {
1795
1825
  getPositionableControlId: getPositionableControlId,
1796
1826
  getMetaModelEntityType: getMetaModelEntityType,
@@ -2101,7 +2131,8 @@ sap.ui.define(["sap/ui/base/Object",
2101
2131
  transformTechnicalPropsOnExportedFile: fnTransformTechnicalPropsOnExportedFile,
2102
2132
  includeEntitySetParametersToExportedFile: fnIncludeEntitySetParametersToExportedFile,
2103
2133
  openContextInNewTabFromListItem: fnOpenContextInNewTabFromListItem,
2104
- getCustomizedTextFromApp: getCustomizedTextFromApp
2134
+ getCustomizedTextFromApp: getCustomizedTextFromApp,
2135
+ findCustomEmphasizedButton: fnFindCustomEmphasizedButton
2105
2136
  };
2106
2137
  }
2107
2138
 
@@ -228,7 +228,7 @@ sap.ui.define([
228
228
 
229
229
  function fnAddToolbarButtonToContextMenu(sPathToItems, oFocusInfo, oToolbarControlsData, aItems, oButton, bStartsNewSection){
230
230
  // Case 1: If button has the stable id, use it to find local id.
231
- // Case 2: If the button was created using design time adaption, use the custom data "originalButtonId" to find local id.
231
+ // Case 2: If the button was created using design time adaption, use the custom data "originalButtonId" to find local id.
232
232
  var sButtonLocalId = oView.getLocalId(oButton.getId()) || oView.getLocalId(oButton.data("originalButtonId"));
233
233
 
234
234
  var oHandlePromise = null;
@@ -254,6 +254,45 @@ sap.ui.define([
254
254
  return false;
255
255
  }
256
256
 
257
+ // Returns a raw entry object for a toolbar button child without writing to the model.
258
+ // Generates a key and registers the handler in mHandlers so clicks on sub-menu items
259
+ // resolve correctly via onContextMenu. The parent fnAddMenuItem Promise.all owns all
260
+ // child enabled-flag writes; no setProperty call is made here.
261
+ function fnGetToolbarButtonContextMenuEntry(oFocusInfo, oToolbarControlsData, oButton, bStartsSection) {
262
+ var sButtonLocalId = oView.getLocalId(oButton.getId()) || oView.getLocalId(oButton.data("originalButtonId"));
263
+
264
+ var oStandardControlData = oToolbarControlsData.standardActions.find(function(oControlData){
265
+ return oControlData.ID === sButtonLocalId;
266
+ });
267
+ var oBreakoutControlData = oConfiguration.findBreakoutActionByLocalId(oToolbarControlsData.breakoutActions, sButtonLocalId);
268
+
269
+ var oHandlePromise = null;
270
+ if (oStandardControlData) {
271
+ oHandlePromise = getHandlePromiseForStandardAction(oFocusInfo, oStandardControlData, oButton);
272
+ } else if (oBreakoutControlData) {
273
+ oHandlePromise = getHandlePromiseForBreakoutAction(oFocusInfo, oBreakoutControlData, oButton);
274
+ }
275
+
276
+ if (!oHandlePromise) {
277
+ return null;
278
+ }
279
+ iCreatedMenuItemsCounter++;
280
+ var sKey = "ContextMenuKey" + iCreatedMenuItemsCounter;
281
+ oHandlePromise.then(function(fnHandler) {
282
+ if (fnHandler) {
283
+ mHandlers[sKey] = fnHandler;
284
+ }
285
+ });
286
+ return {
287
+ text: oButton.getText(),
288
+ icon: oButton.getIcon(),
289
+ key: sKey,
290
+ enabled: false,
291
+ startsSection: bStartsSection,
292
+ handlerPromise: oHandlePromise
293
+ };
294
+ }
295
+
257
296
  /**
258
297
  *
259
298
  * Evaluates the menu items in a menu button and adds them to the context menu based on the following rules:
@@ -271,7 +310,11 @@ sap.ui.define([
271
310
  var aChildContextMenuEntries = [];
272
311
  aMenuItems.forEach(function (oMenuItem) {
273
312
  var bStartsSectionOnSubMenu = oMenuItem.getStartsSection();
274
- fnAddToolbarButtonToContextMenu(sItemsPath, oFocusInfo, oToolbarControlsData, aChildContextMenuEntries, oMenuItem, bStartsSectionOnSubMenu);
313
+ var oEntry = fnGetToolbarButtonContextMenuEntry(oFocusInfo, oToolbarControlsData, oMenuItem, bStartsSectionOnSubMenu);
314
+ if (oEntry) {
315
+ oEntry.startsSection = oEntry.startsSection && aChildContextMenuEntries.length > 0;
316
+ aChildContextMenuEntries.push(oEntry);
317
+ }
275
318
  });
276
319
 
277
320
  if (aChildContextMenuEntries.length === 1) {