@sapui5/sap.cux.home 1.142.0 → 1.142.2

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 (528) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +4 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.gen.d.ts +1 -1
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js +7 -6
  7. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  8. package/src/sap/cux/home/AdvancedSettingsPanel.ts +7 -6
  9. package/src/sap/cux/home/App.d.ts.map +1 -1
  10. package/src/sap/cux/home/App.gen.d.ts +1 -1
  11. package/src/sap/cux/home/App.js +6 -3
  12. package/src/sap/cux/home/App.js.map +1 -1
  13. package/src/sap/cux/home/App.ts +6 -3
  14. package/src/sap/cux/home/AppsAdditionPanel.d.ts +47 -34
  15. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.js +334 -238
  17. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  18. package/src/sap/cux/home/AppsAdditionPanel.ts +345 -231
  19. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  20. package/src/sap/cux/home/AppsContainer.gen.d.ts +1 -1
  21. package/src/sap/cux/home/AppsContainer.js +4 -3
  22. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  23. package/src/sap/cux/home/AppsContainer.ts +4 -3
  24. package/src/sap/cux/home/BaseApp.gen.d.ts +1 -1
  25. package/src/sap/cux/home/BaseApp.js +1 -1
  26. package/src/sap/cux/home/BaseApp.js.map +1 -1
  27. package/src/sap/cux/home/BaseApp.ts +1 -1
  28. package/src/sap/cux/home/BaseAppPanel.d.ts +9 -0
  29. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  30. package/src/sap/cux/home/BaseAppPanel.gen.d.ts +1 -1
  31. package/src/sap/cux/home/BaseAppPanel.js +21 -2
  32. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  33. package/src/sap/cux/home/BaseAppPanel.ts +23 -2
  34. package/src/sap/cux/home/BaseAppPersPanel.d.ts +1 -1
  35. package/src/sap/cux/home/BaseAppPersPanel.gen.d.ts +1 -1
  36. package/src/sap/cux/home/BaseAppPersPanel.js +1 -1
  37. package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
  38. package/src/sap/cux/home/BaseAppPersPanel.ts +1 -1
  39. package/src/sap/cux/home/BaseContainer.d.ts +2 -2
  40. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  41. package/src/sap/cux/home/BaseContainer.gen.d.ts +1 -1
  42. package/src/sap/cux/home/BaseContainer.js +11 -3
  43. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  44. package/src/sap/cux/home/BaseContainer.ts +8 -4
  45. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  46. package/src/sap/cux/home/BaseContainerRenderer.js +7 -1
  47. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  48. package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
  49. package/src/sap/cux/home/BaseLayout.d.ts +1 -1
  50. package/src/sap/cux/home/BaseLayout.gen.d.ts +1 -1
  51. package/src/sap/cux/home/BaseLayout.js +1 -1
  52. package/src/sap/cux/home/BaseLayout.js.map +1 -1
  53. package/src/sap/cux/home/BaseLayout.ts +1 -1
  54. package/src/sap/cux/home/BaseLayoutRenderer.js +1 -1
  55. package/src/sap/cux/home/BaseLayoutRenderer.js.map +1 -1
  56. package/src/sap/cux/home/BaseLayoutRenderer.ts +1 -1
  57. package/src/sap/cux/home/BaseNewsItem.d.ts +1 -1
  58. package/src/sap/cux/home/BaseNewsItem.gen.d.ts +1 -1
  59. package/src/sap/cux/home/BaseNewsItem.js +1 -1
  60. package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
  61. package/src/sap/cux/home/BaseNewsItem.ts +1 -1
  62. package/src/sap/cux/home/BaseNewsPanel.gen.d.ts +1 -1
  63. package/src/sap/cux/home/BaseNewsPanel.js +1 -1
  64. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  65. package/src/sap/cux/home/BaseNewsPanel.ts +3 -3
  66. package/src/sap/cux/home/BasePagePanel.d.ts +1 -1
  67. package/src/sap/cux/home/BasePagePanel.gen.d.ts +1 -1
  68. package/src/sap/cux/home/BasePagePanel.js +1 -1
  69. package/src/sap/cux/home/BasePagePanel.js.map +1 -1
  70. package/src/sap/cux/home/BasePagePanel.ts +1 -1
  71. package/src/sap/cux/home/BasePanel.d.ts +1 -1
  72. package/src/sap/cux/home/BasePanel.gen.d.ts +1 -1
  73. package/src/sap/cux/home/BasePanel.js +1 -1
  74. package/src/sap/cux/home/BasePanel.js.map +1 -1
  75. package/src/sap/cux/home/BasePanel.ts +1 -1
  76. package/src/sap/cux/home/BaseSettingsDialog.d.ts +1 -1
  77. package/src/sap/cux/home/BaseSettingsDialog.gen.d.ts +1 -1
  78. package/src/sap/cux/home/BaseSettingsDialog.js +1 -1
  79. package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
  80. package/src/sap/cux/home/BaseSettingsDialog.ts +1 -1
  81. package/src/sap/cux/home/BaseSettingsPanel.d.ts +1 -1
  82. package/src/sap/cux/home/BaseSettingsPanel.gen.d.ts +1 -1
  83. package/src/sap/cux/home/BaseSettingsPanel.js +1 -1
  84. package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
  85. package/src/sap/cux/home/BaseSettingsPanel.ts +1 -1
  86. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  87. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  88. package/src/sap/cux/home/CardsContainer.js +207 -0
  89. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  90. package/src/sap/cux/home/CardsContainer.ts +202 -0
  91. package/src/sap/cux/home/CardsPanel.d.ts +43 -62
  92. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  93. package/src/sap/cux/home/CardsPanel.gen.d.ts +1 -1
  94. package/src/sap/cux/home/CardsPanel.js +346 -286
  95. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  96. package/src/sap/cux/home/CardsPanel.ts +212 -201
  97. package/src/sap/cux/home/ContentAdditionDialog.d.ts +3 -1
  98. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  99. package/src/sap/cux/home/ContentAdditionDialog.js +13 -7
  100. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  101. package/src/sap/cux/home/ContentAdditionDialog.ts +14 -6
  102. package/src/sap/cux/home/CustomFlexBox.gen.d.ts +1 -1
  103. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  104. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  105. package/src/sap/cux/home/ErrorPanel.gen.d.ts +32 -1
  106. package/src/sap/cux/home/ErrorPanel.js +12 -17
  107. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  108. package/src/sap/cux/home/ErrorPanel.ts +8 -20
  109. package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
  110. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  111. package/src/sap/cux/home/FavAppPanel.js +297 -302
  112. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  113. package/src/sap/cux/home/FavAppPanel.ts +15 -11
  114. package/src/sap/cux/home/FrequentAppPanel.js +1 -1
  115. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  116. package/src/sap/cux/home/FrequentAppPanel.ts +1 -1
  117. package/src/sap/cux/home/Group.d.ts +1 -1
  118. package/src/sap/cux/home/Group.gen.d.ts +1 -1
  119. package/src/sap/cux/home/Group.js +1 -1
  120. package/src/sap/cux/home/Group.js.map +1 -1
  121. package/src/sap/cux/home/Group.ts +1 -1
  122. package/src/sap/cux/home/IToDoPanel.d.ts +1 -1
  123. package/src/sap/cux/home/IToDoPanel.js +1 -1
  124. package/src/sap/cux/home/IToDoPanel.js.map +1 -1
  125. package/src/sap/cux/home/IToDoPanel.ts +1 -1
  126. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
  127. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  128. package/src/sap/cux/home/InsightsAdditionPanel.js +9 -9
  129. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  130. package/src/sap/cux/home/InsightsAdditionPanel.ts +8 -8
  131. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
  132. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
  133. package/src/sap/cux/home/InsightsCardsSettingsPanel.js +16 -1
  134. package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
  135. package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +12 -1
  136. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +2 -2
  137. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  138. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +2 -2
  139. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  140. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  141. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +253 -40
  142. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  143. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
  144. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  145. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +12 -11
  146. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  147. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +13 -11
  148. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +3 -3
  149. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  150. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +8 -8
  151. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +1 -1
  152. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  153. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +3 -3
  154. package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +1 -1
  155. package/src/sap/cux/home/KeyUserSettingsDialog.js +1 -1
  156. package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
  157. package/src/sap/cux/home/KeyUserSettingsDialog.ts +1 -1
  158. package/src/sap/cux/home/Layout.d.ts +4 -2
  159. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  160. package/src/sap/cux/home/Layout.js +50 -9
  161. package/src/sap/cux/home/Layout.js.map +1 -1
  162. package/src/sap/cux/home/Layout.ts +60 -9
  163. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  164. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  165. package/src/sap/cux/home/LayoutSettingsPanel.js +342 -57
  166. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  167. package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
  168. package/src/sap/cux/home/MenuItem.d.ts +1 -1
  169. package/src/sap/cux/home/MenuItem.gen.d.ts +1 -1
  170. package/src/sap/cux/home/MenuItem.js +1 -1
  171. package/src/sap/cux/home/MenuItem.js.map +1 -1
  172. package/src/sap/cux/home/MenuItem.ts +1 -1
  173. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
  174. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  175. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +4 -4
  176. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +27 -114
  177. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  178. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +30 -119
  179. package/src/sap/cux/home/NewsGroup.gen.d.ts +1 -1
  180. package/src/sap/cux/home/NewsGroup.js +1 -1
  181. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  182. package/src/sap/cux/home/NewsGroup.ts +2 -2
  183. package/src/sap/cux/home/NewsItem.gen.d.ts +1 -1
  184. package/src/sap/cux/home/NewsItem.js +1 -1
  185. package/src/sap/cux/home/NewsItem.js.map +1 -1
  186. package/src/sap/cux/home/NewsItem.ts +1 -1
  187. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  188. package/src/sap/cux/home/NewsPanel.gen.d.ts +1 -1
  189. package/src/sap/cux/home/NewsPanel.js +13 -15
  190. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  191. package/src/sap/cux/home/NewsPanel.ts +14 -17
  192. package/src/sap/cux/home/NewsSettingsPanel.js +5 -5
  193. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  194. package/src/sap/cux/home/NewsSettingsPanel.ts +6 -6
  195. package/src/sap/cux/home/NoDataContainer.js +1 -1
  196. package/src/sap/cux/home/NoDataContainer.js.map +1 -1
  197. package/src/sap/cux/home/NoDataContainer.ts +1 -1
  198. package/src/sap/cux/home/Page.d.ts +1 -1
  199. package/src/sap/cux/home/Page.gen.d.ts +1 -1
  200. package/src/sap/cux/home/Page.js +1 -1
  201. package/src/sap/cux/home/Page.js.map +1 -1
  202. package/src/sap/cux/home/Page.ts +1 -1
  203. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  204. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  205. package/src/sap/cux/home/PagePanel.js +19 -11
  206. package/src/sap/cux/home/PagePanel.js.map +1 -1
  207. package/src/sap/cux/home/PagePanel.ts +26 -16
  208. package/src/sap/cux/home/PageSettingsPanel.js +1 -1
  209. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  210. package/src/sap/cux/home/PageSettingsPanel.ts +1 -1
  211. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  212. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  213. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  214. package/src/sap/cux/home/PagesContainer.js +333 -0
  215. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  216. package/src/sap/cux/home/PagesContainer.ts +179 -0
  217. package/src/sap/cux/home/RecentAppPanel.d.ts +18 -0
  218. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  219. package/src/sap/cux/home/RecentAppPanel.js +30 -1
  220. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  221. package/src/sap/cux/home/RecentAppPanel.ts +33 -2
  222. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  223. package/src/sap/cux/home/RecommendedAppPanel.js +6 -5
  224. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  225. package/src/sap/cux/home/RecommendedAppPanel.ts +5 -4
  226. package/src/sap/cux/home/SettingsDialog.d.ts +8 -1
  227. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  228. package/src/sap/cux/home/SettingsDialog.js +185 -15
  229. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  230. package/src/sap/cux/home/SettingsDialog.ts +15 -5
  231. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +1 -1
  232. package/src/sap/cux/home/SideBySideIconTabFilter.gen.d.ts +1 -1
  233. package/src/sap/cux/home/SideBySideIconTabFilter.js +1 -1
  234. package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
  235. package/src/sap/cux/home/SideBySideIconTabFilter.ts +1 -1
  236. package/src/sap/cux/home/SituationPanel.js +1 -1
  237. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  238. package/src/sap/cux/home/SituationPanel.ts +1 -1
  239. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  240. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  241. package/src/sap/cux/home/SpaceInsightsPanel.gen.d.ts +1 -1
  242. package/src/sap/cux/home/SpaceInsightsPanel.js +67 -133
  243. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  244. package/src/sap/cux/home/SpaceInsightsPanel.ts +70 -152
  245. package/src/sap/cux/home/SpacePanel.gen.d.ts +1 -1
  246. package/src/sap/cux/home/SpacePanel.js +1 -1
  247. package/src/sap/cux/home/SpacePanel.js.map +1 -1
  248. package/src/sap/cux/home/SpacePanel.ts +1 -1
  249. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  250. package/src/sap/cux/home/TaskPanel.gen.d.ts +1 -1
  251. package/src/sap/cux/home/TaskPanel.js +17 -2
  252. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  253. package/src/sap/cux/home/TaskPanel.ts +16 -2
  254. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  255. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  256. package/src/sap/cux/home/TilesContainer.js +218 -0
  257. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  258. package/src/sap/cux/home/TilesContainer.ts +216 -0
  259. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  260. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  261. package/src/sap/cux/home/TilesPanel.gen.d.ts +1 -1
  262. package/src/sap/cux/home/TilesPanel.js +185 -166
  263. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  264. package/src/sap/cux/home/TilesPanel.ts +161 -155
  265. package/src/sap/cux/home/ToDoPanel.d.ts +1 -0
  266. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  267. package/src/sap/cux/home/ToDoPanel.gen.d.ts +1 -1
  268. package/src/sap/cux/home/ToDoPanel.js +39 -64
  269. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  270. package/src/sap/cux/home/ToDoPanel.ts +33 -32
  271. package/src/sap/cux/home/ToDosContainer.js +1 -1
  272. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  273. package/src/sap/cux/home/ToDosContainer.ts +1 -1
  274. package/src/sap/cux/home/changeHandler/LayoutHandler.js +1 -1
  275. package/src/sap/cux/home/changeHandler/LayoutHandler.js.map +1 -1
  276. package/src/sap/cux/home/changeHandler/LayoutHandler.ts +1 -1
  277. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +3 -3
  278. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  279. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +2 -2
  280. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  281. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +5 -5
  282. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +3 -3
  283. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  284. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +2 -2
  285. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  286. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +5 -5
  287. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +3 -3
  288. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  289. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +2 -2
  290. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  291. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +4 -4
  292. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +3 -3
  293. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  294. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +5 -5
  295. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  296. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +6 -6
  297. package/src/sap/cux/home/designtime/Layout.designtime.js +1 -1
  298. package/src/sap/cux/home/designtime/Layout.designtime.js.map +1 -1
  299. package/src/sap/cux/home/designtime/Layout.designtime.ts +1 -1
  300. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  301. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +31 -4
  302. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  303. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +24 -2
  304. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  305. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  306. package/src/sap/cux/home/flexibility/Layout.flexibility.js +79 -3
  307. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  308. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +82 -2
  309. package/src/sap/cux/home/i18n/messagebundle.properties +27 -13
  310. package/src/sap/cux/home/i18n/messagebundle_ar.properties +20 -4
  311. package/src/sap/cux/home/i18n/messagebundle_bg.properties +20 -8
  312. package/src/sap/cux/home/i18n/messagebundle_ca.properties +21 -9
  313. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +26 -14
  314. package/src/sap/cux/home/i18n/messagebundle_cs.properties +20 -8
  315. package/src/sap/cux/home/i18n/messagebundle_cy.properties +20 -8
  316. package/src/sap/cux/home/i18n/messagebundle_da.properties +20 -8
  317. package/src/sap/cux/home/i18n/messagebundle_de.properties +22 -10
  318. package/src/sap/cux/home/i18n/messagebundle_el.properties +20 -8
  319. package/src/sap/cux/home/i18n/messagebundle_en.properties +20 -8
  320. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +20 -8
  321. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +20 -8
  322. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +20 -8
  323. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +20 -8
  324. package/src/sap/cux/home/i18n/messagebundle_es.properties +21 -8
  325. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +20 -8
  326. package/src/sap/cux/home/i18n/messagebundle_et.properties +20 -8
  327. package/src/sap/cux/home/i18n/messagebundle_fi.properties +20 -8
  328. package/src/sap/cux/home/i18n/messagebundle_fr.properties +20 -8
  329. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +20 -8
  330. package/src/sap/cux/home/i18n/messagebundle_hi.properties +20 -8
  331. package/src/sap/cux/home/i18n/messagebundle_hr.properties +20 -8
  332. package/src/sap/cux/home/i18n/messagebundle_hu.properties +20 -8
  333. package/src/sap/cux/home/i18n/messagebundle_id.properties +33 -21
  334. package/src/sap/cux/home/i18n/messagebundle_it.properties +25 -13
  335. package/src/sap/cux/home/i18n/messagebundle_iw.properties +20 -8
  336. package/src/sap/cux/home/i18n/messagebundle_ja.properties +20 -8
  337. package/src/sap/cux/home/i18n/messagebundle_kk.properties +20 -8
  338. package/src/sap/cux/home/i18n/messagebundle_ko.properties +20 -8
  339. package/src/sap/cux/home/i18n/messagebundle_lt.properties +20 -8
  340. package/src/sap/cux/home/i18n/messagebundle_lv.properties +20 -8
  341. package/src/sap/cux/home/i18n/messagebundle_mk.properties +20 -8
  342. package/src/sap/cux/home/i18n/messagebundle_ms.properties +20 -8
  343. package/src/sap/cux/home/i18n/messagebundle_nl.properties +20 -8
  344. package/src/sap/cux/home/i18n/messagebundle_no.properties +20 -8
  345. package/src/sap/cux/home/i18n/messagebundle_pl.properties +20 -8
  346. package/src/sap/cux/home/i18n/messagebundle_pt.properties +20 -8
  347. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +20 -8
  348. package/src/sap/cux/home/i18n/messagebundle_ro.properties +20 -8
  349. package/src/sap/cux/home/i18n/messagebundle_ru.properties +20 -8
  350. package/src/sap/cux/home/i18n/messagebundle_sh.properties +26 -14
  351. package/src/sap/cux/home/i18n/messagebundle_sk.properties +20 -8
  352. package/src/sap/cux/home/i18n/messagebundle_sl.properties +21 -9
  353. package/src/sap/cux/home/i18n/messagebundle_sr.properties +26 -14
  354. package/src/sap/cux/home/i18n/messagebundle_sv.properties +20 -8
  355. package/src/sap/cux/home/i18n/messagebundle_th.properties +20 -8
  356. package/src/sap/cux/home/i18n/messagebundle_tr.properties +20 -8
  357. package/src/sap/cux/home/i18n/messagebundle_uk.properties +24 -12
  358. package/src/sap/cux/home/i18n/messagebundle_vi.properties +20 -8
  359. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +20 -8
  360. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +20 -8
  361. package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -1
  362. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  363. package/src/sap/cux/home/interface/AppsInterface.ts +1 -1
  364. package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -1
  365. package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
  366. package/src/sap/cux/home/interface/CardsInterface.js +1 -1
  367. package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
  368. package/src/sap/cux/home/interface/CardsInterface.ts +1 -2
  369. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +28 -5
  370. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  371. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  372. package/src/sap/cux/home/interface/KeyUserInterface.ts +24 -5
  373. package/src/sap/cux/home/interface/LayoutInterface.d.ts +8 -1
  374. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  375. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  376. package/src/sap/cux/home/interface/LayoutInterface.ts +8 -1
  377. package/src/sap/cux/home/interface/PageSpaceInterface.d.ts +1 -1
  378. package/src/sap/cux/home/interface/PageSpaceInterface.js.map +1 -1
  379. package/src/sap/cux/home/interface/PageSpaceInterface.ts +1 -1
  380. package/src/sap/cux/home/library.d.ts.map +1 -1
  381. package/src/sap/cux/home/library.js +8 -5
  382. package/src/sap/cux/home/library.js.map +1 -1
  383. package/src/sap/cux/home/library.ts +11 -6
  384. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  385. package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
  386. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +0 -45
  387. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  388. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  389. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  390. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  391. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  392. package/src/sap/cux/home/utils/Accessibility.d.ts +1 -1
  393. package/src/sap/cux/home/utils/Accessibility.js +1 -1
  394. package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
  395. package/src/sap/cux/home/utils/Accessibility.ts +1 -1
  396. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +1 -1
  397. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +1 -1
  398. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
  399. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +1 -1
  400. package/src/sap/cux/home/utils/AppManager.js +1 -1
  401. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  402. package/src/sap/cux/home/utils/AppManager.ts +1 -1
  403. package/src/sap/cux/home/utils/BatchHelper.d.ts +2 -1
  404. package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
  405. package/src/sap/cux/home/utils/BatchHelper.js +8 -3
  406. package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
  407. package/src/sap/cux/home/utils/BatchHelper.ts +9 -2
  408. package/src/sap/cux/home/utils/ColorUtils.d.ts +1 -1
  409. package/src/sap/cux/home/utils/ColorUtils.js +1 -1
  410. package/src/sap/cux/home/utils/ColorUtils.js.map +1 -1
  411. package/src/sap/cux/home/utils/ColorUtils.ts +1 -1
  412. package/src/sap/cux/home/utils/CommonUtils.js +1 -1
  413. package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
  414. package/src/sap/cux/home/utils/CommonUtils.ts +1 -1
  415. package/src/sap/cux/home/utils/Constants.js +1 -1
  416. package/src/sap/cux/home/utils/Constants.js.map +1 -1
  417. package/src/sap/cux/home/utils/Constants.ts +1 -1
  418. package/src/sap/cux/home/utils/DataFormatUtils.d.ts +1 -1
  419. package/src/sap/cux/home/utils/DataFormatUtils.js +1 -1
  420. package/src/sap/cux/home/utils/DataFormatUtils.js.map +1 -1
  421. package/src/sap/cux/home/utils/DataFormatUtils.ts +1 -1
  422. package/src/sap/cux/home/utils/DecisionDialog.js +1 -1
  423. package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
  424. package/src/sap/cux/home/utils/DecisionDialog.ts +1 -1
  425. package/src/sap/cux/home/utils/Device.js +1 -1
  426. package/src/sap/cux/home/utils/Device.js.map +1 -1
  427. package/src/sap/cux/home/utils/Device.ts +1 -1
  428. package/src/sap/cux/home/utils/DragDropUtils.d.ts +1 -1
  429. package/src/sap/cux/home/utils/DragDropUtils.js +1 -1
  430. package/src/sap/cux/home/utils/DragDropUtils.js.map +1 -1
  431. package/src/sap/cux/home/utils/DragDropUtils.ts +1 -1
  432. package/src/sap/cux/home/utils/FESRUtil.d.ts +1 -1
  433. package/src/sap/cux/home/utils/FESRUtil.js +1 -1
  434. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  435. package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
  436. package/src/sap/cux/home/utils/FeatureUtils.js +1 -1
  437. package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
  438. package/src/sap/cux/home/utils/FeatureUtils.ts +1 -1
  439. package/src/sap/cux/home/utils/HttpHelper.js +1 -1
  440. package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
  441. package/src/sap/cux/home/utils/HttpHelper.ts +1 -1
  442. package/src/sap/cux/home/utils/IconList.d.ts +1 -1
  443. package/src/sap/cux/home/utils/IconList.js +1 -1
  444. package/src/sap/cux/home/utils/IconList.js.map +1 -1
  445. package/src/sap/cux/home/utils/IconList.ts +1 -1
  446. package/src/sap/cux/home/utils/InsightsUtils.d.ts +1 -1
  447. package/src/sap/cux/home/utils/InsightsUtils.js +1 -1
  448. package/src/sap/cux/home/utils/InsightsUtils.js.map +1 -1
  449. package/src/sap/cux/home/utils/InsightsUtils.ts +1 -1
  450. package/src/sap/cux/home/utils/PXFeedback.js +1 -1
  451. package/src/sap/cux/home/utils/PXFeedback.js.map +1 -1
  452. package/src/sap/cux/home/utils/PXFeedback.ts +1 -1
  453. package/src/sap/cux/home/utils/PageManager.js +1 -1
  454. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  455. package/src/sap/cux/home/utils/PageManager.ts +1 -1
  456. package/src/sap/cux/home/utils/PagesIconsConstants.d.ts +1 -1
  457. package/src/sap/cux/home/utils/PagesIconsConstants.js +1 -1
  458. package/src/sap/cux/home/utils/PagesIconsConstants.js.map +1 -1
  459. package/src/sap/cux/home/utils/PagesIconsConstants.ts +1 -1
  460. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  461. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  462. package/src/sap/cux/home/utils/PerformanceUtils.js +5 -3
  463. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  464. package/src/sap/cux/home/utils/PerformanceUtils.ts +5 -3
  465. package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +1 -1
  466. package/src/sap/cux/home/utils/PersonalisationUtils.js +1 -1
  467. package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
  468. package/src/sap/cux/home/utils/PersonalisationUtils.ts +1 -1
  469. package/src/sap/cux/home/utils/RecommendedCardUtil.js +1 -1
  470. package/src/sap/cux/home/utils/RecommendedCardUtil.js.map +1 -1
  471. package/src/sap/cux/home/utils/RecommendedCardUtil.ts +1 -1
  472. package/src/sap/cux/home/utils/SituationUtils.js +1 -1
  473. package/src/sap/cux/home/utils/SituationUtils.js.map +1 -1
  474. package/src/sap/cux/home/utils/SituationUtils.ts +1 -1
  475. package/src/sap/cux/home/utils/TaskUtils.js +1 -1
  476. package/src/sap/cux/home/utils/TaskUtils.js.map +1 -1
  477. package/src/sap/cux/home/utils/TaskUtils.ts +1 -1
  478. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +1 -1
  479. package/src/sap/cux/home/utils/UshellPersonalizer.js +1 -1
  480. package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
  481. package/src/sap/cux/home/utils/UshellPersonalizer.ts +1 -1
  482. package/src/sap/cux/home/utils/extension/CardExtension.js +1 -1
  483. package/src/sap/cux/home/utils/extension/CardExtension.js.map +1 -1
  484. package/src/sap/cux/home/utils/extension/CardExtension.ts +1 -1
  485. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +151 -152
  486. package/src/sap/cux/home/utils/fragment/showDecisionDialog.fragment.xml +1 -1
  487. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts +1 -1
  488. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js +1 -1
  489. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -1
  490. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.ts +1 -1
  491. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  492. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  493. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +4 -78
  494. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  495. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +2 -76
  496. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  497. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  498. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  499. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  500. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  501. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  502. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  503. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +4 -24
  504. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  505. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +2 -22
  506. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  507. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  508. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  509. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  510. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  511. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts +1 -1
  512. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js +1 -1
  513. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -1
  514. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.ts +1 -1
  515. package/ui5.yaml +1 -0
  516. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  517. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  518. package/src/sap/cux/home/InsightsContainer.js +0 -459
  519. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  520. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  521. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  522. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  523. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  524. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  525. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  526. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  527. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  528. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Dialog", "sap/m/GroupHeaderListItem", "sap/m/library", "sap/m/List", "sap/m/OverflowToolbar", "sap/m/Select", "sap/m/StandardListItem", "sap/m/ToolbarSpacer", "sap/m/VBox", "sap/ui/core/EventBus", "sap/ui/core/format/DateFormat", "sap/ui/core/Item", "sap/ushell/Container", "sap/ushell/EventHub", "./BaseAppPersPanel", "./MenuItem", "./utils/FESRUtil"], function (Log, Button, CustomListItem, Dialog, GroupHeaderListItem, sap_m_library, List, OverflowToolbar, Select, StandardListItem, ToolbarSpacer, VBox, EventBus, DateFormat, Item, Container, EventHub, __BaseAppPersPanel, __MenuItem, ___utils_FESRUtil) {
6
6
  "use strict";
@@ -162,6 +162,35 @@ sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Di
162
162
  fesrSource: FESRNavigationSource.RecentlyUsed
163
163
  };
164
164
  },
165
+ /**
166
+ * Returns the target URL from visualiztion data for recently used apps. Special
167
+ * handling for WDA and GUI apps, by using viz.url if they have special intents,
168
+ * otherwise returns viz.targetURL.
169
+ *
170
+ * @param viz - The custom visualization object
171
+ * @returns The target URL for all recently used apps except the special GUI , WDA apps
172
+ */
173
+ getTargetUrl: function _getTargetUrl(viz) {
174
+ return (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || "";
175
+ },
176
+ /**
177
+ * For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id
178
+ * and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode
179
+ * to launch the app correctly. This method checks if the url contains these intents.
180
+ * @param viz - The custom visualization object
181
+ * @returns boolean indicating whether the url contains WDA or GUI start intent
182
+ */
183
+ checkIfStartWDAorStartGUI: function _checkIfStartWDAorStartGUI(viz) {
184
+ if (!viz?.targetURL || typeof viz.targetURL !== "string") {
185
+ return false;
186
+ }
187
+
188
+ // Convert to uppercase for case-insensitive comparison
189
+ var sUpperURL = viz.targetURL.toUpperCase();
190
+
191
+ // Check if URL contains #Shell-startGUI or #Shell-startWDA
192
+ return sUpperURL.indexOf("#SHELL-STARTGUI") !== -1 || sUpperURL.indexOf("#SHELL-STARTWDA") !== -1;
193
+ },
165
194
  /**
166
195
  * Fetch recent apps and set apps aggregation
167
196
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"RecentAppPanel.js","names":["sap","ui","define","Log","Button","CustomListItem","Dialog","GroupHeaderListItem","sap_m_library","List","OverflowToolbar","Select","StandardListItem","ToolbarSpacer","VBox","EventBus","DateFormat","Item","Container","EventHub","__BaseAppPersPanel","__MenuItem","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","URLHelper","BaseAppPersPanel","MenuItem","addFESRId","addFESRNavigationSource","FESRNavigationSource","DateFilterOption","GroupDateFormatter","getDateInstance","pattern","Constants","OLDER_DATE_TIMESTAMP","Number","MIN_SAFE_INTEGER","formatConstantTimeInDate","date","setHours","getWeekRangeValues","weekOffset","currentDate","Date","startDate","startDateTimeStamp","setDate","getDate","getDay","endDate","endDateTimeStamp","getDaysBefore","currentTimeStamp","days","newDateStamp","isDateWithinRange","appTimeStamp","startTimeStamp","endTimeStamp","RecentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","_recentApps","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","showHistoryMenuItem","getId","title","icon","press","_openHistoryDialog","bind","insertAggregation","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","additionalInfo","fesrSource","RecentlyUsed","loadApps","_loadApps","_this","Promise","resolve","_getRecentApps","recentApps","destroyAggregation","map","app","index","menuItems","_getAppActions","addedInFavorites","setApps","generateApps","reject","_this2","getServiceAsync","UserRecentsService","all","getRecentActivity","oRecentActivity","_getRecentActivitiesFromLoadedData","recentActivities","recentActivitiesUsageData","convertActivitiesToVisualizations","_this2$convertActivit","recentDate","recentDay","_recentDayTimeStamp","recentUsage","recentUsageArray","recentUsageMap","Map","forEach","oItem","appId","set","aUsageArray","dateStamp","timestamp","size","usageArray","get","orgAppId","error","isAppAddedInFavorite","resumeLastActivityItem","getKey","_resumeAppActivity","appActions","addToFavoritesItem","event","_addAppToFavorites","push","menuItem","getSource","getParent","url","getUrl","redirect","ResumeAppActivity","_generateHistoryDialog","_controlMap","content","height","items","_generateAppHistoryList","addStyleClass","escapeHandler","_closeHistoryDialog","contentHeight","contentWidth","buttons","text","growing","growingScrollToLoad","headerToolbar","style","_generateAppHistoryListFilter","selectedKey","ALL","change","_onDateFilterChange","key","TODAY","WEEK","TWO_WEEK","THREE_WEEK","_generateAppHistoryListItems","appHistoryItems","appHistoryList","destroyItems","appHistoryItem","addItem","_getGroupHeader","name","historyDialog","appHistory","_getAppHistory","open","close","getParameter","filteredAppHistory","_getFilteredAppHistory","sTitle","format","length","groupedAppHistory","thresholdTimeStamp","recentApp","appUsage","usage","usageDate","Object","values","sort","a","b","filter","currentWeekStartDate","currentWeekEndDate","secondWeekStartDate","thirdWeekStartDate","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["RecentAppPanel.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 Button from \"sap/m/Button\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport Dialog from \"sap/m/Dialog\";\nimport GroupHeaderListItem from \"sap/m/GroupHeaderListItem\";\nimport { URLHelper } from \"sap/m/library\";\nimport List from \"sap/m/List\";\nimport OverflowToolbar from \"sap/m/OverflowToolbar\";\nimport Select, { Select$ChangeEvent } from \"sap/m/Select\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\nimport VBox from \"sap/m/VBox\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Item from \"sap/ui/core/Item\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRId, addFESRNavigationSource, FESRNavigationSource } from \"./utils/FESRUtil\";\n\ninterface IAppHistoryItem {\n\tname: string;\n}\n\ninterface IAppHistory {\n\tdateStamp: number;\n\tapps: IAppHistoryItem[];\n}\n\nenum DateFilterOption {\n\tALL = \"ALL\",\n\tTODAY = \"TODAY\",\n\tWEEK = \"WEEK\",\n\tTWO_WEEK = \"TWO_WEEK\",\n\tTHREE_WEEK = \"THREE_WEEK\"\n}\n\nconst GroupDateFormatter = DateFormat.getDateInstance({ pattern: \"MMMM d, yyyy\" });\n\nconst Constants = {\n\tOLDER_DATE_TIMESTAMP: Number.MIN_SAFE_INTEGER\n};\n\nconst formatConstantTimeInDate = (date: Date): number => {\n\treturn date.setHours(12, 0, 0, 0);\n};\n\n/**\n * Calculates the start and end dates of a week based on the given week offset.\n * @param weekOffset - The offset from the current week.\n * @returns An object containing the start and end dates of the week.\n */\nconst getWeekRangeValues = (weekOffset: number) => {\n\tconst currentDate = new Date();\n\n\t// Calculate the start of the current week (with sunday as the first day of the week)\n\tconst startDate = new Date(currentDate);\n\tconst startDateTimeStamp = startDate.setDate(currentDate.getDate() - currentDate.getDay() - 7 * weekOffset);\n\n\t// Calculate the end of the week\n\tconst endDate = new Date(startDate);\n\tconst endDateTimeStamp = endDate.setDate(startDate.getDate() + 6);\n\n\treturn {\n\t\tstartDate: startDateTimeStamp,\n\t\tendDate: endDateTimeStamp\n\t};\n};\n\n/**\n * Calculates the timestamp of a date, that is a specified number of days before a given current date.\n *\n * @param {Date} currentTimeStamp - The current date to calculate days before.\n * @param {number} days - The number of days before the current date.\n * @returns {number} The timestamp of the date `days` before `currentDate`.\n */\nconst getDaysBefore = (currentTimeStamp: number, days: number): number => {\n\tconst currentDate = new Date(currentTimeStamp);\n\tconst newDateStamp = currentDate.setDate(currentDate.getDate() - days);\n\treturn formatConstantTimeInDate(new Date(newDateStamp));\n};\n\n/**\n * Filters an app by date.\n * @private\n * @param {number} appTimeStamp - The timestamp of the app.\n * @param {number} startTimeStamp - The start timestamp for filtering.\n * @param {number} endTimeStamp - The end timestamp for filtering.\n * @returns A boolean indicating whether the app falls within the specified date range.\n */\nconst isDateWithinRange = (appTimeStamp: number, startTimeStamp: number, endTimeStamp: number) => {\n\treturn appTimeStamp >= startTimeStamp && appTimeStamp <= endTimeStamp;\n};\n\n/**\n *\n * Provides class for managing Recently Used apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\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.RecentAppPanel\n */\nexport default class RecentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tprivate _recentDayTimeStamp!: number;\n\tprivate _recentApps: IActivity[] = [];\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Recent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new Recently Used apps Panel.\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?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"recentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"recentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"recentAppsInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\t//Setup Menu Items\n\t\tconst showHistoryMenuItem = new MenuItem(`${this.getId()}-show-history-btn`, {\n\t\t\ttitle: this._i18nBundle.getText(\"showHistoryBtn\"),\n\t\t\ticon: \"sap-icon://history\",\n\t\t\tpress: this._openHistoryDialog.bind(this)\n\t\t});\n\t\taddFESRId(showHistoryMenuItem, \"showHistory\");\n\t\tthis.insertAggregation(\"menuItems\", showHistoryMenuItem, 0);\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in recent apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis.additionalInfo = {\n\t\t\tfesrSource: FESRNavigationSource.RecentlyUsed\n\t\t};\n\t}\n\n\t/**\n\t * Fetch recent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet recentApps = await this._getRecentApps();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\trecentApps = recentApps.map((app, index) => {\n\t\t\treturn {\n\t\t\t\t...app,\n\t\t\t\tmenuItems: this._getAppActions(app.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tthis.setApps(this.generateApps(recentApps));\n\t}\n\n\t/**\n\t * Returns list of recent apps\n\t * @private\n\t * @returns {Promise<IActivity[]>} - Array of recent apps.\n\t */\n\tprivate async _getRecentApps(): Promise<IActivity[]> {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst [recentActivities, recentActivitiesUsageData] = await Promise.all([\n\t\t\t\tUserRecentsService?.getRecentActivity().then((result) => result || []),\n\t\t\t\tUserRecentsService?.oRecentActivity._getRecentActivitiesFromLoadedData().then((result) => result || {})\n\t\t\t]);\n\t\t\t//convert activity to apps\n\t\t\tthis._recentApps = await this.convertActivitiesToVisualizations(recentActivities);\n\t\t\tlet recentDate = new Date(recentActivitiesUsageData?.recentDay);\n\t\t\t// add last used and usage info\n\t\t\tthis._recentDayTimeStamp = formatConstantTimeInDate(recentDate);\n\n\t\t\tconst recentUsage = recentActivitiesUsageData?.recentUsageArray || [];\n\t\t\tconst recentUsageMap = new Map<string, number[]>();\n\t\t\trecentUsage.forEach((app) => {\n\t\t\t\tif (app.oItem?.appId) {\n\t\t\t\t\trecentUsageMap.set(app.oItem.appId, app.aUsageArray);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._recentApps.forEach((app) => {\n\t\t\t\t//isolate only date information by having common time information\n\t\t\t\tapp.dateStamp = formatConstantTimeInDate(new Date(app.timestamp));\n\t\t\t\tif (recentUsageMap.size) {\n\t\t\t\t\tapp.usageArray = recentUsageMap.get(app.orgAppId);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this._recentApps || [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getAppActions(isAppAddedInFavorite: boolean = false, index?: number): MenuItem[] {\n\t\tconst resumeLastActivityItem = new MenuItem(`${this.getKey()}--${index}--resumeLastActivityItem`, {\n\t\t\ttitle: this._i18nBundle.getText(\"resumeLastActivity\"),\n\t\t\ticon: \"sap-icon://past\",\n\t\t\tpress: this._resumeAppActivity.bind(this)\n\t\t});\n\t\taddFESRId(resumeLastActivityItem, \"resumeActivity\");\n\t\tconst appActions = [resumeLastActivityItem];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\tconst addToFavoritesItem = new MenuItem(`${this.getKey()}--${index}--addToFavoritesRecentItem`, {\n\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\tpress: (event) => {\n\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRId(addToFavoritesItem, \"addFavFromRecent\");\n\t\t\tappActions.push(addToFavoritesItem);\n\t\t}\n\t\treturn appActions;\n\t}\n\n\t/**\n\t * Redirects to the selected app url\n\t * @private\n\t * @param {sap.ui.base.Event} event - The event object.\n\t */\n\tprivate _resumeAppActivity(event: Event) {\n\t\tconst menuItem = event.getSource<MenuItem>();\n\t\tconst app = menuItem.getParent() as App;\n\t\tconst url = app.getUrl?.();\n\t\tURLHelper.redirect(url, false);\n\t\taddFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);\n\t}\n\n\t/**\n\t * Generates and returns a dialog for showing the history of recent applications.\n\t * @private\n\t * @returns The generated dialog for showing the history of recent applications.\n\t */\n\tprivate _generateHistoryDialog() {\n\t\tconst id = `${this.getId()}-history-dialog`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Dialog(id, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"showHistoryTitle\"),\n\t\t\t\t\tcontent: new VBox({\n\t\t\t\t\t\tid: `${id}-container`,\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\titems: [this._generateAppHistoryList()]\n\t\t\t\t\t}).addStyleClass(\"sapUiTinyMargin\"),\n\t\t\t\t\tescapeHandler: this._closeHistoryDialog.bind(this),\n\t\t\t\t\tcontentHeight: \"29rem\",\n\t\t\t\t\tcontentWidth: \"25rem\",\n\t\t\t\t\tbuttons: [\n\t\t\t\t\t\tnew Button({\n\t\t\t\t\t\t\tid: `${id}-cancel-btn`,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"cancelBtn\"),\n\t\t\t\t\t\t\tpress: this._closeHistoryDialog.bind(this)\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}).addStyleClass(\"sapContrastPlus\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Dialog;\n\t}\n\n\t/**\n\t * Generates the app history list.\n\t * @private\n\t * @returns The generated app history list.\n\t */\n\tprivate _generateAppHistoryList() {\n\t\tconst id = `${this.getId()}-history-dialog-list`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew List({\n\t\t\t\t\tid,\n\t\t\t\t\tgrowing: true,\n\t\t\t\t\tgrowingScrollToLoad: true,\n\t\t\t\t\theaderToolbar: new OverflowToolbar({\n\t\t\t\t\t\tid: `${id}-header-toolbar`,\n\t\t\t\t\t\tstyle: \"Clear\",\n\t\t\t\t\t\theight: \"1.75rem\",\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\tnew ToolbarSpacer({\n\t\t\t\t\t\t\t\tid: `${id}-header-toolbar-spacer`\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tthis._generateAppHistoryListFilter()\n\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone recentAppList\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as List;\n\t}\n\n\t/**\n\t * Generates the app history list filter.\n\t * @private\n\t * @returns The Select control for the app history list filter.\n\t */\n\tprivate _generateAppHistoryListFilter() {\n\t\tconst id = `${this.getId()}-history-dialog-list-filter`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Select({\n\t\t\t\t\tid,\n\t\t\t\t\tselectedKey: DateFilterOption.ALL,\n\t\t\t\t\tchange: (e) => this._onDateFilterChange(e),\n\t\t\t\t\titems: [\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-month`,\n\t\t\t\t\t\t\tkey: DateFilterOption.ALL,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThirty\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-today`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TODAY,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateToday\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-week`,\n\t\t\t\t\t\t\tkey: DateFilterOption.WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-twoWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TWO_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateTwoWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-threeWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.THREE_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThreeWeek\")\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Select;\n\t}\n\n\t/**\n\t * Generates and populates items in the app history list based on the provided list of items.\n\t * Clears existing items in the list before adding new items.\n\t *\n\t * @param {IAppHistory[]} appHistoryItems - Array of items to populate in the app history list.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _generateAppHistoryListItems(appHistoryItems: IAppHistory[]): void {\n\t\tconst appHistoryList = this._generateAppHistoryList();\n\t\tappHistoryList?.destroyItems();\n\t\tappHistoryItems.forEach((appHistoryItem) => {\n\t\t\tappHistoryList.addItem(this._getGroupHeader(appHistoryItem.dateStamp));\n\t\t\tappHistoryList.addItem(\n\t\t\t\tnew CustomListItem({\n\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-lisItem`,\n\t\t\t\t\ttype: \"Inactive\",\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\tnew List({\n\t\t\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-appList`,\n\t\t\t\t\t\t\titems: (appHistoryItem.apps || []).map((app, index) =>\n\t\t\t\t\t\t\t\tnew StandardListItem({\n\t\t\t\t\t\t\t\t\tid: `listItem--${appHistoryItem.dateStamp}--${index}`,\n\t\t\t\t\t\t\t\t\ttitle: app.name,\n\t\t\t\t\t\t\t\t\ttype: \"Inactive\"\n\t\t\t\t\t\t\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppList sapUiSmallMarginTop\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone sapUiTinyMarginBottom\")\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Opens the history dialog.\n\t * This method generates the show history dialog, retrieves the app history list,\n\t * generates the app history list items, and opens the dialog.\n\t * @private\n\t */\n\tprivate _openHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\tconst appHistory = this._getAppHistory();\n\t\tthis._generateAppHistoryListItems(appHistory);\n\t\thistoryDialog.open();\n\t}\n\n\t/**\n\t * Closes the history dialog.\n\t * @private\n\t */\n\tprivate _closeHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\thistoryDialog.close();\n\t}\n\n\t/**\n\t * Handles the change event of the date filter.\n\t * Updates the app history list based on the selected date filter.\n\t * @private\n\t * @param {Select$ChangeEvent} event - The select change event.\n\t */\n\tprivate _onDateFilterChange(event: Select$ChangeEvent) {\n\t\tconst selectedKey = event.getParameter(\"selectedItem\")?.getKey() as DateFilterOption;\n\t\tconst filteredAppHistory: IAppHistory[] = this._getFilteredAppHistory(selectedKey);\n\t\tthis._generateAppHistoryListItems(filteredAppHistory);\n\t}\n\n\t/**\n\t * Generates a group header for the given date timestamp.\n\t *\n\t * @param {number} dateStamp - The timestamp representing the date.\n\t * @returns {GroupHeaderListItem} The generated group header list item.\n\t * @private\n\t */\n\tprivate _getGroupHeader(dateStamp: number): GroupHeaderListItem {\n\t\tlet sTitle = \"\";\n\t\tswitch (dateStamp) {\n\t\t\tcase Constants.OLDER_DATE_TIMESTAMP:\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateLater\") as string;\n\t\t\t\tbreak;\n\t\t\tcase formatConstantTimeInDate(new Date()):\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateToday\") as string;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsTitle = GroupDateFormatter.format(new Date(dateStamp));\n\t\t\t\tbreak;\n\t\t}\n\t\treturn new GroupHeaderListItem({\n\t\t\ttitle: sTitle\n\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppListHeader\");\n\t}\n\n\t/**\n\t * Retrieves the application usage history based on recent app data.\n\t *\n\t * @returns {IAppHistory[]} Array of objects, where each object contains the date timestamp and the apps that are used on that date.\n\t * @private\n\t */\n\tprivate _getAppHistory(): IAppHistory[] {\n\t\tif (this._recentDayTimeStamp && this._recentApps?.length) {\n\t\t\tconst groupedAppHistory: Record<number, IAppHistory> = {};\n\t\t\tconst thresholdTimeStamp = getDaysBefore(this._recentDayTimeStamp, 30); // 30 days threshold\n\t\t\tthis._recentApps.forEach((recentApp) => {\n\t\t\t\tconst appTimeStamp = formatConstantTimeInDate(new Date(recentApp.dateStamp!));\n\t\t\t\tif (appTimeStamp < thresholdTimeStamp) {\n\t\t\t\t\tif (!groupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]) {\n\t\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP] = { dateStamp: Constants.OLDER_DATE_TIMESTAMP, apps: [] };\n\t\t\t\t\t}\n\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]?.apps.push({ name: recentApp.title });\n\t\t\t\t} else {\n\t\t\t\t\tconst appUsage = recentApp.usageArray || [];\n\t\t\t\t\tappUsage.forEach((usage, index) => {\n\t\t\t\t\t\tif (usage > 0) {\n\t\t\t\t\t\t\tconst usageDate = getDaysBefore(this._recentDayTimeStamp, appUsage.length - 1 - index);\n\t\t\t\t\t\t\tif (!groupedAppHistory[usageDate]) {\n\t\t\t\t\t\t\t\tgroupedAppHistory[usageDate] = { dateStamp: usageDate, apps: [] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgroupedAppHistory[usageDate]?.apps.push({ name: recentApp.title });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst appHistory = Object.values(groupedAppHistory);\n\t\t\tappHistory.sort((a, b) => b.dateStamp - a.dateStamp);\n\t\t\treturn appHistory;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Retrieves the filtered app history based on the selected date filter option.\n\t * @private\n\t * @param {DateFilterOption} selectedKey - The selected date filter option.\n\t * @returns {IAppHistory[]} An array of filtered app history.\n\t */\n\tprivate _getFilteredAppHistory(selectedKey: DateFilterOption): IAppHistory[] {\n\t\tconst appHistory = this._getAppHistory();\n\t\tlet filteredAppHistory: IAppHistory[] = [];\n\t\tswitch (selectedKey) {\n\t\t\tcase DateFilterOption.TODAY: {\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => app.dateStamp === formatConstantTimeInDate(new Date()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.WEEK: {\n\t\t\t\tconst { startDate: currentWeekStartDate, endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, currentWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.TWO_WEEK: {\n\t\t\t\tconst { startDate: secondWeekStartDate } = getWeekRangeValues(1);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, secondWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.THREE_WEEK: {\n\t\t\t\tconst { startDate: thirdWeekStartDate } = getWeekRangeValues(2);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, thirdWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfilteredAppHistory = [...appHistory];\n\t\t\t\tbreak;\n\t\t}\n\t\treturn filteredAppHistory;\n\t}\n\n\t/**\n\t * Generates illustrated message for recent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noRecentAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RecentAppPanel.js","names":["sap","ui","define","Log","Button","CustomListItem","Dialog","GroupHeaderListItem","sap_m_library","List","OverflowToolbar","Select","StandardListItem","ToolbarSpacer","VBox","EventBus","DateFormat","Item","Container","EventHub","__BaseAppPersPanel","__MenuItem","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","URLHelper","BaseAppPersPanel","MenuItem","addFESRId","addFESRNavigationSource","FESRNavigationSource","DateFilterOption","GroupDateFormatter","getDateInstance","pattern","Constants","OLDER_DATE_TIMESTAMP","Number","MIN_SAFE_INTEGER","formatConstantTimeInDate","date","setHours","getWeekRangeValues","weekOffset","currentDate","Date","startDate","startDateTimeStamp","setDate","getDate","getDay","endDate","endDateTimeStamp","getDaysBefore","currentTimeStamp","days","newDateStamp","isDateWithinRange","appTimeStamp","startTimeStamp","endTimeStamp","RecentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","_recentApps","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","showHistoryMenuItem","getId","title","icon","press","_openHistoryDialog","bind","insertAggregation","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","additionalInfo","fesrSource","RecentlyUsed","getTargetUrl","_getTargetUrl","viz","checkIfStartWDAorStartGUI","url","targetURL","_checkIfStartWDAorStartGUI","sUpperURL","toUpperCase","indexOf","loadApps","_loadApps","_this","Promise","resolve","_getRecentApps","recentApps","destroyAggregation","map","app","index","menuItems","_getAppActions","addedInFavorites","setApps","generateApps","reject","_this2","getServiceAsync","UserRecentsService","all","getRecentActivity","oRecentActivity","_getRecentActivitiesFromLoadedData","recentActivities","recentActivitiesUsageData","convertActivitiesToVisualizations","_this2$convertActivit","recentDate","recentDay","_recentDayTimeStamp","recentUsage","recentUsageArray","recentUsageMap","Map","forEach","oItem","appId","set","aUsageArray","dateStamp","timestamp","size","usageArray","get","orgAppId","error","isAppAddedInFavorite","resumeLastActivityItem","getKey","_resumeAppActivity","appActions","addToFavoritesItem","event","_addAppToFavorites","push","menuItem","getSource","getParent","getUrl","redirect","ResumeAppActivity","_generateHistoryDialog","_controlMap","content","height","items","_generateAppHistoryList","addStyleClass","escapeHandler","_closeHistoryDialog","contentHeight","contentWidth","buttons","text","growing","growingScrollToLoad","headerToolbar","style","_generateAppHistoryListFilter","selectedKey","ALL","change","_onDateFilterChange","key","TODAY","WEEK","TWO_WEEK","THREE_WEEK","_generateAppHistoryListItems","appHistoryItems","appHistoryList","destroyItems","appHistoryItem","addItem","_getGroupHeader","name","historyDialog","appHistory","_getAppHistory","open","close","getParameter","filteredAppHistory","_getFilteredAppHistory","sTitle","format","length","groupedAppHistory","thresholdTimeStamp","recentApp","appUsage","usage","usageDate","Object","values","sort","a","b","filter","currentWeekStartDate","currentWeekEndDate","secondWeekStartDate","thirdWeekStartDate","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["RecentAppPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport Button from \"sap/m/Button\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport Dialog from \"sap/m/Dialog\";\nimport GroupHeaderListItem from \"sap/m/GroupHeaderListItem\";\nimport { URLHelper } from \"sap/m/library\";\nimport List from \"sap/m/List\";\nimport OverflowToolbar from \"sap/m/OverflowToolbar\";\nimport Select, { Select$ChangeEvent } from \"sap/m/Select\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\nimport VBox from \"sap/m/VBox\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Item from \"sap/ui/core/Item\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity, ICustomVisualization } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRId, addFESRNavigationSource, FESRNavigationSource } from \"./utils/FESRUtil\";\n\ninterface IAppHistoryItem {\n\tname: string;\n}\n\ninterface IAppHistory {\n\tdateStamp: number;\n\tapps: IAppHistoryItem[];\n}\n\nenum DateFilterOption {\n\tALL = \"ALL\",\n\tTODAY = \"TODAY\",\n\tWEEK = \"WEEK\",\n\tTWO_WEEK = \"TWO_WEEK\",\n\tTHREE_WEEK = \"THREE_WEEK\"\n}\n\nconst GroupDateFormatter = DateFormat.getDateInstance({ pattern: \"MMMM d, yyyy\" });\n\nconst Constants = {\n\tOLDER_DATE_TIMESTAMP: Number.MIN_SAFE_INTEGER\n};\n\nconst formatConstantTimeInDate = (date: Date): number => {\n\treturn date.setHours(12, 0, 0, 0);\n};\n\n/**\n * Calculates the start and end dates of a week based on the given week offset.\n * @param weekOffset - The offset from the current week.\n * @returns An object containing the start and end dates of the week.\n */\nconst getWeekRangeValues = (weekOffset: number) => {\n\tconst currentDate = new Date();\n\n\t// Calculate the start of the current week (with sunday as the first day of the week)\n\tconst startDate = new Date(currentDate);\n\tconst startDateTimeStamp = startDate.setDate(currentDate.getDate() - currentDate.getDay() - 7 * weekOffset);\n\n\t// Calculate the end of the week\n\tconst endDate = new Date(startDate);\n\tconst endDateTimeStamp = endDate.setDate(startDate.getDate() + 6);\n\n\treturn {\n\t\tstartDate: startDateTimeStamp,\n\t\tendDate: endDateTimeStamp\n\t};\n};\n\n/**\n * Calculates the timestamp of a date, that is a specified number of days before a given current date.\n *\n * @param {Date} currentTimeStamp - The current date to calculate days before.\n * @param {number} days - The number of days before the current date.\n * @returns {number} The timestamp of the date `days` before `currentDate`.\n */\nconst getDaysBefore = (currentTimeStamp: number, days: number): number => {\n\tconst currentDate = new Date(currentTimeStamp);\n\tconst newDateStamp = currentDate.setDate(currentDate.getDate() - days);\n\treturn formatConstantTimeInDate(new Date(newDateStamp));\n};\n\n/**\n * Filters an app by date.\n * @private\n * @param {number} appTimeStamp - The timestamp of the app.\n * @param {number} startTimeStamp - The start timestamp for filtering.\n * @param {number} endTimeStamp - The end timestamp for filtering.\n * @returns A boolean indicating whether the app falls within the specified date range.\n */\nconst isDateWithinRange = (appTimeStamp: number, startTimeStamp: number, endTimeStamp: number) => {\n\treturn appTimeStamp >= startTimeStamp && appTimeStamp <= endTimeStamp;\n};\n\n/**\n *\n * Provides class for managing Recently Used apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\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.RecentAppPanel\n */\nexport default class RecentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tprivate _recentDayTimeStamp!: number;\n\tprivate _recentApps: IActivity[] = [];\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Recent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new Recently Used apps Panel.\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?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"recentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"recentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"recentAppsInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\t//Setup Menu Items\n\t\tconst showHistoryMenuItem = new MenuItem(`${this.getId()}-show-history-btn`, {\n\t\t\ttitle: this._i18nBundle.getText(\"showHistoryBtn\"),\n\t\t\ticon: \"sap-icon://history\",\n\t\t\tpress: this._openHistoryDialog.bind(this)\n\t\t});\n\t\taddFESRId(showHistoryMenuItem, \"showHistory\");\n\t\tthis.insertAggregation(\"menuItems\", showHistoryMenuItem, 0);\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in recent apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis.additionalInfo = {\n\t\t\tfesrSource: FESRNavigationSource.RecentlyUsed\n\t\t};\n\t}\n\n\t/**\n\t * Returns the target URL from visualiztion data for recently used apps. Special\n\t * handling for WDA and GUI apps, by using viz.url if they have special intents,\n\t * otherwise returns viz.targetURL.\n\t *\n\t * @param viz - The custom visualization object\n\t * @returns The target URL for all recently used apps except the special GUI , WDA apps\n\t */\n\tprotected getTargetUrl(viz: ICustomVisualization): string {\n\t\treturn (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || \"\";\n\t}\n\n\t/**\n\t * For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id\n\t * and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode\n\t * to launch the app correctly. This method checks if the url contains these intents.\n\t * @param viz - The custom visualization object\n\t * @returns boolean indicating whether the url contains WDA or GUI start intent\n\t */\n\tprivate checkIfStartWDAorStartGUI(viz: ICustomVisualization): boolean {\n\t\tif (!viz?.targetURL || typeof viz.targetURL !== \"string\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Convert to uppercase for case-insensitive comparison\n\t\tvar sUpperURL = viz.targetURL.toUpperCase();\n\n\t\t// Check if URL contains #Shell-startGUI or #Shell-startWDA\n\t\treturn sUpperURL.indexOf(\"#SHELL-STARTGUI\") !== -1 || sUpperURL.indexOf(\"#SHELL-STARTWDA\") !== -1;\n\t}\n\n\t/**\n\t * Fetch recent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet recentApps = await this._getRecentApps();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\trecentApps = recentApps.map((app, index) => {\n\t\t\treturn {\n\t\t\t\t...app,\n\t\t\t\tmenuItems: this._getAppActions(app.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tthis.setApps(this.generateApps(recentApps));\n\t}\n\n\t/**\n\t * Returns list of recent apps\n\t * @private\n\t * @returns {Promise<IActivity[]>} - Array of recent apps.\n\t */\n\tprivate async _getRecentApps(): Promise<IActivity[]> {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst [recentActivities, recentActivitiesUsageData] = await Promise.all([\n\t\t\t\tUserRecentsService?.getRecentActivity().then((result) => result || []),\n\t\t\t\tUserRecentsService?.oRecentActivity._getRecentActivitiesFromLoadedData().then((result) => result || {})\n\t\t\t]);\n\t\t\t//convert activity to apps\n\t\t\tthis._recentApps = await this.convertActivitiesToVisualizations(recentActivities);\n\t\t\tlet recentDate = new Date(recentActivitiesUsageData?.recentDay);\n\t\t\t// add last used and usage info\n\t\t\tthis._recentDayTimeStamp = formatConstantTimeInDate(recentDate);\n\n\t\t\tconst recentUsage = recentActivitiesUsageData?.recentUsageArray || [];\n\t\t\tconst recentUsageMap = new Map<string, number[]>();\n\t\t\trecentUsage.forEach((app) => {\n\t\t\t\tif (app.oItem?.appId) {\n\t\t\t\t\trecentUsageMap.set(app.oItem.appId, app.aUsageArray);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._recentApps.forEach((app) => {\n\t\t\t\t//isolate only date information by having common time information\n\t\t\t\tapp.dateStamp = formatConstantTimeInDate(new Date(app.timestamp));\n\t\t\t\tif (recentUsageMap.size) {\n\t\t\t\t\tapp.usageArray = recentUsageMap.get(app.orgAppId);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this._recentApps || [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getAppActions(isAppAddedInFavorite: boolean = false, index?: number): MenuItem[] {\n\t\tconst resumeLastActivityItem = new MenuItem(`${this.getKey()}--${index}--resumeLastActivityItem`, {\n\t\t\ttitle: this._i18nBundle.getText(\"resumeLastActivity\"),\n\t\t\ticon: \"sap-icon://past\",\n\t\t\tpress: this._resumeAppActivity.bind(this)\n\t\t});\n\t\taddFESRId(resumeLastActivityItem, \"resumeActivity\");\n\t\tconst appActions = [resumeLastActivityItem];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\tconst addToFavoritesItem = new MenuItem(`${this.getKey()}--${index}--addToFavoritesRecentItem`, {\n\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\tpress: (event) => {\n\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRId(addToFavoritesItem, \"addFavFromRecent\");\n\t\t\tappActions.push(addToFavoritesItem);\n\t\t}\n\t\treturn appActions;\n\t}\n\n\t/**\n\t * Redirects to the selected app url\n\t * @private\n\t * @param {sap.ui.base.Event} event - The event object.\n\t */\n\tprivate _resumeAppActivity(event: Event) {\n\t\tconst menuItem = event.getSource<MenuItem>();\n\t\tconst app = menuItem.getParent() as App;\n\t\tconst url = app.getUrl?.();\n\t\tURLHelper.redirect(url, false);\n\t\taddFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);\n\t}\n\n\t/**\n\t * Generates and returns a dialog for showing the history of recent applications.\n\t * @private\n\t * @returns The generated dialog for showing the history of recent applications.\n\t */\n\tprivate _generateHistoryDialog() {\n\t\tconst id = `${this.getId()}-history-dialog`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Dialog(id, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"showHistoryTitle\"),\n\t\t\t\t\tcontent: new VBox({\n\t\t\t\t\t\tid: `${id}-container`,\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\titems: [this._generateAppHistoryList()]\n\t\t\t\t\t}).addStyleClass(\"sapUiTinyMargin\"),\n\t\t\t\t\tescapeHandler: this._closeHistoryDialog.bind(this),\n\t\t\t\t\tcontentHeight: \"29rem\",\n\t\t\t\t\tcontentWidth: \"25rem\",\n\t\t\t\t\tbuttons: [\n\t\t\t\t\t\tnew Button({\n\t\t\t\t\t\t\tid: `${id}-cancel-btn`,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"cancelBtn\"),\n\t\t\t\t\t\t\tpress: this._closeHistoryDialog.bind(this)\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}).addStyleClass(\"sapContrastPlus\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Dialog;\n\t}\n\n\t/**\n\t * Generates the app history list.\n\t * @private\n\t * @returns The generated app history list.\n\t */\n\tprivate _generateAppHistoryList() {\n\t\tconst id = `${this.getId()}-history-dialog-list`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew List({\n\t\t\t\t\tid,\n\t\t\t\t\tgrowing: true,\n\t\t\t\t\tgrowingScrollToLoad: true,\n\t\t\t\t\theaderToolbar: new OverflowToolbar({\n\t\t\t\t\t\tid: `${id}-header-toolbar`,\n\t\t\t\t\t\tstyle: \"Clear\",\n\t\t\t\t\t\theight: \"1.75rem\",\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\tnew ToolbarSpacer({\n\t\t\t\t\t\t\t\tid: `${id}-header-toolbar-spacer`\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tthis._generateAppHistoryListFilter()\n\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone recentAppList\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as List;\n\t}\n\n\t/**\n\t * Generates the app history list filter.\n\t * @private\n\t * @returns The Select control for the app history list filter.\n\t */\n\tprivate _generateAppHistoryListFilter() {\n\t\tconst id = `${this.getId()}-history-dialog-list-filter`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Select({\n\t\t\t\t\tid,\n\t\t\t\t\tselectedKey: DateFilterOption.ALL,\n\t\t\t\t\tchange: (e) => this._onDateFilterChange(e),\n\t\t\t\t\titems: [\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-month`,\n\t\t\t\t\t\t\tkey: DateFilterOption.ALL,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThirty\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-today`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TODAY,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateToday\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-week`,\n\t\t\t\t\t\t\tkey: DateFilterOption.WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-twoWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TWO_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateTwoWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-threeWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.THREE_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThreeWeek\")\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Select;\n\t}\n\n\t/**\n\t * Generates and populates items in the app history list based on the provided list of items.\n\t * Clears existing items in the list before adding new items.\n\t *\n\t * @param {IAppHistory[]} appHistoryItems - Array of items to populate in the app history list.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _generateAppHistoryListItems(appHistoryItems: IAppHistory[]): void {\n\t\tconst appHistoryList = this._generateAppHistoryList();\n\t\tappHistoryList?.destroyItems();\n\t\tappHistoryItems.forEach((appHistoryItem) => {\n\t\t\tappHistoryList.addItem(this._getGroupHeader(appHistoryItem.dateStamp));\n\t\t\tappHistoryList.addItem(\n\t\t\t\tnew CustomListItem({\n\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-lisItem`,\n\t\t\t\t\ttype: \"Inactive\",\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\tnew List({\n\t\t\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-appList`,\n\t\t\t\t\t\t\titems: (appHistoryItem.apps || []).map((app, index) =>\n\t\t\t\t\t\t\t\tnew StandardListItem({\n\t\t\t\t\t\t\t\t\tid: `listItem--${appHistoryItem.dateStamp}--${index}`,\n\t\t\t\t\t\t\t\t\ttitle: app.name,\n\t\t\t\t\t\t\t\t\ttype: \"Inactive\"\n\t\t\t\t\t\t\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppList sapUiSmallMarginTop\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone sapUiTinyMarginBottom\")\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Opens the history dialog.\n\t * This method generates the show history dialog, retrieves the app history list,\n\t * generates the app history list items, and opens the dialog.\n\t * @private\n\t */\n\tprivate _openHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\tconst appHistory = this._getAppHistory();\n\t\tthis._generateAppHistoryListItems(appHistory);\n\t\thistoryDialog.open();\n\t}\n\n\t/**\n\t * Closes the history dialog.\n\t * @private\n\t */\n\tprivate _closeHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\thistoryDialog.close();\n\t}\n\n\t/**\n\t * Handles the change event of the date filter.\n\t * Updates the app history list based on the selected date filter.\n\t * @private\n\t * @param {Select$ChangeEvent} event - The select change event.\n\t */\n\tprivate _onDateFilterChange(event: Select$ChangeEvent) {\n\t\tconst selectedKey = event.getParameter(\"selectedItem\")?.getKey() as DateFilterOption;\n\t\tconst filteredAppHistory: IAppHistory[] = this._getFilteredAppHistory(selectedKey);\n\t\tthis._generateAppHistoryListItems(filteredAppHistory);\n\t}\n\n\t/**\n\t * Generates a group header for the given date timestamp.\n\t *\n\t * @param {number} dateStamp - The timestamp representing the date.\n\t * @returns {GroupHeaderListItem} The generated group header list item.\n\t * @private\n\t */\n\tprivate _getGroupHeader(dateStamp: number): GroupHeaderListItem {\n\t\tlet sTitle = \"\";\n\t\tswitch (dateStamp) {\n\t\t\tcase Constants.OLDER_DATE_TIMESTAMP:\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateLater\") as string;\n\t\t\t\tbreak;\n\t\t\tcase formatConstantTimeInDate(new Date()):\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateToday\") as string;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsTitle = GroupDateFormatter.format(new Date(dateStamp));\n\t\t\t\tbreak;\n\t\t}\n\t\treturn new GroupHeaderListItem({\n\t\t\ttitle: sTitle\n\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppListHeader\");\n\t}\n\n\t/**\n\t * Retrieves the application usage history based on recent app data.\n\t *\n\t * @returns {IAppHistory[]} Array of objects, where each object contains the date timestamp and the apps that are used on that date.\n\t * @private\n\t */\n\tprivate _getAppHistory(): IAppHistory[] {\n\t\tif (this._recentDayTimeStamp && this._recentApps?.length) {\n\t\t\tconst groupedAppHistory: Record<number, IAppHistory> = {};\n\t\t\tconst thresholdTimeStamp = getDaysBefore(this._recentDayTimeStamp, 30); // 30 days threshold\n\t\t\tthis._recentApps.forEach((recentApp) => {\n\t\t\t\tconst appTimeStamp = formatConstantTimeInDate(new Date(recentApp.dateStamp!));\n\t\t\t\tif (appTimeStamp < thresholdTimeStamp) {\n\t\t\t\t\tif (!groupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]) {\n\t\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP] = { dateStamp: Constants.OLDER_DATE_TIMESTAMP, apps: [] };\n\t\t\t\t\t}\n\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]?.apps.push({ name: recentApp.title });\n\t\t\t\t} else {\n\t\t\t\t\tconst appUsage = recentApp.usageArray || [];\n\t\t\t\t\tappUsage.forEach((usage, index) => {\n\t\t\t\t\t\tif (usage > 0) {\n\t\t\t\t\t\t\tconst usageDate = getDaysBefore(this._recentDayTimeStamp, appUsage.length - 1 - index);\n\t\t\t\t\t\t\tif (!groupedAppHistory[usageDate]) {\n\t\t\t\t\t\t\t\tgroupedAppHistory[usageDate] = { dateStamp: usageDate, apps: [] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgroupedAppHistory[usageDate]?.apps.push({ name: recentApp.title });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst appHistory = Object.values(groupedAppHistory);\n\t\t\tappHistory.sort((a, b) => b.dateStamp - a.dateStamp);\n\t\t\treturn appHistory;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Retrieves the filtered app history based on the selected date filter option.\n\t * @private\n\t * @param {DateFilterOption} selectedKey - The selected date filter option.\n\t * @returns {IAppHistory[]} An array of filtered app history.\n\t */\n\tprivate _getFilteredAppHistory(selectedKey: DateFilterOption): IAppHistory[] {\n\t\tconst appHistory = this._getAppHistory();\n\t\tlet filteredAppHistory: IAppHistory[] = [];\n\t\tswitch (selectedKey) {\n\t\t\tcase DateFilterOption.TODAY: {\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => app.dateStamp === formatConstantTimeInDate(new Date()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.WEEK: {\n\t\t\t\tconst { startDate: currentWeekStartDate, endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, currentWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.TWO_WEEK: {\n\t\t\t\tconst { startDate: secondWeekStartDate } = getWeekRangeValues(1);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, secondWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.THREE_WEEK: {\n\t\t\t\tconst { startDate: thirdWeekStartDate } = getWeekRangeValues(2);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, thirdWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfilteredAppHistory = [...appHistory];\n\t\t\t\tbreak;\n\t\t}\n\t\treturn filteredAppHistory;\n\t}\n\n\t/**\n\t * Generates illustrated message for recent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noRecentAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
 
6
6
  import Log from "sap/base/Log";
@@ -27,7 +27,7 @@ import App from "./App";
27
27
  import BaseAppPersPanel from "./BaseAppPersPanel";
28
28
  import type { $BasePanelSettings } from "./BasePanel";
29
29
  import Group from "./Group";
30
- import { IActivity } from "./interface/AppsInterface";
30
+ import { IActivity, ICustomVisualization } from "./interface/AppsInterface";
31
31
  import MenuItem from "./MenuItem";
32
32
  import { addFESRId, addFESRNavigationSource, FESRNavigationSource } from "./utils/FESRUtil";
33
33
 
@@ -181,6 +181,37 @@ export default class RecentAppPanel extends BaseAppPersPanel {
181
181
  };
182
182
  }
183
183
 
184
+ /**
185
+ * Returns the target URL from visualiztion data for recently used apps. Special
186
+ * handling for WDA and GUI apps, by using viz.url if they have special intents,
187
+ * otherwise returns viz.targetURL.
188
+ *
189
+ * @param viz - The custom visualization object
190
+ * @returns The target URL for all recently used apps except the special GUI , WDA apps
191
+ */
192
+ protected getTargetUrl(viz: ICustomVisualization): string {
193
+ return (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || "";
194
+ }
195
+
196
+ /**
197
+ * For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id
198
+ * and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode
199
+ * to launch the app correctly. This method checks if the url contains these intents.
200
+ * @param viz - The custom visualization object
201
+ * @returns boolean indicating whether the url contains WDA or GUI start intent
202
+ */
203
+ private checkIfStartWDAorStartGUI(viz: ICustomVisualization): boolean {
204
+ if (!viz?.targetURL || typeof viz.targetURL !== "string") {
205
+ return false;
206
+ }
207
+
208
+ // Convert to uppercase for case-insensitive comparison
209
+ var sUpperURL = viz.targetURL.toUpperCase();
210
+
211
+ // Check if URL contains #Shell-startGUI or #Shell-startWDA
212
+ return sUpperURL.indexOf("#SHELL-STARTGUI") !== -1 || sUpperURL.indexOf("#SHELL-STARTWDA") !== -1;
213
+ }
214
+
184
215
  /**
185
216
  * Fetch recent apps and set apps aggregation
186
217
  * @private
@@ -1 +1 @@
1
- {"version":3,"file":"RecommendedAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecommendedAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAoBlD,OAAO,IAAI,MAAM,YAAY,CAAC;IAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAOjE,MAAM,SAAS;;;KAGd,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;QAChE,OAAO,CAAC,aAAa,CAAa;QAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QAiBX;;;WAGG;QACH,OAAO,CAAC,8BAA8B;QAWtC;;;WAGG;QACH,OAAO,CAAC,yBAAyB;QAMjC;;;;;WAKG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;WAIG;QACH,OAAO,CAAC,mCAAmC;QAwE3C;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAQtB;;;;WAIG;QACH,OAAO,CAAC,4BAA4B;QA2BpC;;;WAGG;QACH,OAAO,CAAC,qBAAqB;QAQ7B;;;;WAIG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;QACH,OAAO,CAAC,sBAAsB;QAkB9B;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QAMlC;;;;WAIG;gBACW,gBAAgB;QAsB9B;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAiBrB;;;WAGG;QACH,OAAO,CAAC,uBAAuB;QAS/B;;;;;WAKG;QACH,SAAS,CAAC,gBAAgB,IAWiB,IAAI;QAG/C;;;WAGG;QACU,QAAQ;QAyBrB;;;;WAIG;QACH,OAAO,CAAC,qBAAqB;QAmB7B;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAqBnB;;;;WAIG;gBACW,qBAAqB;QA0BnC;;;;WAIG;gBACW,wBAAwB;QAKtC;;;WAGG;QACU,wBAAwB;QAMrC;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAkBpC;CAEA"}
1
+ {"version":3,"file":"RecommendedAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecommendedAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAoBlD,OAAO,IAAI,MAAM,YAAY,CAAC;IAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAQjE,MAAM,SAAS;;;KAGd,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;QAChE,OAAO,CAAC,aAAa,CAAa;QAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QAiBX;;;WAGG;QACH,OAAO,CAAC,8BAA8B;QAWtC;;;WAGG;QACH,OAAO,CAAC,yBAAyB;QAMjC;;;;;WAKG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;WAIG;QACH,OAAO,CAAC,mCAAmC;QAwE3C;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAQtB;;;;WAIG;QACH,OAAO,CAAC,4BAA4B;QA2BpC;;;WAGG;QACH,OAAO,CAAC,qBAAqB;QAQ7B;;;;WAIG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;QACH,OAAO,CAAC,sBAAsB;QAkB9B;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QAMlC;;;;WAIG;gBACW,gBAAgB;QAsB9B;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAiBrB;;;WAGG;QACH,OAAO,CAAC,uBAAuB;QAS/B;;;;;WAKG;QACH,SAAS,CAAC,gBAAgB,IAWiB,IAAI;QAG/C;;;WAGG;QACU,QAAQ;QAyBrB;;;;WAIG;QACH,OAAO,CAAC,qBAAqB;QAmB7B;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAqBnB;;;;WAIG;gBACW,qBAAqB;QA0BnC;;;;WAIG;gBACW,wBAAwB;QAKtC;;;WAGG;QACU,wBAAwB;QAMrC;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAkBpC;CAEA"}
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettings", "sap/m/Button", "sap/m/Dialog", "sap/m/IllustratedMessageSize", "sap/m/IllustratedMessageType", "sap/m/library", "sap/m/Link", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ScrollContainer", "sap/m/Text", "sap/m/Title", "sap/m/VBox", "sap/ui/core/Element", "sap/ui/core/EventBus", "./BaseAppPersPanel", "./MenuItem", "./utils/Constants", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper"], function (Log, GridContainer, GridContainerSettings, Button, Dialog, IllustratedMessageSize, IllustratedMessageType, sap_m_library, Link, MessageStrip, MessageToast, ScrollContainer, Text, Title, VBox, Element, EventBus, __BaseAppPersPanel, __MenuItem, ___utils_Constants, ___utils_Device, ___utils_FESRUtil, __HttpHelper) {
5
+ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettings", "sap/m/Button", "sap/m/Dialog", "sap/m/IllustratedMessageSize", "sap/m/IllustratedMessageType", "sap/m/library", "sap/m/Link", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ScrollContainer", "sap/m/Text", "sap/m/Title", "sap/m/VBox", "sap/ui/core/Element", "sap/ui/core/EventBus", "./BaseAppPersPanel", "./MenuItem", "./utils/Constants", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper", "./utils/DataFormatUtils"], function (Log, GridContainer, GridContainerSettings, Button, Dialog, IllustratedMessageSize, IllustratedMessageType, sap_m_library, Link, MessageStrip, MessageToast, ScrollContainer, Text, Title, VBox, Element, EventBus, __BaseAppPersPanel, __MenuItem, ___utils_Constants, ___utils_Device, ___utils_FESRUtil, __HttpHelper, ___utils_DataFormatUtils) {
6
6
  "use strict";
7
7
 
8
8
  function _interopRequireDefault(obj) {
@@ -194,6 +194,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
194
194
  const addFESRSemanticStepName = ___utils_FESRUtil["addFESRSemanticStepName"];
195
195
  const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
196
196
  const HttpHelper = _interopRequireDefault(__HttpHelper);
197
+ const recycleId = ___utils_DataFormatUtils["recycleId"];
197
198
  const CONSTANTS = {
198
199
  USER_PREFERENCE_SRVC_URL: `${REPO_BASE_URL}UserPreference`,
199
200
  KEY: "recommendedApps"
@@ -264,7 +265,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
264
265
  * @private
265
266
  */
266
267
  _createAddToFavouritesMenuItem: function _createAddToFavouritesMenuItem() {
267
- const addToFavouritesMenuItem = new MenuItem(`${this.getId()}-addtofavouritesmenuitem`, {
268
+ const addToFavouritesMenuItem = new MenuItem(recycleId(`${this.getId()}-addtofavouritesmenuitem`), {
268
269
  title: this._i18nBundle.getText("addToFavoritesRecommended"),
269
270
  icon: "sap-icon://add-favorite",
270
271
  press: this._openAddRecommendedDialog.bind(this),
@@ -602,7 +603,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
602
603
  * @returns {sap.cux.home.MenuItem[]} - Array of list items.
603
604
  */
604
605
  _getActions: function _getActions(index) {
605
- const addToFavoritesItem = new MenuItem(`${this.getKey()}--addToFavoritesItem--${index}`, {
606
+ const addToFavoritesItem = new MenuItem(recycleId(`${this.getKey()}--addToFavoritesItem--${index}`), {
606
607
  title: this._i18nBundle.getText("addToFavorites"),
607
608
  icon: "sap-icon://add-favorite",
608
609
  press: event => {
@@ -610,7 +611,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
610
611
  }
611
612
  });
612
613
  addFESRId(addToFavoritesItem, "acceptRecommendation");
613
- const notRelevantItem = new MenuItem(`${this.getKey()}--notRelevantItem--${index}`, {
614
+ const notRelevantItem = new MenuItem(recycleId(`${this.getKey()}--notRelevantItem--${index}`), {
614
615
  title: this._i18nBundle.getText("notRelevantRecommendation"),
615
616
  icon: "sap-icon://decline",
616
617
  press: event => {