@sapui5/sap.cux.home 1.141.0 → 1.143.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +4 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.js +6 -6
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  7. package/src/sap/cux/home/AdvancedSettingsPanel.ts +6 -6
  8. package/src/sap/cux/home/App.d.ts.map +1 -1
  9. package/src/sap/cux/home/App.js +9 -1
  10. package/src/sap/cux/home/App.js.map +1 -1
  11. package/src/sap/cux/home/App.ts +10 -1
  12. package/src/sap/cux/home/AppsAdditionPanel.d.ts +75 -34
  13. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsAdditionPanel.js +378 -179
  15. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.ts +399 -175
  17. package/src/sap/cux/home/AppsContainer.d.ts +5 -1
  18. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  19. package/src/sap/cux/home/AppsContainer.js +32 -17
  20. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  21. package/src/sap/cux/home/AppsContainer.ts +31 -15
  22. package/src/sap/cux/home/BaseAppPanel.d.ts +2 -1
  23. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  24. package/src/sap/cux/home/BaseAppPanel.js +2 -1
  25. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  26. package/src/sap/cux/home/BaseAppPanel.ts +4 -2
  27. package/src/sap/cux/home/BaseContainer.d.ts +8 -0
  28. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  29. package/src/sap/cux/home/BaseContainer.js +35 -5
  30. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  31. package/src/sap/cux/home/BaseContainer.ts +32 -5
  32. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  33. package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
  34. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  35. package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
  36. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  37. package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
  38. package/src/sap/cux/home/BasePanel.d.ts +7 -0
  39. package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
  40. package/src/sap/cux/home/BasePanel.js +23 -2
  41. package/src/sap/cux/home/BasePanel.js.map +1 -1
  42. package/src/sap/cux/home/BasePanel.ts +18 -1
  43. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  44. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  45. package/src/sap/cux/home/CardsContainer.js +207 -0
  46. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  47. package/src/sap/cux/home/CardsContainer.ts +202 -0
  48. package/src/sap/cux/home/CardsPanel.d.ts +32 -59
  49. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  50. package/src/sap/cux/home/CardsPanel.js +270 -249
  51. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  52. package/src/sap/cux/home/CardsPanel.ts +169 -181
  53. package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
  54. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  55. package/src/sap/cux/home/ContentAdditionDialog.js +17 -7
  56. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  57. package/src/sap/cux/home/ContentAdditionDialog.ts +18 -6
  58. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  59. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  60. package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
  61. package/src/sap/cux/home/ErrorPanel.js +11 -16
  62. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  63. package/src/sap/cux/home/ErrorPanel.ts +7 -19
  64. package/src/sap/cux/home/FavAppPanel.d.ts +1 -12
  65. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  66. package/src/sap/cux/home/FavAppPanel.js +354 -414
  67. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  68. package/src/sap/cux/home/FavAppPanel.ts +25 -70
  69. package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
  70. package/src/sap/cux/home/FrequentAppPanel.js +5 -1
  71. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  72. package/src/sap/cux/home/FrequentAppPanel.ts +4 -0
  73. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
  74. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  75. package/src/sap/cux/home/InsightsAdditionPanel.js +12 -9
  76. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  77. package/src/sap/cux/home/InsightsAdditionPanel.ts +11 -8
  78. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
  79. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  80. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +3 -3
  81. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  82. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  83. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
  84. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  85. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
  86. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  87. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
  88. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  89. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
  90. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
  91. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  92. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
  93. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  94. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
  95. package/src/sap/cux/home/Layout.d.ts +3 -1
  96. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  97. package/src/sap/cux/home/Layout.js +45 -8
  98. package/src/sap/cux/home/Layout.js.map +1 -1
  99. package/src/sap/cux/home/Layout.ts +55 -8
  100. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  101. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  102. package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
  103. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  104. package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
  105. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -18
  106. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  107. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
  108. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
  109. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  110. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +31 -120
  111. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  112. package/src/sap/cux/home/NewsGroup.ts +1 -1
  113. package/src/sap/cux/home/NewsPanel.d.ts +17 -0
  114. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  115. package/src/sap/cux/home/NewsPanel.js +90 -57
  116. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  117. package/src/sap/cux/home/NewsPanel.ts +51 -23
  118. package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
  119. package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
  120. package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
  121. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  122. package/src/sap/cux/home/NewsSettingsPanel.ts +216 -81
  123. package/src/sap/cux/home/Page.d.ts.map +1 -1
  124. package/src/sap/cux/home/Page.js +4 -1
  125. package/src/sap/cux/home/Page.js.map +1 -1
  126. package/src/sap/cux/home/Page.ts +2 -0
  127. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  128. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  129. package/src/sap/cux/home/PagePanel.js +19 -11
  130. package/src/sap/cux/home/PagePanel.js.map +1 -1
  131. package/src/sap/cux/home/PagePanel.ts +26 -20
  132. package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
  133. package/src/sap/cux/home/PageSettingsPanel.js +6 -3
  134. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  135. package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
  136. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  137. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  138. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  139. package/src/sap/cux/home/PagesContainer.js +333 -0
  140. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  141. package/src/sap/cux/home/PagesContainer.ts +179 -0
  142. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  143. package/src/sap/cux/home/RecentAppPanel.js +6 -0
  144. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  145. package/src/sap/cux/home/RecentAppPanel.ts +5 -1
  146. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  147. package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
  148. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  149. package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
  150. package/src/sap/cux/home/SettingsDialog.d.ts +7 -0
  151. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  152. package/src/sap/cux/home/SettingsDialog.js +18 -10
  153. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  154. package/src/sap/cux/home/SettingsDialog.ts +20 -13
  155. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +10 -0
  156. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
  157. package/src/sap/cux/home/SideBySideIconTabFilter.js +11 -1
  158. package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
  159. package/src/sap/cux/home/SideBySideIconTabFilter.ts +11 -0
  160. package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
  161. package/src/sap/cux/home/SituationPanel.js +7 -2
  162. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  163. package/src/sap/cux/home/SituationPanel.ts +2 -0
  164. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  165. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  166. package/src/sap/cux/home/SpaceInsightsPanel.js +67 -133
  167. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  168. package/src/sap/cux/home/SpaceInsightsPanel.ts +70 -152
  169. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  170. package/src/sap/cux/home/TaskPanel.js +17 -12
  171. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  172. package/src/sap/cux/home/TaskPanel.ts +19 -16
  173. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  174. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  175. package/src/sap/cux/home/TilesContainer.js +218 -0
  176. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  177. package/src/sap/cux/home/TilesContainer.ts +216 -0
  178. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  179. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  180. package/src/sap/cux/home/TilesPanel.js +194 -168
  181. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  182. package/src/sap/cux/home/TilesPanel.ts +167 -157
  183. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  184. package/src/sap/cux/home/ToDoPanel.js +59 -66
  185. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  186. package/src/sap/cux/home/ToDoPanel.ts +46 -34
  187. package/src/sap/cux/home/ToDosContainer.js +3 -3
  188. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  189. package/src/sap/cux/home/ToDosContainer.ts +1 -1
  190. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
  191. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  192. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
  193. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  194. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
  195. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
  196. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  197. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
  198. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  199. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
  200. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
  201. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  202. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
  203. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  204. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
  205. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
  206. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  207. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
  208. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  209. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
  210. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  211. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
  212. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  213. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
  214. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  215. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  216. package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
  217. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  218. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
  219. package/src/sap/cux/home/i18n/messagebundle.properties +40 -14
  220. package/src/sap/cux/home/i18n/messagebundle_ar.properties +8 -4
  221. package/src/sap/cux/home/i18n/messagebundle_bg.properties +8 -4
  222. package/src/sap/cux/home/i18n/messagebundle_ca.properties +8 -4
  223. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +8 -4
  224. package/src/sap/cux/home/i18n/messagebundle_cs.properties +8 -4
  225. package/src/sap/cux/home/i18n/messagebundle_cy.properties +8 -4
  226. package/src/sap/cux/home/i18n/messagebundle_da.properties +8 -4
  227. package/src/sap/cux/home/i18n/messagebundle_de.properties +8 -4
  228. package/src/sap/cux/home/i18n/messagebundle_el.properties +8 -4
  229. package/src/sap/cux/home/i18n/messagebundle_en.properties +9 -5
  230. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +8 -4
  231. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +14 -6
  232. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +14 -6
  233. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +8 -4
  234. package/src/sap/cux/home/i18n/messagebundle_es.properties +8 -4
  235. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +8 -4
  236. package/src/sap/cux/home/i18n/messagebundle_et.properties +8 -4
  237. package/src/sap/cux/home/i18n/messagebundle_fi.properties +8 -4
  238. package/src/sap/cux/home/i18n/messagebundle_fr.properties +8 -4
  239. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +8 -4
  240. package/src/sap/cux/home/i18n/messagebundle_hi.properties +8 -4
  241. package/src/sap/cux/home/i18n/messagebundle_hr.properties +8 -4
  242. package/src/sap/cux/home/i18n/messagebundle_hu.properties +8 -4
  243. package/src/sap/cux/home/i18n/messagebundle_id.properties +8 -4
  244. package/src/sap/cux/home/i18n/messagebundle_it.properties +10 -6
  245. package/src/sap/cux/home/i18n/messagebundle_iw.properties +8 -4
  246. package/src/sap/cux/home/i18n/messagebundle_ja.properties +8 -4
  247. package/src/sap/cux/home/i18n/messagebundle_kk.properties +8 -4
  248. package/src/sap/cux/home/i18n/messagebundle_ko.properties +8 -4
  249. package/src/sap/cux/home/i18n/messagebundle_lt.properties +8 -4
  250. package/src/sap/cux/home/i18n/messagebundle_lv.properties +8 -4
  251. package/src/sap/cux/home/i18n/messagebundle_mk.properties +8 -4
  252. package/src/sap/cux/home/i18n/messagebundle_ms.properties +8 -4
  253. package/src/sap/cux/home/i18n/messagebundle_nl.properties +8 -4
  254. package/src/sap/cux/home/i18n/messagebundle_no.properties +8 -4
  255. package/src/sap/cux/home/i18n/messagebundle_pl.properties +8 -4
  256. package/src/sap/cux/home/i18n/messagebundle_pt.properties +9 -5
  257. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +8 -4
  258. package/src/sap/cux/home/i18n/messagebundle_ro.properties +8 -4
  259. package/src/sap/cux/home/i18n/messagebundle_ru.properties +8 -4
  260. package/src/sap/cux/home/i18n/messagebundle_sh.properties +8 -4
  261. package/src/sap/cux/home/i18n/messagebundle_sk.properties +8 -4
  262. package/src/sap/cux/home/i18n/messagebundle_sl.properties +8 -4
  263. package/src/sap/cux/home/i18n/messagebundle_sr.properties +8 -4
  264. package/src/sap/cux/home/i18n/messagebundle_sv.properties +8 -4
  265. package/src/sap/cux/home/i18n/messagebundle_th.properties +8 -4
  266. package/src/sap/cux/home/i18n/messagebundle_tr.properties +8 -4
  267. package/src/sap/cux/home/i18n/messagebundle_uk.properties +8 -4
  268. package/src/sap/cux/home/i18n/messagebundle_vi.properties +8 -4
  269. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +8 -4
  270. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +8 -4
  271. package/src/sap/cux/home/interface/AppsInterface.d.ts +6 -0
  272. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  273. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  274. package/src/sap/cux/home/interface/AppsInterface.ts +7 -0
  275. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
  276. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  277. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  278. package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
  279. package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
  280. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  281. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  282. package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
  283. package/src/sap/cux/home/library.d.ts.map +1 -1
  284. package/src/sap/cux/home/library.js +7 -4
  285. package/src/sap/cux/home/library.js.map +1 -1
  286. package/src/sap/cux/home/library.ts +10 -5
  287. package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
  288. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  289. package/src/sap/cux/home/themes/base/BaseLayout.less +22 -0
  290. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +4 -45
  291. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  292. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  293. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  294. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  295. package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
  296. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  297. package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
  298. package/src/sap/cux/home/utils/AppManager.js +2 -1
  299. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  300. package/src/sap/cux/home/utils/AppManager.ts +2 -2
  301. package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
  302. package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
  303. package/src/sap/cux/home/utils/FESRUtil.js +36 -1
  304. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  305. package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
  306. package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
  307. package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
  308. package/src/sap/cux/home/utils/PXFeedback.js +28 -0
  309. package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
  310. package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
  311. package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
  312. package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
  313. package/src/sap/cux/home/utils/PageManager.js +6 -6
  314. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  315. package/src/sap/cux/home/utils/PageManager.ts +6 -5
  316. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  317. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  318. package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
  319. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  320. package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
  321. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +155 -151
  322. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  323. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  324. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
  325. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  326. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
  327. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  328. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  329. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  330. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  331. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  332. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  333. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  334. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
  335. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  336. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
  337. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  338. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  339. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  340. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  341. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  342. package/ui5.yaml +1 -0
  343. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  344. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  345. package/src/sap/cux/home/InsightsContainer.js +0 -459
  346. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  347. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  348. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  349. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  350. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  351. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  352. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  353. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  354. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  355. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -0,0 +1,179 @@
1
+ /*!
2
+ * SAP UI development toolkit for HTML5 (SAPUI5)
3
+ * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ */
5
+ import VBox from "sap/m/VBox";
6
+ import type { MetadataOptions } from "sap/ui/core/Element";
7
+ import BaseContainer from "./BaseContainer";
8
+ import BasePanel from "./BasePanel";
9
+ import { ISpacePagePersonalization } from "./interface/KeyUserInterface";
10
+ import PagePanel from "./PagePanel";
11
+ import { $PagesContainerSettings } from "./PagesContainer";
12
+ import { getPagesPlaceholder } from "./utils/placeholder/PagesPlaceholder";
13
+
14
+ interface IpanelLoaded {
15
+ [key: string]: { loaded: boolean; count: number };
16
+ }
17
+
18
+ /**
19
+ *
20
+ * Container class for managing and storing Pages.
21
+ *
22
+ * @extends BaseContainer
23
+ *
24
+ * @author SAP SE
25
+ * @version 0.0.1
26
+ * @since 1.142
27
+ *
28
+ * @private
29
+ * @ui5-restricted ux.eng.s4producthomes1
30
+ *
31
+ * @alias sap.cux.home.PagesContainer
32
+ */
33
+ export default class PagesContainer extends BaseContainer {
34
+ static renderer = {
35
+ ...BaseContainer.renderer,
36
+ apiVersion: 2
37
+ };
38
+ static readonly metadata: MetadataOptions = {
39
+ properties: {
40
+ /**
41
+ * Color Personalizations for Spaces & Pages
42
+ */
43
+ colorPersonalizations: { type: "array", group: "Misc", defaultValue: [], visibility: "hidden" },
44
+ /**
45
+ * Icon Personalizations for Spaces & Pages
46
+ */
47
+ iconPersonalizations: { type: "array", group: "Misc", defaultValue: [], visibility: "hidden" }
48
+ }
49
+ };
50
+
51
+ private panelLoaded: IpanelLoaded = {};
52
+ private pagePanel!: PagePanel;
53
+
54
+ constructor(id?: string | $PagesContainerSettings);
55
+ constructor(id?: string, settings?: $PagesContainerSettings);
56
+ /**
57
+ * Constructor for the new Pages container.
58
+ *
59
+ * @param {string} [id] ID for the new control, generated automatically if an ID is not provided
60
+ * @param {object} [settings] Initial settings for the new control
61
+ */
62
+ public constructor(id?: string, settings?: $PagesContainerSettings) {
63
+ super(id, settings);
64
+ }
65
+
66
+ /**
67
+ * Init lifecycle method
68
+ *
69
+ * @private
70
+ * @override
71
+ */
72
+ public init(): void {
73
+ super.init();
74
+ this.panelLoaded = {};
75
+ this.setProperty("compositeId", "NewsAndPages");
76
+ this.addStyleClass("NewsAndPages");
77
+ this.setProperty("title", this._i18nBundle?.getText("pageTitle"));
78
+ this.addCustomSetting("title", this._i18nBundle.getText("pageTitle") as string);
79
+ this.addCustomSetting("groupTitle", this._i18nBundle.getText("myInterestMsg") as string);
80
+ this.addStyleClass("sapCuxNewsAndPagesContainer");
81
+ this.addStyleClass("sapCuxHorizontalContainers");
82
+ }
83
+
84
+ /**
85
+ * Loads Pages section.
86
+ * Overrides the load method of the BaseContainer.
87
+ *
88
+ * @private
89
+ * @override
90
+ */
91
+ public async load() {
92
+ const aContent = this.getContent() as PagePanel[];
93
+ for (const oContent of aContent) {
94
+ await oContent.getData();
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Sets property value for iconPersonalization.
100
+ * Overridden to update cached personalizations.
101
+ *
102
+ * @private
103
+ * @override
104
+ * @returns {NewsAndPagesContainer} the container for chaining
105
+ */
106
+ setIconPersonalizations(personalizations: Array<ISpacePagePersonalization>): PagesContainer {
107
+ const existingPers = (this.getProperty("iconPersonalizations") as ISpacePagePersonalization[]) || [];
108
+ const updatedPers = existingPers.concat(personalizations);
109
+ this.setProperty("iconPersonalizations", updatedPers);
110
+ this.getContent().forEach((oContent) => {
111
+ if (oContent.getMetadata().getName() === "sap.cux.home.PagePanel") {
112
+ (oContent as PagePanel).applyIconPersonalizations(updatedPers);
113
+ }
114
+ });
115
+ return this;
116
+ }
117
+
118
+ /**
119
+ * Sets property value for colorPersonalization.
120
+ * Overridden to update cached personalizations.
121
+ *
122
+ * @private
123
+ * @override
124
+ * @returns {NewsAndPagesContainer} the container for chaining
125
+ */
126
+ setColorPersonalizations(personalizations: Array<ISpacePagePersonalization>): PagesContainer {
127
+ const existingPers = (this.getProperty("colorPersonalizations") as ISpacePagePersonalization[]) || [];
128
+ const updatedPers = existingPers.concat(personalizations);
129
+ this.setProperty("colorPersonalizations", updatedPers);
130
+ this.getContent().forEach((oContent) => {
131
+ if (oContent.getMetadata().getName() === "sap.cux.home.PagePanel") {
132
+ (oContent as PagePanel).applyColorPersonalizations(updatedPers);
133
+ }
134
+ });
135
+ return this;
136
+ }
137
+
138
+ public panelLoadedFn(sPanelType: string, oVal: { loaded: boolean; count: number }) {
139
+ const aContent = this.getContent();
140
+ aContent.forEach((oContent: BasePanel) => {
141
+ this.pagePanel = oContent as PagePanel;
142
+ });
143
+ this.panelLoaded[sPanelType] = oVal;
144
+ this.adjustLayout();
145
+ }
146
+
147
+ /**
148
+ * Adjusts the layout of the all panels in the container.
149
+ *
150
+ * @private
151
+ * @override
152
+ */
153
+ public adjustLayout() {
154
+ if (this.pagePanel) {
155
+ if (this.panelLoaded["Page"]?.loaded) {
156
+ this.adjustStyleLayout();
157
+ }
158
+ }
159
+ }
160
+
161
+ //check Both
162
+ public adjustStyleLayout() {
163
+ const pagesContentWrapper = this.pagePanel ? (this.pagePanel.getContent()?.[0] as VBox) : undefined;
164
+ pagesContentWrapper?.setWidth("100%");
165
+
166
+ if (pagesContentWrapper) {
167
+ setTimeout(this.pagePanel.attachResizeHandler.bind(this.pagePanel, this.getDomRef()?.clientWidth || 0, pagesContentWrapper));
168
+ }
169
+ }
170
+
171
+ /**
172
+ * Retrieves the generic placeholder content for the Pages container.
173
+ *
174
+ * @returns {string} The HTML string representing the Pages container's placeholder content.
175
+ */
176
+ protected getGenericPlaceholderContent(): string {
177
+ return getPagesPlaceholder();
178
+ }
179
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"RecentAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecentAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6BAA6B,CAAC;IAmB7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAE3D,OAAO,UAAU,MAAM,+BAA+B,CAAC;IAMvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAMjE,UAAU,eAAe;QACxB,IAAI,EAAE,MAAM,CAAC;KACb;IAED,UAAU,WAAW;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,eAAe,EAAE,CAAC;KACxB;IAED,KAAK,gBAAgB;QACpB,GAAG,QAAQ;QACX,KAAK,UAAU;QACf,IAAI,SAAS;QACb,QAAQ,aAAa;QACrB,UAAU,eAAe;KACzB;IAED,MAAM,kBAAkB,YAA0D,CAAC;IAEnF,MAAM,SAAS;;KAEd,CAAC;IAEF,MAAM,wBAAwB,GAAI,MAAM,IAAI,KAAG,MAE9C,CAAC;IAEF;;;;OAIG;IACH,MAAM,kBAAkB,GAAI,YAAY,MAAM;;;KAe7C,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,aAAa,GAAI,kBAAkB,MAAM,EAAE,MAAM,MAAM,KAAG,MAI/D,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,iBAAiB,GAAI,cAAc,MAAM,EAAE,gBAAgB,MAAM,EAAE,cAAc,MAAM,YAE5F,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,gBAAgB;QAC3D,OAAO,CAAC,SAAS,CAAY;QAC7B,OAAO,CAAC,mBAAmB,CAAU;QACrC,OAAO,CAAC,WAAW,CAAmB;QACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QAgCX;;;WAGG;QACU,QAAQ;QAarB;;;;WAIG;gBACW,cAAc;QAkC5B;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAsBtB;;;;WAIG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;;WAIG;QACH,OAAO,CAAC,sBAAsB;QA4B9B;;;;WAIG;QACH,OAAO,CAAC,uBAAuB;QA0B/B;;;;WAIG;QACH,OAAO,CAAC,6BAA6B;QA0CrC;;;;;;;WAOG;QACH,OAAO,CAAC,4BAA4B;QA0BpC;;;;;WAKG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;WAGG;QACH,OAAO,CAAC,mBAAmB;QAK3B;;;;;WAKG;QACH,OAAO,CAAC,mBAAmB;QAM3B;;;;;;WAMG;QACH,OAAO,CAAC,eAAe;QAkBvB;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QA+BtB;;;;;WAKG;QACH,OAAO,CAAC,sBAAsB;QAgC9B;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAMpC;CAEA"}
1
+ {"version":3,"file":"RecentAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecentAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,6BAA6B,CAAC;IAmB7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAE3D,OAAO,UAAU,MAAM,+BAA+B,CAAC;IAMvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAMjE,UAAU,eAAe;QACxB,IAAI,EAAE,MAAM,CAAC;KACb;IAED,UAAU,WAAW;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,eAAe,EAAE,CAAC;KACxB;IAED,KAAK,gBAAgB;QACpB,GAAG,QAAQ;QACX,KAAK,UAAU;QACf,IAAI,SAAS;QACb,QAAQ,aAAa;QACrB,UAAU,eAAe;KACzB;IAED,MAAM,kBAAkB,YAA0D,CAAC;IAEnF,MAAM,SAAS;;KAEd,CAAC;IAEF,MAAM,wBAAwB,GAAI,MAAM,IAAI,KAAG,MAE9C,CAAC;IAEF;;;;OAIG;IACH,MAAM,kBAAkB,GAAI,YAAY,MAAM;;;KAe7C,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,aAAa,GAAI,kBAAkB,MAAM,EAAE,MAAM,MAAM,KAAG,MAI/D,CAAC;IAEF;;;;;;;OAOG;IACH,MAAM,iBAAiB,GAAI,cAAc,MAAM,EAAE,gBAAgB,MAAM,EAAE,cAAc,MAAM,YAE5F,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,gBAAgB;QAC3D,OAAO,CAAC,SAAS,CAAY;QAC7B,OAAO,CAAC,mBAAmB,CAAU;QACrC,OAAO,CAAC,WAAW,CAAmB;QACtC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QAmCX;;;WAGG;QACU,QAAQ;QAarB;;;;WAIG;gBACW,cAAc;QAkC5B;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAsBtB;;;;WAIG;QACH,OAAO,CAAC,kBAAkB;QAQ1B;;;;WAIG;QACH,OAAO,CAAC,sBAAsB;QA4B9B;;;;WAIG;QACH,OAAO,CAAC,uBAAuB;QA0B/B;;;;WAIG;QACH,OAAO,CAAC,6BAA6B;QA0CrC;;;;;;;WAOG;QACH,OAAO,CAAC,4BAA4B;QA0BpC;;;;;WAKG;QACH,OAAO,CAAC,kBAAkB;QAO1B;;;WAGG;QACH,OAAO,CAAC,mBAAmB;QAK3B;;;;;WAKG;QACH,OAAO,CAAC,mBAAmB;QAM3B;;;;;;WAMG;QACH,OAAO,CAAC,eAAe;QAkBvB;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QA+BtB;;;;;WAKG;QACH,OAAO,CAAC,sBAAsB;QAgC9B;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAMpC;CAEA"}
@@ -23,6 +23,8 @@ sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Di
23
23
  const BaseAppPersPanel = _interopRequireDefault(__BaseAppPersPanel);
24
24
  const MenuItem = _interopRequireDefault(__MenuItem);
25
25
  const addFESRId = ___utils_FESRUtil["addFESRId"];
26
+ const addFESRNavigationSource = ___utils_FESRUtil["addFESRNavigationSource"];
27
+ const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
26
28
  var DateFilterOption = /*#__PURE__*/function (DateFilterOption) {
27
29
  DateFilterOption["ALL"] = "ALL";
28
30
  DateFilterOption["TODAY"] = "TODAY";
@@ -156,6 +158,9 @@ sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Di
156
158
  //update color of the app in recent apps
157
159
  this._applyUngroupedTileColor(item, color);
158
160
  }, this);
161
+ this.additionalInfo = {
162
+ fesrSource: FESRNavigationSource.RecentlyUsed
163
+ };
159
164
  },
160
165
  /**
161
166
  * Fetch recent apps and set apps aggregation
@@ -259,6 +264,7 @@ sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Di
259
264
  const app = menuItem.getParent();
260
265
  const url = app.getUrl?.();
261
266
  URLHelper.redirect(url, false);
267
+ addFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);
262
268
  },
263
269
  /**
264
270
  * Generates and returns a dialog for showing the history of recent applications.
@@ -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","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","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","_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 } 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}\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}\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","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":[]}
@@ -29,7 +29,7 @@ import type { $BasePanelSettings } from "./BasePanel";
29
29
  import Group from "./Group";
30
30
  import { IActivity } from "./interface/AppsInterface";
31
31
  import MenuItem from "./MenuItem";
32
- import { addFESRId } from "./utils/FESRUtil";
32
+ import { addFESRId, addFESRNavigationSource, FESRNavigationSource } from "./utils/FESRUtil";
33
33
 
34
34
  interface IAppHistoryItem {
35
35
  name: string;
@@ -176,6 +176,9 @@ export default class RecentAppPanel extends BaseAppPersPanel {
176
176
  },
177
177
  this
178
178
  );
179
+ this.additionalInfo = {
180
+ fesrSource: FESRNavigationSource.RecentlyUsed
181
+ };
179
182
  }
180
183
 
181
184
  /**
@@ -272,6 +275,7 @@ export default class RecentAppPanel extends BaseAppPersPanel {
272
275
  const app = menuItem.getParent() as App;
273
276
  const url = app.getUrl?.();
274
277
  URLHelper.redirect(url, false);
278
+ addFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);
275
279
  }
276
280
 
277
281
  /**
@@ -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;QAcX;;;WAGG;QACH,OAAO,CAAC,8BAA8B;QAWtC;;;WAGG;QACH,OAAO,CAAC,yBAAyB;QAMjC;;;;;WAKG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;WAIG;QACH,OAAO,CAAC,mCAAmC;QAsE3C;;;;;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;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"}
@@ -191,6 +191,8 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
191
191
  const SETTINGS_PANELS_KEYS = ___utils_Constants["SETTINGS_PANELS_KEYS"];
192
192
  const DeviceType = ___utils_Device["DeviceType"];
193
193
  const addFESRId = ___utils_FESRUtil["addFESRId"];
194
+ const addFESRSemanticStepName = ___utils_FESRUtil["addFESRSemanticStepName"];
195
+ const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
194
196
  const HttpHelper = _interopRequireDefault(__HttpHelper);
195
197
  const CONSTANTS = {
196
198
  USER_PREFERENCE_SRVC_URL: `${REPO_BASE_URL}UserPreference`,
@@ -253,6 +255,9 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
253
255
  });
254
256
  });
255
257
  this._createAddToFavouritesMenuItem();
258
+ this.additionalInfo = {
259
+ fesrSource: FESRNavigationSource.Recommended
260
+ };
256
261
  },
257
262
  /**
258
263
  * Creates and inserts the "Add to Favourites" menu item.
@@ -335,11 +340,13 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
335
340
  },
336
341
  enabled: this._selectedApps.length > 0
337
342
  });
343
+ addFESRSemanticStepName(addButton, "press", "acceptRecommended");
338
344
  const cancelButton = new Button({
339
345
  id: `${dialogId}-cancelBtn`,
340
346
  text: this._i18nBundle.getText("cancelBtn"),
341
347
  press: () => this._closeAddRecommendedDialog(dialogId)
342
348
  });
349
+ addFESRSemanticStepName(cancelButton, "press", "cancelRecommended");
343
350
  const mainTitleText = this._controlMap.get(`${dialogId}-mainTitle`).getText();
344
351
  this._controlMap.set(dialogId, new Dialog(dialogId, {
345
352
  title: mainTitleText,