@sapui5/sap.cux.home 1.141.0 → 1.142.1

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 (361) 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 +6 -1
  10. package/src/sap/cux/home/App.js.map +1 -1
  11. package/src/sap/cux/home/App.ts +7 -1
  12. package/src/sap/cux/home/AppsAdditionPanel.d.ts +48 -34
  13. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsAdditionPanel.js +362 -265
  15. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.ts +374 -254
  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 +33 -18
  20. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  21. package/src/sap/cux/home/AppsContainer.ts +32 -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 +8 -2
  25. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  26. package/src/sap/cux/home/BaseAppPanel.ts +10 -3
  27. package/src/sap/cux/home/BaseContainer.d.ts +9 -1
  28. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  29. package/src/sap/cux/home/BaseContainer.js +36 -6
  30. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  31. package/src/sap/cux/home/BaseContainer.ts +33 -6
  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 +20 -0
  41. package/src/sap/cux/home/BasePanel.js.map +1 -1
  42. package/src/sap/cux/home/BasePanel.ts +16 -0
  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 +47 -59
  49. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  50. package/src/sap/cux/home/CardsPanel.js +405 -326
  51. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  52. package/src/sap/cux/home/CardsPanel.ts +223 -201
  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 +21 -66
  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 +11 -4
  74. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  75. package/src/sap/cux/home/InsightsAdditionPanel.js +22 -8
  76. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  77. package/src/sap/cux/home/InsightsAdditionPanel.ts +22 -7
  78. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
  79. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
  80. package/src/sap/cux/home/InsightsCardsSettingsPanel.js +15 -0
  81. package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
  82. package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +11 -0
  83. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
  84. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  85. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +1 -1
  86. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  87. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  88. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
  89. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  90. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +287 -57
  91. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  92. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
  93. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  94. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
  95. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
  96. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  97. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
  98. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  99. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
  100. package/src/sap/cux/home/Layout.d.ts +3 -1
  101. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  102. package/src/sap/cux/home/Layout.js +49 -8
  103. package/src/sap/cux/home/Layout.js.map +1 -1
  104. package/src/sap/cux/home/Layout.ts +59 -8
  105. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  106. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  107. package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
  108. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  109. package/src/sap/cux/home/LayoutSettingsPanel.ts +379 -63
  110. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -18
  111. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  112. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
  113. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
  114. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  115. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +31 -120
  116. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  117. package/src/sap/cux/home/NewsGroup.ts +1 -1
  118. package/src/sap/cux/home/NewsPanel.d.ts +17 -0
  119. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  120. package/src/sap/cux/home/NewsPanel.js +100 -69
  121. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  122. package/src/sap/cux/home/NewsPanel.ts +61 -36
  123. package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
  124. package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
  125. package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
  126. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  127. package/src/sap/cux/home/NewsSettingsPanel.ts +216 -81
  128. package/src/sap/cux/home/Page.d.ts.map +1 -1
  129. package/src/sap/cux/home/Page.js +4 -1
  130. package/src/sap/cux/home/Page.js.map +1 -1
  131. package/src/sap/cux/home/Page.ts +2 -0
  132. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  133. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  134. package/src/sap/cux/home/PagePanel.js +19 -11
  135. package/src/sap/cux/home/PagePanel.js.map +1 -1
  136. package/src/sap/cux/home/PagePanel.ts +26 -20
  137. package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
  138. package/src/sap/cux/home/PageSettingsPanel.js +6 -3
  139. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  140. package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
  141. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  142. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  143. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  144. package/src/sap/cux/home/PagesContainer.js +333 -0
  145. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  146. package/src/sap/cux/home/PagesContainer.ts +179 -0
  147. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  148. package/src/sap/cux/home/RecentAppPanel.js +6 -0
  149. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  150. package/src/sap/cux/home/RecentAppPanel.ts +5 -1
  151. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  152. package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
  153. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  154. package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
  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 +19 -1
  171. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  172. package/src/sap/cux/home/TaskPanel.ts +17 -2
  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 +1 -0
  184. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  185. package/src/sap/cux/home/ToDoPanel.js +64 -68
  186. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  187. package/src/sap/cux/home/ToDoPanel.ts +48 -36
  188. package/src/sap/cux/home/ToDosContainer.js +3 -3
  189. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  190. package/src/sap/cux/home/ToDosContainer.ts +1 -1
  191. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
  192. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  193. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
  194. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  195. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
  196. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
  197. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  198. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
  199. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  200. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
  201. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
  202. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  203. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
  204. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  205. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
  206. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
  207. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  208. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
  209. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  210. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
  211. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  212. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
  213. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  214. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
  215. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  216. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  217. package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
  218. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  219. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
  220. package/src/sap/cux/home/i18n/messagebundle.properties +32 -12
  221. package/src/sap/cux/home/i18n/messagebundle_ar.properties +18 -2
  222. package/src/sap/cux/home/i18n/messagebundle_bg.properties +18 -2
  223. package/src/sap/cux/home/i18n/messagebundle_ca.properties +18 -2
  224. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +18 -2
  225. package/src/sap/cux/home/i18n/messagebundle_cs.properties +18 -2
  226. package/src/sap/cux/home/i18n/messagebundle_cy.properties +18 -2
  227. package/src/sap/cux/home/i18n/messagebundle_da.properties +18 -2
  228. package/src/sap/cux/home/i18n/messagebundle_de.properties +18 -2
  229. package/src/sap/cux/home/i18n/messagebundle_el.properties +18 -2
  230. package/src/sap/cux/home/i18n/messagebundle_en.properties +19 -3
  231. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +18 -2
  232. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +21 -5
  233. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +21 -5
  234. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +18 -2
  235. package/src/sap/cux/home/i18n/messagebundle_es.properties +19 -2
  236. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +18 -2
  237. package/src/sap/cux/home/i18n/messagebundle_et.properties +18 -2
  238. package/src/sap/cux/home/i18n/messagebundle_fi.properties +18 -2
  239. package/src/sap/cux/home/i18n/messagebundle_fr.properties +18 -2
  240. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +18 -2
  241. package/src/sap/cux/home/i18n/messagebundle_hi.properties +18 -2
  242. package/src/sap/cux/home/i18n/messagebundle_hr.properties +18 -2
  243. package/src/sap/cux/home/i18n/messagebundle_hu.properties +18 -2
  244. package/src/sap/cux/home/i18n/messagebundle_id.properties +18 -2
  245. package/src/sap/cux/home/i18n/messagebundle_it.properties +23 -7
  246. package/src/sap/cux/home/i18n/messagebundle_iw.properties +18 -2
  247. package/src/sap/cux/home/i18n/messagebundle_ja.properties +18 -2
  248. package/src/sap/cux/home/i18n/messagebundle_kk.properties +18 -2
  249. package/src/sap/cux/home/i18n/messagebundle_ko.properties +18 -2
  250. package/src/sap/cux/home/i18n/messagebundle_lt.properties +18 -2
  251. package/src/sap/cux/home/i18n/messagebundle_lv.properties +18 -2
  252. package/src/sap/cux/home/i18n/messagebundle_mk.properties +18 -2
  253. package/src/sap/cux/home/i18n/messagebundle_ms.properties +18 -2
  254. package/src/sap/cux/home/i18n/messagebundle_nl.properties +18 -2
  255. package/src/sap/cux/home/i18n/messagebundle_no.properties +18 -2
  256. package/src/sap/cux/home/i18n/messagebundle_pl.properties +18 -2
  257. package/src/sap/cux/home/i18n/messagebundle_pt.properties +19 -3
  258. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +18 -2
  259. package/src/sap/cux/home/i18n/messagebundle_ro.properties +18 -2
  260. package/src/sap/cux/home/i18n/messagebundle_ru.properties +18 -2
  261. package/src/sap/cux/home/i18n/messagebundle_sh.properties +18 -2
  262. package/src/sap/cux/home/i18n/messagebundle_sk.properties +18 -2
  263. package/src/sap/cux/home/i18n/messagebundle_sl.properties +18 -2
  264. package/src/sap/cux/home/i18n/messagebundle_sr.properties +18 -2
  265. package/src/sap/cux/home/i18n/messagebundle_sv.properties +18 -2
  266. package/src/sap/cux/home/i18n/messagebundle_th.properties +18 -2
  267. package/src/sap/cux/home/i18n/messagebundle_tr.properties +18 -2
  268. package/src/sap/cux/home/i18n/messagebundle_uk.properties +20 -4
  269. package/src/sap/cux/home/i18n/messagebundle_vi.properties +18 -2
  270. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +18 -2
  271. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +18 -2
  272. package/src/sap/cux/home/interface/AppsInterface.d.ts +5 -0
  273. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  274. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  275. package/src/sap/cux/home/interface/AppsInterface.ts +6 -0
  276. package/src/sap/cux/home/interface/CardsInterface.d.ts +6 -0
  277. package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
  278. package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
  279. package/src/sap/cux/home/interface/CardsInterface.ts +6 -1
  280. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
  281. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  282. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  283. package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
  284. package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
  285. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  286. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  287. package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
  288. package/src/sap/cux/home/library.d.ts.map +1 -1
  289. package/src/sap/cux/home/library.js +7 -4
  290. package/src/sap/cux/home/library.js.map +1 -1
  291. package/src/sap/cux/home/library.ts +10 -5
  292. package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
  293. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  294. package/src/sap/cux/home/themes/base/BaseLayout.less +22 -0
  295. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +4 -45
  296. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  297. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  298. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  299. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  300. package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
  301. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  302. package/src/sap/cux/home/utils/BatchHelper.d.ts +1 -0
  303. package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
  304. package/src/sap/cux/home/utils/BatchHelper.js +7 -2
  305. package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
  306. package/src/sap/cux/home/utils/BatchHelper.ts +8 -1
  307. package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
  308. package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
  309. package/src/sap/cux/home/utils/FESRUtil.js +36 -1
  310. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  311. package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
  312. package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
  313. package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
  314. package/src/sap/cux/home/utils/PXFeedback.js +28 -0
  315. package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
  316. package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
  317. package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
  318. package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
  319. package/src/sap/cux/home/utils/PageManager.js +6 -6
  320. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  321. package/src/sap/cux/home/utils/PageManager.ts +6 -5
  322. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  323. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  324. package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
  325. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  326. package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
  327. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +150 -151
  328. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  329. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  330. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
  331. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  332. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
  333. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  334. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  335. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  336. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  337. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  338. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  339. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  340. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
  341. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  342. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
  343. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  344. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  345. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  346. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  347. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  348. package/ui5.yaml +1 -0
  349. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  350. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  351. package/src/sap/cux/home/InsightsContainer.js +0 -459
  352. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  353. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  354. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  355. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  356. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  357. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  358. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  359. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  360. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  361. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -27,9 +27,11 @@ import Container from "sap/ushell/Container";
27
27
  import S4MyHome from "sap/ushell/api/S4MyHome";
28
28
  import { Intent } from "sap/ushell/services/AppLifeCycle";
29
29
  import Navigation from "sap/ushell/services/Navigation";
30
+ import BaseContainer from "./BaseContainer";
30
31
  import BasePanel from "./BasePanel";
32
+ import CardsContainer from "./CardsContainer";
31
33
  import { $CardsPanelSettings } from "./CardsPanel";
32
- import InsightsContainer from "./InsightsContainer";
34
+ import ErrorPanel from "./ErrorPanel";
33
35
  import MenuItem from "./MenuItem";
34
36
  import {
35
37
  ICard,
@@ -50,42 +52,26 @@ import { PREFERED_CARDS, SETTINGS_PANELS_KEYS } from "./utils/Constants";
50
52
  import { recycleId } from "./utils/DataFormatUtils";
51
53
  import { calculateCardWidth, DeviceType, fetchElementProperties } from "./utils/Device";
52
54
  import { focusDraggedItem } from "./utils/DragDropUtils";
53
- import { addFESRId } from "./utils/FESRUtil";
54
- import {
55
- createShowMoreActionButton,
56
- createShowMoreMenuItem,
57
- getAssociatedFullScreenMenuItem,
58
- sortMenuItems,
59
- targetsAreEqual
60
- } from "./utils/InsightsUtils";
55
+ import { addFESRId, addFESRNavigationSource, FESRNavigationSource } from "./utils/FESRUtil";
56
+ import { getAssociatedFullScreenButton, getAssociatedFullScreenMenuItem, sortMenuItems, targetsAreEqual } from "./utils/InsightsUtils";
61
57
  import PageManager from "./utils/PageManager";
62
58
  import PersonalisationUtils from "./utils/PersonalisationUtils";
63
59
  import UShellPersonalizer, { IPersonalizationData } from "./utils/UshellPersonalizer";
64
60
 
65
61
  export enum cardsMenuItems {
66
62
  REFRESH = "cards-refresh",
67
- EDIT_CARDS = "cards-editCards",
68
- AI_INSIGHT_CARD = "cards-addAIInsightCard"
63
+ EDIT_CARDS = "cards-editCards"
69
64
  }
70
65
 
71
- export enum cardsContainerMenuItems {
72
- REFRESH = "container-cards-refresh",
73
- EDIT_CARDS = "container-cards-editCards",
74
- SHOW_MORE = "cardsContainerFullScreenMenuItem",
75
- AI_INSIGHT_CARD = "container-cards-addAIInsightCard"
66
+ export enum cardsActionButtons {
67
+ SHOW_MORE = "fullScreen"
76
68
  }
77
69
 
78
- export enum cardsContainerActionButtons {
79
- SHOW_MORE = "cardsContanerFullScreenActionButton"
70
+ export enum errorPanelMenuItems {
71
+ EDIT_CARDS = "cards-errorPanel-editCards"
80
72
  }
81
- const sortedMenuItems: (cardsMenuItems | string)[] = [
82
- cardsMenuItems.REFRESH,
83
- cardsMenuItems.EDIT_CARDS,
84
- cardsMenuItems.AI_INSIGHT_CARD,
85
- "showMore",
86
- "settings"
87
- ];
88
73
 
74
+ const sortedMenuItems: (cardsMenuItems | string)[] = [cardsMenuItems.REFRESH, cardsMenuItems.EDIT_CARDS, "showMore", "settings"];
89
75
  interface IcardActionEvent {
90
76
  getParameter(sParam: string): unknown;
91
77
  preventDefault(): void;
@@ -163,7 +149,7 @@ export default class CardsPanel extends BasePanel {
163
149
  };
164
150
  private cardHelperInstance!: ICardHelperInstance;
165
151
  private _cardsFlexWrapper!: VBox;
166
- private cardsContainer!: GridContainer;
152
+ private cardsWrapperContainer!: GridContainer;
167
153
  private cardsMobileContainer!: HeaderContainer;
168
154
  private aVisibleCardInstances: Card[] = [];
169
155
  private _oData!: Record<string, unknown>;
@@ -176,14 +162,13 @@ export default class CardsPanel extends BasePanel {
176
162
  private cardsInViewport: Card[] = [];
177
163
  private oEventBus!: EventBus;
178
164
  private _appSwitched: boolean = false;
179
- private _containerMenuItems!: MenuItem[];
180
- private _containerActionButtons!: Button[];
181
- private insightsContainer!: InsightsContainer;
182
- private _headerVisible: boolean = false;
165
+ private cardsContainer!: CardsContainer;
183
166
  private _controlMap!: Map<string, UI5Element>;
184
167
  private _cardsRendered!: Promise<void> | undefined;
185
168
  private pageManagerInstance!: PageManager;
186
169
  private hasCustomSpace!: boolean;
170
+ private _errorPanel!: ErrorPanel;
171
+ private cardHelper: Promise<ICardHelperInstance> | null = null;
187
172
 
188
173
  constructor(idOrSettings?: string | $CardsPanelSettings);
189
174
  constructor(id?: string, settings?: $CardsPanelSettings);
@@ -205,6 +190,7 @@ export default class CardsPanel extends BasePanel {
205
190
  */
206
191
  public init() {
207
192
  super.init();
193
+ this.setProperty("title", `${this._i18nBundle?.getText("insightsCards")}`);
208
194
  this.setProperty("key", "cards");
209
195
  this.setProperty("enableFullScreen", true);
210
196
  this.cardWidth = "19rem";
@@ -234,7 +220,6 @@ export default class CardsPanel extends BasePanel {
234
220
  "cardsImport",
235
221
  async (sChannelId?: string, sEventId?: string, oData?) => {
236
222
  await this._createCards(oData as ICardManifest[]);
237
- await this.rerenderCards();
238
223
  this._importdone();
239
224
  },
240
225
  this
@@ -279,7 +264,8 @@ export default class CardsPanel extends BasePanel {
279
264
  * @returns {any}
280
265
  */
281
266
  private async _createCards(aCards: ICardManifest[]) {
282
- await this.cardHelperInstance?._createCards(aCards);
267
+ const cardHelper = await this.getCardHelper();
268
+ await cardHelper?._createCards(aCards);
283
269
  return this.rerenderCards();
284
270
  }
285
271
 
@@ -334,10 +320,8 @@ export default class CardsPanel extends BasePanel {
334
320
  ) as object;
335
321
  }
336
322
  if (oCheckSemanticProperty && Object.keys(oCheckSemanticProperty).length) {
337
- oParameters = this.cardHelperInstance.processSemanticDate(
338
- oParameters,
339
- oIntegrationCardManifest
340
- ) as ICardActionParameters;
323
+ const cardHelper = await this.getCardHelper();
324
+ oParameters = cardHelper?.processSemanticDate(oParameters, oIntegrationCardManifest) as ICardActionParameters;
341
325
  }
342
326
 
343
327
  let aContentActions = this.getContentActions(oIntegrationCardManifest);
@@ -361,6 +345,7 @@ export default class CardsPanel extends BasePanel {
361
345
  target: oParameters.ibnTarget,
362
346
  params: oParameters.ibnParams
363
347
  });
348
+ addFESRNavigationSource(FESRNavigationSource.Cards);
364
349
  }
365
350
  };
366
351
  const actions = [
@@ -382,9 +367,7 @@ export default class CardsPanel extends BasePanel {
382
367
  icon: "sap-icon://filter",
383
368
  action: (oCard: Card) => {
384
369
  const cardId = (oCard.getManifestEntry("sap.app") as ISapApp).id;
385
- (this.getParent() as InsightsContainer)
386
- ?._getLayout()
387
- .openSettingsDialog(SETTINGS_PANELS_KEYS.INSIGHTS_CARDS, { cardId });
370
+ (this.getParent() as CardsContainer)?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.INSIGHTS_CARDS, { cardId });
388
371
  },
389
372
  visible: async (oCard: Card) => {
390
373
  const oEntry = await this._getManifestEntryFromCard(oCard, "sap.insights");
@@ -415,7 +398,8 @@ export default class CardsPanel extends BasePanel {
415
398
  visible: async (oCard: Card) => {
416
399
  return this._getManifestEntryFromCard(oCard, "sap.insights").then(async (oEntry: ICardManifest | undefined) => {
417
400
  if (oEntry) {
418
- const parentApp = await this.cardHelperInstance.getParentAppDetails({
401
+ const cardHelper = await this.getCardHelper();
402
+ const parentApp = await cardHelper?.getParentAppDetails({
419
403
  descriptorContent: oCard.getManifestEntry("/") as ICardManifest
420
404
  });
421
405
  if (parentApp.semanticObject && parentApp.action) {
@@ -439,7 +423,8 @@ export default class CardsPanel extends BasePanel {
439
423
  });
440
424
  },
441
425
  action: async (oCard: Card) => {
442
- const parentApp = await this.cardHelperInstance.getParentAppDetails({
426
+ const cardHelper = await this.getCardHelper();
427
+ const parentApp = await cardHelper?.getParentAppDetails({
443
428
  descriptorContent: oCard.getManifestEntry("/") as ICardManifest
444
429
  });
445
430
  const sShellHash = parentApp.semanticURL || parentApp.semanticObject;
@@ -449,6 +434,7 @@ export default class CardsPanel extends BasePanel {
449
434
  shellHash: sShellHash
450
435
  }
451
436
  });
437
+ addFESRNavigationSource(FESRNavigationSource.Cards);
452
438
  }
453
439
  }
454
440
  ];
@@ -561,23 +547,60 @@ export default class CardsPanel extends BasePanel {
561
547
  }
562
548
 
563
549
  /**
564
- * Renders the panel.
550
+ * Retrieves the Card Helper instance.
565
551
  *
566
552
  * @private
567
- * @returns {Promise<void>} A promise that resolves when the panel is rendered.
553
+ * @returns {Promise<ICardHelperInstance>} A promise that resolves with the Card Helper instance.
568
554
  */
569
- public async renderPanel(): Promise<void> {
555
+ private async getCardHelper(): Promise<ICardHelperInstance> {
570
556
  if (!this.cardHelperInstance) {
571
557
  this.pageManagerInstance = this.pageManagerInstance || getPageManagerInstance(this);
572
558
  const [cardHelperInstance, hasCustomSpace] = await Promise.all([
573
- (CardHelper as ICardHelper).getServiceAsync(),
559
+ this.getCardHelperService(),
574
560
  this.pageManagerInstance.hasCustomSpace()
575
561
  ]);
576
562
  this.cardHelperInstance = cardHelperInstance;
577
563
  this.hasCustomSpace = hasCustomSpace;
578
564
  }
579
- await this.rerenderCards();
580
- this.fireEvent("loaded");
565
+ return this.cardHelperInstance;
566
+ }
567
+ /**
568
+ * Renders the panel.
569
+ *
570
+ * @private
571
+ * @returns {Promise<void>} A promise that resolves when the panel is rendered.
572
+ */
573
+ public async renderPanel(): Promise<void> {
574
+ try {
575
+ await this.rerenderCards();
576
+ this.fireEvent("loaded");
577
+ } catch (error) {
578
+ Log.error(error instanceof Error ? error.message : String(error));
579
+ }
580
+ }
581
+
582
+ /**
583
+ * Sorts the menu items based on the provided order.
584
+ *
585
+ * @private
586
+ * @param {string[]} menuItems - The order of the menu items.
587
+ */
588
+ private _sortMenuItems(menuItems: string[]) {
589
+ const panelMenuItems = this.getAggregation("menuItems") as MenuItem[];
590
+ let sortedMenuItems = sortMenuItems(menuItems, panelMenuItems);
591
+ this.removeAllAggregation("menuItems");
592
+ sortedMenuItems?.forEach((menuItem) => this.addAggregation("menuItems", menuItem));
593
+ }
594
+
595
+ private _setMenuItemsVisibility(menuItem: MenuItem, bVisible: boolean) {
596
+ if (
597
+ menuItem &&
598
+ (menuItem.getId().includes(cardsMenuItems.REFRESH) ||
599
+ menuItem.getId().includes(cardsMenuItems.EDIT_CARDS) ||
600
+ menuItem.getId().includes("showMore"))
601
+ ) {
602
+ menuItem.setVisible(bVisible);
603
+ }
581
604
  }
582
605
 
583
606
  /**
@@ -592,13 +615,14 @@ export default class CardsPanel extends BasePanel {
592
615
  void (async () => {
593
616
  try {
594
617
  // Enable placeholders after updating/rerendering cards
595
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
618
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
596
619
 
597
- this._getCardContainer().removeAllAggregation(sDefaultAggreName);
620
+ this._getCardWrapperContainer().removeAllAggregation(sDefaultAggreName);
598
621
  this._showPlaceHolders();
599
622
  // Fetch Cards from insights service
623
+ const cardHelper = await this.getCardHelper();
600
624
  const preferedCardIDs = this.hasCustomSpace ? PREFERED_CARDS : [];
601
- const userVisibleCardModel = await this.cardHelperInstance?._getUserVisibleCardModel(preferedCardIDs);
625
+ const userVisibleCardModel = await cardHelper._getUserVisibleCardModel(preferedCardIDs);
602
626
  const aCards = userVisibleCardModel.getProperty("/cards") as ICard[];
603
627
  const listBinding = userVisibleCardModel?.bindList("/cards");
604
628
  if (!listBinding.hasListeners("change")) {
@@ -607,9 +631,16 @@ export default class CardsPanel extends BasePanel {
607
631
  await (this._cardsRendered ?? Promise.resolve());
608
632
  const visibleCards = userVisibleCardModel.getProperty("/cards") as ICard[];
609
633
  if (visibleCards.length !== this.aVisibleCardInstances.length && visibleCards.length > 0) {
634
+ // Show cards in UI
610
635
  this._showCards(visibleCards);
611
636
  } else if (!visibleCards.length) {
637
+ //if there are no tiles, hide the panel and show the error panel
638
+ this.setProperty("title", `${this._i18nBundle?.getText("insightsCards")}`);
639
+ this.getMenuItems().forEach((item) => {
640
+ this._setMenuItemsVisibility(item, false);
641
+ });
612
642
  this.fireHandleHidePanel();
643
+ this._addErrorPanel();
613
644
  }
614
645
  });
615
646
  }
@@ -619,6 +650,13 @@ export default class CardsPanel extends BasePanel {
619
650
  if (aCards.length === 0 && showRecommendation === undefined && !skipRecommendation) {
620
651
  await this._getRecommendationCards();
621
652
  } else if (aCards.length) {
653
+ this._errorPanel?.setVisible(false);
654
+ //Update the panel title with the number of cards
655
+ this.setProperty("title", `${this._i18nBundle?.getText("insightsCards")} (${aCards.length})`);
656
+ //if the panel has been loaded and has cards, update the visibility of header elements of the panel
657
+ this.getMenuItems().forEach((item) => {
658
+ this._setMenuItemsVisibility(item, true);
659
+ });
622
660
  if (showRecommendation === undefined) {
623
661
  await this._updateRecommendationStatus();
624
662
  }
@@ -627,11 +665,20 @@ export default class CardsPanel extends BasePanel {
627
665
  await this.checkForRecommendedCards(aCards);
628
666
  } else {
629
667
  this.fireHandleHidePanel();
668
+ this._addErrorPanel();
669
+ const layout = this._getCardsContainer()?._getLayout();
670
+ if (layout.getProperty("expanded")) {
671
+ this.cardsContainer.addContent(this);
672
+ layout?.toggleFullScreen(this);
673
+ //remove the cards panel from the cards container
674
+ this.cardsContainer.removeContent(this);
675
+ }
630
676
  }
631
677
  this._cardsRendered = undefined;
632
678
  resolve();
633
679
  } catch (error) {
634
680
  this.fireHandleHidePanel();
681
+ this._addErrorPanel(false);
635
682
  this._cardsRendered = undefined;
636
683
  if (error instanceof Error) {
637
684
  Log.error(error.message);
@@ -643,13 +690,61 @@ export default class CardsPanel extends BasePanel {
643
690
  }
644
691
  return this._cardsRendered;
645
692
  }
693
+
694
+ /**
695
+ * Adds an error panel when no cards are available.
696
+ *
697
+ * @private
698
+ */
699
+ private _addErrorPanel(showActions: boolean = true) {
700
+ const parentContainer = this._getCardsContainer() as BaseContainer;
701
+ //set the visibility of cards panel to false
702
+ this.setVisible(false);
703
+ if (!this._errorPanel) {
704
+ this._errorPanel = new ErrorPanel(`${this.getId()}-errorCardsPanel`, {
705
+ additionalData: [
706
+ new Button(`${this.getId()}-addInsightsCardsBtn`, {
707
+ text: this._i18nBundle.getText("addInsightsCardBtn"),
708
+ type: "Emphasized",
709
+ press: () => {
710
+ (this._getCardsContainer() as BaseContainer)
711
+ ?._getLayout()
712
+ .openSettingsDialog(SETTINGS_PANELS_KEYS.INSIGHTS_CARDS);
713
+ }
714
+ })
715
+ ],
716
+ messageTitle: this._i18nBundle.getText("noAppsTitle"),
717
+ messageDescription: this._i18nBundle.getText("noInsightsCardsMsg")
718
+ });
719
+ this._errorPanel.getData();
720
+ //Add the menu items and action buttons to the error panel
721
+ const editCardsMenuItem = this._createEditCardsMenuItem(errorPanelMenuItems.EDIT_CARDS, "manageCards");
722
+ this._errorPanel.addAggregation("menuItems", editCardsMenuItem);
723
+ this._sortMenuItems(sortedMenuItems);
724
+ this._errorPanel.setProperty("enableSettings", true);
725
+ }
726
+ (this._errorPanel.getProperty("additionalData") as Control[]).forEach((control) => control.setVisible(showActions));
727
+ //Add the title to the error panel
728
+ this._errorPanel.setProperty("title", this._i18nBundle?.getText("insightsCards"));
729
+ this._errorPanel.setVisible(true);
730
+ parentContainer.addAggregation("content", this._errorPanel);
731
+ //set the visibility of header elements of the error panel
732
+ this._errorPanel.getMenuItems().forEach((item) => {
733
+ if ((item.getId().includes(errorPanelMenuItems.EDIT_CARDS) && showActions) || item.getId().includes("settings")) {
734
+ item.setVisible(true);
735
+ } else {
736
+ item.setVisible(false);
737
+ }
738
+ });
739
+ }
646
740
  /**
647
741
  * Sets the new visible cards in the model and updates the UI.
648
742
  * @private
649
743
  */
650
744
  private async setNewVisibleCards() {
745
+ const cardHelper = await this.getCardHelper();
651
746
  const preferedCardIDs = this.hasCustomSpace ? PREFERED_CARDS : [];
652
- const visibleCardModel = await this.cardHelperInstance._getUserVisibleCardModel(preferedCardIDs);
747
+ const visibleCardModel = await cardHelper?._getUserVisibleCardModel(preferedCardIDs);
653
748
  const aNewCards = visibleCardModel.getProperty("/cards") as ICard[];
654
749
  this._controlModel.setProperty("/userVisibleCards", aNewCards);
655
750
  this._showCards(aNewCards);
@@ -691,7 +786,8 @@ export default class CardsPanel extends BasePanel {
691
786
  const aUpdatedCards = await this.regenerateCards(uniqueManifestDetails, manifestIds);
692
787
  if (aUpdatedCards?.length) {
693
788
  // Update the model with updated cards
694
- await this.cardHelperInstance._updateCards(
789
+ const cardHelper = await this.getCardHelper();
790
+ await cardHelper?._updateCards(
695
791
  aUpdatedCards.map((oCard: ICardDetails) => oCard?.newManifest?.descriptorContent) as ICardManifest[]
696
792
  );
697
793
  } else {
@@ -920,7 +1016,8 @@ export default class CardsPanel extends BasePanel {
920
1016
  */
921
1017
  private async _handleRecommendationCards(aRecommendedCards: ICard[]) {
922
1018
  const cardManifests = aRecommendedCards.map((oCard) => oCard.descriptorContent);
923
- await this.cardHelperInstance?._createCards(cardManifests);
1019
+ const cardHelper = await this.getCardHelper();
1020
+ await cardHelper?._createCards(cardManifests);
924
1021
  await this._updateRecommendationStatus();
925
1022
  return this.setNewVisibleCards();
926
1023
  }
@@ -954,15 +1051,15 @@ export default class CardsPanel extends BasePanel {
954
1051
  rowSize: this.cardHeight,
955
1052
  gap: "1rem"
956
1053
  });
957
- this.cardsContainer = new GridContainer(`${this.getId()}-insightsCardsFlexBox`, {
1054
+ this.cardsWrapperContainer = new GridContainer(`${this.getId()}-insightsCardsFlexBox`, {
958
1055
  visible: "{= !${/isPhone}}"
959
1056
  })
960
1057
  .addStyleClass("sapUiSmallMarginTop")
961
1058
  .setLayout(this.cardsContainerSettings);
962
- this.cardsContainer.setModel(this._controlModel);
963
- this.addDragDropConfigTo(this.cardsContainer, (oEvent) => this._handleCardsDnd(oEvent));
1059
+ this.cardsWrapperContainer.setModel(this._controlModel);
1060
+ this.addDragDropConfigTo(this.cardsWrapperContainer, (oEvent) => this._handleCardsDnd(oEvent));
964
1061
 
965
- return this.cardsContainer;
1062
+ return this.cardsWrapperContainer;
966
1063
  }
967
1064
 
968
1065
  /**
@@ -979,7 +1076,7 @@ export default class CardsPanel extends BasePanel {
979
1076
  scrollTime: 1000,
980
1077
  showDividers: false,
981
1078
  visible: "{/isPhone}"
982
- });
1079
+ }).addStyleClass("sapCuxInsightsMobileCardsContainer");
983
1080
  this.cardsMobileContainer.setModel(this._controlModel);
984
1081
  this.addDragDropConfigTo(this.cardsMobileContainer, (oEvent) => this._handleCardsDnd(oEvent));
985
1082
 
@@ -1012,9 +1109,9 @@ export default class CardsPanel extends BasePanel {
1012
1109
  });
1013
1110
 
1014
1111
  // add HBox as item to GridList
1015
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
1112
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
1016
1113
  if (sDefaultAggreName) {
1017
- this._getCardContainer().addAggregation(sDefaultAggreName, oPreviewHBox);
1114
+ this._getCardWrapperContainer().addAggregation(sDefaultAggreName, oPreviewHBox);
1018
1115
  }
1019
1116
  }
1020
1117
 
@@ -1025,7 +1122,7 @@ export default class CardsPanel extends BasePanel {
1025
1122
  * @returns {number} The number of placeholder cards that should be displayed. Defaults to 1 if no valid count is determined.
1026
1123
  */
1027
1124
  private _calculatePlaceholderCardCount(): number {
1028
- const layoutDomRef = this._getInsightsContainer()?._getLayout()?.getDomRef();
1125
+ const layoutDomRef = this._getCardsContainer()?._getLayout()?.getDomRef();
1029
1126
  let count = 0;
1030
1127
  if (layoutDomRef) {
1031
1128
  const sectionDomRef = layoutDomRef.childNodes[0] as Element;
@@ -1058,14 +1155,11 @@ export default class CardsPanel extends BasePanel {
1058
1155
  * @param {ICard[]} aCards - The cards to display.
1059
1156
  */
1060
1157
  private _showCards(aCards: ICard[]) {
1061
- const panelName = this.getMetadata().getName();
1158
+ const parentContainer = this._getCardsContainer() as BaseContainer;
1159
+ parentContainer.removeContent(this._errorPanel);
1062
1160
  this.fireHandleUnhidePanel();
1063
- this._getInsightsContainer()?.updatePanelsItemCount(aCards.length, panelName);
1064
- if (this._headerVisible) {
1065
- this.setProperty("title", `${this._i18nBundle?.getText("insightsCards")} (${aCards.length})`);
1066
- }
1067
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
1068
- this._getCardContainer().removeAllAggregation(sDefaultAggreName);
1161
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
1162
+ this._getCardWrapperContainer().removeAllAggregation(sDefaultAggreName);
1069
1163
  this.aVisibleCardInstances = [];
1070
1164
  this.cardsInViewport = [];
1071
1165
 
@@ -1113,8 +1207,8 @@ export default class CardsPanel extends BasePanel {
1113
1207
  });
1114
1208
 
1115
1209
  // add VBox as item to GridList
1116
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
1117
- this._getCardContainer().addAggregation(sDefaultAggreName, oPreviewVBox);
1210
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
1211
+ this._getCardWrapperContainer().addAggregation(sDefaultAggreName, oPreviewVBox);
1118
1212
  });
1119
1213
  }
1120
1214
 
@@ -1125,38 +1219,13 @@ export default class CardsPanel extends BasePanel {
1125
1219
  * @param {Event} event - The event object.
1126
1220
  */
1127
1221
  private _handleEditCards(event: Event) {
1128
- /* If called from Panel Header event.source() will return TilesPanel, if called from Insights Container event.source() will return InsightsContainer.
1222
+ /* If called from Panel Header event.source() will return TilesPanel, if called from cards Container event.source() will return cardsContainer.
1129
1223
  _getLayout is available at Container Level*/
1130
1224
  let parent: ManagedObject = event.getSource<CardsPanel>().getParent() || this;
1131
- if (parent instanceof CardsPanel) {
1225
+ if (parent instanceof CardsPanel || parent instanceof ErrorPanel) {
1132
1226
  parent = parent.getParent() as ManagedObject;
1133
1227
  }
1134
- (parent as InsightsContainer)?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.INSIGHTS_CARDS);
1135
- }
1136
-
1137
- /**
1138
- * Hides the header of the cards panel.
1139
- *
1140
- * @private
1141
- */
1142
- public handleHideHeader() {
1143
- this._headerVisible = false;
1144
- this.setProperty("title", "");
1145
- this._toggleHeaderActions(false);
1146
- }
1147
-
1148
- /**
1149
- * Adds the header to the cards panel.
1150
- *
1151
- * @private
1152
- */
1153
- public handleAddHeader() {
1154
- this._headerVisible = true;
1155
- this.setProperty(
1156
- "title",
1157
- `${this._i18nBundle?.getText("insightsCards")} (${(this._controlModel.getProperty("/userVisibleCards") as ICard[])?.length})`
1158
- );
1159
- this._toggleHeaderActions(true);
1228
+ (parent as CardsContainer)?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.INSIGHTS_CARDS);
1160
1229
  }
1161
1230
 
1162
1231
  /**
@@ -1186,14 +1255,15 @@ export default class CardsPanel extends BasePanel {
1186
1255
  // take the moved item from dragIndex and add to dropindex
1187
1256
  try {
1188
1257
  if (!(this._controlModel.getProperty("/userAllCards") as ICard[]).length) {
1189
- const userAllCardsModel = await this.cardHelperInstance._getUserAllCardModel();
1258
+ const cardHelper = await this.getCardHelper();
1259
+ const userAllCardsModel = await cardHelper?._getUserAllCardModel();
1190
1260
  this._controlModel.setProperty("/userAllCards", userAllCardsModel.getProperty("/cards"));
1191
1261
  await this.updateCardList(sInsertPosition, iDropItemIndex, iDragItemIndex);
1192
1262
  } else {
1193
1263
  await this.updateCardList(sInsertPosition, iDropItemIndex, iDragItemIndex);
1194
1264
  }
1195
1265
  setTimeout(() => {
1196
- focusDraggedItem(this._getCardContainer(), iDropItemIndex);
1266
+ focusDraggedItem(this._getCardWrapperContainer(), iDropItemIndex);
1197
1267
  }, 0);
1198
1268
  } catch (error) {
1199
1269
  if (error instanceof Error) {
@@ -1234,12 +1304,9 @@ export default class CardsPanel extends BasePanel {
1234
1304
  iUpdatedDropItemIndex++;
1235
1305
  }
1236
1306
  if (iUpdatedDragItemIndex !== iUpdatedDropItemIndex) {
1237
- const aUpdatedCards = this.cardHelperInstance.handleDndCardsRanking(
1238
- iUpdatedDragItemIndex,
1239
- iUpdatedDropItemIndex,
1240
- aUserAllCards
1241
- );
1242
- await this.cardHelperInstance._updateMultipleCards(aUpdatedCards, "PUT");
1307
+ const cardHelper = await this.getCardHelper();
1308
+ const aUpdatedCards = cardHelper?.handleDndCardsRanking(iUpdatedDragItemIndex, iUpdatedDropItemIndex, aUserAllCards);
1309
+ await cardHelper?._updateMultipleCards(aUpdatedCards, "PUT");
1243
1310
  this._sortCardsOnRank(aUserAllCards);
1244
1311
  this._controlModel.setProperty("/userAllCards", aUserAllCards);
1245
1312
  this._controlModel.setProperty(
@@ -1299,7 +1366,7 @@ export default class CardsPanel extends BasePanel {
1299
1366
  * @returns {number} - The number of visible cards.
1300
1367
  */
1301
1368
  private _calculateVisibleCardCount() {
1302
- const layout = this._getInsightsContainer()._getLayout();
1369
+ const layout = this._getCardsContainer()._getLayout();
1303
1370
  const pageDomRef = layout.getDomRef();
1304
1371
  const deviceType = this.getDeviceType();
1305
1372
  let count = 1;
@@ -1333,7 +1400,7 @@ export default class CardsPanel extends BasePanel {
1333
1400
  * @override
1334
1401
  */
1335
1402
  public _adjustLayout() {
1336
- const layout = this._getInsightsContainer()?._getLayout();
1403
+ const layout = this._getCardsContainer()?._getLayout();
1337
1404
  let cardWidth = this.cardWidth;
1338
1405
  const isMobileDevice = this.getDeviceType() === DeviceType.Mobile;
1339
1406
 
@@ -1352,8 +1419,8 @@ export default class CardsPanel extends BasePanel {
1352
1419
  if (cardCount !== this.cardsInViewport.length) {
1353
1420
  this.cardsInViewport = this.aVisibleCardInstances.slice(0, cardCount);
1354
1421
 
1355
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
1356
- this._getCardContainer().removeAllAggregation(sDefaultAggreName);
1422
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
1423
+ this._getCardWrapperContainer().removeAllAggregation(sDefaultAggreName);
1357
1424
  this.cardsInViewport.forEach((card) => {
1358
1425
  const manifest = card.getManifest() as ICardManifest;
1359
1426
  const sType = manifest["sap.card"]?.type;
@@ -1376,31 +1443,22 @@ export default class CardsPanel extends BasePanel {
1376
1443
  if (overlayHBoxWrapper) {
1377
1444
  cardWrapper.addItem(overlayHBoxWrapper);
1378
1445
  }
1379
- const sDefaultAggreName = this._getCardContainer().getMetadata().getDefaultAggregationName();
1380
- this._getCardContainer().addAggregation(sDefaultAggreName, cardWrapper);
1446
+ const sDefaultAggreName = this._getCardWrapperContainer().getMetadata().getDefaultAggregationName();
1447
+ this._getCardWrapperContainer().addAggregation(sDefaultAggreName, cardWrapper);
1381
1448
  });
1382
1449
 
1383
1450
  this.shareCardsInViewport();
1384
1451
  }
1385
-
1386
- // show/hide Full Screen Button if available
1452
+ // show/hide full screen button
1387
1453
  const showFullScreenButton = isElementExpanded || this.aVisibleCardInstances.length > cardCount;
1388
- if (this._headerVisible) {
1389
- this._getInsightsContainer()?.toggleFullScreenElements(this, showFullScreenButton);
1390
- } else {
1391
- const fullScreenButton = getAssociatedFullScreenMenuItem(this);
1392
- const fullScreenText = fullScreenButton?.getTitle();
1393
- this._getInsightsContainer()?.updateMenuItem(
1394
- this._controlMap.get(`${this.getId()}-${cardsContainerMenuItems.SHOW_MORE}`) as MenuItem,
1395
- showFullScreenButton,
1396
- fullScreenText
1397
- );
1398
- this._getInsightsContainer()?.updateActionButton(
1399
- this._controlMap.get(`${this.getId()}-${cardsContainerActionButtons.SHOW_MORE}`) as Button,
1400
- showFullScreenButton,
1401
- fullScreenText
1402
- );
1403
- }
1454
+ const fullScreenButton = getAssociatedFullScreenMenuItem(this);
1455
+ const fullScreenText = fullScreenButton.getTitle();
1456
+ //update the panel menu-item show more button and show more action button in panel header
1457
+ fullScreenButton?.setVisible(showFullScreenButton);
1458
+ fullScreenButton?.setTitle(fullScreenText);
1459
+ const fullScreenActionButton = getAssociatedFullScreenButton(this);
1460
+ fullScreenActionButton?.setVisible(showFullScreenButton);
1461
+ fullScreenActionButton?.setText(fullScreenText);
1404
1462
  } else {
1405
1463
  this.cardWidth = this.getDeviceType() === DeviceType.Mobile ? "19rem" : "22rem";
1406
1464
  }
@@ -1412,53 +1470,17 @@ export default class CardsPanel extends BasePanel {
1412
1470
  }
1413
1471
  }
1414
1472
 
1415
- /**
1416
- * Retrieves the menu items for the container.
1417
- *
1418
- * @private
1419
- * @returns {MenuItem[]} An array of MenuItem instances.
1420
- */
1421
- public getContainerMenuItems(): MenuItem[] {
1422
- if (!this._containerMenuItems) {
1423
- const containerRefreshMenuItem = this._createRefreshMenuItem(cardsContainerMenuItems.REFRESH, "containerCardsRefresh");
1424
- const containerEditCardsMenuItem = this._createEditCardsMenuItem(cardsContainerMenuItems.EDIT_CARDS, "containerManageCards");
1425
- const containerShowMoreMenuItem = createShowMoreMenuItem(this, cardsContainerMenuItems.SHOW_MORE, "containerCardsShowMore");
1426
- this._controlMap.set(`${this.getId()}-${cardsContainerMenuItems.SHOW_MORE}`, containerShowMoreMenuItem);
1427
- this._containerMenuItems = [containerRefreshMenuItem, containerEditCardsMenuItem, containerShowMoreMenuItem];
1428
- }
1429
- return this._containerMenuItems;
1430
- }
1431
-
1432
- /**
1433
- * Retrieves the action buttons for the container.
1434
- *
1435
- * @private
1436
- * @returns {Button[]} An array of Button instances.
1437
- */
1438
- public getContainerActionButtons(): Button[] {
1439
- if (!this._containerActionButtons) {
1440
- this._containerActionButtons = [];
1441
- const actionButton = createShowMoreActionButton(this, cardsContainerActionButtons.SHOW_MORE, "containerCardsShowMore");
1442
- if (actionButton) {
1443
- this._controlMap.set(`${this.getId()}-${cardsContainerActionButtons.SHOW_MORE}`, actionButton);
1444
- this._containerActionButtons.push(actionButton);
1445
- }
1446
- }
1447
-
1448
- return this._containerActionButtons;
1449
- }
1450
-
1451
1473
  /**
1452
1474
  * Retrieves the insights container.
1453
1475
  *
1454
1476
  * @private
1455
- * @returns {InsightsContainer} - The insights container.
1477
+ * @returns {CardsContainer} - The cards container.
1456
1478
  */
1457
- private _getInsightsContainer(): InsightsContainer {
1458
- if (!this.insightsContainer) {
1459
- this.insightsContainer = this.getParent() as InsightsContainer;
1479
+ private _getCardsContainer(): CardsContainer {
1480
+ if (!this.cardsContainer) {
1481
+ this.cardsContainer = this.getParent() as CardsContainer;
1460
1482
  }
1461
- return this.insightsContainer;
1483
+ return this.cardsContainer;
1462
1484
  }
1463
1485
 
1464
1486
  /**
@@ -1506,21 +1528,6 @@ export default class CardsPanel extends BasePanel {
1506
1528
  return menuItem;
1507
1529
  }
1508
1530
 
1509
- /**
1510
- * Toggles the visibility of the header actions.
1511
- *
1512
- * @param {boolean} bShow - Whether to show or hide the header actions.
1513
- * @private
1514
- */
1515
- private _toggleHeaderActions(bShow: boolean) {
1516
- (this.getAggregation("menuItems") as MenuItem[])?.forEach((menuItem) => {
1517
- this._getInsightsContainer()?.toggleMenuListItem(menuItem, bShow);
1518
- });
1519
- (this.getAggregation("actionButtons") as Button[])?.forEach((actionButton) =>
1520
- this._getInsightsContainer()?.toggleActionButton(actionButton, bShow)
1521
- );
1522
- }
1523
-
1524
1531
  /**
1525
1532
  * Retrieves the card container based on the device type.
1526
1533
  *
@@ -1528,24 +1535,11 @@ export default class CardsPanel extends BasePanel {
1528
1535
  * @returns {GridContainer | HeaderContainer} - The card container.
1529
1536
  *
1530
1537
  */
1531
- private _getCardContainer() {
1538
+ private _getCardWrapperContainer() {
1532
1539
  if (this.getDeviceType() === DeviceType.Mobile) {
1533
1540
  return this.cardsMobileContainer;
1534
1541
  }
1535
- return this.cardsContainer;
1536
- }
1537
-
1538
- /**
1539
- * Sorts the menu items based on the provided order.
1540
- *
1541
- * @private
1542
- * @param {string[]} menuItems - The order of the menu items.
1543
- */
1544
- private _sortMenuItems(menuItems: string[]) {
1545
- const panelMenuItems = this.getAggregation("menuItems") as MenuItem[];
1546
- let sortedMenuItems = sortMenuItems(menuItems, panelMenuItems);
1547
- this.removeAllAggregation("menuItems");
1548
- sortedMenuItems?.forEach((menuItem) => this.addAggregation("menuItems", menuItem));
1542
+ return this.cardsWrapperContainer;
1549
1543
  }
1550
1544
 
1551
1545
  /**
@@ -1572,4 +1566,32 @@ export default class CardsPanel extends BasePanel {
1572
1566
  runtimeHostCreated = false;
1573
1567
  (this.getAggregation("host") as Host)?.destroy();
1574
1568
  }
1569
+
1570
+ /**
1571
+ * Initializes the CardHelper service promise.
1572
+ *
1573
+ * @private
1574
+ * @returns {Promise<ICardHelperInstance>} - card helper service.
1575
+ */
1576
+ private getCardHelperService(): Promise<ICardHelperInstance> {
1577
+ if (this.cardHelper === null) {
1578
+ this.cardHelper = (CardHelper as ICardHelper).getServiceAsync();
1579
+ }
1580
+ return this.cardHelper;
1581
+ }
1582
+
1583
+ /**
1584
+ * Checks if insights service is enabled.
1585
+ *
1586
+ * @private
1587
+ * @returns {Promise<boolean>} - true if insights service is enabled else false.
1588
+ */
1589
+ public async isInsightsEnabled(): Promise<boolean> {
1590
+ try {
1591
+ return (await this.getCardHelperService()) !== null;
1592
+ } catch (error) {
1593
+ Log.error(error instanceof Error ? error.message : String(error));
1594
+ return false;
1595
+ }
1596
+ }
1575
1597
  }