@sapui5/sap.cux.home 1.139.0 → 1.140.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 (295) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +1 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +7 -0
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.js +113 -64
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  7. package/src/sap/cux/home/AdvancedSettingsPanel.ts +47 -15
  8. package/src/sap/cux/home/App.d.ts +2 -2
  9. package/src/sap/cux/home/App.js +2 -2
  10. package/src/sap/cux/home/App.js.map +1 -1
  11. package/src/sap/cux/home/App.ts +2 -2
  12. package/src/sap/cux/home/AppsContainer.d.ts +2 -2
  13. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsContainer.js +3 -4
  15. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  16. package/src/sap/cux/home/AppsContainer.ts +3 -4
  17. package/src/sap/cux/home/BaseApp.d.ts +2 -2
  18. package/src/sap/cux/home/BaseApp.js +2 -2
  19. package/src/sap/cux/home/BaseApp.js.map +1 -1
  20. package/src/sap/cux/home/BaseApp.ts +2 -2
  21. package/src/sap/cux/home/BaseAppPanel.d.ts +10 -0
  22. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  23. package/src/sap/cux/home/BaseAppPanel.js +21 -2
  24. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  25. package/src/sap/cux/home/BaseAppPanel.ts +15 -2
  26. package/src/sap/cux/home/BaseContainer.d.ts +10 -27
  27. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  28. package/src/sap/cux/home/BaseContainer.gen.d.ts +61 -0
  29. package/src/sap/cux/home/BaseContainer.js +39 -71
  30. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  31. package/src/sap/cux/home/BaseContainer.ts +33 -77
  32. package/src/sap/cux/home/BaseContainerRenderer.d.ts +2 -0
  33. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  34. package/src/sap/cux/home/BaseContainerRenderer.js +31 -3
  35. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  36. package/src/sap/cux/home/BaseContainerRenderer.ts +39 -2
  37. package/src/sap/cux/home/BaseLayout.d.ts +2 -2
  38. package/src/sap/cux/home/BaseLayout.d.ts.map +1 -1
  39. package/src/sap/cux/home/BaseLayout.js +5 -4
  40. package/src/sap/cux/home/BaseLayout.js.map +1 -1
  41. package/src/sap/cux/home/BaseLayout.ts +5 -4
  42. package/src/sap/cux/home/BaseNewsItem.d.ts +2 -2
  43. package/src/sap/cux/home/BaseNewsItem.js +2 -2
  44. package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
  45. package/src/sap/cux/home/BaseNewsItem.ts +2 -2
  46. package/src/sap/cux/home/BaseNewsPanel.d.ts +4 -3
  47. package/src/sap/cux/home/BaseNewsPanel.d.ts.map +1 -1
  48. package/src/sap/cux/home/BaseNewsPanel.js +14 -3
  49. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  50. package/src/sap/cux/home/BaseNewsPanel.ts +10 -4
  51. package/src/sap/cux/home/BasePagePanel.d.ts +2 -2
  52. package/src/sap/cux/home/BasePagePanel.d.ts.map +1 -1
  53. package/src/sap/cux/home/BasePagePanel.js +10 -2
  54. package/src/sap/cux/home/BasePagePanel.js.map +1 -1
  55. package/src/sap/cux/home/BasePagePanel.ts +6 -2
  56. package/src/sap/cux/home/BasePanel.d.ts +2 -21
  57. package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
  58. package/src/sap/cux/home/BasePanel.gen.d.ts +109 -0
  59. package/src/sap/cux/home/BasePanel.js +15 -31
  60. package/src/sap/cux/home/BasePanel.js.map +1 -1
  61. package/src/sap/cux/home/BasePanel.ts +11 -34
  62. package/src/sap/cux/home/BaseSettingsDialog.d.ts +2 -2
  63. package/src/sap/cux/home/BaseSettingsDialog.js +2 -2
  64. package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
  65. package/src/sap/cux/home/BaseSettingsDialog.ts +2 -2
  66. package/src/sap/cux/home/BaseSettingsPanel.d.ts +2 -2
  67. package/src/sap/cux/home/BaseSettingsPanel.js +2 -2
  68. package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
  69. package/src/sap/cux/home/BaseSettingsPanel.ts +2 -2
  70. package/src/sap/cux/home/CardsPanel.d.ts +2 -2
  71. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  72. package/src/sap/cux/home/CardsPanel.js +13 -5
  73. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  74. package/src/sap/cux/home/CardsPanel.ts +9 -5
  75. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  76. package/src/sap/cux/home/ContentAdditionDialog.js +0 -1
  77. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  78. package/src/sap/cux/home/ContentAdditionDialog.ts +0 -1
  79. package/src/sap/cux/home/ErrorPanel.d.ts +2 -2
  80. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  81. package/src/sap/cux/home/ErrorPanel.js +13 -3
  82. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  83. package/src/sap/cux/home/ErrorPanel.ts +9 -3
  84. package/src/sap/cux/home/FavAppPanel.d.ts +2 -2
  85. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  86. package/src/sap/cux/home/FavAppPanel.js +7 -6
  87. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  88. package/src/sap/cux/home/FavAppPanel.ts +10 -9
  89. package/src/sap/cux/home/FrequentAppPanel.d.ts +2 -2
  90. package/src/sap/cux/home/FrequentAppPanel.js +2 -2
  91. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  92. package/src/sap/cux/home/FrequentAppPanel.ts +2 -2
  93. package/src/sap/cux/home/Group.d.ts +2 -2
  94. package/src/sap/cux/home/Group.js +2 -2
  95. package/src/sap/cux/home/Group.js.map +1 -1
  96. package/src/sap/cux/home/Group.ts +2 -2
  97. package/src/sap/cux/home/IToDoPanel.d.ts +2 -2
  98. package/src/sap/cux/home/IToDoPanel.js.map +1 -1
  99. package/src/sap/cux/home/IToDoPanel.ts +2 -2
  100. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  101. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  102. package/src/sap/cux/home/InsightsAdditionPanel.ts +3 -1
  103. package/src/sap/cux/home/InsightsContainer.d.ts +4 -4
  104. package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
  105. package/src/sap/cux/home/InsightsContainer.js +6 -11
  106. package/src/sap/cux/home/InsightsContainer.js.map +1 -1
  107. package/src/sap/cux/home/InsightsContainer.ts +6 -11
  108. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  109. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +2 -2
  110. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  111. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +2 -3
  112. package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts.map +1 -1
  113. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +4 -4
  114. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  115. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +6 -4
  116. package/src/sap/cux/home/KeyUserSettingsDialog.d.ts.map +1 -1
  117. package/src/sap/cux/home/KeyUserSettingsDialog.js +18 -12
  118. package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
  119. package/src/sap/cux/home/KeyUserSettingsDialog.ts +9 -5
  120. package/src/sap/cux/home/Layout.d.ts +2 -3
  121. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  122. package/src/sap/cux/home/Layout.js +35 -42
  123. package/src/sap/cux/home/Layout.js.map +1 -1
  124. package/src/sap/cux/home/Layout.ts +15 -19
  125. package/src/sap/cux/home/MenuItem.d.ts +2 -2
  126. package/src/sap/cux/home/MenuItem.js +2 -2
  127. package/src/sap/cux/home/MenuItem.js.map +1 -1
  128. package/src/sap/cux/home/MenuItem.ts +2 -2
  129. package/src/sap/cux/home/NewsAndPagesContainer.d.ts +11 -7
  130. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
  131. package/src/sap/cux/home/NewsAndPagesContainer.js +22 -26
  132. package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
  133. package/src/sap/cux/home/NewsAndPagesContainer.ts +26 -32
  134. package/src/sap/cux/home/NewsPanel.d.ts +10 -2
  135. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  136. package/src/sap/cux/home/NewsPanel.js +24 -16
  137. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  138. package/src/sap/cux/home/NewsPanel.ts +25 -18
  139. package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
  140. package/src/sap/cux/home/NewsSettingsPanel.js +1 -1
  141. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  142. package/src/sap/cux/home/NewsSettingsPanel.ts +2 -2
  143. package/src/sap/cux/home/NoDataContainer.d.ts +2 -2
  144. package/src/sap/cux/home/NoDataContainer.js +3 -3
  145. package/src/sap/cux/home/NoDataContainer.js.map +1 -1
  146. package/src/sap/cux/home/NoDataContainer.ts +3 -3
  147. package/src/sap/cux/home/PagePanel.d.ts +11 -3
  148. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  149. package/src/sap/cux/home/PagePanel.js +17 -6
  150. package/src/sap/cux/home/PagePanel.js.map +1 -1
  151. package/src/sap/cux/home/PagePanel.ts +17 -7
  152. package/src/sap/cux/home/RecentAppPanel.d.ts +2 -2
  153. package/src/sap/cux/home/RecentAppPanel.js +2 -2
  154. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  155. package/src/sap/cux/home/RecentAppPanel.ts +2 -2
  156. package/src/sap/cux/home/RecommendedAppPanel.d.ts +2 -2
  157. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  158. package/src/sap/cux/home/RecommendedAppPanel.js +15 -9
  159. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  160. package/src/sap/cux/home/RecommendedAppPanel.ts +11 -6
  161. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +48 -0
  162. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -0
  163. package/src/sap/cux/home/SideBySideIconTabFilter.gen.d.ts +33 -0
  164. package/src/sap/cux/home/SideBySideIconTabFilter.js +83 -0
  165. package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -0
  166. package/src/sap/cux/home/SideBySideIconTabFilter.ts +87 -0
  167. package/src/sap/cux/home/SituationPanel.d.ts +2 -2
  168. package/src/sap/cux/home/SituationPanel.js +2 -2
  169. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  170. package/src/sap/cux/home/SituationPanel.ts +2 -2
  171. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +2 -2
  172. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  173. package/src/sap/cux/home/SpaceInsightsPanel.js +11 -3
  174. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  175. package/src/sap/cux/home/SpaceInsightsPanel.ts +7 -3
  176. package/src/sap/cux/home/SpacePanel.d.ts +2 -2
  177. package/src/sap/cux/home/SpacePanel.js +2 -2
  178. package/src/sap/cux/home/SpacePanel.js.map +1 -1
  179. package/src/sap/cux/home/SpacePanel.ts +2 -2
  180. package/src/sap/cux/home/TaskPanel.d.ts +2 -2
  181. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  182. package/src/sap/cux/home/TaskPanel.js +5 -3
  183. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  184. package/src/sap/cux/home/TaskPanel.ts +4 -3
  185. package/src/sap/cux/home/TilesPanel.d.ts +2 -3
  186. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  187. package/src/sap/cux/home/TilesPanel.js +89 -59
  188. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  189. package/src/sap/cux/home/TilesPanel.ts +93 -70
  190. package/src/sap/cux/home/ToDoPanel.d.ts +2 -2
  191. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  192. package/src/sap/cux/home/ToDoPanel.js +13 -3
  193. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  194. package/src/sap/cux/home/ToDoPanel.ts +9 -3
  195. package/src/sap/cux/home/ToDosContainer.d.ts +2 -3
  196. package/src/sap/cux/home/ToDosContainer.d.ts.map +1 -1
  197. package/src/sap/cux/home/ToDosContainer.js +3 -8
  198. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  199. package/src/sap/cux/home/ToDosContainer.ts +2 -9
  200. package/src/sap/cux/home/changeHandler/LayoutHandler.d.ts +1 -2
  201. package/src/sap/cux/home/changeHandler/LayoutHandler.d.ts.map +1 -1
  202. package/src/sap/cux/home/changeHandler/LayoutHandler.js +0 -3
  203. package/src/sap/cux/home/changeHandler/LayoutHandler.js.map +1 -1
  204. package/src/sap/cux/home/changeHandler/LayoutHandler.ts +2 -6
  205. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  206. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +0 -3
  207. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  208. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +0 -3
  209. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  210. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +0 -3
  211. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  212. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +0 -3
  213. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  214. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +0 -3
  215. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  216. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +0 -3
  217. package/src/sap/cux/home/designtime/Layout.designtime.d.ts +1 -1
  218. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  219. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +4 -3
  220. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  221. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +3 -2
  222. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +0 -2
  223. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  224. package/src/sap/cux/home/flexibility/Layout.flexibility.js +0 -2
  225. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  226. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +0 -2
  227. package/src/sap/cux/home/i18n/messagebundle.properties +6 -9
  228. package/src/sap/cux/home/i18n/messagebundle_ar.properties +12 -6
  229. package/src/sap/cux/home/i18n/messagebundle_bg.properties +12 -6
  230. package/src/sap/cux/home/i18n/messagebundle_ca.properties +12 -6
  231. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +12 -6
  232. package/src/sap/cux/home/i18n/messagebundle_cs.properties +12 -6
  233. package/src/sap/cux/home/i18n/messagebundle_cy.properties +12 -6
  234. package/src/sap/cux/home/i18n/messagebundle_da.properties +12 -6
  235. package/src/sap/cux/home/i18n/messagebundle_de.properties +12 -6
  236. package/src/sap/cux/home/i18n/messagebundle_el.properties +18 -12
  237. package/src/sap/cux/home/i18n/messagebundle_en.properties +12 -6
  238. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +12 -6
  239. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +5 -5
  240. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +5 -5
  241. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +12 -6
  242. package/src/sap/cux/home/i18n/messagebundle_es.properties +12 -6
  243. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +12 -6
  244. package/src/sap/cux/home/i18n/messagebundle_et.properties +12 -6
  245. package/src/sap/cux/home/i18n/messagebundle_fi.properties +12 -6
  246. package/src/sap/cux/home/i18n/messagebundle_fr.properties +14 -8
  247. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +12 -6
  248. package/src/sap/cux/home/i18n/messagebundle_hi.properties +12 -6
  249. package/src/sap/cux/home/i18n/messagebundle_hr.properties +12 -6
  250. package/src/sap/cux/home/i18n/messagebundle_hu.properties +12 -6
  251. package/src/sap/cux/home/i18n/messagebundle_id.properties +16 -10
  252. package/src/sap/cux/home/i18n/messagebundle_it.properties +13 -7
  253. package/src/sap/cux/home/i18n/messagebundle_iw.properties +12 -6
  254. package/src/sap/cux/home/i18n/messagebundle_ja.properties +12 -6
  255. package/src/sap/cux/home/i18n/messagebundle_kk.properties +12 -6
  256. package/src/sap/cux/home/i18n/messagebundle_ko.properties +12 -6
  257. package/src/sap/cux/home/i18n/messagebundle_lt.properties +12 -6
  258. package/src/sap/cux/home/i18n/messagebundle_lv.properties +12 -6
  259. package/src/sap/cux/home/i18n/messagebundle_mk.properties +12 -6
  260. package/src/sap/cux/home/i18n/messagebundle_ms.properties +12 -6
  261. package/src/sap/cux/home/i18n/messagebundle_nl.properties +12 -6
  262. package/src/sap/cux/home/i18n/messagebundle_no.properties +12 -6
  263. package/src/sap/cux/home/i18n/messagebundle_pl.properties +12 -6
  264. package/src/sap/cux/home/i18n/messagebundle_pt.properties +12 -6
  265. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +12 -6
  266. package/src/sap/cux/home/i18n/messagebundle_ro.properties +12 -6
  267. package/src/sap/cux/home/i18n/messagebundle_ru.properties +22 -16
  268. package/src/sap/cux/home/i18n/messagebundle_sh.properties +12 -6
  269. package/src/sap/cux/home/i18n/messagebundle_sk.properties +12 -6
  270. package/src/sap/cux/home/i18n/messagebundle_sl.properties +12 -6
  271. package/src/sap/cux/home/i18n/messagebundle_sr.properties +12 -6
  272. package/src/sap/cux/home/i18n/messagebundle_sv.properties +12 -6
  273. package/src/sap/cux/home/i18n/messagebundle_th.properties +12 -6
  274. package/src/sap/cux/home/i18n/messagebundle_tr.properties +12 -6
  275. package/src/sap/cux/home/i18n/messagebundle_uk.properties +12 -6
  276. package/src/sap/cux/home/i18n/messagebundle_vi.properties +12 -6
  277. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +12 -6
  278. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +12 -6
  279. package/src/sap/cux/home/library.d.ts +10 -6
  280. package/src/sap/cux/home/library.d.ts.map +1 -1
  281. package/src/sap/cux/home/library.js +10 -6
  282. package/src/sap/cux/home/library.js.map +1 -1
  283. package/src/sap/cux/home/library.ts +10 -6
  284. package/src/sap/cux/home/themes/base/BaseContainer.less +31 -0
  285. package/src/sap/cux/home/themes/base/KeyUserSettingsDialog.less +5 -0
  286. package/src/sap/cux/home/themes/base/ToDosContainer.less +0 -4
  287. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +0 -4
  288. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts.map +1 -1
  289. package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
  290. package/src/sap/cux/home/utils/UshellPersonalizer.ts +0 -1
  291. package/src/sap/cux/home/utils/KeyUserPersonalization.d.ts +0 -19
  292. package/src/sap/cux/home/utils/KeyUserPersonalization.d.ts.map +0 -1
  293. package/src/sap/cux/home/utils/KeyUserPersonalization.js +0 -126
  294. package/src/sap/cux/home/utils/KeyUserPersonalization.js.map +0 -1
  295. package/src/sap/cux/home/utils/KeyUserPersonalization.ts +0 -93
@@ -95,6 +95,7 @@ interface ApiResponse {
95
95
  value: { fileContent: string }[];
96
96
  // Define other properties if present in ApiResponse
97
97
  }
98
+
98
99
  const BASE_URL = "/sap/opu/odata4/ui2/insights_srv/srvd/ui2/";
99
100
  const REPO_BASE_URL = BASE_URL + "insights_cards_repo_srv/0001/";
100
101
  const EXPORT_API = REPO_BASE_URL + "INSIGHTS_CARDS/com.sap.gateway.srvd.ui2.insights_cards_repo_srv.v0001.importExport?";
@@ -1180,17 +1181,20 @@ export default class AdvancedSettingsPanel extends BaseSettingsPanel {
1180
1181
  });
1181
1182
  }
1182
1183
 
1183
- private filterAuthorizedImportData(aImportedSections: ISection[], oImportData: IExportImportFile): Promise<void> {
1184
- return Promise.all([
1184
+ private async filterAuthorizedImportData(aImportedSections: ISection[], oImportData: IExportImportFile): Promise<void> {
1185
+ let promises: Promise<[] | ISection[] | IPage[] | ICardManifest[] | undefined | JSONModel>[] = [
1185
1186
  this.getDeltaAuthSectionViz(aImportedSections),
1186
- this.filterAuthFavPages(oImportData.favouritePages),
1187
- this.filterAuthCards(oImportData.cards),
1188
- this.getInsightCards() // check : send only cards count here as all cards are not required
1189
- ]).then(async (aResponse) => {
1187
+ this.filterAuthFavPages(oImportData.favouritePages)
1188
+ ];
1189
+ if (await this.isInsightsEnabled()) {
1190
+ promises.push(this.filterAuthCards(oImportData.cards));
1191
+ promises.push(this.getInsightCards()); // check : send only cards count here as all cards are not required
1192
+ }
1193
+ return Promise.all(promises).then(async (aResponse) => {
1190
1194
  const aAuthSections = aResponse[0] as ISection[];
1191
- const aAuthFavPages = aResponse[1];
1192
- const aAuthCards = aResponse[2];
1193
- const iInsightCardsCount = aResponse[3].getProperty("/cardCount") as number;
1195
+ const aAuthFavPages = aResponse[1] as IPage[];
1196
+ const aAuthCards = (aResponse[2] || []) as ICardManifest[];
1197
+ const iInsightCardsCount = ((aResponse[3] as JSONModel)?.getProperty("/cardCount") as number) || 0;
1194
1198
  oImportData.apps = aAuthSections.filter(function (oSection) {
1195
1199
  return oSection.id !== MYINSIGHT_SECTION_ID;
1196
1200
  });
@@ -1255,8 +1259,13 @@ export default class AdvancedSettingsPanel extends BaseSettingsPanel {
1255
1259
  this.oExportList.setBusy(true);
1256
1260
  const persData = await this._getPersonalizationData();
1257
1261
 
1262
+ let promises: (Promise<ISection[]> | Promise<JSONModel>)[] = [this.oAppManagerInstance._getSections(true)];
1263
+ if (await this.isInsightsEnabled()) {
1264
+ promises.push(this.getInsightCards());
1265
+ }
1266
+
1258
1267
  // load all sections, insight apps and cards
1259
- const [favSections, insightModel] = await Promise.all([this.oAppManagerInstance._getSections(true), this.getInsightCards()]);
1268
+ const [favSections, insightModel] = (await Promise.all(promises)) as [ISection[], JSONModel];
1260
1269
 
1261
1270
  const aSections = favSections,
1262
1271
  favApps = aSections.filter((oSection) => {
@@ -1289,6 +1298,24 @@ export default class AdvancedSettingsPanel extends BaseSettingsPanel {
1289
1298
  this.oExportList.setBusy(false);
1290
1299
  }
1291
1300
 
1301
+ /**
1302
+ * Checks if insights is enabled for the system
1303
+ *
1304
+ * @private
1305
+ * @returns {boolean}
1306
+ */
1307
+ private async isInsightsEnabled(): Promise<boolean> {
1308
+ try {
1309
+ if (await (CardHelper as ICardHelper).getServiceAsync()) {
1310
+ return true;
1311
+ }
1312
+ return false;
1313
+ } catch (error) {
1314
+ Log.error(error instanceof Error ? error.message : String(error));
1315
+ return false;
1316
+ }
1317
+ }
1318
+
1292
1319
  /**
1293
1320
  * Returns selected sections out of provided sections
1294
1321
  *
@@ -1338,7 +1365,7 @@ export default class AdvancedSettingsPanel extends BaseSettingsPanel {
1338
1365
  return oSections && oSections.visualizations && oSections.visualizations.length > 0;
1339
1366
  });
1340
1367
 
1341
- return [
1368
+ const sections = [
1342
1369
  {
1343
1370
  title: this._i18nBundle.getText("favApps") as string,
1344
1371
  selected: isAppViz,
@@ -1356,14 +1383,19 @@ export default class AdvancedSettingsPanel extends BaseSettingsPanel {
1356
1383
  selected: oData.tiles && oData.tiles.length > 0,
1357
1384
  enabled: oData.tiles && oData.tiles.length > 0,
1358
1385
  panelClass: TilesPanelName
1359
- },
1360
- {
1386
+ }
1387
+ ];
1388
+
1389
+ if (await this.isInsightsEnabled()) {
1390
+ sections.push({
1361
1391
  title: this._i18nBundle.getText("insightsCards") as string,
1362
1392
  selected: oData.cards && oData.cards.length > 0 && oData.cards.length + iInsightCardsCount <= 99,
1363
1393
  enabled: oData.cards && oData.cards.length > 0 && oData.cards.length + iInsightCardsCount <= 99,
1364
1394
  panelClass: CardsPanelName
1365
- }
1366
- ];
1395
+ });
1396
+ }
1397
+
1398
+ return sections;
1367
1399
  }
1368
1400
 
1369
1401
  private async getDeltaFavPages(aImportedFavPages: IPage[]): Promise<IPage[]> {
@@ -13,8 +13,8 @@ declare module "sap/cux/home/App" {
13
13
  * @version 0.0.1
14
14
  * @since 1.121.0
15
15
  *
16
- * @internal
17
- * @public
16
+ * @private
17
+ * @ui5-restricted ux.eng.s4producthomes1
18
18
  *
19
19
  * @alias sap.cux.home.App
20
20
  */
@@ -20,8 +20,8 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/library", "sap/ushell
20
20
  * @version 0.0.1
21
21
  * @since 1.121.0
22
22
  *
23
- * @internal
24
- * @public
23
+ * @private
24
+ * @ui5-restricted ux.eng.s4producthomes1
25
25
  *
26
26
  * @alias sap.cux.home.App
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"App.js","names":["sap","ui","define","Log","GenericTile","mobileLibrary","Container","__BaseApp","__AppManager","_interopRequireDefault","obj","__esModule","default","BaseApp","AppManager","App","extend","metadata","library","properties","url","type","group","defaultValue","vizId","constructor","_constructor","id","settings","BaseApp.prototype.constructor.call","_getSSBRootControl","oSmartBusinessAppViz","getContent","getComponentInstance","getRootControl","oError","error","Error","message","String","_getInnerGenericTile","oControl","oControlMetadata","getMetadata","oDefaultAggregationDefinition","getDefaultAggregation","sDefaultAggregationName","name","aAggregationData","getAggregation","oAggregationValue","Array","isArray","getState","LoadState","Loaded","_launchApp","event","_this","appManagerInstance","getInstance","tile","getSource","Promise","resolve","fetchFavVizs","then","favoriteApps","selectedApp","find","app","appUrl","getUrl","includes","smartBusinessAppViz","vizInstance","isSmartBusinessTile","ssbRootControl","ssbGenericTile","firePress","getServiceAsync","spaceContentService","launchTileTarget","getTitle","e","reject","_handlePress","_this2","_temp"],"sources":["App.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile, { GenericTile$PressEvent } from \"sap/m/GenericTile\";\nimport mobileLibrary from \"sap/m/library\";\nimport Control from \"sap/ui/core/Control\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport { $AppSettings } from \"./App\";\nimport BaseApp from \"./BaseApp\";\nimport { ICustomVizInstance, ISectionAndVisualization } from \"./interface/AppsInterface\";\nimport AppManager from \"./utils/AppManager\";\n\n/**\n *\n * App class for managing and storing Apps.\n *\n * @extends sap.cux.home.BaseApp\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @internal\n * @public\n *\n * @alias sap.cux.home.App\n */\nexport default class App extends BaseApp {\n\tconstructor(idOrSettings?: string | $AppSettings);\n\tconstructor(id?: string, settings?: $AppSettings);\n\t/**\n\t * Constructor for a new App.\n\t *\n\t * @param {string} [id] ID for the new app, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new app\n\t */\n\tpublic constructor(id?: string, settings?: $AppSettings) {\n\t\tsuper(id, settings);\n\t}\n\tprivate appManagerInstance!: AppManager;\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Url of the app where the user navigates to on click\n\t\t\t */\n\t\t\turl: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * VizId of the app. Used for enabling addition of apps to FavoriteApp panel\n\t\t\t */\n\t\t\tvizId: { type: \"string\", group: \"Misc\", defaultValue: \"\" }\n\t\t}\n\t};\n\tprivate _getSSBRootControl(oSmartBusinessAppViz: ICustomVizInstance): Control | null {\n\t\ttry {\n\t\t\treturn oSmartBusinessAppViz.getContent().getComponentInstance().getRootControl() as Control | null;\n\t\t} catch (oError) {\n\t\t\tLog.error(oError instanceof Error ? oError.message : String(oError));\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate _getInnerGenericTile(oControl: Control | null): GenericTile | null {\n\t\tif (!oControl) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst oControlMetadata = oControl.getMetadata();\n\t\tconst oDefaultAggregationDefinition = oControlMetadata.getDefaultAggregation() as { name?: string } | null;\n\t\tconst sDefaultAggregationName = oDefaultAggregationDefinition ? oDefaultAggregationDefinition?.name : \"content\";\n\n\t\tconst aAggregationData = sDefaultAggregationName ? oControl.getAggregation(sDefaultAggregationName) : null;\n\t\tconst oAggregationValue = Array.isArray(aAggregationData) ? aAggregationData[0] : aAggregationData;\n\n\t\tif (!oAggregationValue) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (oAggregationValue instanceof GenericTile && oAggregationValue.getState() === mobileLibrary.LoadState.Loaded) {\n\t\t\treturn oAggregationValue;\n\t\t}\n\n\t\treturn this._getInnerGenericTile(oAggregationValue as Control);\n\t}\n\n\t/**\n\t * Navigates to the clicked app\n\t * @private\n\t */\n\tprivate async _launchApp(event: GenericTile$PressEvent): Promise<void> {\n\t\tthis.appManagerInstance = this.appManagerInstance || AppManager.getInstance();\n\t\tconst tile = event.getSource();\n\t\tconst favoriteApps: ISectionAndVisualization[] = await this.appManagerInstance.fetchFavVizs(false, true);\n\t\tconst selectedApp = favoriteApps.find((app) => {\n\t\t\tconst appUrl = app.url || \"\";\n\t\t\treturn tile.getUrl().includes(appUrl);\n\t\t});\n\t\tconst smartBusinessAppViz = selectedApp?.vizInstance;\n\t\tconst isSmartBusinessTile = selectedApp?.isSmartBusinessTile;\n\t\tif (smartBusinessAppViz) {\n\t\t\tconst ssbRootControl = this._getSSBRootControl(smartBusinessAppViz);\n\t\t\tconst ssbGenericTile = isSmartBusinessTile && this._getInnerGenericTile(ssbRootControl);\n\n\t\t\tif (ssbGenericTile) {\n\t\t\t\tssbGenericTile.firePress();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// Fallback in case smartBusinessAppViz is undefined or ssbGenericTile is not present\n\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\tawait spaceContentService.launchTileTarget(this.getUrl(), this.getTitle());\n\t}\n\n\t/**\n\t * App Press Handler\n\t * @private\n\t */\n\tpublic async _handlePress(event: GenericTile$PressEvent) {\n\t\tif (this.getUrl()) {\n\t\t\tawait this._launchApp(event);\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"App.js","names":["sap","ui","define","Log","GenericTile","mobileLibrary","Container","__BaseApp","__AppManager","_interopRequireDefault","obj","__esModule","default","BaseApp","AppManager","App","extend","metadata","library","properties","url","type","group","defaultValue","vizId","constructor","_constructor","id","settings","BaseApp.prototype.constructor.call","_getSSBRootControl","oSmartBusinessAppViz","getContent","getComponentInstance","getRootControl","oError","error","Error","message","String","_getInnerGenericTile","oControl","oControlMetadata","getMetadata","oDefaultAggregationDefinition","getDefaultAggregation","sDefaultAggregationName","name","aAggregationData","getAggregation","oAggregationValue","Array","isArray","getState","LoadState","Loaded","_launchApp","event","_this","appManagerInstance","getInstance","tile","getSource","Promise","resolve","fetchFavVizs","then","favoriteApps","selectedApp","find","app","appUrl","getUrl","includes","smartBusinessAppViz","vizInstance","isSmartBusinessTile","ssbRootControl","ssbGenericTile","firePress","getServiceAsync","spaceContentService","launchTileTarget","getTitle","e","reject","_handlePress","_this2","_temp"],"sources":["App.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GenericTile, { GenericTile$PressEvent } from \"sap/m/GenericTile\";\nimport mobileLibrary from \"sap/m/library\";\nimport Control from \"sap/ui/core/Control\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Container from \"sap/ushell/Container\";\nimport SpaceContent from \"sap/ushell/services/SpaceContent\";\nimport { $AppSettings } from \"./App\";\nimport BaseApp from \"./BaseApp\";\nimport { ICustomVizInstance, ISectionAndVisualization } from \"./interface/AppsInterface\";\nimport AppManager from \"./utils/AppManager\";\n\n/**\n *\n * App class for managing and storing Apps.\n *\n * @extends sap.cux.home.BaseApp\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.App\n */\nexport default class App extends BaseApp {\n\tconstructor(idOrSettings?: string | $AppSettings);\n\tconstructor(id?: string, settings?: $AppSettings);\n\t/**\n\t * Constructor for a new App.\n\t *\n\t * @param {string} [id] ID for the new app, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new app\n\t */\n\tpublic constructor(id?: string, settings?: $AppSettings) {\n\t\tsuper(id, settings);\n\t}\n\tprivate appManagerInstance!: AppManager;\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Url of the app where the user navigates to on click\n\t\t\t */\n\t\t\turl: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * VizId of the app. Used for enabling addition of apps to FavoriteApp panel\n\t\t\t */\n\t\t\tvizId: { type: \"string\", group: \"Misc\", defaultValue: \"\" }\n\t\t}\n\t};\n\tprivate _getSSBRootControl(oSmartBusinessAppViz: ICustomVizInstance): Control | null {\n\t\ttry {\n\t\t\treturn oSmartBusinessAppViz.getContent().getComponentInstance().getRootControl() as Control | null;\n\t\t} catch (oError) {\n\t\t\tLog.error(oError instanceof Error ? oError.message : String(oError));\n\t\t\treturn null;\n\t\t}\n\t}\n\n\tprivate _getInnerGenericTile(oControl: Control | null): GenericTile | null {\n\t\tif (!oControl) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst oControlMetadata = oControl.getMetadata();\n\t\tconst oDefaultAggregationDefinition = oControlMetadata.getDefaultAggregation() as { name?: string } | null;\n\t\tconst sDefaultAggregationName = oDefaultAggregationDefinition ? oDefaultAggregationDefinition?.name : \"content\";\n\n\t\tconst aAggregationData = sDefaultAggregationName ? oControl.getAggregation(sDefaultAggregationName) : null;\n\t\tconst oAggregationValue = Array.isArray(aAggregationData) ? aAggregationData[0] : aAggregationData;\n\n\t\tif (!oAggregationValue) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (oAggregationValue instanceof GenericTile && oAggregationValue.getState() === mobileLibrary.LoadState.Loaded) {\n\t\t\treturn oAggregationValue;\n\t\t}\n\n\t\treturn this._getInnerGenericTile(oAggregationValue as Control);\n\t}\n\n\t/**\n\t * Navigates to the clicked app\n\t * @private\n\t */\n\tprivate async _launchApp(event: GenericTile$PressEvent): Promise<void> {\n\t\tthis.appManagerInstance = this.appManagerInstance || AppManager.getInstance();\n\t\tconst tile = event.getSource();\n\t\tconst favoriteApps: ISectionAndVisualization[] = await this.appManagerInstance.fetchFavVizs(false, true);\n\t\tconst selectedApp = favoriteApps.find((app) => {\n\t\t\tconst appUrl = app.url || \"\";\n\t\t\treturn tile.getUrl().includes(appUrl);\n\t\t});\n\t\tconst smartBusinessAppViz = selectedApp?.vizInstance;\n\t\tconst isSmartBusinessTile = selectedApp?.isSmartBusinessTile;\n\t\tif (smartBusinessAppViz) {\n\t\t\tconst ssbRootControl = this._getSSBRootControl(smartBusinessAppViz);\n\t\t\tconst ssbGenericTile = isSmartBusinessTile && this._getInnerGenericTile(ssbRootControl);\n\n\t\t\tif (ssbGenericTile) {\n\t\t\t\tssbGenericTile.firePress();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// Fallback in case smartBusinessAppViz is undefined or ssbGenericTile is not present\n\t\tconst spaceContentService = await Container.getServiceAsync<SpaceContent>(\"SpaceContent\");\n\t\tawait spaceContentService.launchTileTarget(this.getUrl(), this.getTitle());\n\t}\n\n\t/**\n\t * App Press Handler\n\t * @private\n\t */\n\tpublic async _handlePress(event: GenericTile$PressEvent) {\n\t\tif (this.getUrl()) {\n\t\t\tawait this._launchApp(event);\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,8 +25,8 @@ import AppManager from "./utils/AppManager";
25
25
  * @version 0.0.1
26
26
  * @since 1.121.0
27
27
  *
28
- * @internal
29
- * @public
28
+ * @private
29
+ * @ui5-restricted ux.eng.s4producthomes1
30
30
  *
31
31
  * @alias sap.cux.home.App
32
32
  */
@@ -26,8 +26,8 @@ declare module "sap/cux/home/AppsContainer" {
26
26
  * @version 0.0.1
27
27
  * @since 1.121
28
28
  *
29
- * @internal
30
- * @public
29
+ * @private
30
+ * @ui5-restricted ux.eng.s4producthomes1
31
31
  *
32
32
  * @alias sap.cux.home.AppsContainer
33
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AppsContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/AppsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4BAA4B,CAAC;IAQ5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;IAMtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAI3D,OAAO,GAAG,MAAM,kBAAkB,CAAC;IACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IAGpE,OAAO,YAA6C,MAAM,2BAA2B,CAAC;IAEtF,OAAO,aAAa,MAAM,4BAA4B,CAAC;IASvD,MAAM,kBAAkB;;;;KASvB,CAAC;IAEF,MAAM,SAAS;;;;KAId,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;QACvD,OAAO,CAAC,gBAAgB,CAAQ;QAChC,OAAO,CAAC,YAAY,CAAW;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;UAGtB;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAYvC;oBAEU,YAAY,CAAC,EAAE,MAAM,GAAG,sBAAsB;oBAC9C,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAW1D;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAoBnB;;;;;WAKG;QAEH,OAAO,CAAC,uBAAuB;QAsB/B;;;;;WAKG;QACI,iBAAiB;QAWxB;;;;;WAKG;QACU,gBAAgB;QAM7B;;;;;;;WAOG;QACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAKlC;;;;;WAKG;QACH,OAAO,CAAC,SAAS;QAKjB;;;;;WAKG;QAEH,OAAO,CAAC,mBAAmB;QAO3B;;;WAGG;QACH,OAAO,CAAC,eAAe;QAQvB;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAW5B;;;;;WAKG;gBACW,QAAQ;QAgCtB;;;;;;;WAOG;QACH,OAAO,CAAC,mBAAmB;QAY3B;;;;;;;;WAQG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;;WAKG;QACI,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;QAsBzC;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAuBrB;;;;;WAKG;kBACa,cAAc,CAAC,KAAK,EAAE,sBAAsB;QAM5D;;;;WAIG;QACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;QAO/C;;;;;WAKG;QACU,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;QAM7D;;;WAGG;QACH,OAAO,CAAC,cAAc;QAStB;;;;;;WAMG;QACH,OAAO,CAAC,iBAAiB;QAOzB;;;;;WAKG;QACH,OAAO,CAAC,sBAAsB;QAY9B;;;WAGG;QACH,OAAO,CAAC,wBAAwB;QAShC;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;gBACW,+BAA+B;QAStC,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;QAoC9C;;;;;;;;;WASG;QACI,YAAY,IAAI,IAAI;QAgC3B;;;;;;;WAOG;QACH,OAAO,CAAC,oBAAoB;QAe5B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;QAItB;;;;;;WAMG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;;WAIG;QACH,OAAO,CAAC,aAAa;QASrB;;;;WAIG;QACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;KAGhD;CAEA"}
1
+ {"version":3,"file":"AppsContainer.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/AppsContainer.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,4BAA4B,CAAC;IAQ5C,OAAO,WAAW,MAAM,mBAAmB,CAAC;IAE5C,OAAmB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;IAMtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAI3D,OAAO,GAAG,MAAM,kBAAkB,CAAC;IACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IAGpE,OAAO,YAA6C,MAAM,2BAA2B,CAAC;IAEtF,OAAO,aAAa,MAAM,4BAA4B,CAAC;IASvD,MAAM,kBAAkB;;;;KASvB,CAAC;IAEF,MAAM,SAAS;;;;KAId,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,aAAa;QACvD,OAAO,CAAC,gBAAgB,CAAQ;QAChC,OAAO,CAAC,YAAY,CAAW;QAC/B,MAAM,CAAC,QAAQ,CAAC,QAAQ;;;;UAGtB;QACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAYvC;oBAEU,YAAY,CAAC,EAAE,MAAM,GAAG,sBAAsB;oBAC9C,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAW1D;;;;;WAKG;QACI,IAAI,IAAI,IAAI;QAoBnB;;;;;WAKG;QAEH,OAAO,CAAC,uBAAuB;QAsB/B;;;;;WAKG;QACI,iBAAiB;QAWxB;;;;;WAKG;QACU,gBAAgB;QAM7B;;;;;;;WAOG;QACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;QAKlC;;;;;WAKG;QACH,OAAO,CAAC,SAAS;QAKjB;;;;;WAKG;QAEH,OAAO,CAAC,mBAAmB;QAO3B;;;WAGG;QACH,OAAO,CAAC,eAAe;QAQvB;;;;WAIG;QACH,OAAO,CAAC,oBAAoB;QAW5B;;;;;WAKG;gBACW,QAAQ;QAgCtB;;;;;;;WAOG;QACH,OAAO,CAAC,mBAAmB;QAY3B;;;;;;;;WAQG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;;WAKG;QACI,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW;QAsBzC;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAuBrB;;;;;WAKG;kBACa,cAAc,CAAC,KAAK,EAAE,sBAAsB;QAM5D;;;;WAIG;QACU,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;QAO/C;;;;;WAKG;QACU,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;QAM7D;;;WAGG;QACH,OAAO,CAAC,cAAc;QAStB;;;;;;WAMG;QACH,OAAO,CAAC,iBAAiB;QAOzB;;;;;WAKG;QACH,OAAO,CAAC,sBAAsB;QAW9B;;;WAGG;QACH,OAAO,CAAC,wBAAwB;QAShC;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;gBACW,+BAA+B;QAStC,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;QAoC9C;;;;;;;;;WASG;QACI,YAAY,IAAI,IAAI;QAgC3B;;;;;;;WAOG;QACH,OAAO,CAAC,oBAAoB;QAe5B;;;;;;WAMG;QACH,OAAO,CAAC,cAAc;QAItB;;;;;;WAMG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;;WAIG;QACH,OAAO,CAAC,aAAa;QASrB;;;;WAIG;QACH,SAAS,CAAC,4BAA4B,IAAI,MAAM;KAGhD;CAEA"}
@@ -60,8 +60,8 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
60
60
  * @version 0.0.1
61
61
  * @since 1.121
62
62
  *
63
- * @internal
64
- * @public
63
+ * @private
64
+ * @ui5-restricted ux.eng.s4producthomes1
65
65
  *
66
66
  * @alias sap.cux.home.AppsContainer
67
67
  */
@@ -480,8 +480,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/Panel", "sap/m/librar
480
480
  */
481
481
  _togglePanelVisibility: function _togglePanelVisibility(panel, isVisible) {
482
482
  if (this.getDeviceType() === DeviceType.Mobile) {
483
- const panelWrapper = this._getPanelContentWrapper(panel);
484
- panelWrapper.setVisible(isVisible);
483
+ panel.setVisible(isVisible);
485
484
  } else {
486
485
  const iconTabBar = this._getInnerControl();
487
486
  const tabs = iconTabBar?.getItems() || [];
@@ -1 +1 @@
1
- {"version":3,"file":"AppsContainer.js","names":["sap","ui","define","Log","GenericTile","Panel","sap_m_library","EventBus","Parameters","S4MyHome","___utils_placeholder_AppsPlaceholder","__BaseAppPersPanel","__BaseContainer","__Group","__RecommendedAppPanel","___library","___utils_DataFormatUtils","___utils_Device","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","FrameType","GenericTileMode","GenericTileScope","TileSizeBehavior","getAppsPlaceholder","BaseAppPersPanel","BaseContainer","Group","RecommendedAppPanel","OrientationType","getLeanURL","calculateCardWidth","DeviceType","fetchElementProperties","getDefaultAppColor","sLegendName","key","value","get","name","assigned","CONSTANTS","PLACEHOLDER_ITEMS_COUNT","MIN_TILE_WIDTH","MAX_TILE_WIDTH","AppsContainer","extend","metadata","events","appsLoaded","parameters","apps","type","tiles","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","_isInitialRender","init","_init","BaseContainer.prototype.init.call","setProperty","_i18nBundle","getText","eventBus","getInstance","subscribe","channelId","eventId","data","showRecommendation","firstAppsPanel","getContent","getProperty","addStyleClass","addCustomSetting","_attachRouteChangeEvent","_this","handleRouteChange","event","show","getParameter","_temp2","_temp","_appSwitched","showPersistedDialog","Promise","resolve","load","_setPanelsDirty","reject","attachRouteMatched","error","warning","Error","message","String","onBeforeRendering","_onBeforeRendering","_attachPanelSupportedEvent","_removeUnsupportedPanels","adjustLayout","BaseContainer.prototype.onBeforeRendering.call","onAfterRendering","_onAfterRendering","_this2","BaseContainer.prototype.onAfterRendering.call","_activateRecommendationTabPanel","_load","_this3","selectedPanels","getPanels","all","map","selectedPanel","_setApps","_getPanels","isPhone","getDeviceType","Mobile","_getSelectedPanel","_showPersistedDialog","firePersistDialog","panels","panel","setDesktopViewDirty","setMobileViewDirty","_generatePlaceholder","isLoaded","destroyAggregation","placeholderApps","generateApps","Array","fill","status","setApps","_updatePanelContent","_this4","_temp5","_temp4","fireEvent","_temp3","isDirty","isMobileDirty","loadApps","setLoaded","applyPersonalization","getApps","fetchTileVisualization","showErrorCard","getTitle","groups","getAggregation","wrapper","_generateMobileAppsWrapper","_generateAppsWrapper","aggregationName","items","_generateMobileCards","getId","_generateTiles","_addWrapperContent","_updatePanelContentVisibility","appsWrapper","_generateDesktopAppsWrapper","mobileAppsWrapper","errorCard","_generateErrorMessage","hasApps","length","setVisible","getParent","setWidth","_getAppTile","app","actions","tileId","scope","ActionMore","Display","state","getStatus","mode","IconMode","sizeBehavior","Small","header","backgroundColor","getBgColor","tileIcon","getIcon","url","getUrl","frameType","TwoByHalf","renderOnThemeChange","dropAreaOffset","subheader","getSubTitle","press","_onPress","width","_getGroupTile","group","tileBadge","getNumber","getGroupId","_onPanelSelect","_this5","BaseContainer.prototype._onPanelSelect.call","_refreshAllPanels","_this6","refreshPanel","_refreshPanel","_this7","_toggleTabView","supportedPanels","filter","isSupported","iconTabBarControl","_getInnerControl","toggleStyleClass","_onPanelSupported","currentPanel","setSupported","_togglePanelVisibility","isVisible","panelWrapper","_getPanelContentWrapper","iconTabBar","tabs","getItems","selectedTab","find","tab","getKey","unSupportedPanels","hasListeners","attachSupported","bind","_this8","recommendedPanel","_temp6","_enableRecommendationTab","setTileWidth","_setTileWidth","minWidth","maxWidth","getDomRef","domProperties","availableWidth","Object","values","slice","reduce","propertyValue","tileCount","cardLayoutConfig","containerWidth","totalCards","gap","skipDeviceCheck","clampedWidth","getLayout","_adjustLayout","currentLayout","newLayout","SideBySide","shouldAdjustLayout","toggleActionButtons","forEach","currentPanelId","i","panelItems","backgroundDesign","Solid","height","content","push","item","addAggregation","_showErrorCard","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["AppsContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IconTabBar, { IconTabBar$SelectEvent } from \"sap/m/IconTabBar\";\nimport IconTabFilter from \"sap/m/IconTabFilter\";\nimport Panel from \"sap/m/Panel\";\nimport VBox from \"sap/m/VBox\";\nimport { BackgroundDesign, FrameType, GenericTileMode, GenericTileScope, LoadState, TileSizeBehavior } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Parameters from \"sap/ui/core/theming/Parameters\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport App from \"./App\";\nimport { $AppsContainerSettings } from \"./AppsContainer\";\nimport { getAppsPlaceholder } from \"./utils/placeholder/AppsPlaceholder\";\nimport BaseApp from \"./BaseApp\";\nimport BaseAppPanel, { BaseAppPanel$SupportedEvent } from \"./BaseAppPanel\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport BaseContainer from \"./BaseContainer\";\nimport Group from \"./Group\";\nimport MenuItem from \"./MenuItem\";\nimport RecommendedAppPanel from \"./RecommendedAppPanel\";\nimport { ICustomVisualization } from \"./interface/AppsInterface\";\nimport { OrientationType } from \"./library\";\nimport { getLeanURL } from \"./utils/DataFormatUtils\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\n\nconst getDefaultAppColor = () => {\n\tconst sLegendName = \"sapLegendColor9\";\n\treturn {\n\t\tkey: sLegendName,\n\t\tvalue: Parameters.get({\n\t\t\tname: sLegendName\n\t\t}),\n\t\tassigned: false\n\t};\n};\n\nconst CONSTANTS = {\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tMIN_TILE_WIDTH: 304,\n\tMAX_TILE_WIDTH: 456\n};\n\n/**\n *\n * Container class for managing and storing apps.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @internal\n * @public\n *\n * @alias sap.cux.home.AppsContainer\n */\nexport default class AppsContainer extends BaseContainer {\n\tprivate _isInitialRender = true;\n\tprivate _appSwitched!: boolean;\n\tstatic readonly renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired when apps are loaded.\n\t\t\t */\n\t\t\tappsLoaded: {\n\t\t\t\tparameters: {\n\t\t\t\t\tapps: { type: \"sap.cux.home.App[]\" },\n\t\t\t\t\ttiles: { type: \"sap.m.GenericTile[]\" }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $AppsContainerSettings);\n\tconstructor(id?: string, settings?: $AppsContainerSettings);\n\t/**\n\t * Constructor for a new app container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $AppsContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.setProperty(\"title\", this._i18nBundle?.getText(\"appsTitle\"));\n\t\t// Subscribe to recommendation setting change event\n\t\tconst eventBus = EventBus.getInstance();\n\t\teventBus.subscribe(\"importChannel\", \"recommendationSettingChanged\", (channelId?: string, eventId?: string, data?: object) => {\n\t\t\tconst showRecommendation = (data as { showRecommendation: boolean }).showRecommendation;\n\t\t\tif (!showRecommendation) {\n\t\t\t\tconst firstAppsPanel = this.getContent()?.[0];\n\t\t\t\tthis.setProperty(\"selectedKey\", firstAppsPanel?.getProperty(\"key\"));\n\t\t\t}\n\t\t});\n\n\t\t// disable lazy load for apps container as it's the hero element\n\t\tthis.setProperty(\"enableLazyLoad\", false);\n\t\tthis.addStyleClass(\"sapCuxAppsContainer\");\n\t\tthis.addCustomSetting(\"text\", this._i18nBundle.getText(\"myAppMsg\") as string);\n\t\tthis._attachRouteChangeEvent();\n\t}\n\n\t/**\n\t * Attaches an event handler to monitor route changes and manage application state accordingly.\n\t * @private\n\t *\n\t * @returns {void}\n\t */\n\n\tprivate _attachRouteChangeEvent(): void {\n\t\tconst handleRouteChange = async (event: Event<{ isMyHomeRoute: boolean }>) => {\n\t\t\tconst show = event.getParameter(\"isMyHomeRoute\");\n\t\t\tif (show) {\n\t\t\t\tif (this._appSwitched) {\n\t\t\t\t\tthis._appSwitched = false;\n\t\t\t\t\tthis.showPersistedDialog();\n\t\t\t\t\tawait this.load();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setPanelsDirty();\n\t\t\t\tthis._appSwitched = true;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tS4MyHome.attachRouteMatched({}, handleRouteChange, this);\n\t\t} catch (error) {\n\t\t\tLog.warning(\"Unable to attach route change handler\", error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering() {\n\t\tif (this._isInitialRender) {\n\t\t\tthis._isInitialRender = false;\n\t\t\tthis._attachPanelSupportedEvent();\n\t\t\tthis._removeUnsupportedPanels();\n\t\t}\n\n\t\tthis.adjustLayout();\n\t\tsuper.onBeforeRendering();\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async onAfterRendering() {\n\t\tsuper.onAfterRendering();\n\t\t// activating the recommendation tab from appsContainer as personalization data in not available on init of panel.\n\t\tawait this._activateRecommendationTabPanel();\n\t}\n\n\t/**\n\t * Loads the AppsContainer section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @async\n\t * @override\n\t */\n\tpublic async load(): Promise<void> {\n\t\tconst selectedPanels = this.getPanels();\n\t\tawait Promise.all(selectedPanels.map((selectedPanel) => this._setApps(selectedPanel)));\n\t}\n\n\t/**\n\t * Retrieves the relevant panels based on the device type.\n\t *\n\t * @private\n\t * @returns {BaseAppPanel[]} An array of panels based on the device type.\n\t */\n\tprivate getPanels(): BaseAppPanel[] {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\treturn (isPhone ? this.getContent() : [this._getSelectedPanel()]) as BaseAppPanel[];\n\t}\n\n\t/**\n\t * Triggers navigation actions for the currently relevant panels.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\n\tprivate showPersistedDialog(): void {\n\t\tconst selectedPanels = this.getPanels();\n\t\tfor (const selectedPanel of selectedPanels) {\n\t\t\tselectedPanel.firePersistDialog();\n\t\t}\n\t}\n\n\t/**\n\t * Set all panels dirty state to true, to refresh all panels\n\t * @private\n\t */\n\tprivate _setPanelsDirty(): void {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tpanel.setDesktopViewDirty(true);\n\t\t\tpanel.setMobileViewDirty(true);\n\t\t}\n\t}\n\n\t/**\n\t * Generate placeholer for the panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which placeholders has to be generated.\n\t */\n\tprivate _generatePlaceholder(panel: BaseAppPanel): void {\n\t\tif (!panel.isLoaded()) {\n\t\t\tpanel.destroyAggregation(\"apps\", true);\n\t\t\tconst placeholderApps = panel.generateApps(\n\t\t\t\tnew Array(CONSTANTS.PLACEHOLDER_ITEMS_COUNT).fill({ status: \"Loading\" }) as ICustomVisualization[]\n\t\t\t);\n\t\t\tpanel.setApps(placeholderApps);\n\t\t\tthis._updatePanelContent(panel);\n\t\t}\n\t}\n\n\t/**\n\t * Loads and sets the apps.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which apps has to be loaded.\n\t * @returns {Promise<void>} resolves when apps are loaded.\n\t */\n\tprivate async _setApps(panel: BaseAppPanel): Promise<void> {\n\t\ttry {\n\t\t\t// only load the apps if panel is in dirty state\n\t\t\tif (panel.isDirty() && panel.isMobileDirty()) {\n\t\t\t\tthis._generatePlaceholder(panel);\n\t\t\t\tawait panel.loadApps?.();\n\t\t\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\t} else {\n\t\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\t}\n\t\t\t\tpanel.setLoaded(true);\n\t\t\t\tthis._updatePanelContent(panel);\n\n\t\t\t\tif (panel instanceof BaseAppPersPanel) {\n\t\t\t\t\t// don't wait for personalization to complete\n\t\t\t\t\tvoid panel.applyPersonalization(true);\n\t\t\t\t}\n\t\t\t\tlet tiles: GenericTile[] = [];\n\t\t\t\tlet apps = panel.getApps();\n\t\t\t\ttiles = panel.fetchTileVisualization(tiles);\n\t\t\t\tthis.fireEvent(\"appsLoaded\", { apps, tiles });\n\t\t\t}\n\n\t\t\t// fire panel loaded event\n\t\t\tpanel.fireEvent(\"loaded\");\n\t\t} catch (error: unknown) {\n\t\t\tthis.showErrorCard(panel);\n\t\t\tLog.error(`Error setting apps for panel: ${panel.getTitle()}`, error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * Updates the content of the panel by replacing existing items with new apps and groups.\n\t * This method selects the appropriate wrapper based on the device type, and add apps/group or mobile cards to the wrapper.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContent(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst wrapper = isPhone ? panel._generateMobileAppsWrapper() : panel._generateAppsWrapper();\n\t\tconst aggregationName = isPhone ? \"content\" : \"items\";\n\t\twrapper.destroyAggregation(aggregationName);\n\t\tlet items = isPhone ? this._generateMobileCards([...groups, ...apps], panel.getId()) : this._generateTiles([...groups, ...apps]);\n\t\tthis._addWrapperContent(wrapper, items, aggregationName);\n\t\tthis._updatePanelContentVisibility(panel);\n\t}\n\n\t/**\n\t * Updates the visibility of the panel's content based on the current state and device type.\n\t * This method determines whether to display the apps or an error message based on the presence of apps and groups.\n\t * It also adjusts the visibility of different containers depending on whether the device is a phone or not.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content visibility needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContentVisibility(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst hasApps = [...apps, ...groups].length !== 0;\n\t\tappsWrapper.setVisible(hasApps && !isPhone);\n\t\tmobileAppsWrapper.setVisible(hasApps && isPhone);\n\t\t(mobileAppsWrapper.getParent() as VBox).setWidth(isPhone && hasApps ? \"100%\" : \"auto\");\n\t\terrorCard.setVisible(!hasApps);\n\t}\n\n\t/**\n\t * Generates generic tile based on app.\n\t * @private\n\t * @param {sap.cux.home.App} app - App.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tpublic _getAppTile(app: App): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (app.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${app.getId()}-mobile-tile` : `${app.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: app.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: app.getTitle(),\n\t\t\tbackgroundColor: app.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: app.getIcon(),\n\t\t\turl: getLeanURL(app.getUrl()),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\tsubheader: app.getSubTitle(),\n\t\t\tpress: (e) => app._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t}).addStyleClass(\"tileLayout sapMGTTwoByHalf\");\n\t}\n\n\t/**\n\t * Generates generic tile based on group.\n\t * @private\n\t * @param {sap.cux.home.Group} group - Group.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tprivate _getGroupTile(group: Group): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (group.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${group.getId()}-mobile-tile` : `${group.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: group.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: group.getTitle(),\n\t\t\tbackgroundColor: group.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: group.getIcon(),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\ttileBadge: group.getNumber(),\n\t\t\tpress: (e) => group._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t})\n\t\t\t.addStyleClass(\"tileLayout sapMGTTwoByHalf\")\n\t\t\t.data(\"groupId\", group.getGroupId()) as GenericTile;\n\t}\n\n\t/**\n\t * Overridden method for selection of panel in the IconTabBar.\n\t * Loads the apps in selected panel\n\t * @private\n\t * @returns {Promise<void>} resolves when apps are loaded on panel selection.\n\t */\n\tprotected async _onPanelSelect(event: IconTabBar$SelectEvent) {\n\t\tsuper._onPanelSelect(event);\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tawait this._setApps(selectedPanel);\n\t}\n\n\t/**\n\t * Refresh apps for all the panels.\n\t * @private\n\t * @returns {Promise<void>} resolves when all panels are set to dirty and apps for current panel are refreshed.\n\t */\n\tpublic async _refreshAllPanels(): Promise<void> {\n\t\t//set all panels to dirty\n\t\tthis._setPanelsDirty();\n\t\t//set apps for current section\n\t\tawait this._setApps(this._getSelectedPanel() as BaseAppPanel);\n\t}\n\n\t/**\n\t * Refresh apps for selected panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel that has be refreshed.\n\t * @returns {Promise<void>} resolves when apps are refreshed.\n\t */\n\tpublic async refreshPanel(panel: BaseAppPanel): Promise<void> {\n\t\tpanel.setMobileViewDirty(true);\n\t\tpanel.setDesktopViewDirty(true);\n\t\tawait this._setApps(panel);\n\t}\n\n\t/**\n\t * Toggles the visibility of the tab view based on the supported panels.\n\t * @private\n\t */\n\tprivate _toggleTabView() {\n\t\tif (this.getDeviceType() !== DeviceType.Mobile) {\n\t\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\t\tconst supportedPanels = panels.filter((panel) => panel.isSupported());\n\t\t\tconst iconTabBarControl = this._getInnerControl() as IconTabBar;\n\t\t\ticonTabBarControl?.toggleStyleClass(\"sapUiITBHide\", supportedPanels.length === 1);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the supported state of the current panel.\n\t * If the panel is supported, it adds the panel to the content.\n\t * If the panel is not supported, it removes the panel from the content.\n\t * @param {BaseAppPanel} currentPanel - The panel to handle the supported state for.\n\t * @private\n\t */\n\tprivate _onPanelSupported(currentPanel: BaseAppPanel, event: BaseAppPanel$SupportedEvent) {\n\t\tconst isSupported = event.getParameter(\"isSupported\") as boolean;\n\t\tcurrentPanel.setSupported(isSupported);\n\t\tthis._togglePanelVisibility(currentPanel, isSupported);\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Toggles the visibility of the panel.\n\t * @param {BaseAppPanel} panel - The panel to toggle the visibility for.\n\t * @param {boolean} isVisible - The visibility state of the panel.\n\t * @private\n\t */\n\tprivate _togglePanelVisibility(panel: BaseAppPanel, isVisible: boolean) {\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tconst panelWrapper = this._getPanelContentWrapper(panel);\n\t\t\tpanelWrapper.setVisible(isVisible);\n\t\t} else {\n\t\t\tconst iconTabBar = this._getInnerControl() as IconTabBar;\n\t\t\tconst tabs = (iconTabBar?.getItems() as IconTabFilter[]) || [];\n\t\t\tconst selectedTab = tabs.find((tab) => tab.getKey() === panel.getKey());\n\t\t\tselectedTab?.setVisible(isVisible);\n\t\t}\n\t}\n\n\t/**\n\t * Removes unsupported panels from the container.\n\t * @private\n\t */\n\tprivate _removeUnsupportedPanels() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst unSupportedPanels = panels.filter((panel) => !panel.isSupported());\n\t\tfor (const panel of unSupportedPanels) {\n\t\t\tthis._togglePanelVisibility(panel, false);\n\t\t}\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Attaches an event handler to the \"supported\" event for each panel in the container.\n\t * @private\n\t */\n\tprivate _attachPanelSupportedEvent() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tif (!panel.hasListeners(\"supported\")) {\n\t\t\t\tpanel.attachSupported(this._onPanelSupported.bind(this, panel));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the enable function to activate the recommendation tab for `RecommendedAppPanel`, unless the device is a mobile phone.\n\t *\n\t * @private\n\t */\n\tprivate async _activateRecommendationTabPanel(): Promise<void> {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst recommendedPanel = panels ? panels.find((panel) => panel instanceof RecommendedAppPanel) : null;\n\t\tif (recommendedPanel instanceof RecommendedAppPanel && !isPhone) {\n\t\t\tawait recommendedPanel._enableRecommendationTab();\n\t\t}\n\t}\n\n\tpublic setTileWidth(panel: BaseAppPanel): void {\n\t\tconst minWidth = CONSTANTS.MIN_TILE_WIDTH; // in px\n\t\tconst maxWidth = CONSTANTS.MAX_TILE_WIDTH; // in px\n\n\t\tconst wrapper = panel._generateAppsWrapper()?.getDomRef() as Element;\n\t\tif (!wrapper) return;\n\n\t\tconst domProperties = fetchElementProperties(wrapper, [\"width\", \"padding-left\", \"padding-right\", \"margin-left\", \"margin-right\"]);\n\t\tconst availableWidth = Object.values(domProperties)\n\t\t\t.slice(1)\n\t\t\t.reduce((width, propertyValue) => width - propertyValue, domProperties[\"width\"]);\n\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst tileCount = apps.length + groups.length;\n\n\t\tif (tileCount === 0 || availableWidth <= 0) return;\n\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: tileCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: 8,\n\t\t\tskipDeviceCheck: true\n\t\t};\n\n\t\tconst clampedWidth = calculateCardWidth(cardLayoutConfig);\n\n\t\tpanel.setProperty(\"tileWidth\", clampedWidth);\n\t\tpanel\n\t\t\t._generateAppsWrapper()\n\t\t\t.getLayout()\n\t\t\t.setProperty(\"columnSize\", `${clampedWidth / 16}rem`);\n\t}\n\n\t/**\n\t * Adjusts the layout and visibility based on the device type.\n\t *\n\t * This method adjusts the layout type and visibility of containers based on whether the device is a phone\n\t * or not. It sets the container's layout property, toggles visibility of panels and their containers, and\n\t * adjusts background design accordingly.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic adjustLayout(): void {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst currentLayout = this.getProperty(\"orientation\") as OrientationType;\n\t\tconst newLayout = OrientationType.SideBySide;\n\t\tconst shouldAdjustLayout = currentLayout !== newLayout;\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tthis.setTileWidth(selectedPanel);\n\n\t\t//hide actions if the device is a phone\n\t\tthis.toggleActionButtons(!isPhone);\n\t\tif (!shouldAdjustLayout) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setProperty(\"orientation\", newLayout);\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tpanels.forEach((panel) => {\n\t\t\t//if both the panels are dirty, then updated data will be loaded from onBeforeRendering, as layout change will trigger re-rendering\n\t\t\t//if both the panels are not dirty, i.e. doen't have any changes, then just toggle the visibility\n\t\t\tif (!panel.isDirty() && !panel.isMobileDirty()) {\n\t\t\t\tthis._updatePanelContentVisibility(panel);\n\t\t\t} else if (panel.isDirty() !== panel.isMobileDirty()) {\n\t\t\t\t//if one of the panels is dirty i.e. have updated data and other is not, then re-create the inner controls\n\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\tthis._updatePanelContent(panel);\n\t\t\t}\n\t\t});\n\n\t\t//this is to handle scenario when unsupported propert is changed and then layout is changed.\n\t\tthis._removeUnsupportedPanels();\n\t}\n\n\t/**\n\t * Generates mobile card panel and add given apps/groups in the panel.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which card panels has to be generated.\n\t * @param {string} currentPanelId - ID of the current panel.\n\t * @returns {sap.m.Panel} The newly created mobile card panel.\n\t */\n\tprivate _generateMobileCards(items: BaseApp[], currentPanelId?: string): Panel[] {\n\t\tconst panels: Panel[] = [];\n\t\tfor (let i = 0; i < items.length; i += 7) {\n\t\t\tconst panelItems = items.slice(i, i + 7);\n\t\t\tconst panel = new Panel(`${currentPanelId}--${i}`, {\n\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\theight: \"23.5rem\",\n\t\t\t\twidth: \"17rem\",\n\t\t\t\tcontent: this._generateTiles(panelItems)\n\t\t\t}).addStyleClass(\"sapUiMobileAppsCard appPanelBorder myAppMFBContent\");\n\t\t\tpanels.push(panel);\n\t\t}\n\t\treturn panels;\n\t}\n\n\t/**\n\t * Generates group/app generic tiles for given apps/groups.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which tiles has to be generated.\n\t * @returns {sap.m.GenericTile[]} The generated tiles.\n\t */\n\tprivate _generateTiles(items: BaseApp[]): GenericTile[] {\n\t\treturn items.map((item) => (item instanceof Group ? this._getGroupTile(item) : this._getAppTile(item as App)));\n\t}\n\n\t/**\n\t * Adds given items into the wrapper.\n\t * @param {HeaderContainer | GridContainer} wrapper - wrapper for which items has to be added.\n\t * @param {Panel[] | GenericTile[]} items - items to be added.\n\t * @param {string} aggregationName - aggregation name to which items has to be added.\n\t * @private\n\t */\n\tprivate _addWrapperContent(wrapper: HeaderContainer | GridContainer, items: Panel[] | GenericTile[], aggregationName: string) {\n\t\twrapper.destroyAggregation(aggregationName);\n\t\titems.forEach((item) => {\n\t\t\twrapper.addAggregation(aggregationName, item);\n\t\t});\n\t}\n\n\t/**\n\t * Displays an error card in the provided panel.\n\t *\n\t * @param panel - The panel in which the error card should be displayed.\n\t */\n\tprivate showErrorCard(panel: BaseAppPanel): void {\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tappsWrapper?.setVisible(false);\n\t\tmobileAppsWrapper?.setVisible(false);\n\t\terrorCard?.setVisible(true);\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the Apps container.\n\t *\n\t * @returns {string} The HTML string representing the Apps container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getAppsPlaceholder();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AppsContainer.js","names":["sap","ui","define","Log","GenericTile","Panel","sap_m_library","EventBus","Parameters","S4MyHome","___utils_placeholder_AppsPlaceholder","__BaseAppPersPanel","__BaseContainer","__Group","__RecommendedAppPanel","___library","___utils_DataFormatUtils","___utils_Device","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","BackgroundDesign","FrameType","GenericTileMode","GenericTileScope","TileSizeBehavior","getAppsPlaceholder","BaseAppPersPanel","BaseContainer","Group","RecommendedAppPanel","OrientationType","getLeanURL","calculateCardWidth","DeviceType","fetchElementProperties","getDefaultAppColor","sLegendName","key","value","get","name","assigned","CONSTANTS","PLACEHOLDER_ITEMS_COUNT","MIN_TILE_WIDTH","MAX_TILE_WIDTH","AppsContainer","extend","metadata","events","appsLoaded","parameters","apps","type","tiles","renderer","apiVersion","constructor","_constructor","id","settings","BaseContainer.prototype.constructor.call","_isInitialRender","init","_init","BaseContainer.prototype.init.call","setProperty","_i18nBundle","getText","eventBus","getInstance","subscribe","channelId","eventId","data","showRecommendation","firstAppsPanel","getContent","getProperty","addStyleClass","addCustomSetting","_attachRouteChangeEvent","_this","handleRouteChange","event","show","getParameter","_temp2","_temp","_appSwitched","showPersistedDialog","Promise","resolve","load","_setPanelsDirty","reject","attachRouteMatched","error","warning","Error","message","String","onBeforeRendering","_onBeforeRendering","_attachPanelSupportedEvent","_removeUnsupportedPanels","adjustLayout","BaseContainer.prototype.onBeforeRendering.call","onAfterRendering","_onAfterRendering","_this2","BaseContainer.prototype.onAfterRendering.call","_activateRecommendationTabPanel","_load","_this3","selectedPanels","getPanels","all","map","selectedPanel","_setApps","_getPanels","isPhone","getDeviceType","Mobile","_getSelectedPanel","_showPersistedDialog","firePersistDialog","panels","panel","setDesktopViewDirty","setMobileViewDirty","_generatePlaceholder","isLoaded","destroyAggregation","placeholderApps","generateApps","Array","fill","status","setApps","_updatePanelContent","_this4","_temp5","_temp4","fireEvent","_temp3","isDirty","isMobileDirty","loadApps","setLoaded","applyPersonalization","getApps","fetchTileVisualization","showErrorCard","getTitle","groups","getAggregation","wrapper","_generateMobileAppsWrapper","_generateAppsWrapper","aggregationName","items","_generateMobileCards","getId","_generateTiles","_addWrapperContent","_updatePanelContentVisibility","appsWrapper","_generateDesktopAppsWrapper","mobileAppsWrapper","errorCard","_generateErrorMessage","hasApps","length","setVisible","getParent","setWidth","_getAppTile","app","actions","tileId","scope","ActionMore","Display","state","getStatus","mode","IconMode","sizeBehavior","Small","header","backgroundColor","getBgColor","tileIcon","getIcon","url","getUrl","frameType","TwoByHalf","renderOnThemeChange","dropAreaOffset","subheader","getSubTitle","press","_onPress","width","_getGroupTile","group","tileBadge","getNumber","getGroupId","_onPanelSelect","_this5","BaseContainer.prototype._onPanelSelect.call","_refreshAllPanels","_this6","refreshPanel","_refreshPanel","_this7","_toggleTabView","supportedPanels","filter","isSupported","iconTabBarControl","_getInnerControl","toggleStyleClass","_onPanelSupported","currentPanel","setSupported","_togglePanelVisibility","isVisible","iconTabBar","tabs","getItems","selectedTab","find","tab","getKey","unSupportedPanels","hasListeners","attachSupported","bind","_this8","recommendedPanel","_temp6","_enableRecommendationTab","setTileWidth","_setTileWidth","minWidth","maxWidth","getDomRef","domProperties","availableWidth","Object","values","slice","reduce","propertyValue","tileCount","cardLayoutConfig","containerWidth","totalCards","gap","skipDeviceCheck","clampedWidth","getLayout","_adjustLayout","currentLayout","newLayout","SideBySide","shouldAdjustLayout","toggleActionButtons","forEach","currentPanelId","i","panelItems","backgroundDesign","Solid","height","content","push","item","addAggregation","_showErrorCard","getGenericPlaceholderContent","_getGenericPlaceholderContent"],"sources":["AppsContainer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport GridContainer from \"sap/f/GridContainer\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport IconTabBar, { IconTabBar$SelectEvent } from \"sap/m/IconTabBar\";\nimport IconTabFilter from \"sap/m/IconTabFilter\";\nimport Panel from \"sap/m/Panel\";\nimport VBox from \"sap/m/VBox\";\nimport { BackgroundDesign, FrameType, GenericTileMode, GenericTileScope, LoadState, TileSizeBehavior } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport Parameters from \"sap/ui/core/theming/Parameters\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport App from \"./App\";\nimport { $AppsContainerSettings } from \"./AppsContainer\";\nimport { getAppsPlaceholder } from \"./utils/placeholder/AppsPlaceholder\";\nimport BaseApp from \"./BaseApp\";\nimport BaseAppPanel, { BaseAppPanel$SupportedEvent } from \"./BaseAppPanel\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport BaseContainer from \"./BaseContainer\";\nimport Group from \"./Group\";\nimport MenuItem from \"./MenuItem\";\nimport RecommendedAppPanel from \"./RecommendedAppPanel\";\nimport { ICustomVisualization } from \"./interface/AppsInterface\";\nimport { OrientationType } from \"./library\";\nimport { getLeanURL } from \"./utils/DataFormatUtils\";\nimport { calculateCardWidth, DeviceType, fetchElementProperties } from \"./utils/Device\";\n\nconst getDefaultAppColor = () => {\n\tconst sLegendName = \"sapLegendColor9\";\n\treturn {\n\t\tkey: sLegendName,\n\t\tvalue: Parameters.get({\n\t\t\tname: sLegendName\n\t\t}),\n\t\tassigned: false\n\t};\n};\n\nconst CONSTANTS = {\n\tPLACEHOLDER_ITEMS_COUNT: 5,\n\tMIN_TILE_WIDTH: 304,\n\tMAX_TILE_WIDTH: 456\n};\n\n/**\n *\n * Container class for managing and storing apps.\n *\n * @extends BaseContainer\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.AppsContainer\n */\nexport default class AppsContainer extends BaseContainer {\n\tprivate _isInitialRender = true;\n\tprivate _appSwitched!: boolean;\n\tstatic readonly renderer = {\n\t\t...BaseContainer.renderer,\n\t\tapiVersion: 2\n\t};\n\tstatic readonly metadata: MetadataOptions = {\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired when apps are loaded.\n\t\t\t */\n\t\t\tappsLoaded: {\n\t\t\t\tparameters: {\n\t\t\t\t\tapps: { type: \"sap.cux.home.App[]\" },\n\t\t\t\t\ttiles: { type: \"sap.m.GenericTile[]\" }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $AppsContainerSettings);\n\tconstructor(id?: string, settings?: $AppsContainerSettings);\n\t/**\n\t * Constructor for a new app container.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $AppsContainerSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis.setProperty(\"title\", this._i18nBundle?.getText(\"appsTitle\"));\n\t\t// Subscribe to recommendation setting change event\n\t\tconst eventBus = EventBus.getInstance();\n\t\teventBus.subscribe(\"importChannel\", \"recommendationSettingChanged\", (channelId?: string, eventId?: string, data?: object) => {\n\t\t\tconst showRecommendation = (data as { showRecommendation: boolean }).showRecommendation;\n\t\t\tif (!showRecommendation) {\n\t\t\t\tconst firstAppsPanel = this.getContent()?.[0];\n\t\t\t\tthis.setProperty(\"selectedKey\", firstAppsPanel?.getProperty(\"key\"));\n\t\t\t}\n\t\t});\n\n\t\t// disable lazy load for apps container as it's the hero element\n\t\tthis.setProperty(\"enableLazyLoad\", false);\n\t\tthis.addStyleClass(\"sapCuxAppsContainer\");\n\t\tthis.addCustomSetting(\"text\", this._i18nBundle.getText(\"myAppMsg\") as string);\n\t\tthis._attachRouteChangeEvent();\n\t}\n\n\t/**\n\t * Attaches an event handler to monitor route changes and manage application state accordingly.\n\t * @private\n\t *\n\t * @returns {void}\n\t */\n\n\tprivate _attachRouteChangeEvent(): void {\n\t\tconst handleRouteChange = async (event: Event<{ isMyHomeRoute: boolean }>) => {\n\t\t\tconst show = event.getParameter(\"isMyHomeRoute\");\n\t\t\tif (show) {\n\t\t\t\tif (this._appSwitched) {\n\t\t\t\t\tthis._appSwitched = false;\n\t\t\t\t\tthis.showPersistedDialog();\n\t\t\t\t\tawait this.load();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._setPanelsDirty();\n\t\t\t\tthis._appSwitched = true;\n\t\t\t}\n\t\t};\n\n\t\ttry {\n\t\t\tS4MyHome.attachRouteMatched({}, handleRouteChange, this);\n\t\t} catch (error) {\n\t\t\tLog.warning(\"Unable to attach route change handler\", error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering() {\n\t\tif (this._isInitialRender) {\n\t\t\tthis._isInitialRender = false;\n\t\t\tthis._attachPanelSupportedEvent();\n\t\t\tthis._removeUnsupportedPanels();\n\t\t}\n\n\t\tthis.adjustLayout();\n\t\tsuper.onBeforeRendering();\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic async onAfterRendering() {\n\t\tsuper.onAfterRendering();\n\t\t// activating the recommendation tab from appsContainer as personalization data in not available on init of panel.\n\t\tawait this._activateRecommendationTabPanel();\n\t}\n\n\t/**\n\t * Loads the AppsContainer section.\n\t * Overrides the load method of the BaseContainer.\n\t *\n\t * @private\n\t * @async\n\t * @override\n\t */\n\tpublic async load(): Promise<void> {\n\t\tconst selectedPanels = this.getPanels();\n\t\tawait Promise.all(selectedPanels.map((selectedPanel) => this._setApps(selectedPanel)));\n\t}\n\n\t/**\n\t * Retrieves the relevant panels based on the device type.\n\t *\n\t * @private\n\t * @returns {BaseAppPanel[]} An array of panels based on the device type.\n\t */\n\tprivate getPanels(): BaseAppPanel[] {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\treturn (isPhone ? this.getContent() : [this._getSelectedPanel()]) as BaseAppPanel[];\n\t}\n\n\t/**\n\t * Triggers navigation actions for the currently relevant panels.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\n\tprivate showPersistedDialog(): void {\n\t\tconst selectedPanels = this.getPanels();\n\t\tfor (const selectedPanel of selectedPanels) {\n\t\t\tselectedPanel.firePersistDialog();\n\t\t}\n\t}\n\n\t/**\n\t * Set all panels dirty state to true, to refresh all panels\n\t * @private\n\t */\n\tprivate _setPanelsDirty(): void {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tpanel.setDesktopViewDirty(true);\n\t\t\tpanel.setMobileViewDirty(true);\n\t\t}\n\t}\n\n\t/**\n\t * Generate placeholer for the panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which placeholders has to be generated.\n\t */\n\tprivate _generatePlaceholder(panel: BaseAppPanel): void {\n\t\tif (!panel.isLoaded()) {\n\t\t\tpanel.destroyAggregation(\"apps\", true);\n\t\t\tconst placeholderApps = panel.generateApps(\n\t\t\t\tnew Array(CONSTANTS.PLACEHOLDER_ITEMS_COUNT).fill({ status: \"Loading\" }) as ICustomVisualization[]\n\t\t\t);\n\t\t\tpanel.setApps(placeholderApps);\n\t\t\tthis._updatePanelContent(panel);\n\t\t}\n\t}\n\n\t/**\n\t * Loads and sets the apps.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel for which apps has to be loaded.\n\t * @returns {Promise<void>} resolves when apps are loaded.\n\t */\n\tprivate async _setApps(panel: BaseAppPanel): Promise<void> {\n\t\ttry {\n\t\t\t// only load the apps if panel is in dirty state\n\t\t\tif (panel.isDirty() && panel.isMobileDirty()) {\n\t\t\t\tthis._generatePlaceholder(panel);\n\t\t\t\tawait panel.loadApps?.();\n\t\t\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\t} else {\n\t\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\t}\n\t\t\t\tpanel.setLoaded(true);\n\t\t\t\tthis._updatePanelContent(panel);\n\n\t\t\t\tif (panel instanceof BaseAppPersPanel) {\n\t\t\t\t\t// don't wait for personalization to complete\n\t\t\t\t\tvoid panel.applyPersonalization(true);\n\t\t\t\t}\n\t\t\t\tlet tiles: GenericTile[] = [];\n\t\t\t\tlet apps = panel.getApps();\n\t\t\t\ttiles = panel.fetchTileVisualization(tiles);\n\t\t\t\tthis.fireEvent(\"appsLoaded\", { apps, tiles });\n\t\t\t}\n\n\t\t\t// fire panel loaded event\n\t\t\tpanel.fireEvent(\"loaded\");\n\t\t} catch (error: unknown) {\n\t\t\tthis.showErrorCard(panel);\n\t\t\tLog.error(`Error setting apps for panel: ${panel.getTitle()}`, error instanceof Error ? error.message : String(error));\n\t\t}\n\t}\n\n\t/**\n\t * Updates the content of the panel by replacing existing items with new apps and groups.\n\t * This method selects the appropriate wrapper based on the device type, and add apps/group or mobile cards to the wrapper.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContent(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst wrapper = isPhone ? panel._generateMobileAppsWrapper() : panel._generateAppsWrapper();\n\t\tconst aggregationName = isPhone ? \"content\" : \"items\";\n\t\twrapper.destroyAggregation(aggregationName);\n\t\tlet items = isPhone ? this._generateMobileCards([...groups, ...apps], panel.getId()) : this._generateTiles([...groups, ...apps]);\n\t\tthis._addWrapperContent(wrapper, items, aggregationName);\n\t\tthis._updatePanelContentVisibility(panel);\n\t}\n\n\t/**\n\t * Updates the visibility of the panel's content based on the current state and device type.\n\t * This method determines whether to display the apps or an error message based on the presence of apps and groups.\n\t * It also adjusts the visibility of different containers depending on whether the device is a phone or not.\n\t *\n\t * @param {BaseAppPanel} panel - The panel whose content visibility needs to be updated.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _updatePanelContentVisibility(panel: BaseAppPanel): void {\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst hasApps = [...apps, ...groups].length !== 0;\n\t\tappsWrapper.setVisible(hasApps && !isPhone);\n\t\tmobileAppsWrapper.setVisible(hasApps && isPhone);\n\t\t(mobileAppsWrapper.getParent() as VBox).setWidth(isPhone && hasApps ? \"100%\" : \"auto\");\n\t\terrorCard.setVisible(!hasApps);\n\t}\n\n\t/**\n\t * Generates generic tile based on app.\n\t * @private\n\t * @param {sap.cux.home.App} app - App.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tpublic _getAppTile(app: App): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (app.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${app.getId()}-mobile-tile` : `${app.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: app.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: app.getTitle(),\n\t\t\tbackgroundColor: app.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: app.getIcon(),\n\t\t\turl: getLeanURL(app.getUrl()),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\tsubheader: app.getSubTitle(),\n\t\t\tpress: (e) => app._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t}).addStyleClass(\"tileLayout sapMGTTwoByHalf\");\n\t}\n\n\t/**\n\t * Generates generic tile based on group.\n\t * @private\n\t * @param {sap.cux.home.Group} group - Group.\n\t * @returns {sap.m.GenericTile}.\n\t */\n\tprivate _getGroupTile(group: Group): GenericTile {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst actions = (group.getAggregation(\"menuItems\") || []) as MenuItem[];\n\t\tconst tileId = isPhone ? `${group.getId()}-mobile-tile` : `${group.getId()}-tile`;\n\t\treturn new GenericTile(tileId, {\n\t\t\tscope: actions.length && !isPhone ? GenericTileScope.ActionMore : GenericTileScope.Display,\n\t\t\tstate: group.getStatus() as LoadState,\n\t\t\tmode: GenericTileMode.IconMode,\n\t\t\tsizeBehavior: TileSizeBehavior.Small,\n\t\t\theader: group.getTitle(),\n\t\t\tbackgroundColor: group.getBgColor() || getDefaultAppColor()?.key,\n\t\t\ttileIcon: group.getIcon(),\n\t\t\tframeType: FrameType.TwoByHalf,\n\t\t\trenderOnThemeChange: true,\n\t\t\tdropAreaOffset: 4,\n\t\t\ttileBadge: group.getNumber(),\n\t\t\tpress: (e) => group._onPress(e),\n\t\t\twidth: isPhone ? \"15rem\" : \"100%\"\n\t\t})\n\t\t\t.addStyleClass(\"tileLayout sapMGTTwoByHalf\")\n\t\t\t.data(\"groupId\", group.getGroupId()) as GenericTile;\n\t}\n\n\t/**\n\t * Overridden method for selection of panel in the IconTabBar.\n\t * Loads the apps in selected panel\n\t * @private\n\t * @returns {Promise<void>} resolves when apps are loaded on panel selection.\n\t */\n\tprotected async _onPanelSelect(event: IconTabBar$SelectEvent) {\n\t\tsuper._onPanelSelect(event);\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tawait this._setApps(selectedPanel);\n\t}\n\n\t/**\n\t * Refresh apps for all the panels.\n\t * @private\n\t * @returns {Promise<void>} resolves when all panels are set to dirty and apps for current panel are refreshed.\n\t */\n\tpublic async _refreshAllPanels(): Promise<void> {\n\t\t//set all panels to dirty\n\t\tthis._setPanelsDirty();\n\t\t//set apps for current section\n\t\tawait this._setApps(this._getSelectedPanel() as BaseAppPanel);\n\t}\n\n\t/**\n\t * Refresh apps for selected panel.\n\t * @private\n\t * @param {BaseAppPanel} panel - Panel that has be refreshed.\n\t * @returns {Promise<void>} resolves when apps are refreshed.\n\t */\n\tpublic async refreshPanel(panel: BaseAppPanel): Promise<void> {\n\t\tpanel.setMobileViewDirty(true);\n\t\tpanel.setDesktopViewDirty(true);\n\t\tawait this._setApps(panel);\n\t}\n\n\t/**\n\t * Toggles the visibility of the tab view based on the supported panels.\n\t * @private\n\t */\n\tprivate _toggleTabView() {\n\t\tif (this.getDeviceType() !== DeviceType.Mobile) {\n\t\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\t\tconst supportedPanels = panels.filter((panel) => panel.isSupported());\n\t\t\tconst iconTabBarControl = this._getInnerControl() as IconTabBar;\n\t\t\ticonTabBarControl?.toggleStyleClass(\"sapUiITBHide\", supportedPanels.length === 1);\n\t\t}\n\t}\n\n\t/**\n\t * Handles the supported state of the current panel.\n\t * If the panel is supported, it adds the panel to the content.\n\t * If the panel is not supported, it removes the panel from the content.\n\t * @param {BaseAppPanel} currentPanel - The panel to handle the supported state for.\n\t * @private\n\t */\n\tprivate _onPanelSupported(currentPanel: BaseAppPanel, event: BaseAppPanel$SupportedEvent) {\n\t\tconst isSupported = event.getParameter(\"isSupported\") as boolean;\n\t\tcurrentPanel.setSupported(isSupported);\n\t\tthis._togglePanelVisibility(currentPanel, isSupported);\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Toggles the visibility of the panel.\n\t * @param {BaseAppPanel} panel - The panel to toggle the visibility for.\n\t * @param {boolean} isVisible - The visibility state of the panel.\n\t * @private\n\t */\n\tprivate _togglePanelVisibility(panel: BaseAppPanel, isVisible: boolean) {\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tpanel.setVisible(isVisible);\n\t\t} else {\n\t\t\tconst iconTabBar = this._getInnerControl() as IconTabBar;\n\t\t\tconst tabs = (iconTabBar?.getItems() as IconTabFilter[]) || [];\n\t\t\tconst selectedTab = tabs.find((tab) => tab.getKey() === panel.getKey());\n\t\t\tselectedTab?.setVisible(isVisible);\n\t\t}\n\t}\n\n\t/**\n\t * Removes unsupported panels from the container.\n\t * @private\n\t */\n\tprivate _removeUnsupportedPanels() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst unSupportedPanels = panels.filter((panel) => !panel.isSupported());\n\t\tfor (const panel of unSupportedPanels) {\n\t\t\tthis._togglePanelVisibility(panel, false);\n\t\t}\n\t\tthis._toggleTabView();\n\t}\n\n\t/**\n\t * Attaches an event handler to the \"supported\" event for each panel in the container.\n\t * @private\n\t */\n\tprivate _attachPanelSupportedEvent() {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tfor (const panel of panels) {\n\t\t\tif (!panel.hasListeners(\"supported\")) {\n\t\t\t\tpanel.attachSupported(this._onPanelSupported.bind(this, panel));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Calls the enable function to activate the recommendation tab for `RecommendedAppPanel`, unless the device is a mobile phone.\n\t *\n\t * @private\n\t */\n\tprivate async _activateRecommendationTabPanel(): Promise<void> {\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst recommendedPanel = panels ? panels.find((panel) => panel instanceof RecommendedAppPanel) : null;\n\t\tif (recommendedPanel instanceof RecommendedAppPanel && !isPhone) {\n\t\t\tawait recommendedPanel._enableRecommendationTab();\n\t\t}\n\t}\n\n\tpublic setTileWidth(panel: BaseAppPanel): void {\n\t\tconst minWidth = CONSTANTS.MIN_TILE_WIDTH; // in px\n\t\tconst maxWidth = CONSTANTS.MAX_TILE_WIDTH; // in px\n\n\t\tconst wrapper = panel._generateAppsWrapper()?.getDomRef() as Element;\n\t\tif (!wrapper) return;\n\n\t\tconst domProperties = fetchElementProperties(wrapper, [\"width\", \"padding-left\", \"padding-right\", \"margin-left\", \"margin-right\"]);\n\t\tconst availableWidth = Object.values(domProperties)\n\t\t\t.slice(1)\n\t\t\t.reduce((width, propertyValue) => width - propertyValue, domProperties[\"width\"]);\n\n\t\tconst apps = panel.getApps() || [];\n\t\tconst groups = (panel.getAggregation(\"groups\") || []) as Group[];\n\t\tconst tileCount = apps.length + groups.length;\n\n\t\tif (tileCount === 0 || availableWidth <= 0) return;\n\n\t\tconst cardLayoutConfig = {\n\t\t\tcontainerWidth: availableWidth,\n\t\t\ttotalCards: tileCount,\n\t\t\tminWidth: minWidth,\n\t\t\tmaxWidth: maxWidth,\n\t\t\tgap: 8,\n\t\t\tskipDeviceCheck: true\n\t\t};\n\n\t\tconst clampedWidth = calculateCardWidth(cardLayoutConfig);\n\n\t\tpanel.setProperty(\"tileWidth\", clampedWidth);\n\t\tpanel\n\t\t\t._generateAppsWrapper()\n\t\t\t.getLayout()\n\t\t\t.setProperty(\"columnSize\", `${clampedWidth / 16}rem`);\n\t}\n\n\t/**\n\t * Adjusts the layout and visibility based on the device type.\n\t *\n\t * This method adjusts the layout type and visibility of containers based on whether the device is a phone\n\t * or not. It sets the container's layout property, toggles visibility of panels and their containers, and\n\t * adjusts background design accordingly.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic adjustLayout(): void {\n\t\tconst isPhone = this.getDeviceType() === DeviceType.Mobile;\n\t\tconst currentLayout = this.getProperty(\"orientation\") as OrientationType;\n\t\tconst newLayout = OrientationType.SideBySide;\n\t\tconst shouldAdjustLayout = currentLayout !== newLayout;\n\t\tconst selectedPanel = this._getSelectedPanel() as BaseAppPanel;\n\t\tthis.setTileWidth(selectedPanel);\n\n\t\t//hide actions if the device is a phone\n\t\tthis.toggleActionButtons(!isPhone);\n\t\tif (!shouldAdjustLayout) {\n\t\t\treturn;\n\t\t}\n\t\tthis.setProperty(\"orientation\", newLayout);\n\t\tconst panels = this.getContent() as BaseAppPanel[];\n\t\tpanels.forEach((panel) => {\n\t\t\t//if both the panels are dirty, then updated data will be loaded from onBeforeRendering, as layout change will trigger re-rendering\n\t\t\t//if both the panels are not dirty, i.e. doen't have any changes, then just toggle the visibility\n\t\t\tif (!panel.isDirty() && !panel.isMobileDirty()) {\n\t\t\t\tthis._updatePanelContentVisibility(panel);\n\t\t\t} else if (panel.isDirty() !== panel.isMobileDirty()) {\n\t\t\t\t//if one of the panels is dirty i.e. have updated data and other is not, then re-create the inner controls\n\t\t\t\tpanel.setDesktopViewDirty(false);\n\t\t\t\tpanel.setMobileViewDirty(false);\n\t\t\t\tthis._updatePanelContent(panel);\n\t\t\t}\n\t\t});\n\n\t\t//this is to handle scenario when unsupported propert is changed and then layout is changed.\n\t\tthis._removeUnsupportedPanels();\n\t}\n\n\t/**\n\t * Generates mobile card panel and add given apps/groups in the panel.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which card panels has to be generated.\n\t * @param {string} currentPanelId - ID of the current panel.\n\t * @returns {sap.m.Panel} The newly created mobile card panel.\n\t */\n\tprivate _generateMobileCards(items: BaseApp[], currentPanelId?: string): Panel[] {\n\t\tconst panels: Panel[] = [];\n\t\tfor (let i = 0; i < items.length; i += 7) {\n\t\t\tconst panelItems = items.slice(i, i + 7);\n\t\t\tconst panel = new Panel(`${currentPanelId}--${i}`, {\n\t\t\t\tbackgroundDesign: BackgroundDesign.Solid,\n\t\t\t\theight: \"23.5rem\",\n\t\t\t\twidth: \"17rem\",\n\t\t\t\tcontent: this._generateTiles(panelItems)\n\t\t\t}).addStyleClass(\"sapUiMobileAppsCard appPanelBorder myAppMFBContent\");\n\t\t\tpanels.push(panel);\n\t\t}\n\t\treturn panels;\n\t}\n\n\t/**\n\t * Generates group/app generic tiles for given apps/groups.\n\t *\n\t * @private\n\t * @param {BaseApp[]} items - Apps/Groups for which tiles has to be generated.\n\t * @returns {sap.m.GenericTile[]} The generated tiles.\n\t */\n\tprivate _generateTiles(items: BaseApp[]): GenericTile[] {\n\t\treturn items.map((item) => (item instanceof Group ? this._getGroupTile(item) : this._getAppTile(item as App)));\n\t}\n\n\t/**\n\t * Adds given items into the wrapper.\n\t * @param {HeaderContainer | GridContainer} wrapper - wrapper for which items has to be added.\n\t * @param {Panel[] | GenericTile[]} items - items to be added.\n\t * @param {string} aggregationName - aggregation name to which items has to be added.\n\t * @private\n\t */\n\tprivate _addWrapperContent(wrapper: HeaderContainer | GridContainer, items: Panel[] | GenericTile[], aggregationName: string) {\n\t\twrapper.destroyAggregation(aggregationName);\n\t\titems.forEach((item) => {\n\t\t\twrapper.addAggregation(aggregationName, item);\n\t\t});\n\t}\n\n\t/**\n\t * Displays an error card in the provided panel.\n\t *\n\t * @param panel - The panel in which the error card should be displayed.\n\t */\n\tprivate showErrorCard(panel: BaseAppPanel): void {\n\t\tconst errorCard = panel._generateErrorMessage();\n\t\tconst appsWrapper = panel._generateDesktopAppsWrapper();\n\t\tconst mobileAppsWrapper = panel._generateMobileAppsWrapper();\n\t\tappsWrapper?.setVisible(false);\n\t\tmobileAppsWrapper?.setVisible(false);\n\t\terrorCard?.setVisible(true);\n\t}\n\n\t/**\n\t * Retrieves the generic placeholder content for the Apps container.\n\t *\n\t * @returns {string} The HTML string representing the Apps container's placeholder content.\n\t */\n\tprotected getGenericPlaceholderContent(): string {\n\t\treturn getAppsPlaceholder();\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -59,8 +59,8 @@ const CONSTANTS = {
59
59
  * @version 0.0.1
60
60
  * @since 1.121
61
61
  *
62
- * @internal
63
- * @public
62
+ * @private
63
+ * @ui5-restricted ux.eng.s4producthomes1
64
64
  *
65
65
  * @alias sap.cux.home.AppsContainer
66
66
  */
@@ -456,8 +456,7 @@ export default class AppsContainer extends BaseContainer {
456
456
  */
457
457
  private _togglePanelVisibility(panel: BaseAppPanel, isVisible: boolean) {
458
458
  if (this.getDeviceType() === DeviceType.Mobile) {
459
- const panelWrapper = this._getPanelContentWrapper(panel);
460
- panelWrapper.setVisible(isVisible);
459
+ panel.setVisible(isVisible);
461
460
  } else {
462
461
  const iconTabBar = this._getInnerControl() as IconTabBar;
463
462
  const tabs = (iconTabBar?.getItems() as IconTabFilter[]) || [];
@@ -16,8 +16,8 @@ declare module "sap/cux/home/BaseApp" {
16
16
  * @since 1.121.0
17
17
  *
18
18
  * @abstract
19
- * @internal
20
- * @public
19
+ * @private
20
+ * @ui5-restricted ux.eng.s4producthomes1
21
21
  *
22
22
  * @alias sap.cux.home.BaseApp
23
23
  */
@@ -20,8 +20,8 @@ sap.ui.define(["sap/m/List", "sap/m/Popover", "sap/m/StandardListItem", "sap/m/l
20
20
  * @since 1.121.0
21
21
  *
22
22
  * @abstract
23
- * @internal
24
- * @public
23
+ * @private
24
+ * @ui5-restricted ux.eng.s4producthomes1
25
25
  *
26
26
  * @alias sap.cux.home.BaseApp
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BaseApp.js","names":["sap","ui","define","List","Popover","StandardListItem","sap_m_library","Element","___utils_FESRUtil","ListType","addFESRSemanticStepName","FESR_EVENTS","getFESRId","BaseApp","extend","metadata","library","properties","title","type","group","defaultValue","subTitle","bgColor","icon","status","aggregations","menuItems","multiple","singularName","visibility","constructor","_constructor","id","settings","Element.prototype.constructor.call","_onPress","event","sAction","getParameter","_handlePress","_loadActionsPopover","tile","getSource","actions","getAggregation","oPopover","ActionsPopover","get","onPopoverOpen","addStyleClass","onPopoverClose","removeStyleClass","detachBeforeOpen","detachAfterClose","attachBeforeOpen","attachAfterClose","openBy","_oMoreIcon","_closeActionsPopover","_popover","close","_actionsList","showHeader","placement","ariaLabelledBy","addContent","destroyItems","forEach","action","actionType","getType","oListItem","getId","getIcon","getTitle","tooltip","visible","press","oEvent","Navigation","firePress","listItem","PRESS","addItem"],"sources":["BaseApp.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Button from \"sap/m/Button\";\nimport GenericTile, { GenericTile$PressEvent } from \"sap/m/GenericTile\";\nimport List from \"sap/m/List\";\nimport Popover from \"sap/m/Popover\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport { ListType } from \"sap/m/library\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Element from \"sap/ui/core/Element\";\nimport { $BaseAppSettings } from \"./BaseApp\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRSemanticStepName, FESR_EVENTS, getFESRId } from \"./utils/FESRUtil\";\n\n/**\n *\n * Base App class for managing and storing Apps.\n *\n * @extends sap.ui.core.Element\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @internal\n * @public\n *\n * @alias sap.cux.home.BaseApp\n */\nexport default abstract class BaseApp extends Element {\n\tconstructor(idOrSettings?: string | $BaseAppSettings);\n\tconstructor(id?: string, settings?: $BaseAppSettings);\n\t/**\n\t * Constructor for a new Base App.\n\t *\n\t * @param {string} [id] ID for the new app, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new app\n\t */\n\tpublic constructor(id?: string, settings?: $BaseAppSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Title of the app\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Sub header of the app\n\t\t\t */\n\t\t\tsubTitle: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Background color of the app\n\t\t\t */\n\t\t\tbgColor: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Icon of the app\n\t\t\t */\n\t\t\ticon: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Whether the app is in loaded or loading status\n\t\t\t */\n\t\t\tstatus: { type: \"string\", group: \"Misc\", defaultValue: \"Loaded\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * MenuItems aggregation of the app. These items will be shown in a popover on click of showMore\n\t\t\t */\n\t\t\tmenuItems: { type: \"sap.cux.home.MenuItem\", multiple: true, singularName: \"menuItem\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tabstract _handlePress(event: GenericTile$PressEvent): void;\n\n\t/**\n\t * Base App Press Handler\n\t * @private\n\t * @param {GenericTile$PressEvent} event - The event object.\n\t */\n\tpublic _onPress(event: GenericTile$PressEvent): void {\n\t\tconst sAction = event.getParameter(\"action\") || \"Press\";\n\t\tif (sAction === \"Press\") {\n\t\t\tthis._handlePress(event);\n\t\t} else if (sAction === \"More\") {\n\t\t\tthis._loadActionsPopover(event);\n\t\t}\n\t}\n\n\t/**\n\t * Loads Actions available for selected app tile in popover\n\t * @private\n\t * @param {GenericTile$PressEvent} event - The event object.\n\t */\n\tpublic _loadActionsPopover(event: GenericTile$PressEvent) {\n\t\tconst tile: GenericTile & { _oMoreIcon: Button } = event.getSource?.();\n\t\tconst actions = this.getAggregation(\"menuItems\") as MenuItem[];\n\t\tconst oPopover = ActionsPopover.get(actions);\n\t\t//Add Border around current tile\n\t\tconst onPopoverOpen = () => {\n\t\t\ttile.addStyleClass(\"sapThemeBrand-asOutlineColor\");\n\t\t};\n\t\tconst onPopoverClose = () => {\n\t\t\ttile.removeStyleClass(\"sapThemeBrand-asOutlineColor\");\n\t\t\toPopover.detachBeforeOpen(onPopoverOpen);\n\t\t\toPopover.detachAfterClose(onPopoverClose);\n\t\t};\n\t\toPopover.attachBeforeOpen(onPopoverOpen);\n\t\toPopover.attachAfterClose(onPopoverClose);\n\t\toPopover.openBy(tile._oMoreIcon);\n\t}\n}\n\nexport class ActionsPopover {\n\tprivate static _popover: Popover;\n\tprivate static _actionsList: List;\n\n\tprivate constructor() {}\n\n\tstatic _closeActionsPopover() {\n\t\tActionsPopover._popover.close();\n\t}\n\n\t// Method to get the singleton instance\n\tstatic get(actions?: MenuItem[]): Popover {\n\t\tif (!ActionsPopover._popover) {\n\t\t\tActionsPopover._actionsList = new List({\n\t\t\t\tid: `appActionsList`\n\t\t\t});\n\t\t\tActionsPopover._popover = new Popover(`appActionsPopover`, {\n\t\t\t\tshowHeader: false,\n\t\t\t\tplacement: \"HorizontalPreferredRight\",\n\t\t\t\tariaLabelledBy: [`appActionsPopover`]\n\t\t\t})\n\t\t\t\t.addStyleClass(\"sapContrastPlus\")\n\t\t\t\t.addContent(ActionsPopover._actionsList);\n\t\t}\n\t\tActionsPopover._actionsList.destroyItems();\n\t\tactions?.forEach((action) => {\n\t\t\tconst actionType = action.getType() as ListType;\n\t\t\tconst oListItem = new StandardListItem(`${action.getId()}-index`, {\n\t\t\t\ticon: action.getIcon(),\n\t\t\t\ttitle: action.getTitle(),\n\t\t\t\ttooltip: action.getTitle(),\n\t\t\t\ttype: actionType,\n\t\t\t\tvisible: true,\n\t\t\t\tpress: (oEvent) => {\n\t\t\t\t\tif (actionType !== ListType.Navigation) {\n\t\t\t\t\t\tActionsPopover._closeActionsPopover();\n\t\t\t\t\t}\n\t\t\t\t\taction.firePress({ listItem: oEvent.getSource() });\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRSemanticStepName(oListItem, FESR_EVENTS.PRESS, getFESRId(action));\n\t\t\tActionsPopover._actionsList.addItem(oListItem);\n\t\t});\n\t\treturn ActionsPopover._popover;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseApp.js","names":["sap","ui","define","List","Popover","StandardListItem","sap_m_library","Element","___utils_FESRUtil","ListType","addFESRSemanticStepName","FESR_EVENTS","getFESRId","BaseApp","extend","metadata","library","properties","title","type","group","defaultValue","subTitle","bgColor","icon","status","aggregations","menuItems","multiple","singularName","visibility","constructor","_constructor","id","settings","Element.prototype.constructor.call","_onPress","event","sAction","getParameter","_handlePress","_loadActionsPopover","tile","getSource","actions","getAggregation","oPopover","ActionsPopover","get","onPopoverOpen","addStyleClass","onPopoverClose","removeStyleClass","detachBeforeOpen","detachAfterClose","attachBeforeOpen","attachAfterClose","openBy","_oMoreIcon","_closeActionsPopover","_popover","close","_actionsList","showHeader","placement","ariaLabelledBy","addContent","destroyItems","forEach","action","actionType","getType","oListItem","getId","getIcon","getTitle","tooltip","visible","press","oEvent","Navigation","firePress","listItem","PRESS","addItem"],"sources":["BaseApp.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Button from \"sap/m/Button\";\nimport GenericTile, { GenericTile$PressEvent } from \"sap/m/GenericTile\";\nimport List from \"sap/m/List\";\nimport Popover from \"sap/m/Popover\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport { ListType } from \"sap/m/library\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Element from \"sap/ui/core/Element\";\nimport { $BaseAppSettings } from \"./BaseApp\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRSemanticStepName, FESR_EVENTS, getFESRId } from \"./utils/FESRUtil\";\n\n/**\n *\n * Base App class for managing and storing Apps.\n *\n * @extends sap.ui.core.Element\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseApp\n */\nexport default abstract class BaseApp extends Element {\n\tconstructor(idOrSettings?: string | $BaseAppSettings);\n\tconstructor(id?: string, settings?: $BaseAppSettings);\n\t/**\n\t * Constructor for a new Base App.\n\t *\n\t * @param {string} [id] ID for the new app, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new app\n\t */\n\tpublic constructor(id?: string, settings?: $BaseAppSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Title of the app\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Sub header of the app\n\t\t\t */\n\t\t\tsubTitle: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Background color of the app\n\t\t\t */\n\t\t\tbgColor: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Icon of the app\n\t\t\t */\n\t\t\ticon: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * Whether the app is in loaded or loading status\n\t\t\t */\n\t\t\tstatus: { type: \"string\", group: \"Misc\", defaultValue: \"Loaded\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * MenuItems aggregation of the app. These items will be shown in a popover on click of showMore\n\t\t\t */\n\t\t\tmenuItems: { type: \"sap.cux.home.MenuItem\", multiple: true, singularName: \"menuItem\", visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tabstract _handlePress(event: GenericTile$PressEvent): void;\n\n\t/**\n\t * Base App Press Handler\n\t * @private\n\t * @param {GenericTile$PressEvent} event - The event object.\n\t */\n\tpublic _onPress(event: GenericTile$PressEvent): void {\n\t\tconst sAction = event.getParameter(\"action\") || \"Press\";\n\t\tif (sAction === \"Press\") {\n\t\t\tthis._handlePress(event);\n\t\t} else if (sAction === \"More\") {\n\t\t\tthis._loadActionsPopover(event);\n\t\t}\n\t}\n\n\t/**\n\t * Loads Actions available for selected app tile in popover\n\t * @private\n\t * @param {GenericTile$PressEvent} event - The event object.\n\t */\n\tpublic _loadActionsPopover(event: GenericTile$PressEvent) {\n\t\tconst tile: GenericTile & { _oMoreIcon: Button } = event.getSource?.();\n\t\tconst actions = this.getAggregation(\"menuItems\") as MenuItem[];\n\t\tconst oPopover = ActionsPopover.get(actions);\n\t\t//Add Border around current tile\n\t\tconst onPopoverOpen = () => {\n\t\t\ttile.addStyleClass(\"sapThemeBrand-asOutlineColor\");\n\t\t};\n\t\tconst onPopoverClose = () => {\n\t\t\ttile.removeStyleClass(\"sapThemeBrand-asOutlineColor\");\n\t\t\toPopover.detachBeforeOpen(onPopoverOpen);\n\t\t\toPopover.detachAfterClose(onPopoverClose);\n\t\t};\n\t\toPopover.attachBeforeOpen(onPopoverOpen);\n\t\toPopover.attachAfterClose(onPopoverClose);\n\t\toPopover.openBy(tile._oMoreIcon);\n\t}\n}\n\nexport class ActionsPopover {\n\tprivate static _popover: Popover;\n\tprivate static _actionsList: List;\n\n\tprivate constructor() {}\n\n\tstatic _closeActionsPopover() {\n\t\tActionsPopover._popover.close();\n\t}\n\n\t// Method to get the singleton instance\n\tstatic get(actions?: MenuItem[]): Popover {\n\t\tif (!ActionsPopover._popover) {\n\t\t\tActionsPopover._actionsList = new List({\n\t\t\t\tid: `appActionsList`\n\t\t\t});\n\t\t\tActionsPopover._popover = new Popover(`appActionsPopover`, {\n\t\t\t\tshowHeader: false,\n\t\t\t\tplacement: \"HorizontalPreferredRight\",\n\t\t\t\tariaLabelledBy: [`appActionsPopover`]\n\t\t\t})\n\t\t\t\t.addStyleClass(\"sapContrastPlus\")\n\t\t\t\t.addContent(ActionsPopover._actionsList);\n\t\t}\n\t\tActionsPopover._actionsList.destroyItems();\n\t\tactions?.forEach((action) => {\n\t\t\tconst actionType = action.getType() as ListType;\n\t\t\tconst oListItem = new StandardListItem(`${action.getId()}-index`, {\n\t\t\t\ticon: action.getIcon(),\n\t\t\t\ttitle: action.getTitle(),\n\t\t\t\ttooltip: action.getTitle(),\n\t\t\t\ttype: actionType,\n\t\t\t\tvisible: true,\n\t\t\t\tpress: (oEvent) => {\n\t\t\t\t\tif (actionType !== ListType.Navigation) {\n\t\t\t\t\t\tActionsPopover._closeActionsPopover();\n\t\t\t\t\t}\n\t\t\t\t\taction.firePress({ listItem: oEvent.getSource() });\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRSemanticStepName(oListItem, FESR_EVENTS.PRESS, getFESRId(action));\n\t\t\tActionsPopover._actionsList.addItem(oListItem);\n\t\t});\n\t\treturn ActionsPopover._popover;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -26,8 +26,8 @@ import { addFESRSemanticStepName, FESR_EVENTS, getFESRId } from "./utils/FESRUti
26
26
  * @since 1.121.0
27
27
  *
28
28
  * @abstract
29
- * @internal
30
- * @public
29
+ * @private
30
+ * @ui5-restricted ux.eng.s4producthomes1
31
31
  *
32
32
  * @alias sap.cux.home.BaseApp
33
33
  */
@@ -137,6 +137,16 @@ declare module "sap/cux/home/BaseAppPanel" {
137
137
  * @returns {object} - Updated user acitvity.
138
138
  */
139
139
  private _updateActivityInfo;
140
+ /**
141
+ * Prepares app and tile data before loading.
142
+ * @param {App[]} apps - List of app objects.
143
+ * @param {GenericTile[]} tiles - List of tiles.
144
+ * @returns {Promise<{ apps: App[], tiles: GenericTile[] }>} A promise resolving with the provided apps and tiles.
145
+ */
146
+ prepareAppsBeforeLoad(apps: App[], tiles: GenericTile[]): Promise<{
147
+ apps: App[];
148
+ tiles: GenericTile[];
149
+ }>;
140
150
  /**
141
151
  * Finds the best matching visualization for a given activity from a list of matching visualizations.
142
152
  *