@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
@@ -8,7 +8,8 @@ sap.ui.define([
8
8
  "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFormRenderer",
9
9
  "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillTableRenderer",
10
10
  "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillApplyHandler",
11
- "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController"
11
+ "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillDialogController",
12
+ "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFileHandler"
12
13
  ], function(
13
14
  BaseObject,
14
15
  extend,
@@ -19,7 +20,8 @@ sap.ui.define([
19
20
  EasyFillFormRenderer,
20
21
  EasyFillTableRenderer,
21
22
  EasyFillApplyHandler,
22
- EasyFillDialogController
23
+ EasyFillDialogController,
24
+ EasyFillFileHandler
23
25
  ) {
24
26
  "use strict";
25
27
 
@@ -60,6 +62,9 @@ sap.ui.define([
60
62
  // including extension fragment fields and custom fields.
61
63
  var oOPStructureMap = null;
62
64
  var mLiveEditable = null;
65
+ // Stores the text extracted from an imported file (TXT/CSV).
66
+ // When non-null, this is sent to the AI instead of the textarea value.
67
+ var sImportedFileText = null;
63
68
 
64
69
  // Collection state — tracks OData row contexts and property metadata for SmartTable collections
65
70
  var mCollectionState = {
@@ -76,7 +81,9 @@ sap.ui.define([
76
81
  var mLastFieldMapping = null; // retained so table sections can be re-rendered on mode switch
77
82
  var oTableStagingState = {
78
83
  mStagedRows: Object.create(null),
79
- mPendingNewRowContexts: Object.create(null)
84
+ mPendingNewRowContexts: Object.create(null),
85
+ mExcludedRows: Object.create(null), // { navProp: { index: true } } existing rows excluded by user
86
+ mExcludedNewRows: Object.create(null) // { navProp: { index: true } } new rows excluded by user
80
87
  };
81
88
 
82
89
  // ─── Internal Helpers ────────────────────────────────────────────────────
@@ -108,6 +115,13 @@ sap.ui.define([
108
115
  * @returns {object} handler/formatter map
109
116
  */
110
117
  function _buildDialogHandlers() {
118
+ // Shared text-imported callback: sets sImportedFileText and re-renders preview.
119
+ // Used by both the FileUploader change handler and the drop handler.
120
+ function fnOnTextImported(sText) {
121
+ sImportedFileText = sText;
122
+ EasyFillDialogController.renderFilePreview(oController, EasyFillFileHandler, sImportedFileText);
123
+ }
124
+
111
125
  return {
112
126
  // ── Layout mode toggle (Condensed ↔ ObjectPage view) ──────────────
113
127
  // After the sections binding is refreshed, SmartForms for the new mode
@@ -219,6 +233,145 @@ sap.ui.define([
219
233
  // ── AI Notice popover ─────────────────────────────────────────────
220
234
  onLinkPress: async function(oEvent) {
221
235
  await EasyFillDialogController.onLinkPress(oEvent, oTemplateUtils, oAIPopoverRef);
236
+ },
237
+
238
+ // ── File import: FileUploader change event ────────────────────────
239
+ onFileUploaderChange: function(oEvent) {
240
+ EasyFillDialogController.onFileUploaderChange(
241
+ oEvent, oController, oRb, EasyFillFileHandler, fnOnTextImported
242
+ );
243
+ },
244
+
245
+ // ── File import: FileUploader rejected the chosen file by extension ──
246
+ onFileTypeMismatch: function() {
247
+ EasyFillDialogController.showFileTypeError(oRb);
248
+ },
249
+
250
+ // ── File discard: removes the imported file and restores the input area ──
251
+ onDiscardImportedFile: function() {
252
+ EasyFillFileHandler.confirmFileRemoval(oRb.getText("EASY_FILL_REMOVE_FILE_CONFIRM"), function() {
253
+ sImportedFileText = null;
254
+ EasyFillDialogController.resetFileState(oController);
255
+ var oDialogModel = oController.getView().getModel("easyFillDialogModel");
256
+ if (oDialogModel) {
257
+ oDialogModel.setProperty("/isEasyFillButtonEnabled", false);
258
+ }
259
+ });
260
+ },
261
+
262
+ // ── Table/text view toggle for CSV preview ───────────────────────────
263
+ onFilePreviewModeChange: function(oEvent) {
264
+ var oDialogModel = oController.getView().getModel("easyFillDialogModel");
265
+ var sSelectedKey = oEvent.getParameter("item").getKey();
266
+ oDialogModel.setProperty("/selectedFilePreviewMode", sSelectedKey);
267
+ EasyFillDialogController.renderFilePreview(oController, EasyFillFileHandler, sImportedFileText);
268
+ },
269
+
270
+ // ── Drag-and-drop: wire native drop events after dialog opens ────────
271
+ // Uses addEventDelegate({onAfterRendering}) on the SAPUI5 control so that
272
+ // drop handlers are re-attached each time the DOM element is re-created.
273
+ // This is necessary because EasyFillInputContainer is hidden (visible=false)
274
+ // when a file is uploaded and shown again on Clear All, which destroys and
275
+ // recreates the DOM element — exactly the V4 approach.
276
+ _onAfterOpen: function() {
277
+ var oInputContainer = oController.byId("EasyFillInputContainer");
278
+ if (!oInputContainer) { return; }
279
+
280
+ function attachDropHandlers() {
281
+ var oDomRef = oInputContainer.getDomRef();
282
+ if (!oDomRef || oDomRef.dataset["dropInitialized"]) { return; }
283
+ oDomRef.dataset["dropInitialized"] = "true";
284
+
285
+ var iDragDepth = 0;
286
+
287
+ function isFileDrag(oDragEvent) {
288
+ var oTransfer = oDragEvent.dataTransfer;
289
+ return !!(oTransfer && Array.prototype.indexOf.call(oTransfer.types, "Files") !== -1);
290
+ }
291
+
292
+ function resetDragState() {
293
+ iDragDepth = 0;
294
+ oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
295
+ oController.getView().getModel("easyFillDialogModel").setProperty("/isDragging", false);
296
+ }
297
+
298
+ oDomRef.addEventListener("dragenter", function(oDragEvent) {
299
+ if (!isFileDrag(oDragEvent)) { return; }
300
+ oDragEvent.preventDefault();
301
+ iDragDepth++;
302
+ });
303
+
304
+ oDomRef.addEventListener("dragover", function(oDragEvent) {
305
+ if (!isFileDrag(oDragEvent)) { return; }
306
+ oDragEvent.preventDefault();
307
+ var oDialogModel = oController.getView().getModel("easyFillDialogModel");
308
+ var bBlocked = !!oDialogModel.getProperty("/uploadedFileName") ||
309
+ !!oDialogModel.getProperty("/hasEnteredText");
310
+ if (oDragEvent.dataTransfer) {
311
+ oDragEvent.dataTransfer.dropEffect = bBlocked ? "none" : "copy";
312
+ }
313
+ if (bBlocked) {
314
+ oDomRef.classList.add("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
315
+ } else {
316
+ oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
317
+ }
318
+ oDialogModel.setProperty("/isDragging", true);
319
+ });
320
+
321
+ oDomRef.addEventListener("dragleave", function(oDragEvent) {
322
+ if (!isFileDrag(oDragEvent)) { return; }
323
+ iDragDepth = Math.max(0, iDragDepth - 1);
324
+ if (iDragDepth === 0) {
325
+ oDomRef.classList.remove("sapSmartTemplatesObjectPageEasyFillInputContainerDropDisabled");
326
+ oController.getView().getModel("easyFillDialogModel").setProperty("/isDragging", false);
327
+ }
328
+ });
329
+
330
+ oDomRef.addEventListener("drop", function(oDragEvent) {
331
+ oDragEvent.preventDefault();
332
+ oDragEvent.stopPropagation();
333
+ resetDragState();
334
+
335
+ var oDialogModel = oController.getView().getModel("easyFillDialogModel");
336
+ if (oDialogModel.getProperty("/uploadedFileName") ||
337
+ oDialogModel.getProperty("/hasEnteredText")) { return; }
338
+
339
+ var oTransfer = oDragEvent.dataTransfer;
340
+ var aDropped = oTransfer && oTransfer.files
341
+ ? Array.prototype.slice.call(oTransfer.files) : [];
342
+ if (aDropped.length === 0) { return; }
343
+
344
+ var aSupported = aDropped.filter(function(oFile) {
345
+ return !!EasyFillFileHandler.findHandler(oFile.name);
346
+ });
347
+
348
+ if (aSupported.length === 0) {
349
+ EasyFillDialogController.showFileUploadError(oRb,
350
+ oRb.getText("EASY_FILL_UPLOAD_UNSUPPORTED_FILE_ERROR"));
351
+ return;
352
+ }
353
+ if (aSupported.length > 1) {
354
+ EasyFillDialogController.showFileUploadError(oRb,
355
+ oRb.getText("EASY_FILL_UPLOAD_SINGLE_FILE_ONLY_ERROR"));
356
+ return;
357
+ }
358
+
359
+ var oFile = aSupported[0];
360
+ // Shared accept path: metadata-set + read + length cap + persistent error feedback.
361
+ EasyFillDialogController.acceptFile(oController, oRb, EasyFillFileHandler, oFile, fnOnTextImported);
362
+ });
363
+ }
364
+
365
+ // Add the onAfterRendering delegate once per container instance. The dialog is
366
+ // kept alive across opens (keepAlive), so a fresh delegate on every open would
367
+ // accumulate; the flag below ensures a single registration. attachDropHandlers()
368
+ // itself is idempotent via the dataset guard and re-binds after DOM re-creation.
369
+ if (!oInputContainer._easyFillDropDelegateAdded) {
370
+ oInputContainer.addEventDelegate({ onAfterRendering: attachDropHandlers });
371
+ oInputContainer._easyFillDropDelegateAdded = true;
372
+ }
373
+ // Attach immediately for the current render (dialog is already open)
374
+ attachDropHandlers();
222
375
  }
223
376
  };
224
377
  }
@@ -262,9 +415,10 @@ sap.ui.define([
262
415
  oObjectPageContext, EasyFillFieldCollector, mCollectionState
263
416
  );
264
417
 
265
- // Submit to AI
418
+ // Submit to AI — prefer imported file text over the textarea value
419
+ var sUserInput = sImportedFileText || oController.byId("EasyFillInputTextArea").getValue();
266
420
  var aiCallResult = await EasyFillAIOrchestrator.submitToAI(
267
- oController.byId("EasyFillInputTextArea").getValue(),
421
+ sUserInput,
268
422
  mFieldMapping,
269
423
  oTemplateUtils
270
424
  );
@@ -517,7 +671,7 @@ sap.ui.define([
517
671
  * Resets the EasyFill dialog to its initial state.
518
672
  * Delegates to EasyFillApplyHandler.resetEasyFill with the current state references.
519
673
  *
520
- * @param {boolean} [bRemoveTextAreaValue=false] - if true, also clears the text area input
674
+ * @param {boolean} [bRemoveTextAreaValue=false] - if true, also clears the text area input and resets all file import state (sImportedFileText, file model properties)
521
675
  */
522
676
  function _resetEasyFill(bRemoveTextAreaValue) {
523
677
  mLastFieldMapping = null;
@@ -539,6 +693,11 @@ sap.ui.define([
539
693
  oTransientContextForEasyFill = null;
540
694
  }
541
695
  );
696
+ // Clear file import state on Clear All / Cancel
697
+ if (bRemoveTextAreaValue) {
698
+ sImportedFileText = null;
699
+ EasyFillDialogController.resetFileState(oController);
700
+ }
542
701
  }
543
702
 
544
703
  /**
@@ -1,5 +1,6 @@
1
1
  sap.ui.define([
2
2
  "sap/ui/comp/smartfield/SmartField",
3
+ "sap/m/Button",
3
4
  "sap/m/GenericTag",
4
5
  "sap/m/MessageStrip",
5
6
  "sap/m/Text",
@@ -17,7 +18,7 @@ sap.ui.define([
17
18
  "sap/ui/core/CustomData",
18
19
  "sap/suite/ui/generic/template/genericUtilities/FeLogger",
19
20
  "sap/suite/ui/generic/template/lib/ai/EasyFill/EasyFillFieldCollector"
20
- ], function(SmartField, GenericTag, MessageStrip, Text, Title, Table, Column, ColumnListItem, VBox, HBox, ScrollContainer, SegmentedButton, SegmentedButtonItem, ObjectPageSection, ObjectPageSubSection, CustomData, FeLogger, EasyFillFieldCollector) {
21
+ ], function(SmartField, Button, GenericTag, MessageStrip, Text, Title, Table, Column, ColumnListItem, VBox, HBox, ScrollContainer, SegmentedButton, SegmentedButtonItem, ObjectPageSection, ObjectPageSubSection, CustomData, FeLogger, EasyFillFieldCollector) {
21
22
  "use strict";
22
23
 
23
24
  var sClassName = "lib.ai.EasyFill.EasyFillTableRenderer";
@@ -165,7 +166,84 @@ sap.ui.define([
165
166
  var oPreviousTable = that._createPreviewTable(aPropertyNames, oCollectionMeta.itemProperties, aPreviousRows);
166
167
  oPreviousTable.setVisible(false);
167
168
 
168
- var oNewTable = that._createEditableNewTable(aPropertyNames, oCollectionMeta.itemProperties, aPreviewRows, aNewRows, sCollectionName, mCollectionState, fnOnTableFieldChange);
169
+ var aItemMetaOut = [];
170
+ var oNewTable = that._createEditableNewTable(aPropertyNames, oCollectionMeta.itemProperties, aPreviewRows, aNewRows, sCollectionName, mCollectionState, fnOnTableFieldChange, aItemMetaOut);
171
+
172
+ // "Exclude Changes" button — disabled until at least 1 active (non-excluded) row is checked
173
+ var oExcludeButton = new Button({
174
+ text: oRb.getText("EASY_FILL_EXCLUDE_ROW_BUTTON"),
175
+ type: "Ghost",
176
+ enabled: false
177
+ });
178
+
179
+ // Re-evaluate button enabled state whenever a checkbox changes
180
+ function refreshExcludeButtonState() {
181
+ var bAnyActiveChecked = aItemMetaOut.some(function(oMeta) {
182
+ if (!oMeta.item.isSelected()) { return false; }
183
+ var oExcludedSet = oMeta.isNew
184
+ ? oTableStagingState.mExcludedNewRows[sCollectionName]
185
+ : oTableStagingState.mExcludedRows[sCollectionName];
186
+ return !oExcludedSet || !oExcludedSet[oMeta.index];
187
+ });
188
+ oExcludeButton.setEnabled(bAnyActiveChecked);
189
+ }
190
+
191
+ // Re-apply excluded row visual state after re-render (e.g. Condensed ↔ OP mode switch).
192
+ // mExcludedRows/mExcludedNewRows survive the mode switch but new controls are created fresh.
193
+ aItemMetaOut.forEach(function(oMeta) {
194
+ var mTarget = oMeta.isNew ? oTableStagingState.mExcludedNewRows : oTableStagingState.mExcludedRows;
195
+ var oExcludedSet = mTarget && mTarget[sCollectionName];
196
+ if (!oExcludedSet || !oExcludedSet[oMeta.index]) { return; }
197
+
198
+ oMeta.item.addStyleClass("sapEasyFillExcludedRow");
199
+ oMeta.item.getCells().forEach(function(oCell) {
200
+ if (oCell.isA && oCell.isA("sap.ui.comp.smartfield.SmartField")) {
201
+ oCell.setEditable(false);
202
+ oCell.setEnabled(false);
203
+ }
204
+ });
205
+ });
206
+
207
+ var oActualTable = oNewTable.getContent && oNewTable.getContent()[0];
208
+ if (oActualTable) {
209
+ oActualTable.attachSelectionChange(function(oEvent) {
210
+ if (oEvent.getParameter("selectAll")) {
211
+ aItemMetaOut.forEach(function(oMeta) {
212
+ var oExcludedSet = oMeta.isNew
213
+ ? oTableStagingState.mExcludedNewRows[sCollectionName]
214
+ : oTableStagingState.mExcludedRows[sCollectionName];
215
+ if (oExcludedSet && oExcludedSet[oMeta.index]) {
216
+ oMeta.item.setSelected(false);
217
+ }
218
+ });
219
+ }
220
+ refreshExcludeButtonState();
221
+ });
222
+ }
223
+
224
+ oExcludeButton.attachPress(function() {
225
+ aItemMetaOut.forEach(function(oMeta) {
226
+ if (!oMeta.item.isSelected()) { return; }
227
+ var mTarget = oMeta.isNew ? oTableStagingState.mExcludedNewRows : oTableStagingState.mExcludedRows;
228
+ var oExcludedSet = mTarget[sCollectionName];
229
+ if (oExcludedSet && oExcludedSet[oMeta.index]) { return; } // already excluded
230
+
231
+ if (!mTarget[sCollectionName]) { mTarget[sCollectionName] = Object.create(null); }
232
+ mTarget[sCollectionName][oMeta.index] = true;
233
+
234
+ oMeta.item.addStyleClass("sapEasyFillExcludedRow");
235
+ oMeta.item.getCells().forEach(function(oCell) {
236
+ if (oCell.isA && oCell.isA("sap.ui.comp.smartfield.SmartField")) {
237
+ oCell.setEditable(false);
238
+ oCell.setEnabled(false);
239
+ }
240
+ });
241
+ oMeta.item.setSelected(false);
242
+ });
243
+
244
+ oExcludeButton.setEnabled(false);
245
+ if (typeof fnOnTableFieldChange === "function") { fnOnTableFieldChange(); }
246
+ });
169
247
 
170
248
  var oReadonlyTag = bHasUneditableChanges ? new GenericTag({ text: oRb.getText("EASYFILL_TABLE_READONLY_TAG"), status: "Warning" }).addStyleClass("sapUiTinyMarginBegin") : null;
171
249
  var sLabel = oCollectionMeta.description || sCollectionName;
@@ -181,14 +259,17 @@ sap.ui.define([
181
259
  var sKey = oSegmentedButton.getSelectedKey();
182
260
  oPreviousTable.setVisible(sKey === "previous");
183
261
  oNewTable.setVisible(sKey === "new");
262
+ oExcludeButton.setVisible(sKey === "new");
184
263
  if (oReadonlyTag) { oReadonlyTag.setVisible(sKey === "new"); }
185
264
  oTitleControl.setText(sLabel + " (" + (sKey === "previous" ? iExistingRowCount : iTotalCount) + ")");
186
265
  }
187
266
  });
188
267
 
268
+ var oLeftGroup = new HBox({ alignItems: "Center", items: oReadonlyTag ? [oTitleControl, oReadonlyTag] : [oTitleControl] });
269
+ var oRightGroup = new HBox({ alignItems: "Center", items: [oExcludeButton, oSegmentedButton] });
189
270
  var oHeader = new HBox({
190
271
  justifyContent: "SpaceBetween", alignItems: "Center", wrap: "Wrap",
191
- items: [oTitleControl].concat(oReadonlyTag ? [oReadonlyTag, oSegmentedButton] : [oSegmentedButton])
272
+ items: [oLeftGroup, oRightGroup]
192
273
  }).addStyleClass("sapUiSmallMarginTop sapUiSmallMarginBottom");
193
274
 
194
275
  var oTableVBox = new VBox({ items: [oHeader, oPreviousTable, oNewTable] })
@@ -484,9 +565,10 @@ sap.ui.define([
484
565
  * @param {string} sCollectionName - navigation property name (used to look up property metadata)
485
566
  * @param {object} mCollectionState - collection tracking state (used to get property metadata)
486
567
  * @param {function} fnOnTableFieldChange - callback when a cell value changes
568
+ * @param {Array} [aItemMetaOut] - optional collector: receives { item, isNew, index } per row
487
569
  * @returns {sap.m.ScrollContainer} ScrollContainer wrapping the table with horizontal scrolling enabled
488
570
  */
489
- _createEditableNewTable: function(aPropertyNames, oItemProperties, aPreviewRows, aNewRowContexts, sCollectionName, mCollectionState, fnOnTableFieldChange) {
571
+ _createEditableNewTable: function(aPropertyNames, oItemProperties, aPreviewRows, aNewRowContexts, sCollectionName, mCollectionState, fnOnTableFieldChange, aItemMetaOut) {
490
572
  var aColumns = aPropertyNames.map(function(sPropName) {
491
573
  return new Column({
492
574
  header: new Text({
@@ -500,7 +582,7 @@ sap.ui.define([
500
582
  var that = this;
501
583
 
502
584
  // Rows for existing rows with AI-proposed updates
503
- var aExistingItems = aPreviewRows.map(function(oPreviewRow) {
585
+ var aExistingItems = aPreviewRows.map(function(oPreviewRow, iIndex) {
504
586
  var oContext = oPreviewRow.transientContext;
505
587
  var oRowObject = oPreviewRow.realContext && oPreviewRow.realContext.getObject && oPreviewRow.realContext.getObject();
506
588
 
@@ -544,6 +626,11 @@ sap.ui.define([
544
626
  if (oContext) {
545
627
  oItem.setBindingContext(oContext);
546
628
  }
629
+
630
+ if (Array.isArray(aItemMetaOut)) {
631
+ aItemMetaOut.push({ item: oItem, isNew: false, index: iIndex });
632
+ }
633
+
547
634
  return oItem;
548
635
  });
549
636
 
@@ -551,7 +638,7 @@ sap.ui.define([
551
638
  // sEntitySetName is set explicitly on SmartField so it can resolve OData metadata
552
639
  // even though it lives inside a plain sap.m.Table (not a SmartTable).
553
640
  var sEntitySetName = (oEntitySet && oEntitySet.name) || sCollectionName;
554
- var aNewItems = (aNewRowContexts || []).map(function(oNewContext) {
641
+ var aNewItems = (aNewRowContexts || []).map(function(oNewContext, iIndex) {
555
642
  var aCells = aPropertyNames.map(function(sPropName) {
556
643
  if (!oNewContext) {
557
644
  return new Text({ text: "" });
@@ -581,17 +668,24 @@ sap.ui.define([
581
668
  });
582
669
  return oSmartField;
583
670
  });
671
+
584
672
  var oItem = new ColumnListItem({
585
673
  cells: aCells,
586
674
  highlight: "Information"
587
675
  });
588
676
  oItem.setBindingContext(oNewContext);
677
+
678
+ if (Array.isArray(aItemMetaOut)) {
679
+ aItemMetaOut.push({ item: oItem, isNew: true, index: iIndex });
680
+ }
681
+
589
682
  return oItem;
590
683
  });
591
684
 
592
685
  var oTable = new Table({
593
686
  columns: aColumns,
594
687
  items: aExistingItems.concat(aNewItems),
688
+ mode: "MultiSelect",
595
689
  fixedLayout: false,
596
690
  autoPopinMode: false
597
691
  }).addStyleClass("sapSmartTemplatesObjectPageEasyFillTablePreview");
@@ -664,6 +758,12 @@ sap.ui.define([
664
758
  Object.keys((oTableStagingState && oTableStagingState.mPendingNewRowContexts) || {}).forEach(function(sCollectionName) {
665
759
  delete oTableStagingState.mPendingNewRowContexts[sCollectionName];
666
760
  });
761
+ Object.keys((oTableStagingState && oTableStagingState.mExcludedRows) || {}).forEach(function(sCollectionName) {
762
+ delete oTableStagingState.mExcludedRows[sCollectionName];
763
+ });
764
+ Object.keys((oTableStagingState && oTableStagingState.mExcludedNewRows) || {}).forEach(function(sCollectionName) {
765
+ delete oTableStagingState.mExcludedNewRows[sCollectionName];
766
+ });
667
767
  },
668
768
 
669
769
  /**