@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.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +4 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +6 -6
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +6 -6
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.js +9 -1
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +10 -1
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +75 -34
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +378 -179
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +399 -175
- package/src/sap/cux/home/AppsContainer.d.ts +5 -1
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +32 -17
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +31 -15
- package/src/sap/cux/home/BaseAppPanel.d.ts +2 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +2 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +4 -2
- package/src/sap/cux/home/BaseContainer.d.ts +8 -0
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +35 -5
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +32 -5
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
- package/src/sap/cux/home/BasePanel.d.ts +7 -0
- package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
- package/src/sap/cux/home/BasePanel.js +23 -2
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +18 -1
- package/src/sap/cux/home/CardsContainer.d.ts +108 -0
- package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
- package/src/sap/cux/home/CardsContainer.js +207 -0
- package/src/sap/cux/home/CardsContainer.js.map +1 -0
- package/src/sap/cux/home/CardsContainer.ts +202 -0
- package/src/sap/cux/home/CardsPanel.d.ts +32 -59
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +270 -249
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +169 -181
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +17 -7
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +18 -6
- package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
- package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
- package/src/sap/cux/home/ErrorPanel.js +11 -16
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +7 -19
- package/src/sap/cux/home/FavAppPanel.d.ts +1 -12
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +354 -414
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +25 -70
- package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js +5 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +4 -0
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +12 -9
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +11 -8
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +3 -3
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
- package/src/sap/cux/home/Layout.d.ts +3 -1
- package/src/sap/cux/home/Layout.d.ts.map +1 -1
- package/src/sap/cux/home/Layout.js +45 -8
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +55 -8
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
- package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -18
- package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
- package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
- package/src/sap/cux/home/NewsContainer.js.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +31 -120
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts +17 -0
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +90 -57
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +51 -23
- package/src/sap/cux/home/NewsSettingsPanel.d.ts +42 -6
- package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +219 -81
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +216 -81
- package/src/sap/cux/home/Page.d.ts.map +1 -1
- package/src/sap/cux/home/Page.js +4 -1
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +2 -0
- package/src/sap/cux/home/PagePanel.d.ts +1 -1
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +19 -11
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +26 -20
- package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js +6 -3
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +2 -2
- package/src/sap/cux/home/PagesContainer.d.ts +72 -0
- package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
- package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
- package/src/sap/cux/home/PagesContainer.js +333 -0
- package/src/sap/cux/home/PagesContainer.js.map +1 -0
- package/src/sap/cux/home/PagesContainer.ts +179 -0
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +6 -0
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +5 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +7 -0
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +6 -1
- package/src/sap/cux/home/SettingsDialog.d.ts +7 -0
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +18 -10
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +20 -13
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +10 -0
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +11 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +11 -0
- package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SituationPanel.js +7 -2
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +2 -0
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.js +67 -133
- package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.ts +70 -152
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +17 -12
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +19 -16
- package/src/sap/cux/home/TilesContainer.d.ts +111 -0
- package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
- package/src/sap/cux/home/TilesContainer.js +218 -0
- package/src/sap/cux/home/TilesContainer.js.map +1 -0
- package/src/sap/cux/home/TilesContainer.ts +216 -0
- package/src/sap/cux/home/TilesPanel.d.ts +22 -52
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +194 -168
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +167 -157
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +59 -66
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +46 -34
- package/src/sap/cux/home/ToDosContainer.js +3 -3
- package/src/sap/cux/home/ToDosContainer.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.ts +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
- package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
- package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
- package/src/sap/cux/home/i18n/messagebundle.properties +40 -14
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_da.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_de.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_el.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_en.properties +9 -5
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +14 -6
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +14 -6
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_es.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_et.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_id.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_it.properties +10 -6
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_no.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +9 -5
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_th.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +8 -4
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +8 -4
- package/src/sap/cux/home/interface/AppsInterface.d.ts +6 -0
- package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +7 -0
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
- package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
- package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +7 -4
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +10 -5
- package/src/sap/cux/home/themes/base/AppsContainer.less +12 -1
- package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
- package/src/sap/cux/home/themes/base/BaseLayout.less +22 -0
- package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +4 -45
- package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
- package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
- package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
- package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
- package/src/sap/cux/home/themes/base/ToDosContainer.less +4 -0
- package/src/sap/cux/home/themes/base/library.source.less +2 -1
- package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AppManager.js +2 -1
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +2 -2
- package/src/sap/cux/home/utils/FESRUtil.d.ts +30 -0
- package/src/sap/cux/home/utils/FESRUtil.d.ts.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js +36 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +36 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts +4 -0
- package/src/sap/cux/home/utils/PXFeedback.d.ts.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.js +28 -0
- package/src/sap/cux/home/utils/PXFeedback.js.map +1 -0
- package/src/sap/cux/home/utils/PXFeedback.ts +19 -0
- package/src/sap/cux/home/utils/PageManager.d.ts +0 -4
- package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PageManager.js +6 -6
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +6 -5
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
- package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +155 -151
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
- package/ui5.yaml +1 -0
- package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
- package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
- package/src/sap/cux/home/InsightsContainer.js +0 -459
- package/src/sap/cux/home/InsightsContainer.js.map +0 -1
- package/src/sap/cux/home/InsightsContainer.ts +0 -489
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
- 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;
|
|
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":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,6aAAAC,GAAA,EAAAC,MAAA,EAAAC,cAAA,EAAAC,MAAA,EAAAC,mBAAA,EAAAC,aAAA,EAAAC,IAAA,EAAAC,eAAA,EAAAC,MAAA,EAAAC,gBAAA,EAAAC,aAAA,EAAAC,IAAA,EAAAC,QAAA,EAAAC,UAAA,EAAAC,IAAA,EAAAC,SAAA,EAAAC,QAAA,EAAAC,kBAAA,EAAAC,UAAA,EAAAC,iBAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAkjBO,SAAAG,OAAgBC,IAAI,EAAEC,OAAO,EAAE;IACrC,IAAI;MACH,IAAIC,MAAM,GAAGF,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAMG,CAAC,EAAE;MACV,OAAOF,OAAO,CAACE,CAAC,CAAC;IAClB;IACA,IAAID,MAAM,IAAIA,MAAM,CAACE,IAAI,EAAE;MAC1B,OAAOF,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC,EAAEH,OAAO,CAAC;IACpC;IACA,OAAOC,MAAM;EACd;EAAC,MAljBQG,SAAS,GAAAzB,aAAA;EAAA,MAgBX0B,gBAAgB,GAAAX,sBAAA,CAAAH,kBAAA;EAAA,MAIhBe,QAAQ,GAAAZ,sBAAA,CAAAF,UAAA;EAAA,MACNe,SAAS,GAAAd,iBAAA;EAAA,MAAEe,uBAAuB,GAAAf,iBAAA;EAAA,MAAEgB,oBAAoB,GAAAhB,iBAAA;EAAA,IAW5DiB,gBAAgB,0BAAhBA,gBAAgB;IAAhBA,gBAAgB;IAAhBA,gBAAgB;IAAhBA,gBAAgB;IAAhBA,gBAAgB;IAAhBA,gBAAgB;IAAA,OAAhBA,gBAAgB;EAAA,EAAhBA,gBAAgB;EAQrB,MAAMC,kBAAkB,GAAGxB,UAAU,CAACyB,eAAe,CAAC;IAAEC,OAAO,EAAE;EAAe,CAAC,CAAC;EAElF,MAAMC,SAAS,GAAG;IACjBC,oBAAoB,EAAEC,MAAM,CAACC;EAC9B,CAAC;EAED,MAAMC,wBAAwB,GAAIC,IAAU,IAAa;IACxD,OAAOA,IAAI,CAACC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAClC,CAAC;;EAED;AACA;AACA;AACA;AACA;EACA,MAAMC,kBAAkB,GAAIC,UAAkB,IAAK;IAClD,MAAMC,WAAW,GAAG,IAAIC,IAAI,CAAC,CAAC;;IAE9B;IACA,MAAMC,SAAS,GAAG,IAAID,IAAI,CAACD,WAAW,CAAC;IACvC,MAAMG,kBAAkB,GAAGD,SAAS,CAACE,OAAO,CAACJ,WAAW,CAACK,OAAO,CAAC,CAAC,GAAGL,WAAW,CAACM,MAAM,CAAC,CAAC,GAAG,CAAC,GAAGP,UAAU,CAAC;;IAE3G;IACA,MAAMQ,OAAO,GAAG,IAAIN,IAAI,CAACC,SAAS,CAAC;IACnC,MAAMM,gBAAgB,GAAGD,OAAO,CAACH,OAAO,CAACF,SAAS,CAACG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAEjE,OAAO;MACNH,SAAS,EAAEC,kBAAkB;MAC7BI,OAAO,EAAEC;IACV,CAAC;EACF,CAAC;;EAED;AACA;AACA;AACA;AACA;AACA;AACA;EACA,MAAMC,aAAa,GAAGA,CAACC,gBAAwB,EAAEC,IAAY,KAAa;IACzE,MAAMX,WAAW,GAAG,IAAIC,IAAI,CAACS,gBAAgB,CAAC;IAC9C,MAAME,YAAY,GAAGZ,WAAW,CAACI,OAAO,CAACJ,WAAW,CAACK,OAAO,CAAC,CAAC,GAAGM,IAAI,CAAC;IACtE,OAAOhB,wBAAwB,CAAC,IAAIM,IAAI,CAACW,YAAY,CAAC,CAAC;EACxD,CAAC;;EAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACA,MAAMC,iBAAiB,GAAGA,CAACC,YAAoB,EAAEC,cAAsB,EAAEC,YAAoB,KAAK;IACjG,OAAOF,YAAY,IAAIC,cAAc,IAAID,YAAY,IAAIE,YAAY;EACtE,CAAC;;EAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAdA,MAeqBC,cAAc,GAASnC,gBAAgB,CAAAoC,MAAA;IAI3CC,QAAQ,EAAoB;MAC3CC,OAAO,EAAE,cAAc;MACvBC,kBAAkB,EAAE,MAAM;MAC1BC,YAAY,EAAE;QACb;AACH;AACA;QACGC,IAAI,EAAE;UAAEC,IAAI,EAAE,kBAAkB;UAAEC,YAAY,EAAE,KAAK;UAAEC,QAAQ,EAAE,IAAI;UAAEC,UAAU,EAAE;QAAS;MAC7F;IACD,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACQC,WAAW,WAAAC,aAACC,EAAW,EAAEC,QAA6B,EAAE;MAC9DC,2CAAA,OAAMF,EAAE,EAAEC,QAAQ;MAAE,KAnBbE,WAAW,GAAgB,EAAE;MAoBpC,IAAI,CAACC,YAAY,CAAC,KAAK,CAAC;IACzB,CAAC;IAEMC,IAAI,WAAAC,MAAA,EAAG;MACbC,oCAAA;MACA,IAAI,CAACC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;MACrC,IAAI,CAACA,WAAW,CAAC,OAAO,EAAE,IAAI,CAACC,WAAW,CAACC,OAAO,CAAC,iBAAiB,CAAC,CAAC;MACtE,IAAI,CAACF,WAAW,CAAC,SAAS,EAAE,IAAI,CAACC,WAAW,CAACC,OAAO,CAAC,gBAAgB,CAAC,CAAC;MACvE,IAAI,CAACC,2BAA2B,CAAC,CAAC;MAClC1E,QAAQ,CAAC2E,EAAE,CAAC,oBAAoB,CAAC,CAACC,EAAE,CAAC,MAAM;QAC1C,KAAK,IAAI,CAACC,OAAO,CAAC,CAAC;MACpB,CAAC,CAAC;;MAEF;MACA,MAAMC,mBAAmB,GAAG,IAAI9D,QAAQ,CAAC,GAAG,IAAI,CAAC+D,KAAK,CAAC,CAAC,mBAAmB,EAAE;QAC5EC,KAAK,EAAE,IAAI,CAACR,WAAW,CAACC,OAAO,CAAC,gBAAgB,CAAC;QACjDQ,IAAI,EAAE,oBAAoB;QAC1BC,KAAK,EAAE,IAAI,CAACC,kBAAkB,CAACC,IAAI,CAAC,IAAI;MACzC,CAAC,CAAC;MACFnE,SAAS,CAAC6D,mBAAmB,EAAE,aAAa,CAAC;MAC7C,IAAI,CAACO,iBAAiB,CAAC,WAAW,EAAEP,mBAAmB,EAAE,CAAC,CAAC;MAE3D,IAAI,CAACQ,SAAS,GAAG1F,QAAQ,CAAC2F,WAAW,CAAC,CAAC;MACvC,IAAI,CAACD,SAAS,CAACE,SAAS,CACvB,aAAa,EACb,oBAAoB,EACpB,CAACC,SAAkB,EAAEC,OAAgB,EAAEC,IAAK,KAAK;QAChD,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAA4C;QACpE;QACA,IAAI,CAACG,wBAAwB,CAACF,IAAI,EAAEC,KAAK,CAAC;MAC3C,CAAC,EACD,IACD,CAAC;MACD,IAAI,CAACE,cAAc,GAAG;QACrBC,UAAU,EAAE7E,oBAAoB,CAAC8E;MAClC,CAAC;IACF,CAAC;IAED;AACD;AACA;AACA;IACcC,QAAQ,WAAAC,UAAA;MAAA,IAAG;QAAA,MAAAC,KAAA,GACA,IAAI;QAAA,OAAAC,OAAA,CAAAC,OAAA,CAAJF,KAAA,CAAKG,cAAc,CAAC,CAAC,EAAA1F,IAAA,WAAxC2F,UAAU;UACdJ,KAAA,CAAKK,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;UACrCD,UAAU,GAAGA,UAAU,CAACE,GAAG,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;YAC3C,OAAO;cACN,GAAGD,GAAG;cACNE,SAAS,EAAET,KAAA,CAAKU,cAAc,CAACH,GAAG,CAACI,gBAAgB,EAAEH,KAAK;YAC3D,CAAC;UACF,CAAC,CAAC;UACF;UACAR,KAAA,CAAKY,OAAO,CAACZ,KAAA,CAAKa,YAAY,CAACT,UAAU,CAAC,CAAC;QAAC;MAC7C,CAAC,QAAA5F,CAAA;QAAA,OAAAyF,OAAA,CAAAa,MAAA,CAAAtG,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;IACe2F,cAAc,WAAAA,eAAA;MAAA,IAAyB;QAAA,MAAAY,MAAA,GAQnD,IAAI;QAAA,OAAAd,OAAA,CAAAC,OAAA,CAAA9F,MAAA,aAPD;UAAA,OAAA6F,OAAA,CAAAC,OAAA,CAC8BvG,SAAS,CAACqH,eAAe,CAAc,aAAa,CAAC,EAAAvG,IAAA,WAAhFwG,kBAAkB;YAAA,OAAAhB,OAAA,CAAAC,OAAA,CACoCD,OAAO,CAACiB,GAAG,CAAC,CACvED,kBAAkB,EAAEE,iBAAiB,CAAC,CAAC,CAAC1G,IAAI,CAAEF,MAAM,IAAKA,MAAM,IAAI,EAAE,CAAC,EACtE0G,kBAAkB,EAAEG,eAAe,CAACC,kCAAkC,CAAC,CAAC,CAAC5G,IAAI,CAAEF,MAAM,IAAKA,MAAM,IAAI,CAAC,CAAC,CAAC,CACvG,CAAC,EAAAE,IAAA,WAHI,CAAC6G,gBAAgB,EAAEC,yBAAyB,CAAC;cAInD;cAAA,OAAAtB,OAAA,CAAAC,OAAA,CACyBa,MAAA,CAAKS,iCAAiC,CAACF,gBAAgB,CAAC,EAAA7G,IAAA,WAAAgH,qBAAA;gBAAjFV,MAAA,CAAKjD,WAAW,GAAA2D,qBAAiE;gBACjF,IAAIC,UAAU,GAAG,IAAI5F,IAAI,CAACyF,yBAAyB,EAAEI,SAAS,CAAC;gBAC/D;gBACAZ,MAAA,CAAKa,mBAAmB,GAAGpG,wBAAwB,CAACkG,UAAU,CAAC;gBAE/D,MAAMG,WAAW,GAAGN,yBAAyB,EAAEO,gBAAgB,IAAI,EAAE;gBACrE,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAAmB,CAAC;gBAClDH,WAAW,CAACI,OAAO,CAAE1B,GAAG,IAAK;kBAC5B,IAAIA,GAAG,CAAC2B,KAAK,EAAEC,KAAK,EAAE;oBACrBJ,cAAc,CAACK,GAAG,CAAC7B,GAAG,CAAC2B,KAAK,CAACC,KAAK,EAAE5B,GAAG,CAAC8B,WAAW,CAAC;kBACrD;gBACD,CAAC,CAAC;gBACFtB,MAAA,CAAKjD,WAAW,CAACmE,OAAO,CAAE1B,GAAG,IAAK;kBACjC;kBACAA,GAAG,CAAC+B,SAAS,GAAG9G,wBAAwB,CAAC,IAAIM,IAAI,CAACyE,GAAG,CAACgC,SAAS,CAAC,CAAC;kBACjE,IAAIR,cAAc,CAACS,IAAI,EAAE;oBACxBjC,GAAG,CAACkC,UAAU,GAAGV,cAAc,CAACW,GAAG,CAACnC,GAAG,CAACoC,QAAQ,CAAC;kBAClD;gBACD,CAAC,CAAC;gBACF,OAAO5B,MAAA,CAAKjD,WAAW,IAAI,EAAE;cAAC;YAAA;UAAA;QAC/B,CAAC,YAAQ8E,KAAK,EAAE;UACfhK,GAAG,CAACgK,KAAK,CAACA,KAAe,CAAC;UAC1B,OAAO,EAAE;QACV,CAAC;MACF,CAAC,QAAApI,CAAA;QAAA,OAAAyF,OAAA,CAAAa,MAAA,CAAAtG,CAAA;MAAA;IAAA;IAED;AACD;AACA;AACA;AACA;AACA;IACSkG,cAAc,WAAAA,eAACmC,oBAA6B,GAAG,KAAK,EAAErC,KAAc,EAAc;MACzF,MAAMsC,sBAAsB,GAAG,IAAIlI,QAAQ,CAAC,GAAG,IAAI,CAACmI,MAAM,CAAC,CAAC,KAAKvC,KAAK,0BAA0B,EAAE;QACjG5B,KAAK,EAAE,IAAI,CAACR,WAAW,CAACC,OAAO,CAAC,oBAAoB,CAAC;QACrDQ,IAAI,EAAE,iBAAiB;QACvBC,KAAK,EAAE,IAAI,CAACkE,kBAAkB,CAAChE,IAAI,CAAC,IAAI;MACzC,CAAC,CAAC;MACFnE,SAAS,CAACiI,sBAAsB,EAAE,gBAAgB,CAAC;MACnD,MAAMG,UAAU,GAAG,CAACH,sBAAsB,CAAC;MAC3C,IAAI,CAACD,oBAAoB,EAAE;QAC1B,MAAMK,kBAAkB,GAAG,IAAItI,QAAQ,CAAC,GAAG,IAAI,CAACmI,MAAM,CAAC,CAAC,KAAKvC,KAAK,4BAA4B,EAAE;UAC/F5B,KAAK,EAAE,IAAI,CAACR,WAAW,CAACC,OAAO,CAAC,gBAAgB,CAAC;UACjDQ,IAAI,EAAE,yBAAyB;UAC/BC,KAAK,EAAGqE,KAAK,IAAK;YACjB,KAAK,IAAI,CAACC,kBAAkB,CAACD,KAAK,CAAC;UACpC;QACD,CAAC,CAAC;QACFtI,SAAS,CAACqI,kBAAkB,EAAE,kBAAkB,CAAC;QACjDD,UAAU,CAACI,IAAI,CAACH,kBAAkB,CAAC;MACpC;MACA,OAAOD,UAAU;IAClB,CAAC;IAED;AACD;AACA;AACA;AACA;IACSD,kBAAkB,WAAAA,mBAACG,KAAY,EAAE;MACxC,MAAMG,QAAQ,GAAGH,KAAK,CAACI,SAAS,CAAW,CAAC;MAC5C,MAAMhD,GAAG,GAAG+C,QAAQ,CAACE,SAAS,CAAC,CAAQ;MACvC,MAAMC,GAAG,GAAGlD,GAAG,CAACmD,MAAM,GAAG,CAAC;MAC1BhJ,SAAS,CAACiJ,QAAQ,CAACF,GAAG,EAAE,KAAK,CAAC;MAC9B3I,uBAAuB,CAACC,oBAAoB,CAAC6I,iBAAiB,CAAC;IAChE,CAAC;IAED;AACD;AACA;AACA;AACA;IACSC,sBAAsB,WAAAA,uBAAA,EAAG;MAChC,MAAMlG,EAAE,GAAG,GAAG,IAAI,CAACgB,KAAK,CAAC,CAAC,iBAAiB;MAC3C,IAAI,CAAC,IAAI,CAACmF,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC,EAAE;QAC9B,IAAI,CAACmG,WAAW,CAAC1B,GAAG,CACnBzE,EAAE,EACF,IAAI5E,MAAM,CAAC4E,EAAE,EAAE;UACdiB,KAAK,EAAE,IAAI,CAACR,WAAW,CAACC,OAAO,CAAC,kBAAkB,CAAC;UACnD0F,OAAO,EAAE,IAAIxK,IAAI,CAAC;YACjBoE,EAAE,EAAE,GAAGA,EAAE,YAAY;YACrBqG,MAAM,EAAE,MAAM;YACdC,KAAK,EAAE,CAAC,IAAI,CAACC,uBAAuB,CAAC,CAAC;UACvC,CAAC,CAAC,CAACC,aAAa,CAAC,iBAAiB,CAAC;UACnCC,aAAa,EAAE,IAAI,CAACC,mBAAmB,CAACrF,IAAI,CAAC,IAAI,CAAC;UAClDsF,aAAa,EAAE,OAAO;UACtBC,YAAY,EAAE,OAAO;UACrBC,OAAO,EAAE,CACR,IAAI3L,MAAM,CAAC;YACV8E,EAAE,EAAE,GAAGA,EAAE,aAAa;YACtB8G,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,WAAW,CAAC;YAC3CS,KAAK,EAAE,IAAI,CAACuF,mBAAmB,CAACrF,IAAI,CAAC,IAAI;UAC1C,CAAC,CAAC;QAEJ,CAAC,CAAC,CAACmF,aAAa,CAAC,iBAAiB,CACnC,CAAC;MACF;MACA,OAAO,IAAI,CAACL,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC;IAChC,CAAC;IAED;AACD;AACA;AACA;AACA;IACSuG,uBAAuB,WAAAA,wBAAA,EAAG;MACjC,MAAMvG,EAAE,GAAG,GAAG,IAAI,CAACgB,KAAK,CAAC,CAAC,sBAAsB;MAChD,IAAI,CAAC,IAAI,CAACmF,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC,EAAE;QAC9B,IAAI,CAACmG,WAAW,CAAC1B,GAAG,CACnBzE,EAAE,EACF,IAAIzE,IAAI,CAAC;UACRyE,EAAE;UACF+G,OAAO,EAAE,IAAI;UACbC,mBAAmB,EAAE,IAAI;UACzBC,aAAa,EAAE,IAAIzL,eAAe,CAAC;YAClCwE,EAAE,EAAE,GAAGA,EAAE,iBAAiB;YAC1BkH,KAAK,EAAE,OAAO;YACdb,MAAM,EAAE,SAAS;YACjBD,OAAO,EAAE,CACR,IAAIzK,aAAa,CAAC;cACjBqE,EAAE,EAAE,GAAGA,EAAE;YACV,CAAC,CAAC,EACF,IAAI,CAACmH,6BAA6B,CAAC,CAAC;UAEtC,CAAC;QACF,CAAC,CAAC,CAACX,aAAa,CAAC,0CAA0C,CAC5D,CAAC;MACF;MACA,OAAO,IAAI,CAACL,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC;IAChC,CAAC;IAED;AACD;AACA;AACA;AACA;IACSmH,6BAA6B,WAAAA,8BAAA,EAAG;MACvC,MAAMnH,EAAE,GAAG,GAAG,IAAI,CAACgB,KAAK,CAAC,CAAC,6BAA6B;MACvD,IAAI,CAAC,IAAI,CAACmF,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC,EAAE;QAC9B,IAAI,CAACmG,WAAW,CAAC1B,GAAG,CACnBzE,EAAE,EACF,IAAIvE,MAAM,CAAC;UACVuE,EAAE;UACFoH,WAAW,EAAE/J,gBAAgB,CAACgK,GAAG;UACjCC,MAAM,EAAGzK,CAAC,IAAK,IAAI,CAAC0K,mBAAmB,CAAC1K,CAAC,CAAC;UAC1CyJ,KAAK,EAAE,CACN,IAAIvK,IAAI,CAAC;YACRiE,EAAE,EAAE,GAAGA,EAAE,QAAQ;YACjBwH,GAAG,EAAEnK,gBAAgB,CAACgK,GAAG;YACzBP,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,YAAY;UAC5C,CAAC,CAAC,EACF,IAAI3E,IAAI,CAAC;YACRiE,EAAE,EAAE,GAAGA,EAAE,QAAQ;YACjBwH,GAAG,EAAEnK,gBAAgB,CAACoK,KAAK;YAC3BX,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,WAAW;UAC3C,CAAC,CAAC,EACF,IAAI3E,IAAI,CAAC;YACRiE,EAAE,EAAE,GAAGA,EAAE,OAAO;YAChBwH,GAAG,EAAEnK,gBAAgB,CAACqK,IAAI;YAC1BZ,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,UAAU;UAC1C,CAAC,CAAC,EACF,IAAI3E,IAAI,CAAC;YACRiE,EAAE,EAAE,GAAGA,EAAE,UAAU;YACnBwH,GAAG,EAAEnK,gBAAgB,CAACsK,QAAQ;YAC9Bb,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,aAAa;UAC7C,CAAC,CAAC,EACF,IAAI3E,IAAI,CAAC;YACRiE,EAAE,EAAE,GAAGA,EAAE,YAAY;YACrBwH,GAAG,EAAEnK,gBAAgB,CAACuK,UAAU;YAChCd,IAAI,EAAE,IAAI,CAACrG,WAAW,CAACC,OAAO,CAAC,eAAe;UAC/C,CAAC,CAAC;QAEJ,CAAC,CACF,CAAC;MACF;MACA,OAAO,IAAI,CAACyF,WAAW,CAACpB,GAAG,CAAC/E,EAAE,CAAC;IAChC,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACS6H,4BAA4B,WAAAA,6BAACC,eAA8B,EAAQ;MAC1E,MAAMC,cAAc,GAAG,IAAI,CAACxB,uBAAuB,CAAC,CAAC;MACrDwB,cAAc,EAAEC,YAAY,CAAC,CAAC;MAC9BF,eAAe,CAACxD,OAAO,CAAE2D,cAAc,IAAK;QAC3CF,cAAc,CAACG,OAAO,CAAC,IAAI,CAACC,eAAe,CAACF,cAAc,CAACtD,SAAS,CAAC,CAAC;QACtEoD,cAAc,CAACG,OAAO,CACrB,IAAI/M,cAAc,CAAC;UAClB6E,EAAE,EAAE,QAAQiI,cAAc,CAACtD,SAAS,UAAU;UAC9CjF,IAAI,EAAE,UAAU;UAChB0G,OAAO,EAAE,CACR,IAAI7K,IAAI,CAAC;YACRyE,EAAE,EAAE,QAAQiI,cAAc,CAACtD,SAAS,UAAU;YAC9C2B,KAAK,EAAE,CAAC2B,cAAc,CAACxI,IAAI,IAAI,EAAE,EAAEkD,GAAG,CAAC,CAACC,GAAG,EAAEC,KAAK,KACjD,IAAInH,gBAAgB,CAAC;cACpBsE,EAAE,EAAE,aAAaiI,cAAc,CAACtD,SAAS,KAAK9B,KAAK,EAAE;cACrD5B,KAAK,EAAE2B,GAAG,CAACwF,IAAI;cACf1I,IAAI,EAAE;YACP,CAAC,CAAC,CAAC8G,aAAa,CAAC,2DAA2D,CAC7E;UACD,CAAC,CAAC,CAACA,aAAa,CAAC,kDAAkD,CAAC;QAEtE,CAAC,CACF,CAAC;MACF,CAAC,CAAC;IACH,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACSpF,kBAAkB,WAAAA,mBAAA,EAAG;MAC5B,MAAMiH,aAAa,GAAG,IAAI,CAACnC,sBAAsB,CAAC,CAAC;MACnD,MAAMoC,UAAU,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;MACxC,IAAI,CAACV,4BAA4B,CAACS,UAAU,CAAC;MAC7CD,aAAa,CAACG,IAAI,CAAC,CAAC;IACrB,CAAC;IAED;AACD;AACA;AACA;IACS9B,mBAAmB,WAAAA,oBAAA,EAAG;MAC7B,MAAM2B,aAAa,GAAG,IAAI,CAACnC,sBAAsB,CAAC,CAAC;MACnDmC,aAAa,CAACI,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACSlB,mBAAmB,WAAAA,oBAAC/B,KAAyB,EAAE;MACtD,MAAM4B,WAAW,GAAG5B,KAAK,CAACkD,YAAY,CAAC,cAAc,CAAC,EAAEtD,MAAM,CAAC,CAAqB;MACpF,MAAMuD,kBAAiC,GAAG,IAAI,CAACC,sBAAsB,CAACxB,WAAW,CAAC;MAClF,IAAI,CAACS,4BAA4B,CAACc,kBAAkB,CAAC;IACtD,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;AACA;IACSR,eAAe,WAAAA,gBAACxD,SAAiB,EAAuB;MAC/D,IAAIkE,MAAM,GAAG,EAAE;MACf,QAAQlE,SAAS;QAChB,KAAKlH,SAAS,CAACC,oBAAoB;UAClCmL,MAAM,GAAG,IAAI,CAACpI,WAAW,CAACC,OAAO,CAAC,WAAW,CAAW;UACxD;QACD,KAAK7C,wBAAwB,CAAC,IAAIM,IAAI,CAAC,CAAC,CAAC;UACxC0K,MAAM,GAAG,IAAI,CAACpI,WAAW,CAACC,OAAO,CAAC,WAAW,CAAW;UACxD;QACD;UACCmI,MAAM,GAAGvL,kBAAkB,CAACwL,MAAM,CAAC,IAAI3K,IAAI,CAACwG,SAAS,CAAC,CAAC;UACvD;MACF;MACA,OAAO,IAAItJ,mBAAmB,CAAC;QAC9B4F,KAAK,EAAE4H;MACR,CAAC,CAAC,CAACrC,aAAa,CAAC,6CAA6C,CAAC;IAChE,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACS+B,cAAc,WAAAA,eAAA,EAAkB;MACvC,IAAI,IAAI,CAACtE,mBAAmB,IAAI,IAAI,CAAC9D,WAAW,EAAE4I,MAAM,EAAE;QACzD,MAAMC,iBAA8C,GAAG,CAAC,CAAC;QACzD,MAAMC,kBAAkB,GAAGtK,aAAa,CAAC,IAAI,CAACsF,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC9D,WAAW,CAACmE,OAAO,CAAE4E,SAAS,IAAK;UACvC,MAAMlK,YAAY,GAAGnB,wBAAwB,CAAC,IAAIM,IAAI,CAAC+K,SAAS,CAACvE,SAAU,CAAC,CAAC;UAC7E,IAAI3F,YAAY,GAAGiK,kBAAkB,EAAE;YACtC,IAAI,CAACD,iBAAiB,CAACvL,SAAS,CAACC,oBAAoB,CAAC,EAAE;cACvDsL,iBAAiB,CAACvL,SAAS,CAACC,oBAAoB,CAAC,GAAG;gBAAEiH,SAAS,EAAElH,SAAS,CAACC,oBAAoB;gBAAE+B,IAAI,EAAE;cAAG,CAAC;YAC5G;YACAuJ,iBAAiB,CAACvL,SAAS,CAACC,oBAAoB,CAAC,EAAE+B,IAAI,CAACiG,IAAI,CAAC;cAAE0C,IAAI,EAAEc,SAAS,CAACjI;YAAM,CAAC,CAAC;UACxF,CAAC,MAAM;YACN,MAAMkI,QAAQ,GAAGD,SAAS,CAACpE,UAAU,IAAI,EAAE;YAC3CqE,QAAQ,CAAC7E,OAAO,CAAC,CAAC8E,KAAK,EAAEvG,KAAK,KAAK;cAClC,IAAIuG,KAAK,GAAG,CAAC,EAAE;gBACd,MAAMC,SAAS,GAAG1K,aAAa,CAAC,IAAI,CAACsF,mBAAmB,EAAEkF,QAAQ,CAACJ,MAAM,GAAG,CAAC,GAAGlG,KAAK,CAAC;gBACtF,IAAI,CAACmG,iBAAiB,CAACK,SAAS,CAAC,EAAE;kBAClCL,iBAAiB,CAACK,SAAS,CAAC,GAAG;oBAAE1E,SAAS,EAAE0E,SAAS;oBAAE5J,IAAI,EAAE;kBAAG,CAAC;gBAClE;gBACAuJ,iBAAiB,CAACK,SAAS,CAAC,EAAE5J,IAAI,CAACiG,IAAI,CAAC;kBAAE0C,IAAI,EAAEc,SAAS,CAACjI;gBAAM,CAAC,CAAC;cACnE;YACD,CAAC,CAAC;UACH;QACD,CAAC,CAAC;QACF,MAAMqH,UAAU,GAAGgB,MAAM,CAACC,MAAM,CAACP,iBAAiB,CAAC;QACnDV,UAAU,CAACkB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKA,CAAC,CAAC/E,SAAS,GAAG8E,CAAC,CAAC9E,SAAS,CAAC;QACpD,OAAO2D,UAAU;MAClB;MACA,OAAO,EAAE;IACV,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACSM,sBAAsB,WAAAA,uBAACxB,WAA6B,EAAiB;MAC5E,MAAMkB,UAAU,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC;MACxC,IAAII,kBAAiC,GAAG,EAAE;MAC1C,QAAQvB,WAAW;QAClB,KAAK/J,gBAAgB,CAACoK,KAAK;UAAE;YAC5BkB,kBAAkB,GAAGL,UAAU,CAACqB,MAAM,CAAE/G,GAAG,IAAKA,GAAG,CAAC+B,SAAS,KAAK9G,wBAAwB,CAAC,IAAIM,IAAI,CAAC,CAAC,CAAC,CAAC;YACvG;UACD;QACA,KAAKd,gBAAgB,CAACqK,IAAI;UAAE;YAC3B,MAAM;cAAEtJ,SAAS,EAAEwL,oBAAoB;cAAEnL,OAAO,EAAEoL;YAAmB,CAAC,GAAG7L,kBAAkB,CAAC,CAAC,CAAC;YAC9F2K,kBAAkB,GAAGL,UAAU,CAACqB,MAAM,CAAE/G,GAAG,IAAK7D,iBAAiB,CAAC6D,GAAG,CAAC+B,SAAS,EAAEiF,oBAAoB,EAAEC,kBAAkB,CAAC,CAAC;YAC3H;UACD;QACA,KAAKxM,gBAAgB,CAACsK,QAAQ;UAAE;YAC/B,MAAM;cAAEvJ,SAAS,EAAE0L;YAAoB,CAAC,GAAG9L,kBAAkB,CAAC,CAAC,CAAC;YAChE,MAAM;cAAES,OAAO,EAAEoL;YAAmB,CAAC,GAAG7L,kBAAkB,CAAC,CAAC,CAAC;YAC7D2K,kBAAkB,GAAGL,UAAU,CAACqB,MAAM,CAAE/G,GAAG,IAAK7D,iBAAiB,CAAC6D,GAAG,CAAC+B,SAAS,EAAEmF,mBAAmB,EAAED,kBAAkB,CAAC,CAAC;YAC1H;UACD;QACA,KAAKxM,gBAAgB,CAACuK,UAAU;UAAE;YACjC,MAAM;cAAExJ,SAAS,EAAE2L;YAAmB,CAAC,GAAG/L,kBAAkB,CAAC,CAAC,CAAC;YAC/D,MAAM;cAAES,OAAO,EAAEoL;YAAmB,CAAC,GAAG7L,kBAAkB,CAAC,CAAC,CAAC;YAC7D2K,kBAAkB,GAAGL,UAAU,CAACqB,MAAM,CAAE/G,GAAG,IAAK7D,iBAAiB,CAAC6D,GAAG,CAAC+B,SAAS,EAAEoF,kBAAkB,EAAEF,kBAAkB,CAAC,CAAC;YACzH;UACD;QACA;UACClB,kBAAkB,GAAG,CAAC,GAAGL,UAAU,CAAC;UACpC;MACF;MACA,OAAOK,kBAAkB;IAC1B,CAAC;IAED;AACD;AACA;AACA;AACA;AACA;IACWqB,0BAA0B,WAAAC,4BAAA,EAAG;MACtC,MAAMC,kBAAkB,GAAAC,0DAAA,MAAqC;MAC7D;MACAD,kBAAkB,CAACE,cAAc,CAAC,IAAI,CAAC3J,WAAW,CAACC,OAAO,CAAC,yBAAyB,CAAC,CAAC;MACtF,OAAOwJ,kBAAkB;IAC1B;EAAC;EAAA,OAhcmB/K,cAAc;AAAA","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;
|
|
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,
|