@sapui5/sap.cux.home 1.141.0 → 1.143.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 (355) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +4 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.js +6 -6
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  7. package/src/sap/cux/home/AdvancedSettingsPanel.ts +6 -6
  8. package/src/sap/cux/home/App.d.ts.map +1 -1
  9. package/src/sap/cux/home/App.js +9 -1
  10. package/src/sap/cux/home/App.js.map +1 -1
  11. package/src/sap/cux/home/App.ts +10 -1
  12. package/src/sap/cux/home/AppsAdditionPanel.d.ts +75 -34
  13. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsAdditionPanel.js +378 -179
  15. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.ts +399 -175
  17. package/src/sap/cux/home/AppsContainer.d.ts +5 -1
  18. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  19. package/src/sap/cux/home/AppsContainer.js +32 -17
  20. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  21. package/src/sap/cux/home/AppsContainer.ts +31 -15
  22. package/src/sap/cux/home/BaseAppPanel.d.ts +2 -1
  23. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  24. package/src/sap/cux/home/BaseAppPanel.js +2 -1
  25. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  26. package/src/sap/cux/home/BaseAppPanel.ts +4 -2
  27. package/src/sap/cux/home/BaseContainer.d.ts +8 -0
  28. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  29. package/src/sap/cux/home/BaseContainer.js +35 -5
  30. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  31. package/src/sap/cux/home/BaseContainer.ts +32 -5
  32. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  33. package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
  34. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  35. package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
  36. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  37. package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
  38. package/src/sap/cux/home/BasePanel.d.ts +7 -0
  39. package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
  40. package/src/sap/cux/home/BasePanel.js +23 -2
  41. package/src/sap/cux/home/BasePanel.js.map +1 -1
  42. package/src/sap/cux/home/BasePanel.ts +18 -1
  43. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  44. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  45. package/src/sap/cux/home/CardsContainer.js +207 -0
  46. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  47. package/src/sap/cux/home/CardsContainer.ts +202 -0
  48. package/src/sap/cux/home/CardsPanel.d.ts +32 -59
  49. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  50. package/src/sap/cux/home/CardsPanel.js +270 -249
  51. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  52. package/src/sap/cux/home/CardsPanel.ts +169 -181
  53. package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
  54. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  55. package/src/sap/cux/home/ContentAdditionDialog.js +17 -7
  56. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  57. package/src/sap/cux/home/ContentAdditionDialog.ts +18 -6
  58. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  59. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  60. package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
  61. package/src/sap/cux/home/ErrorPanel.js +11 -16
  62. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  63. package/src/sap/cux/home/ErrorPanel.ts +7 -19
  64. package/src/sap/cux/home/FavAppPanel.d.ts +1 -12
  65. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  66. package/src/sap/cux/home/FavAppPanel.js +354 -414
  67. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  68. package/src/sap/cux/home/FavAppPanel.ts +25 -70
  69. package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
  70. package/src/sap/cux/home/FrequentAppPanel.js +5 -1
  71. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  72. package/src/sap/cux/home/FrequentAppPanel.ts +4 -0
  73. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
  74. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  75. package/src/sap/cux/home/InsightsAdditionPanel.js +12 -9
  76. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  77. package/src/sap/cux/home/InsightsAdditionPanel.ts +11 -8
  78. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
  79. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  80. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +3 -3
  81. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  82. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  83. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
  84. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  85. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
  86. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  87. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
  88. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  89. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
  90. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
  91. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  92. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
  93. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  94. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
  95. package/src/sap/cux/home/Layout.d.ts +3 -1
  96. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  97. package/src/sap/cux/home/Layout.js +45 -8
  98. package/src/sap/cux/home/Layout.js.map +1 -1
  99. package/src/sap/cux/home/Layout.ts +55 -8
  100. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  101. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  102. package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
  103. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  104. package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
  105. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -18
  106. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  107. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
  108. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
  109. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  110. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +31 -120
  111. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  112. package/src/sap/cux/home/NewsGroup.ts +1 -1
  113. package/src/sap/cux/home/NewsPanel.d.ts +17 -0
  114. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  115. package/src/sap/cux/home/NewsPanel.js +90 -57
  116. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  117. package/src/sap/cux/home/NewsPanel.ts +51 -23
  118. package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
  119. package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
  120. package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
  121. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  122. package/src/sap/cux/home/NewsSettingsPanel.ts +216 -81
  123. package/src/sap/cux/home/Page.d.ts.map +1 -1
  124. package/src/sap/cux/home/Page.js +4 -1
  125. package/src/sap/cux/home/Page.js.map +1 -1
  126. package/src/sap/cux/home/Page.ts +2 -0
  127. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  128. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  129. package/src/sap/cux/home/PagePanel.js +19 -11
  130. package/src/sap/cux/home/PagePanel.js.map +1 -1
  131. package/src/sap/cux/home/PagePanel.ts +26 -20
  132. package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
  133. package/src/sap/cux/home/PageSettingsPanel.js +6 -3
  134. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  135. package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
  136. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  137. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  138. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  139. package/src/sap/cux/home/PagesContainer.js +333 -0
  140. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  141. package/src/sap/cux/home/PagesContainer.ts +179 -0
  142. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  143. package/src/sap/cux/home/RecentAppPanel.js +6 -0
  144. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  145. package/src/sap/cux/home/RecentAppPanel.ts +5 -1
  146. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  147. package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
  148. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  149. package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
  150. package/src/sap/cux/home/SettingsDialog.d.ts +7 -0
  151. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  152. package/src/sap/cux/home/SettingsDialog.js +18 -10
  153. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  154. package/src/sap/cux/home/SettingsDialog.ts +20 -13
  155. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +10 -0
  156. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
  157. package/src/sap/cux/home/SideBySideIconTabFilter.js +11 -1
  158. package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
  159. package/src/sap/cux/home/SideBySideIconTabFilter.ts +11 -0
  160. package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
  161. package/src/sap/cux/home/SituationPanel.js +7 -2
  162. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  163. package/src/sap/cux/home/SituationPanel.ts +2 -0
  164. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  165. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  166. package/src/sap/cux/home/SpaceInsightsPanel.js +67 -133
  167. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  168. package/src/sap/cux/home/SpaceInsightsPanel.ts +70 -152
  169. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  170. package/src/sap/cux/home/TaskPanel.js +17 -12
  171. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  172. package/src/sap/cux/home/TaskPanel.ts +19 -16
  173. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  174. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  175. package/src/sap/cux/home/TilesContainer.js +218 -0
  176. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  177. package/src/sap/cux/home/TilesContainer.ts +216 -0
  178. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  179. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  180. package/src/sap/cux/home/TilesPanel.js +194 -168
  181. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  182. package/src/sap/cux/home/TilesPanel.ts +167 -157
  183. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  184. package/src/sap/cux/home/ToDoPanel.js +59 -66
  185. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  186. package/src/sap/cux/home/ToDoPanel.ts +46 -34
  187. package/src/sap/cux/home/ToDosContainer.js +3 -3
  188. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  189. package/src/sap/cux/home/ToDosContainer.ts +1 -1
  190. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
  191. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  192. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
  193. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  194. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
  195. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
  196. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  197. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
  198. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  199. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
  200. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
  201. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  202. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
  203. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  204. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
  205. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
  206. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  207. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
  208. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  209. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
  210. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  211. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
  212. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  213. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
  214. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  215. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  216. package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
  217. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  218. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
  219. package/src/sap/cux/home/i18n/messagebundle.properties +40 -14
  220. package/src/sap/cux/home/i18n/messagebundle_ar.properties +8 -4
  221. package/src/sap/cux/home/i18n/messagebundle_bg.properties +8 -4
  222. package/src/sap/cux/home/i18n/messagebundle_ca.properties +8 -4
  223. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +8 -4
  224. package/src/sap/cux/home/i18n/messagebundle_cs.properties +8 -4
  225. package/src/sap/cux/home/i18n/messagebundle_cy.properties +8 -4
  226. package/src/sap/cux/home/i18n/messagebundle_da.properties +8 -4
  227. package/src/sap/cux/home/i18n/messagebundle_de.properties +8 -4
  228. package/src/sap/cux/home/i18n/messagebundle_el.properties +8 -4
  229. package/src/sap/cux/home/i18n/messagebundle_en.properties +9 -5
  230. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +8 -4
  231. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +14 -6
  232. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +14 -6
  233. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +8 -4
  234. package/src/sap/cux/home/i18n/messagebundle_es.properties +8 -4
  235. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +8 -4
  236. package/src/sap/cux/home/i18n/messagebundle_et.properties +8 -4
  237. package/src/sap/cux/home/i18n/messagebundle_fi.properties +8 -4
  238. package/src/sap/cux/home/i18n/messagebundle_fr.properties +8 -4
  239. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +8 -4
  240. package/src/sap/cux/home/i18n/messagebundle_hi.properties +8 -4
  241. package/src/sap/cux/home/i18n/messagebundle_hr.properties +8 -4
  242. package/src/sap/cux/home/i18n/messagebundle_hu.properties +8 -4
  243. package/src/sap/cux/home/i18n/messagebundle_id.properties +8 -4
  244. package/src/sap/cux/home/i18n/messagebundle_it.properties +10 -6
  245. package/src/sap/cux/home/i18n/messagebundle_iw.properties +8 -4
  246. package/src/sap/cux/home/i18n/messagebundle_ja.properties +8 -4
  247. package/src/sap/cux/home/i18n/messagebundle_kk.properties +8 -4
  248. package/src/sap/cux/home/i18n/messagebundle_ko.properties +8 -4
  249. package/src/sap/cux/home/i18n/messagebundle_lt.properties +8 -4
  250. package/src/sap/cux/home/i18n/messagebundle_lv.properties +8 -4
  251. package/src/sap/cux/home/i18n/messagebundle_mk.properties +8 -4
  252. package/src/sap/cux/home/i18n/messagebundle_ms.properties +8 -4
  253. package/src/sap/cux/home/i18n/messagebundle_nl.properties +8 -4
  254. package/src/sap/cux/home/i18n/messagebundle_no.properties +8 -4
  255. package/src/sap/cux/home/i18n/messagebundle_pl.properties +8 -4
  256. package/src/sap/cux/home/i18n/messagebundle_pt.properties +9 -5
  257. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +8 -4
  258. package/src/sap/cux/home/i18n/messagebundle_ro.properties +8 -4
  259. package/src/sap/cux/home/i18n/messagebundle_ru.properties +8 -4
  260. package/src/sap/cux/home/i18n/messagebundle_sh.properties +8 -4
  261. package/src/sap/cux/home/i18n/messagebundle_sk.properties +8 -4
  262. package/src/sap/cux/home/i18n/messagebundle_sl.properties +8 -4
  263. package/src/sap/cux/home/i18n/messagebundle_sr.properties +8 -4
  264. package/src/sap/cux/home/i18n/messagebundle_sv.properties +8 -4
  265. package/src/sap/cux/home/i18n/messagebundle_th.properties +8 -4
  266. package/src/sap/cux/home/i18n/messagebundle_tr.properties +8 -4
  267. package/src/sap/cux/home/i18n/messagebundle_uk.properties +8 -4
  268. package/src/sap/cux/home/i18n/messagebundle_vi.properties +8 -4
  269. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +8 -4
  270. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +8 -4
  271. package/src/sap/cux/home/interface/AppsInterface.d.ts +6 -0
  272. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  273. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  274. package/src/sap/cux/home/interface/AppsInterface.ts +7 -0
  275. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
  276. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  277. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  278. package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
  279. package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
  280. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  281. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  282. package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
  283. package/src/sap/cux/home/library.d.ts.map +1 -1
  284. package/src/sap/cux/home/library.js +7 -4
  285. package/src/sap/cux/home/library.js.map +1 -1
  286. package/src/sap/cux/home/library.ts +10 -5
  287. package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
  288. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  289. package/src/sap/cux/home/themes/base/BaseLayout.less +22 -0
  290. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +4 -45
  291. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  292. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  293. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  294. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  295. package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
  296. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  297. package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
  298. package/src/sap/cux/home/utils/AppManager.js +2 -1
  299. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  300. package/src/sap/cux/home/utils/AppManager.ts +2 -2
  301. package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
  302. package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
  303. package/src/sap/cux/home/utils/FESRUtil.js +36 -1
  304. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  305. package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
  306. package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
  307. package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
  308. package/src/sap/cux/home/utils/PXFeedback.js +28 -0
  309. package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
  310. package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
  311. package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
  312. package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
  313. package/src/sap/cux/home/utils/PageManager.js +6 -6
  314. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  315. package/src/sap/cux/home/utils/PageManager.ts +6 -5
  316. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  317. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  318. package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
  319. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  320. package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
  321. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +155 -151
  322. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  323. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  324. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
  325. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  326. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
  327. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  328. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  329. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  330. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  331. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  332. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  333. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  334. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
  335. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  336. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
  337. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  338. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  339. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  340. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  341. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  342. package/ui5.yaml +1 -0
  343. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  344. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  345. package/src/sap/cux/home/InsightsContainer.js +0 -459
  346. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  347. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  348. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  349. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  350. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  351. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  352. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  353. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  354. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  355. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -28,6 +28,7 @@ import BaseContainer from "./BaseContainer";
28
28
  import BaseLayout from "./BaseLayout";
29
29
  import BaseSettingsPanel, { $BaseSettingsPanelSettings } from "./BaseSettingsPanel";
30
30
  import Layout from "./Layout";
31
+ import NoDataContainer from "./NoDataContainer";
31
32
  import { CHANGE_TYPES } from "./flexibility/Layout.flexibility";
32
33
  import { IControlPersonalizationWriteAPI, IDragEvent, IElement, IManagePersChanges } from "./interface/LayoutInterface";
33
34
  import { getInvisibleText } from "./utils/Accessibility";
@@ -102,24 +103,24 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
102
103
  *
103
104
  * @private
104
105
  */
105
- private async createShowHideChangeFile(oControlEvent: Event): Promise<void> {
106
+ private async createShowHideChangeFile(oControlEvent: Event, itemIndex: number): Promise<void> {
106
107
  const toggle = oControlEvent.getSource<ToggleButton>();
107
108
  const bValue = !toggle.getPressed();
108
- const oContext = toggle.getBindingContext()?.getObject() as IElement;
109
-
110
- oContext.visible = bValue;
111
- (this._getPanel() as Layout).getSections().find((section) => section.completeId === oContext.completeId)!.visible = bValue;
109
+ const contextObject = toggle.getBindingContext()?.getObject() as IElement;
110
+ const selectedCompleteId = contextObject.isComposite ? contextObject.children![itemIndex].completeId : contextObject.completeId;
112
111
 
113
112
  const sChangeType = bValue ? CHANGE_TYPES.UNHIDE : CHANGE_TYPES.HIDE;
114
- const oWrapperItem = Element.getElementById(oContext.completeId) as BaseContainer;
113
+ const oWrapperItem = Element.getElementById(selectedCompleteId) as BaseContainer;
115
114
 
116
115
  this._manageSectionsChanges.push({
117
116
  selectorElement: oWrapperItem,
118
117
  changeSpecificData: {
119
- changeType: sChangeType
118
+ changeType: sChangeType,
119
+ content: {
120
+ compositeId: oWrapperItem.getProperty("compositeId") as string
121
+ }
120
122
  }
121
123
  });
122
- // }
123
124
  await this._saveManageSectionsDialog();
124
125
  setTimeout(() => oWrapperItem.adjustLayout());
125
126
 
@@ -127,6 +128,25 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
127
128
  if (!bValue) {
128
129
  this._switchToCollapsedViewIfRequired([oWrapperItem]);
129
130
  }
131
+
132
+ //update this._orderedSections visibility
133
+ toggle.setPressed(!bValue);
134
+
135
+ //loop through this._orderedSections and update the visibility of the section which has same composite id as oWrapperItem
136
+ for (const section of this._orderedSections) {
137
+ // Check for matching composite ID
138
+ if (section.compositeId === oWrapperItem.getProperty("compositeId") && section.compositeId !== undefined) {
139
+ for (const child of section.children || []) {
140
+ if (child.completeId === selectedCompleteId) {
141
+ child.visible = bValue;
142
+ return; // Exit the whole function once found & set
143
+ }
144
+ }
145
+ } else if (section.completeId === selectedCompleteId) {
146
+ section.visible = bValue;
147
+ return; // Exit the whole function once found & set
148
+ }
149
+ }
130
150
  }
131
151
 
132
152
  /**
@@ -139,15 +159,75 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
139
159
  private _switchToCollapsedViewIfRequired(containers: BaseContainer[]): void {
140
160
  const layout = this._getPanel() as Layout;
141
161
  const isLayoutExpanded = layout.getProperty("expanded") as boolean;
142
- const expandedContainer = containers.filter(
143
- (container) => layout._getCurrentExpandedElementName() === container.getProperty("fullScreenName")
144
- );
162
+ const expandedContainer = containers.filter((container) => {
163
+ //find the fullscreename of the container if available else loop through the content of container
164
+ // and search in its panels which are present in its content aggregation
165
+ let fullScreenName = (container.getProperty("fullScreenName") as string) || undefined;
166
+ if (!fullScreenName) {
167
+ return container
168
+ .getContent()
169
+ .some((panel) => layout._getCurrentExpandedElementName() === panel.getProperty("fullScreenName"));
170
+ }
171
+ return layout._getCurrentExpandedElementName() === container.getProperty("fullScreenName");
172
+ });
145
173
 
146
174
  if (isLayoutExpanded) {
147
175
  layout.toggleFullScreen(expandedContainer[0]._getSelectedPanel());
148
176
  }
149
177
  }
150
178
 
179
+ //function to update this._orderedSections
180
+ private _updateOrderedSections(): void {
181
+ const createEmptyCompositeItem = (): IElement => ({
182
+ completeId: "",
183
+ sContainerType: "",
184
+ blocked: false,
185
+ visible: false,
186
+ title: "",
187
+ text: "",
188
+ isComposite: false,
189
+ children: []
190
+ });
191
+ const compositeMap: { [key: string]: IElement[] } = {};
192
+ this._orderedSections.forEach((section) => {
193
+ const container = Element.getElementById(section.completeId) as BaseContainer | null;
194
+
195
+ if (container instanceof BaseContainer) {
196
+ const compositeId = container.getProperty("compositeId") as string;
197
+ if (compositeId) {
198
+ if (!compositeMap[compositeId]) {
199
+ compositeMap[compositeId] = [];
200
+ }
201
+ section.compositeId = compositeId;
202
+ section.groupTitle = container.getCustomSettings().groupTitle || "";
203
+ compositeMap[compositeId].push(section);
204
+ } else {
205
+ section.compositeId = null;
206
+ }
207
+ }
208
+ });
209
+
210
+ // map through this.orderedSections and replace items with compositeId with a single composite item containing its children
211
+ this._orderedSections = this._orderedSections.map((section) => {
212
+ if (section.compositeId && compositeMap[section.compositeId]) {
213
+ const compositeItem = createEmptyCompositeItem();
214
+ compositeMap[section.compositeId].forEach((section) => {
215
+ this.addToCompositeItem(section, compositeItem, section.groupTitle as string);
216
+ });
217
+ delete compositeMap[section.compositeId];
218
+ return compositeItem;
219
+ }
220
+ return section;
221
+ });
222
+
223
+ //filter this.orderedSections to remove items which has same composite item with no children
224
+ this._orderedSections = this._orderedSections.filter((section) => {
225
+ if (section.compositeId) {
226
+ return section.children && section.children.length > 0;
227
+ }
228
+ return true;
229
+ });
230
+ }
151
231
  /**
152
232
  * Method to load the sections
153
233
  *
@@ -156,29 +236,157 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
156
236
  private async _loadSections(): Promise<void> {
157
237
  const layout = this._getPanel() as Layout;
158
238
  await layout._calculateSectionsState();
159
-
160
- this._orderedSections = JSON.parse(JSON.stringify(layout.getSections())) as IElement[];
161
- // not a good way as there could be more than one insights container, discuss
162
- this._orderedSections.forEach((oSection) => {
163
- if (oSection.sContainerType === "sap.cux.home.InsightsContainer" && !oSection.title) {
164
- oSection.title = String(this._i18nBundle?.getText("insights"));
239
+ const sections = layout.getSections();
240
+ this._orderedSections = JSON.parse(JSON.stringify(sections)) as IElement[];
241
+
242
+ //loop through this._orderedSections and take out the children items from composite items and add them to same list
243
+ this._orderedSections = this._orderedSections.reduce((accumulator, section) => {
244
+ if (section.isComposite && section.children) {
245
+ accumulator.push(...section.children);
246
+ } else {
247
+ accumulator.push(section);
165
248
  }
166
- });
249
+ return accumulator;
250
+ }, [] as IElement[]);
251
+ this._updateOrderedSections();
167
252
  this._controlModel = new JSONModel(this._orderedSections);
168
253
  this._layoutTable.setModel(this._controlModel);
169
254
 
170
255
  this._layoutTable.bindItems({
171
256
  path: "/",
172
- factory: (id) => {
257
+ factory: (id, context) => {
173
258
  if (!this._dndInvisibleText || this._dndInvisibleText.isDestroyed()) {
174
259
  this._dndInvisibleText = getInvisibleText(
175
260
  this.getId() + "--layoutDndText",
176
261
  this._i18nBundle.getText("keyPressAriaText")
177
262
  );
178
263
  }
179
- return new ColumnListItem(`${id}--columnListItem`, {
180
- type: "Inactive",
181
- cells: [
264
+ //check the condition for news and pages as it is a composite container
265
+ if ((context.getObject() as IElement)?.isComposite === true) {
266
+ return this.getCompositeLayoutListItem(id);
267
+ }
268
+ return this.getLayoutListItem(id);
269
+ }
270
+ });
271
+
272
+ // attach collapse event handler to rearrange layout elements if required
273
+ if (!this._isCollapseHandlerAttached) {
274
+ this._isCollapseHandlerAttached = true;
275
+ layout.attachEvent("onCollapse", () => this._rearrangeLayoutIfRequired());
276
+ }
277
+ }
278
+
279
+ private addToCompositeItem(section: IElement, compositeItem: IElement, compositeTitle: string) {
280
+ compositeItem.isComposite = true;
281
+ compositeItem.title = compositeTitle;
282
+
283
+ if (!compositeItem.completeId) {
284
+ compositeItem.completeId = section.completeId;
285
+ }
286
+ //Add compositeId
287
+ compositeItem.compositeId = section.compositeId;
288
+
289
+ compositeItem.children?.push({ ...section });
290
+
291
+ compositeItem.text = section.text;
292
+ compositeItem.blocked = section.blocked;
293
+ compositeItem.visible = section.visible;
294
+ }
295
+
296
+ private getLayoutListItem(id: string): ColumnListItem {
297
+ return new ColumnListItem(`${id}--columnListItem`, {
298
+ type: "Inactive",
299
+ cells: [
300
+ new HBox(`${id}--columnListHBox`, {
301
+ alignItems: "Center",
302
+ items: [
303
+ new Icon(`${id}--columnListIcon`, {
304
+ src: "sap-icon://vertical-grip"
305
+ }).addStyleClass("sapUiSmallMarginEnd"),
306
+ new HBox(`${id}--columnListItemHBox`, {
307
+ justifyContent: "SpaceBetween",
308
+ alignItems: "Center",
309
+ width: "100%",
310
+ items: [
311
+ new ObjectIdentifier(`${id}--columnListObjectIdentifier`, {
312
+ title: "{title}",
313
+ text: "{text}",
314
+ tooltip: "{title}"
315
+ }),
316
+ new ToggleButton(`${id}--layoutSettingstoggleButton`, {
317
+ tooltip:
318
+ "{= ${visible} ? '" +
319
+ this._i18nBundle.getText("hideBtn") +
320
+ "' : '" +
321
+ this._i18nBundle.getText("showBtn") +
322
+ "' }",
323
+ icon: "sap-icon://show",
324
+ type: "Emphasized",
325
+ enabled: "{= !${blocked}}",
326
+ press: (event: Event) => {
327
+ void this.createShowHideChangeFile(event, 0);
328
+ },
329
+ pressed: "{= !${visible}}",
330
+ ariaLabelledBy: ["selectLabel"]
331
+ }).addStyleClass("sapUiTinyMarginEnd sapUiTinyMarginTop")
332
+ ]
333
+ }),
334
+ this._dndInvisibleText
335
+ ],
336
+ width: "100%"
337
+ })
338
+ ],
339
+ ariaLabelledBy: [this._dndInvisibleText.getId()]
340
+ }).addStyleClass("insightsListItem insightsListMargin");
341
+ }
342
+
343
+ private getCompositeLayoutListItem(id: string): ColumnListItem {
344
+ const oTemplateHBox = new VBox(`${id}--compositeVBox`, {
345
+ items: {
346
+ path: "children",
347
+ factory: (childId: string, oContext) => {
348
+ const iIndex = parseInt(childId.split("-").pop() || "0", 10);
349
+
350
+ return new HBox(`${id}--columnListItemChildHBox${iIndex}`, {
351
+ justifyContent: "SpaceBetween",
352
+ alignItems: "Center",
353
+ items: [
354
+ new ObjectIdentifier(`${id}--childObjectIdentifier${iIndex}`, {
355
+ title: oContext.getProperty("title") as string,
356
+ text: oContext.getProperty("text") as string,
357
+ tooltip: oContext.getProperty("title") as string
358
+ }),
359
+ new ToggleButton(`${id}--layoutSettingstoggleButtonChild${iIndex}`, {
360
+ tooltip: {
361
+ parts: [{ path: "visible" }, { path: "blocked" }],
362
+ formatter: (bVisible: boolean, bBlocked: boolean) => {
363
+ if (bBlocked) {
364
+ return this._i18nBundle.getText("blockedTooltip");
365
+ }
366
+ return bVisible ? this._i18nBundle.getText("hideBtn") : this._i18nBundle.getText("showBtn");
367
+ }
368
+ },
369
+ icon: "sap-icon://show",
370
+ type: "Emphasized",
371
+ enabled: "{= !${blocked}}",
372
+ pressed: "{= !${visible}}",
373
+ ariaLabelledBy: ["selectLabel"],
374
+ press: (event: Event) => {
375
+ void this.createShowHideChangeFile(event, iIndex);
376
+ }
377
+ }).addStyleClass("sapUiTinyMarginEnd sapUiTinyMarginTop")
378
+ ]
379
+ }).addStyleClass("sapCuxCompositeItem");
380
+ }
381
+ }
382
+ });
383
+
384
+ return new ColumnListItem(`${id}--columnListItem`, {
385
+ type: "Inactive",
386
+ cells: [
387
+ new VBox(`${id}--compositeVBoxContainer`, {
388
+ items: [
389
+ // Header (main title)
182
390
  new HBox(`${id}--columnListHBox`, {
183
391
  alignItems: "Center",
184
392
  items: [
@@ -194,40 +402,39 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
194
402
  title: "{title}",
195
403
  text: "{text}",
196
404
  tooltip: "{title}"
197
- }),
198
- new ToggleButton(`${id}--layoutSettingstoggleButton`, {
199
- tooltip:
200
- "{= ${visible} ? '" +
201
- this._i18nBundle.getText("hideBtn") +
202
- "' : '" +
203
- this._i18nBundle.getText("showBtn") +
204
- "' }",
205
- icon: "sap-icon://show",
206
- type: "Emphasized",
207
- enabled: "{= !${blocked}}",
208
- press: (event: Event) => {
209
- void this.createShowHideChangeFile(event);
210
- },
211
- pressed: "{= !${visible}}",
212
- ariaLabelledBy: ["selectLabel"]
213
- }).addStyleClass("sapUiTinyMarginEnd sapUiTinyMarginTop")
405
+ })
214
406
  ]
215
- }),
216
- this._dndInvisibleText
407
+ })
217
408
  ],
218
409
  width: "100%"
219
- })
220
- ],
221
- ariaLabelledBy: [this._dndInvisibleText.getId()]
222
- }).addStyleClass("insightsListItem insightsListMargin");
410
+ }).addStyleClass("sapUiTinyMarginTopBottom"),
411
+
412
+ // Dynamically bound children
413
+ oTemplateHBox,
414
+
415
+ // Drag-n-drop invisible text
416
+ this._dndInvisibleText
417
+ ]
418
+ })
419
+ ],
420
+ ariaLabelledBy: [this._dndInvisibleText.getId()]
421
+ }).addStyleClass("insightsListItem insightsListMargin");
422
+ }
423
+ /**
424
+ * Reduces the ordered sections by flattening composite items.
425
+ * @private
426
+ * @returns {IElement[]} The reduced list of ordered sections.
427
+ */
428
+ private _reduceOrderedSections(): IElement[] {
429
+ //loop through this._orderedSections and take out the children items from composite items and add them to same list
430
+ return this._orderedSections.reduce((accumulator, section) => {
431
+ if (section.isComposite && section.children) {
432
+ accumulator.push(...section.children);
433
+ } else {
434
+ accumulator.push(section);
223
435
  }
224
- });
225
-
226
- // attach collapse event handler to rearrange layout elements if required
227
- if (!this._isCollapseHandlerAttached) {
228
- this._isCollapseHandlerAttached = true;
229
- layout.attachEvent("onCollapse", () => this._rearrangeLayoutIfRequired());
230
- }
436
+ return accumulator;
437
+ }, [] as IElement[]);
231
438
  }
232
439
 
233
440
  /**
@@ -240,6 +447,12 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
240
447
  const currentLayoutElements = layout.getItems();
241
448
 
242
449
  if (Array.isArray(this._allLayoutElements) && currentLayoutElements.length === this._allLayoutElements.length) {
450
+ //pick each elements out from this._orderedSections
451
+ const elementList = this._reduceOrderedSections();
452
+ //Now loop through elementList and _allLayoutElements to rearrange _allLayoutElements list based on completeId
453
+ this._allLayoutElements = elementList.map((element) => {
454
+ return this._allLayoutElements.find((layoutElement) => layoutElement.getId() === element.completeId)!;
455
+ });
243
456
  const isOrderChanged = currentLayoutElements.some((element, index) => {
244
457
  return element.getId() !== this._allLayoutElements[index].getId();
245
458
  });
@@ -386,7 +599,7 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
386
599
  */
387
600
  private _getActualIndex(id: string): number {
388
601
  const layout = this._getPanel() as Layout;
389
- this._allLayoutElements = this._allLayoutElements || [...layout.getItems()];
602
+ this._allLayoutElements = [...layout.getItems()];
390
603
  const isLayoutExpanded = layout.getProperty("expanded") as boolean;
391
604
  const expandedElementConfig = layout._getCurrentExpandedElement();
392
605
 
@@ -437,19 +650,54 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
437
650
  const oDropItem = ((oEvent as DropInfo$DropEvent).getParameter?.("droppedControl") ||
438
651
  (oEvent as IDragEvent).droppedControl) as ColumnListItem;
439
652
  const iDropItemIndex = (oDragItem.getParent() as Table)?.indexOfItem(oDropItem);
440
-
441
653
  if (iDragItemIndex !== iDropItemIndex) {
442
654
  const sectionOrder = this._orderedSections;
443
655
  const dragObject = oDragItem.getBindingContext()?.getObject() as IElement;
444
656
  const dropObject = oDropItem.getBindingContext()?.getObject() as IElement;
445
657
 
446
- const actualDragItemIndex = this._getActualIndex(dragObject.completeId);
447
- const actualDropItemIndex = this._getActualIndex(dropObject.completeId);
658
+ let actualDragItemIndex = this._getActualIndex(dragObject.completeId);
659
+ let actualDropItemIndex = this._getActualIndex(dropObject.completeId);
448
660
  this._rearrangeLayoutElements(actualDragItemIndex, actualDropItemIndex);
449
661
 
450
662
  sectionOrder.splice(iDragItemIndex, 1);
451
663
  sectionOrder.splice(iDropItemIndex, 0, dragObject);
452
664
  oWrapper.setSections(sectionOrder);
665
+ //loop through the oWrapper.getItems() and find the index and noData Container
666
+ let noDataContainerIndex = -1;
667
+ const items = oWrapper.getItems();
668
+ let noDataContainer: NoDataContainer | null = null;
669
+ for (let i = 0; i < items.length; i++) {
670
+ const item = items[i];
671
+ if (item instanceof NoDataContainer) {
672
+ noDataContainerIndex = i;
673
+ noDataContainer = item;
674
+ }
675
+ }
676
+
677
+ //now insert the noDataContainer back to its noDataContainerIndex in sectionOrder
678
+ if (noDataContainer && noDataContainerIndex !== -1) {
679
+ sectionOrder.splice(noDataContainerIndex, 0, noDataContainer as unknown as IElement);
680
+ }
681
+
682
+ let finalTargetIndex = 0;
683
+ const elementList = this._reduceOrderedSections();
684
+ finalTargetIndex = elementList.findIndex((element) => element.completeId === dragObject.completeId);
685
+
686
+ //find the composite child for this dragObject if it has a composite id
687
+ const compositeChildren = elementList.filter((element) => {
688
+ if (
689
+ dragObject.compositeId &&
690
+ dragObject.compositeId === element.compositeId &&
691
+ element.completeId !== dragObject.completeId
692
+ ) {
693
+ return true;
694
+ }
695
+ });
696
+
697
+ if (noDataContainer && noDataContainerIndex !== -1) {
698
+ //remove noDataContainer from sectionOrder to avoid the display of an empty item in myhome Settings dialog
699
+ sectionOrder.splice(noDataContainerIndex, 1);
700
+ }
453
701
 
454
702
  this._manageSectionsChanges.push({
455
703
  selectorElement: oWrapper,
@@ -459,7 +707,10 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
459
707
  {
460
708
  id: dragObject.completeId,
461
709
  sourceIndex: actualDragItemIndex,
462
- targetIndex: actualDropItemIndex
710
+ targetIndex:
711
+ iDragItemIndex < iDropItemIndex && dragObject.isComposite && compositeChildren.length
712
+ ? finalTargetIndex + 1 // Adjust index when composite has children and moving forward
713
+ : finalTargetIndex
463
714
  }
464
715
  ],
465
716
  source: {
@@ -473,12 +724,70 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
473
724
  }
474
725
  });
475
726
 
727
+ if (compositeChildren.length > 0) {
728
+ compositeChildren.forEach((compositeChild) => {
729
+ this._manageSectionsChanges.push({
730
+ selectorElement: oWrapper,
731
+ changeSpecificData: {
732
+ changeType: CHANGE_TYPES.MOVE,
733
+ movedElements: [
734
+ {
735
+ id: compositeChild.completeId,
736
+ sourceIndex: actualDragItemIndex,
737
+ targetIndex: finalTargetIndex + 1 // +1 as it will be after the main dragObject
738
+ }
739
+ ],
740
+ source: {
741
+ id: wrapperId,
742
+ aggregation: "items"
743
+ },
744
+ target: {
745
+ id: wrapperId,
746
+ aggregation: "items"
747
+ }
748
+ }
749
+ });
750
+ });
751
+ }
752
+
476
753
  await this._saveManageSectionsDialog();
754
+ // Switch to collapsed view if any of the containers is in expanded view
755
+ const isLayoutExpanded = oWrapper.getProperty("expanded") as boolean;
756
+ if (isLayoutExpanded && dragObject.isComposite) {
757
+ const expandedElementName = oWrapper._getCurrentExpandedElementName();
758
+ const compositeContainer = Element.getElementById(dragObject.completeId) as BaseContainer;
759
+ //find the fullScreenName of the expanded element from the content of composite container
760
+ const fullScreenName = compositeContainer
761
+ .getContent()
762
+ .find((panel) => panel.getProperty("fullScreenName") === expandedElementName)
763
+ ?.getProperty("fullScreenName") as string;
764
+ let draggedContainer: BaseContainer | undefined;
765
+
766
+ // If expanded element name differs, find the matching child container
767
+ if (expandedElementName !== fullScreenName) {
768
+ const matchingChild = dragObject.children?.find((child) => {
769
+ const childContainer = Element.getElementById(child.completeId) as BaseContainer;
770
+ //loop through the content of childContainer to find the panel which has fullScreenName property same as expandedElementName
771
+ return childContainer.getContent().find((panel) => {
772
+ return panel.getProperty("fullScreenName") === expandedElementName;
773
+ });
774
+ });
477
775
 
478
- //switch to collapsed view if any of the containers is in expanded view
479
- const draggedContainer = Element.getElementById(dragObject.completeId) as BaseContainer;
480
- const droppedContainer = Element.getElementById(dropObject.completeId) as BaseContainer;
481
- this._switchToCollapsedViewIfRequired([draggedContainer, droppedContainer]);
776
+ draggedContainer = matchingChild
777
+ ? (Element.getElementById(matchingChild.completeId) as BaseContainer)
778
+ : (Element.getElementById(dragObject.completeId) as BaseContainer);
779
+ } else {
780
+ draggedContainer = Element.getElementById(dragObject.completeId) as BaseContainer;
781
+ }
782
+
783
+ const droppedContainer = Element.getElementById(dropObject.completeId) as BaseContainer;
784
+ this._switchToCollapsedViewIfRequired([draggedContainer, droppedContainer]);
785
+ } else {
786
+ // Fallback: always collapse dragged and dropped containers
787
+ const draggedContainer = Element.getElementById(dragObject.completeId) as BaseContainer;
788
+ const droppedContainer = Element.getElementById(dropObject.completeId) as BaseContainer;
789
+ this._switchToCollapsedViewIfRequired([draggedContainer, droppedContainer]);
790
+ }
482
791
  }
483
792
  focusDraggedItem(this._layoutTable, iDropItemIndex);
484
793
  }
@@ -494,13 +803,20 @@ export default class LayoutSettingsPanel extends BaseSettingsPanel {
494
803
  icon: MessageBox.Icon.QUESTION,
495
804
  title: this._i18nBundle.getText("reset_cards_confirmation_title"),
496
805
  actions: [this._i18nBundle.getText("reset_cards_button") as string, MessageBox.Action.CANCEL],
497
- onClose: async (oAction: string) => {
806
+ onClose: async (oAction: string | null) => {
498
807
  if (oAction === this._i18nBundle.getText("reset_cards_button")) {
499
808
  const aChangesForDeletion: (BaseContainer | BaseLayout)[] = [];
500
809
 
501
810
  for (let section of this._orderedSections) {
502
- const element = Element.getElementById(section.completeId) as BaseContainer;
503
- aChangesForDeletion.push(element);
811
+ if (section.isComposite && section.children) {
812
+ for (let panel of section.children) {
813
+ const element = Element.getElementById(panel.completeId) as BaseContainer;
814
+ aChangesForDeletion.push(element);
815
+ }
816
+ } else {
817
+ const element = Element.getElementById(section.completeId) as BaseContainer;
818
+ aChangesForDeletion.push(element);
819
+ }
504
820
  }
505
821
  // Revert Changes Related to DragnDrop
506
822
  aChangesForDeletion.push(this._getPanel() as Layout);
@@ -1,12 +1,8 @@
1
- declare module "sap/cux/home/NewsAndPagesContainer" {
2
- /*!
3
- * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
5
- */
1
+ declare module "sap/cux/home/NewsContainer" {
6
2
  import type { MetadataOptions } from "sap/ui/core/Element";
7
3
  import BaseContainer from "sap/cux/home/BaseContainer";
8
4
  import BasePanel from "sap/cux/home/BasePanel";
9
- import type { $NewsAndPagesContainerSettings } from "sap/cux/home/NewsAndPagesContainer";
5
+ import type { $NewsContainerSettings } from "sap/cux/home/NewsContainer";
10
6
  import { INewsFeedVisibiliyChange, INewsPersData } from "sap/cux/home/interface/KeyUserInterface";
11
7
  import { NewsType } from "sap/cux/home/library";
12
8
  interface IpanelLoaded {
@@ -21,20 +17,20 @@ declare module "sap/cux/home/NewsAndPagesContainer" {
21
17
  }
22
18
  /**
23
19
  *
24
- * Container class for managing and storing News and Pages.
20
+ * Container class for managing and storing News.
25
21
  *
26
22
  * @extends BaseContainer
27
23
  *
28
24
  * @author SAP SE
29
25
  * @version 0.0.1
30
- * @since 1.121
26
+ * @since 1.142
31
27
  *
32
28
  * @private
33
29
  * @ui5-restricted ux.eng.s4producthomes1
34
30
  *
35
- * @alias sap.cux.home.NewsAndPagesContainer
31
+ * @alias sap.cux.home.NewsContainer
36
32
  */
37
- export default class NewsAndPagesContainer extends BaseContainer {
33
+ export default class NewsContainer extends BaseContainer {
38
34
  static renderer: {
39
35
  apiVersion: number;
40
36
  render: (rm: import("sap/ui/core/RenderManager").default, control: BaseContainer) => void;
@@ -42,12 +38,11 @@ declare module "sap/cux/home/NewsAndPagesContainer" {
42
38
  };
43
39
  static readonly metadata: MetadataOptions;
44
40
  private panelLoaded;
45
- private pagePanel;
46
41
  private newsPanel;
47
42
  private keyUserChange;
48
43
  private isEndUserChange;
49
- constructor(id?: string | $NewsAndPagesContainerSettings);
50
- constructor(id?: string, settings?: $NewsAndPagesContainerSettings);
44
+ constructor(id?: string | $NewsContainerSettings);
45
+ constructor(id?: string, settings?: $NewsContainerSettings);
51
46
  /**
52
47
  * Init lifecycle method
53
48
  *
@@ -56,7 +51,7 @@ declare module "sap/cux/home/NewsAndPagesContainer" {
56
51
  */
57
52
  init(): void;
58
53
  /**
59
- * Loads the News and Pages section.
54
+ * Loads the News section.
60
55
  * Overrides the load method of the BaseContainer.
61
56
  *
62
57
  * @private
@@ -83,7 +78,7 @@ declare module "sap/cux/home/NewsAndPagesContainer" {
83
78
  loaded: boolean;
84
79
  count: number;
85
80
  }): void;
86
- adjustStyleLayout(bIsNewsTileVisible: boolean): void;
81
+ adjustStyleLayout(): void;
87
82
  /**
88
83
  * Adjusts the layout of the all panels in the container.
89
84
  *
@@ -92,11 +87,11 @@ declare module "sap/cux/home/NewsAndPagesContainer" {
92
87
  */
93
88
  adjustLayout(): void;
94
89
  /**
95
- * Retrieves the generic placeholder content for the News and Pages container.
90
+ * Retrieves the generic placeholder content for the News container.
96
91
  *
97
- * @returns {string} The HTML string representing the News and Pages container's placeholder content.
92
+ * @returns {string} The HTML string representing the News container's placeholder content.
98
93
  */
99
94
  protected getGenericPlaceholderContent(): string;
100
95
  }
101
96
  }
102
- //# sourceMappingURL=NewsAndPagesContainer.d.ts.map
97
+ //# sourceMappingURL=NewsContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NewsContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/NewsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4BAA4B,CAAC;IAO5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAC3D,OAAO,aAAa,MAAM,4BAA4B,CAAC;IACvD,OAAO,SAAS,MAAM,wBAAwB,CAAC;IAC/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IAEzE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;IAClG,OAAO,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;IAIjE,UAAU,YAAY;QACrB,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;KAClD;IAED,UAAU,mBAAmB;QAC5B,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,QAAQ,CAAC;KACnB;IAED;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;QACvD,MAAM,CAAC,QAAQ;;;;UAGb;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAOvC;QAEF,OAAO,CAAC,WAAW,CAAoB;QACvC,OAAO,CAAC,SAAS,CAAa;QAC9B,OAAO,CAAC,aAAa,CAAkB;QACvC,OAAO,CAAC,eAAe,CAAsE;oBAEjF,EAAE,CAAC,EAAE,MAAM,GAAG,sBAAsB;oBACpC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAY1D;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAoBnB;;;;;;WAMG;QACU,IAAI;QAmBjB;;;;;WAKG;QACI,mBAAmB,CAAC,QAAQ,EAAE,SAAS;QAM9C;;;;;WAKG;QACI,kBAAkB,IAAI,mBAAmB;QAIzC,2BAA2B,CAAC,eAAe,EAAE,wBAAwB;QAgBrE,mBAAmB,CAAC,gBAAgB,EAAE,aAAa;QA0CnD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE;YAAE,MAAM,EAAE,OAAO,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE;QAY1E,iBAAiB;QAMxB;;;;;WAKG;QACI,YAAY;QAQnB;;;;WAIG;QACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;KAGhD;CAEA"}