@sapui5/sap.cux.home 1.142.0 → 1.142.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.gen.d.ts +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +7 -6
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +7 -6
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.gen.d.ts +1 -1
- package/src/sap/cux/home/App.js +6 -3
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +6 -3
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +47 -34
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +334 -238
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +345 -231
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/AppsContainer.js +4 -3
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +4 -3
- package/src/sap/cux/home/BaseApp.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseApp.js +1 -1
- package/src/sap/cux/home/BaseApp.js.map +1 -1
- package/src/sap/cux/home/BaseApp.ts +1 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts +9 -0
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +21 -2
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +23 -2
- package/src/sap/cux/home/BaseAppPersPanel.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.ts +1 -1
- package/src/sap/cux/home/BaseContainer.d.ts +2 -2
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseContainer.js +11 -3
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +8 -4
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js +7 -1
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
- package/src/sap/cux/home/BaseLayout.d.ts +1 -1
- package/src/sap/cux/home/BaseLayout.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseLayout.js +1 -1
- package/src/sap/cux/home/BaseLayout.js.map +1 -1
- package/src/sap/cux/home/BaseLayout.ts +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.js +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseLayoutRenderer.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.d.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseNewsItem.js +1 -1
- package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
- package/src/sap/cux/home/BaseNewsItem.ts +1 -1
- package/src/sap/cux/home/BaseNewsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +3 -3
- package/src/sap/cux/home/BasePagePanel.d.ts +1 -1
- package/src/sap/cux/home/BasePagePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BasePagePanel.js +1 -1
- package/src/sap/cux/home/BasePagePanel.js.map +1 -1
- package/src/sap/cux/home/BasePagePanel.ts +1 -1
- package/src/sap/cux/home/BasePanel.d.ts +1 -1
- package/src/sap/cux/home/BasePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BasePanel.js +1 -1
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.js +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.ts +1 -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 +43 -62
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/CardsPanel.js +346 -286
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +212 -201
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +3 -1
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +13 -7
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +14 -6
- package/src/sap/cux/home/CustomFlexBox.gen.d.ts +1 -1
- 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 +32 -1
- package/src/sap/cux/home/ErrorPanel.js +12 -17
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +8 -20
- package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +297 -302
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +15 -11
- package/src/sap/cux/home/FrequentAppPanel.js +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +1 -1
- package/src/sap/cux/home/Group.d.ts +1 -1
- package/src/sap/cux/home/Group.gen.d.ts +1 -1
- package/src/sap/cux/home/Group.js +1 -1
- package/src/sap/cux/home/Group.js.map +1 -1
- package/src/sap/cux/home/Group.ts +1 -1
- package/src/sap/cux/home/IToDoPanel.d.ts +1 -1
- package/src/sap/cux/home/IToDoPanel.js +1 -1
- package/src/sap/cux/home/IToDoPanel.js.map +1 -1
- package/src/sap/cux/home/IToDoPanel.ts +1 -1
- 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 +9 -9
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +8 -8
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js +16 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +12 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js +2 -2
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +2 -2
- 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 +253 -40
- 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 +12 -11
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +13 -11
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +3 -3
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +8 -8
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +3 -3
- package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.ts +1 -1
- package/src/sap/cux/home/Layout.d.ts +4 -2
- package/src/sap/cux/home/Layout.d.ts.map +1 -1
- package/src/sap/cux/home/Layout.js +50 -9
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +60 -9
- 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 +342 -57
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
- package/src/sap/cux/home/MenuItem.d.ts +1 -1
- package/src/sap/cux/home/MenuItem.gen.d.ts +1 -1
- package/src/sap/cux/home/MenuItem.js +1 -1
- package/src/sap/cux/home/MenuItem.js.map +1 -1
- package/src/sap/cux/home/MenuItem.ts +1 -1
- package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
- package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +4 -4
- package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +27 -114
- package/src/sap/cux/home/NewsContainer.js.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +30 -119
- package/src/sap/cux/home/NewsGroup.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsGroup.js +1 -1
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +2 -2
- package/src/sap/cux/home/NewsItem.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsItem.js +1 -1
- package/src/sap/cux/home/NewsItem.js.map +1 -1
- package/src/sap/cux/home/NewsItem.ts +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/NewsPanel.js +13 -15
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +14 -17
- package/src/sap/cux/home/NewsSettingsPanel.js +5 -5
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +6 -6
- package/src/sap/cux/home/NoDataContainer.js +1 -1
- package/src/sap/cux/home/NoDataContainer.js.map +1 -1
- package/src/sap/cux/home/NoDataContainer.ts +1 -1
- package/src/sap/cux/home/Page.d.ts +1 -1
- package/src/sap/cux/home/Page.gen.d.ts +1 -1
- package/src/sap/cux/home/Page.js +1 -1
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +1 -1
- 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 -16
- package/src/sap/cux/home/PageSettingsPanel.js +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +1 -1
- 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 +18 -0
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +30 -1
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +33 -2
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +6 -5
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +5 -4
- package/src/sap/cux/home/SettingsDialog.d.ts +8 -1
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +185 -15
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +15 -5
- package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.gen.d.ts +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
- package/src/sap/cux/home/SideBySideIconTabFilter.ts +1 -1
- package/src/sap/cux/home/SituationPanel.js +1 -1
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +1 -1
- 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.gen.d.ts +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/SpacePanel.gen.d.ts +1 -1
- package/src/sap/cux/home/SpacePanel.js +1 -1
- package/src/sap/cux/home/SpacePanel.js.map +1 -1
- package/src/sap/cux/home/SpacePanel.ts +1 -1
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/TaskPanel.js +17 -2
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +16 -2
- 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.gen.d.ts +1 -1
- package/src/sap/cux/home/TilesPanel.js +185 -166
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +161 -155
- package/src/sap/cux/home/ToDoPanel.d.ts +1 -0
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.gen.d.ts +1 -1
- package/src/sap/cux/home/ToDoPanel.js +39 -64
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +33 -32
- package/src/sap/cux/home/ToDosContainer.js +1 -1
- 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/LayoutHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/LayoutHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/LayoutHandler.ts +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +3 -3
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +2 -2
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +5 -5
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +3 -3
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +2 -2
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +5 -5
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +3 -3
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +2 -2
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +4 -4
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +3 -3
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +5 -5
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +6 -6
- package/src/sap/cux/home/designtime/Layout.designtime.js +1 -1
- package/src/sap/cux/home/designtime/Layout.designtime.js.map +1 -1
- package/src/sap/cux/home/designtime/Layout.designtime.ts +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +31 -4
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +24 -2
- 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 +79 -3
- package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.ts +82 -2
- package/src/sap/cux/home/i18n/messagebundle.properties +27 -13
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +20 -4
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +21 -9
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +26 -14
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_da.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_de.properties +22 -10
- package/src/sap/cux/home/i18n/messagebundle_el.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_en.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_es.properties +21 -8
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_et.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_id.properties +33 -21
- package/src/sap/cux/home/i18n/messagebundle_it.properties +25 -13
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_no.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +26 -14
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +21 -9
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +26 -14
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_th.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +24 -12
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +20 -8
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +20 -8
- package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +1 -1
- package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.ts +1 -2
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts +28 -5
- 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 +24 -5
- package/src/sap/cux/home/interface/LayoutInterface.d.ts +8 -1
- 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 +8 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.d.ts +1 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.js.map +1 -1
- package/src/sap/cux/home/interface/PageSpaceInterface.ts +1 -1
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +8 -5
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +11 -6
- package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
- package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
- package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +0 -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/library.source.less +2 -1
- package/src/sap/cux/home/utils/Accessibility.d.ts +1 -1
- package/src/sap/cux/home/utils/Accessibility.js +1 -1
- package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
- package/src/sap/cux/home/utils/Accessibility.ts +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +1 -1
- package/src/sap/cux/home/utils/AppManager.js +1 -1
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +1 -1
- package/src/sap/cux/home/utils/BatchHelper.d.ts +2 -1
- package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js +8 -3
- package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.ts +9 -2
- package/src/sap/cux/home/utils/ColorUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/ColorUtils.js +1 -1
- package/src/sap/cux/home/utils/ColorUtils.js.map +1 -1
- package/src/sap/cux/home/utils/ColorUtils.ts +1 -1
- package/src/sap/cux/home/utils/CommonUtils.js +1 -1
- package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
- package/src/sap/cux/home/utils/CommonUtils.ts +1 -1
- package/src/sap/cux/home/utils/Constants.js +1 -1
- package/src/sap/cux/home/utils/Constants.js.map +1 -1
- package/src/sap/cux/home/utils/Constants.ts +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.js +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.js.map +1 -1
- package/src/sap/cux/home/utils/DataFormatUtils.ts +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.js +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.ts +1 -1
- package/src/sap/cux/home/utils/Device.js +1 -1
- package/src/sap/cux/home/utils/Device.js.map +1 -1
- package/src/sap/cux/home/utils/Device.ts +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.js +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.js.map +1 -1
- package/src/sap/cux/home/utils/DragDropUtils.ts +1 -1
- package/src/sap/cux/home/utils/FESRUtil.d.ts +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.js +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.ts +1 -1
- package/src/sap/cux/home/utils/HttpHelper.js +1 -1
- package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
- package/src/sap/cux/home/utils/HttpHelper.ts +1 -1
- package/src/sap/cux/home/utils/IconList.d.ts +1 -1
- package/src/sap/cux/home/utils/IconList.js +1 -1
- package/src/sap/cux/home/utils/IconList.js.map +1 -1
- package/src/sap/cux/home/utils/IconList.ts +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.js +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.js.map +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.ts +1 -1
- package/src/sap/cux/home/utils/PXFeedback.js +1 -1
- package/src/sap/cux/home/utils/PXFeedback.js.map +1 -1
- package/src/sap/cux/home/utils/PXFeedback.ts +1 -1
- package/src/sap/cux/home/utils/PageManager.js +1 -1
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.d.ts +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.js +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.js.map +1 -1
- package/src/sap/cux/home/utils/PagesIconsConstants.ts +1 -1
- 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 +5 -3
- package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.ts +5 -3
- package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.js +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.ts +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.js +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.js.map +1 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil.ts +1 -1
- package/src/sap/cux/home/utils/SituationUtils.js +1 -1
- package/src/sap/cux/home/utils/SituationUtils.js.map +1 -1
- package/src/sap/cux/home/utils/SituationUtils.ts +1 -1
- package/src/sap/cux/home/utils/TaskUtils.js +1 -1
- package/src/sap/cux/home/utils/TaskUtils.js.map +1 -1
- package/src/sap/cux/home/utils/TaskUtils.ts +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.ts +1 -1
- package/src/sap/cux/home/utils/extension/CardExtension.js +1 -1
- package/src/sap/cux/home/utils/extension/CardExtension.js.map +1 -1
- package/src/sap/cux/home/utils/extension/CardExtension.ts +1 -1
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +151 -152
- package/src/sap/cux/home/utils/fragment/showDecisionDialog.fragment.xml +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.ts +1 -1
- 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} +4 -78
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +2 -76
- 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} +4 -24
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +2 -22
- 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/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.ts +1 -1
- 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* * (c) Copyright 2009-
|
|
3
|
+
* * (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Dialog", "sap/m/GroupHeaderListItem", "sap/m/library", "sap/m/List", "sap/m/OverflowToolbar", "sap/m/Select", "sap/m/StandardListItem", "sap/m/ToolbarSpacer", "sap/m/VBox", "sap/ui/core/EventBus", "sap/ui/core/format/DateFormat", "sap/ui/core/Item", "sap/ushell/Container", "sap/ushell/EventHub", "./BaseAppPersPanel", "./MenuItem", "./utils/FESRUtil"], function (Log, Button, CustomListItem, Dialog, GroupHeaderListItem, sap_m_library, List, OverflowToolbar, Select, StandardListItem, ToolbarSpacer, VBox, EventBus, DateFormat, Item, Container, EventHub, __BaseAppPersPanel, __MenuItem, ___utils_FESRUtil) {
|
|
6
6
|
"use strict";
|
|
@@ -162,6 +162,35 @@ sap.ui.define(["sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/Di
|
|
|
162
162
|
fesrSource: FESRNavigationSource.RecentlyUsed
|
|
163
163
|
};
|
|
164
164
|
},
|
|
165
|
+
/**
|
|
166
|
+
* Returns the target URL from visualiztion data for recently used apps. Special
|
|
167
|
+
* handling for WDA and GUI apps, by using viz.url if they have special intents,
|
|
168
|
+
* otherwise returns viz.targetURL.
|
|
169
|
+
*
|
|
170
|
+
* @param viz - The custom visualization object
|
|
171
|
+
* @returns The target URL for all recently used apps except the special GUI , WDA apps
|
|
172
|
+
*/
|
|
173
|
+
getTargetUrl: function _getTargetUrl(viz) {
|
|
174
|
+
return (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || "";
|
|
175
|
+
},
|
|
176
|
+
/**
|
|
177
|
+
* For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id
|
|
178
|
+
* and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode
|
|
179
|
+
* to launch the app correctly. This method checks if the url contains these intents.
|
|
180
|
+
* @param viz - The custom visualization object
|
|
181
|
+
* @returns boolean indicating whether the url contains WDA or GUI start intent
|
|
182
|
+
*/
|
|
183
|
+
checkIfStartWDAorStartGUI: function _checkIfStartWDAorStartGUI(viz) {
|
|
184
|
+
if (!viz?.targetURL || typeof viz.targetURL !== "string") {
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Convert to uppercase for case-insensitive comparison
|
|
189
|
+
var sUpperURL = viz.targetURL.toUpperCase();
|
|
190
|
+
|
|
191
|
+
// Check if URL contains #Shell-startGUI or #Shell-startWDA
|
|
192
|
+
return sUpperURL.indexOf("#SHELL-STARTGUI") !== -1 || sUpperURL.indexOf("#SHELL-STARTWDA") !== -1;
|
|
193
|
+
},
|
|
165
194
|
/**
|
|
166
195
|
* Fetch recent apps and set apps aggregation
|
|
167
196
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecentAppPanel.js","names":["sap","ui","define","Log","Button","CustomListItem","Dialog","GroupHeaderListItem","sap_m_library","List","OverflowToolbar","Select","StandardListItem","ToolbarSpacer","VBox","EventBus","DateFormat","Item","Container","EventHub","__BaseAppPersPanel","__MenuItem","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","URLHelper","BaseAppPersPanel","MenuItem","addFESRId","addFESRNavigationSource","FESRNavigationSource","DateFilterOption","GroupDateFormatter","getDateInstance","pattern","Constants","OLDER_DATE_TIMESTAMP","Number","MIN_SAFE_INTEGER","formatConstantTimeInDate","date","setHours","getWeekRangeValues","weekOffset","currentDate","Date","startDate","startDateTimeStamp","setDate","getDate","getDay","endDate","endDateTimeStamp","getDaysBefore","currentTimeStamp","days","newDateStamp","isDateWithinRange","appTimeStamp","startTimeStamp","endTimeStamp","RecentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","_recentApps","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","showHistoryMenuItem","getId","title","icon","press","_openHistoryDialog","bind","insertAggregation","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","additionalInfo","fesrSource","RecentlyUsed","loadApps","_loadApps","_this","Promise","resolve","_getRecentApps","recentApps","destroyAggregation","map","app","index","menuItems","_getAppActions","addedInFavorites","setApps","generateApps","reject","_this2","getServiceAsync","UserRecentsService","all","getRecentActivity","oRecentActivity","_getRecentActivitiesFromLoadedData","recentActivities","recentActivitiesUsageData","convertActivitiesToVisualizations","_this2$convertActivit","recentDate","recentDay","_recentDayTimeStamp","recentUsage","recentUsageArray","recentUsageMap","Map","forEach","oItem","appId","set","aUsageArray","dateStamp","timestamp","size","usageArray","get","orgAppId","error","isAppAddedInFavorite","resumeLastActivityItem","getKey","_resumeAppActivity","appActions","addToFavoritesItem","event","_addAppToFavorites","push","menuItem","getSource","getParent","url","getUrl","redirect","ResumeAppActivity","_generateHistoryDialog","_controlMap","content","height","items","_generateAppHistoryList","addStyleClass","escapeHandler","_closeHistoryDialog","contentHeight","contentWidth","buttons","text","growing","growingScrollToLoad","headerToolbar","style","_generateAppHistoryListFilter","selectedKey","ALL","change","_onDateFilterChange","key","TODAY","WEEK","TWO_WEEK","THREE_WEEK","_generateAppHistoryListItems","appHistoryItems","appHistoryList","destroyItems","appHistoryItem","addItem","_getGroupHeader","name","historyDialog","appHistory","_getAppHistory","open","close","getParameter","filteredAppHistory","_getFilteredAppHistory","sTitle","format","length","groupedAppHistory","thresholdTimeStamp","recentApp","appUsage","usage","usageDate","Object","values","sort","a","b","filter","currentWeekStartDate","currentWeekEndDate","secondWeekStartDate","thirdWeekStartDate","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["RecentAppPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport Button from \"sap/m/Button\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport Dialog from \"sap/m/Dialog\";\nimport GroupHeaderListItem from \"sap/m/GroupHeaderListItem\";\nimport { URLHelper } from \"sap/m/library\";\nimport List from \"sap/m/List\";\nimport OverflowToolbar from \"sap/m/OverflowToolbar\";\nimport Select, { Select$ChangeEvent } from \"sap/m/Select\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\nimport VBox from \"sap/m/VBox\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Item from \"sap/ui/core/Item\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRId, addFESRNavigationSource, FESRNavigationSource } from \"./utils/FESRUtil\";\n\ninterface IAppHistoryItem {\n\tname: string;\n}\n\ninterface IAppHistory {\n\tdateStamp: number;\n\tapps: IAppHistoryItem[];\n}\n\nenum DateFilterOption {\n\tALL = \"ALL\",\n\tTODAY = \"TODAY\",\n\tWEEK = \"WEEK\",\n\tTWO_WEEK = \"TWO_WEEK\",\n\tTHREE_WEEK = \"THREE_WEEK\"\n}\n\nconst GroupDateFormatter = DateFormat.getDateInstance({ pattern: \"MMMM d, yyyy\" });\n\nconst Constants = {\n\tOLDER_DATE_TIMESTAMP: Number.MIN_SAFE_INTEGER\n};\n\nconst formatConstantTimeInDate = (date: Date): number => {\n\treturn date.setHours(12, 0, 0, 0);\n};\n\n/**\n * Calculates the start and end dates of a week based on the given week offset.\n * @param weekOffset - The offset from the current week.\n * @returns An object containing the start and end dates of the week.\n */\nconst getWeekRangeValues = (weekOffset: number) => {\n\tconst currentDate = new Date();\n\n\t// Calculate the start of the current week (with sunday as the first day of the week)\n\tconst startDate = new Date(currentDate);\n\tconst startDateTimeStamp = startDate.setDate(currentDate.getDate() - currentDate.getDay() - 7 * weekOffset);\n\n\t// Calculate the end of the week\n\tconst endDate = new Date(startDate);\n\tconst endDateTimeStamp = endDate.setDate(startDate.getDate() + 6);\n\n\treturn {\n\t\tstartDate: startDateTimeStamp,\n\t\tendDate: endDateTimeStamp\n\t};\n};\n\n/**\n * Calculates the timestamp of a date, that is a specified number of days before a given current date.\n *\n * @param {Date} currentTimeStamp - The current date to calculate days before.\n * @param {number} days - The number of days before the current date.\n * @returns {number} The timestamp of the date `days` before `currentDate`.\n */\nconst getDaysBefore = (currentTimeStamp: number, days: number): number => {\n\tconst currentDate = new Date(currentTimeStamp);\n\tconst newDateStamp = currentDate.setDate(currentDate.getDate() - days);\n\treturn formatConstantTimeInDate(new Date(newDateStamp));\n};\n\n/**\n * Filters an app by date.\n * @private\n * @param {number} appTimeStamp - The timestamp of the app.\n * @param {number} startTimeStamp - The start timestamp for filtering.\n * @param {number} endTimeStamp - The end timestamp for filtering.\n * @returns A boolean indicating whether the app falls within the specified date range.\n */\nconst isDateWithinRange = (appTimeStamp: number, startTimeStamp: number, endTimeStamp: number) => {\n\treturn appTimeStamp >= startTimeStamp && appTimeStamp <= endTimeStamp;\n};\n\n/**\n *\n * Provides class for managing Recently Used apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.RecentAppPanel\n */\nexport default class RecentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tprivate _recentDayTimeStamp!: number;\n\tprivate _recentApps: IActivity[] = [];\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Recent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new Recently Used apps Panel.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"recentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"recentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"recentAppsInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\t//Setup Menu Items\n\t\tconst showHistoryMenuItem = new MenuItem(`${this.getId()}-show-history-btn`, {\n\t\t\ttitle: this._i18nBundle.getText(\"showHistoryBtn\"),\n\t\t\ticon: \"sap-icon://history\",\n\t\t\tpress: this._openHistoryDialog.bind(this)\n\t\t});\n\t\taddFESRId(showHistoryMenuItem, \"showHistory\");\n\t\tthis.insertAggregation(\"menuItems\", showHistoryMenuItem, 0);\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in recent apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis.additionalInfo = {\n\t\t\tfesrSource: FESRNavigationSource.RecentlyUsed\n\t\t};\n\t}\n\n\t/**\n\t * Fetch recent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet recentApps = await this._getRecentApps();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\trecentApps = recentApps.map((app, index) => {\n\t\t\treturn {\n\t\t\t\t...app,\n\t\t\t\tmenuItems: this._getAppActions(app.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tthis.setApps(this.generateApps(recentApps));\n\t}\n\n\t/**\n\t * Returns list of recent apps\n\t * @private\n\t * @returns {Promise<IActivity[]>} - Array of recent apps.\n\t */\n\tprivate async _getRecentApps(): Promise<IActivity[]> {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst [recentActivities, recentActivitiesUsageData] = await Promise.all([\n\t\t\t\tUserRecentsService?.getRecentActivity().then((result) => result || []),\n\t\t\t\tUserRecentsService?.oRecentActivity._getRecentActivitiesFromLoadedData().then((result) => result || {})\n\t\t\t]);\n\t\t\t//convert activity to apps\n\t\t\tthis._recentApps = await this.convertActivitiesToVisualizations(recentActivities);\n\t\t\tlet recentDate = new Date(recentActivitiesUsageData?.recentDay);\n\t\t\t// add last used and usage info\n\t\t\tthis._recentDayTimeStamp = formatConstantTimeInDate(recentDate);\n\n\t\t\tconst recentUsage = recentActivitiesUsageData?.recentUsageArray || [];\n\t\t\tconst recentUsageMap = new Map<string, number[]>();\n\t\t\trecentUsage.forEach((app) => {\n\t\t\t\tif (app.oItem?.appId) {\n\t\t\t\t\trecentUsageMap.set(app.oItem.appId, app.aUsageArray);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._recentApps.forEach((app) => {\n\t\t\t\t//isolate only date information by having common time information\n\t\t\t\tapp.dateStamp = formatConstantTimeInDate(new Date(app.timestamp));\n\t\t\t\tif (recentUsageMap.size) {\n\t\t\t\t\tapp.usageArray = recentUsageMap.get(app.orgAppId);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this._recentApps || [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getAppActions(isAppAddedInFavorite: boolean = false, index?: number): MenuItem[] {\n\t\tconst resumeLastActivityItem = new MenuItem(`${this.getKey()}--${index}--resumeLastActivityItem`, {\n\t\t\ttitle: this._i18nBundle.getText(\"resumeLastActivity\"),\n\t\t\ticon: \"sap-icon://past\",\n\t\t\tpress: this._resumeAppActivity.bind(this)\n\t\t});\n\t\taddFESRId(resumeLastActivityItem, \"resumeActivity\");\n\t\tconst appActions = [resumeLastActivityItem];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\tconst addToFavoritesItem = new MenuItem(`${this.getKey()}--${index}--addToFavoritesRecentItem`, {\n\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\tpress: (event) => {\n\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRId(addToFavoritesItem, \"addFavFromRecent\");\n\t\t\tappActions.push(addToFavoritesItem);\n\t\t}\n\t\treturn appActions;\n\t}\n\n\t/**\n\t * Redirects to the selected app url\n\t * @private\n\t * @param {sap.ui.base.Event} event - The event object.\n\t */\n\tprivate _resumeAppActivity(event: Event) {\n\t\tconst menuItem = event.getSource<MenuItem>();\n\t\tconst app = menuItem.getParent() as App;\n\t\tconst url = app.getUrl?.();\n\t\tURLHelper.redirect(url, false);\n\t\taddFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);\n\t}\n\n\t/**\n\t * Generates and returns a dialog for showing the history of recent applications.\n\t * @private\n\t * @returns The generated dialog for showing the history of recent applications.\n\t */\n\tprivate _generateHistoryDialog() {\n\t\tconst id = `${this.getId()}-history-dialog`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Dialog(id, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"showHistoryTitle\"),\n\t\t\t\t\tcontent: new VBox({\n\t\t\t\t\t\tid: `${id}-container`,\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\titems: [this._generateAppHistoryList()]\n\t\t\t\t\t}).addStyleClass(\"sapUiTinyMargin\"),\n\t\t\t\t\tescapeHandler: this._closeHistoryDialog.bind(this),\n\t\t\t\t\tcontentHeight: \"29rem\",\n\t\t\t\t\tcontentWidth: \"25rem\",\n\t\t\t\t\tbuttons: [\n\t\t\t\t\t\tnew Button({\n\t\t\t\t\t\t\tid: `${id}-cancel-btn`,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"cancelBtn\"),\n\t\t\t\t\t\t\tpress: this._closeHistoryDialog.bind(this)\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}).addStyleClass(\"sapContrastPlus\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Dialog;\n\t}\n\n\t/**\n\t * Generates the app history list.\n\t * @private\n\t * @returns The generated app history list.\n\t */\n\tprivate _generateAppHistoryList() {\n\t\tconst id = `${this.getId()}-history-dialog-list`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew List({\n\t\t\t\t\tid,\n\t\t\t\t\tgrowing: true,\n\t\t\t\t\tgrowingScrollToLoad: true,\n\t\t\t\t\theaderToolbar: new OverflowToolbar({\n\t\t\t\t\t\tid: `${id}-header-toolbar`,\n\t\t\t\t\t\tstyle: \"Clear\",\n\t\t\t\t\t\theight: \"1.75rem\",\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\tnew ToolbarSpacer({\n\t\t\t\t\t\t\t\tid: `${id}-header-toolbar-spacer`\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tthis._generateAppHistoryListFilter()\n\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone recentAppList\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as List;\n\t}\n\n\t/**\n\t * Generates the app history list filter.\n\t * @private\n\t * @returns The Select control for the app history list filter.\n\t */\n\tprivate _generateAppHistoryListFilter() {\n\t\tconst id = `${this.getId()}-history-dialog-list-filter`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Select({\n\t\t\t\t\tid,\n\t\t\t\t\tselectedKey: DateFilterOption.ALL,\n\t\t\t\t\tchange: (e) => this._onDateFilterChange(e),\n\t\t\t\t\titems: [\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-month`,\n\t\t\t\t\t\t\tkey: DateFilterOption.ALL,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThirty\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-today`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TODAY,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateToday\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-week`,\n\t\t\t\t\t\t\tkey: DateFilterOption.WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-twoWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TWO_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateTwoWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-threeWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.THREE_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThreeWeek\")\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Select;\n\t}\n\n\t/**\n\t * Generates and populates items in the app history list based on the provided list of items.\n\t * Clears existing items in the list before adding new items.\n\t *\n\t * @param {IAppHistory[]} appHistoryItems - Array of items to populate in the app history list.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _generateAppHistoryListItems(appHistoryItems: IAppHistory[]): void {\n\t\tconst appHistoryList = this._generateAppHistoryList();\n\t\tappHistoryList?.destroyItems();\n\t\tappHistoryItems.forEach((appHistoryItem) => {\n\t\t\tappHistoryList.addItem(this._getGroupHeader(appHistoryItem.dateStamp));\n\t\t\tappHistoryList.addItem(\n\t\t\t\tnew CustomListItem({\n\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-lisItem`,\n\t\t\t\t\ttype: \"Inactive\",\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\tnew List({\n\t\t\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-appList`,\n\t\t\t\t\t\t\titems: (appHistoryItem.apps || []).map((app, index) =>\n\t\t\t\t\t\t\t\tnew StandardListItem({\n\t\t\t\t\t\t\t\t\tid: `listItem--${appHistoryItem.dateStamp}--${index}`,\n\t\t\t\t\t\t\t\t\ttitle: app.name,\n\t\t\t\t\t\t\t\t\ttype: \"Inactive\"\n\t\t\t\t\t\t\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppList sapUiSmallMarginTop\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone sapUiTinyMarginBottom\")\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Opens the history dialog.\n\t * This method generates the show history dialog, retrieves the app history list,\n\t * generates the app history list items, and opens the dialog.\n\t * @private\n\t */\n\tprivate _openHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\tconst appHistory = this._getAppHistory();\n\t\tthis._generateAppHistoryListItems(appHistory);\n\t\thistoryDialog.open();\n\t}\n\n\t/**\n\t * Closes the history dialog.\n\t * @private\n\t */\n\tprivate _closeHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\thistoryDialog.close();\n\t}\n\n\t/**\n\t * Handles the change event of the date filter.\n\t * Updates the app history list based on the selected date filter.\n\t * @private\n\t * @param {Select$ChangeEvent} event - The select change event.\n\t */\n\tprivate _onDateFilterChange(event: Select$ChangeEvent) {\n\t\tconst selectedKey = event.getParameter(\"selectedItem\")?.getKey() as DateFilterOption;\n\t\tconst filteredAppHistory: IAppHistory[] = this._getFilteredAppHistory(selectedKey);\n\t\tthis._generateAppHistoryListItems(filteredAppHistory);\n\t}\n\n\t/**\n\t * Generates a group header for the given date timestamp.\n\t *\n\t * @param {number} dateStamp - The timestamp representing the date.\n\t * @returns {GroupHeaderListItem} The generated group header list item.\n\t * @private\n\t */\n\tprivate _getGroupHeader(dateStamp: number): GroupHeaderListItem {\n\t\tlet sTitle = \"\";\n\t\tswitch (dateStamp) {\n\t\t\tcase Constants.OLDER_DATE_TIMESTAMP:\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateLater\") as string;\n\t\t\t\tbreak;\n\t\t\tcase formatConstantTimeInDate(new Date()):\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateToday\") as string;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsTitle = GroupDateFormatter.format(new Date(dateStamp));\n\t\t\t\tbreak;\n\t\t}\n\t\treturn new GroupHeaderListItem({\n\t\t\ttitle: sTitle\n\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppListHeader\");\n\t}\n\n\t/**\n\t * Retrieves the application usage history based on recent app data.\n\t *\n\t * @returns {IAppHistory[]} Array of objects, where each object contains the date timestamp and the apps that are used on that date.\n\t * @private\n\t */\n\tprivate _getAppHistory(): IAppHistory[] {\n\t\tif (this._recentDayTimeStamp && this._recentApps?.length) {\n\t\t\tconst groupedAppHistory: Record<number, IAppHistory> = {};\n\t\t\tconst thresholdTimeStamp = getDaysBefore(this._recentDayTimeStamp, 30); // 30 days threshold\n\t\t\tthis._recentApps.forEach((recentApp) => {\n\t\t\t\tconst appTimeStamp = formatConstantTimeInDate(new Date(recentApp.dateStamp!));\n\t\t\t\tif (appTimeStamp < thresholdTimeStamp) {\n\t\t\t\t\tif (!groupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]) {\n\t\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP] = { dateStamp: Constants.OLDER_DATE_TIMESTAMP, apps: [] };\n\t\t\t\t\t}\n\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]?.apps.push({ name: recentApp.title });\n\t\t\t\t} else {\n\t\t\t\t\tconst appUsage = recentApp.usageArray || [];\n\t\t\t\t\tappUsage.forEach((usage, index) => {\n\t\t\t\t\t\tif (usage > 0) {\n\t\t\t\t\t\t\tconst usageDate = getDaysBefore(this._recentDayTimeStamp, appUsage.length - 1 - index);\n\t\t\t\t\t\t\tif (!groupedAppHistory[usageDate]) {\n\t\t\t\t\t\t\t\tgroupedAppHistory[usageDate] = { dateStamp: usageDate, apps: [] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgroupedAppHistory[usageDate]?.apps.push({ name: recentApp.title });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst appHistory = Object.values(groupedAppHistory);\n\t\t\tappHistory.sort((a, b) => b.dateStamp - a.dateStamp);\n\t\t\treturn appHistory;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Retrieves the filtered app history based on the selected date filter option.\n\t * @private\n\t * @param {DateFilterOption} selectedKey - The selected date filter option.\n\t * @returns {IAppHistory[]} An array of filtered app history.\n\t */\n\tprivate _getFilteredAppHistory(selectedKey: DateFilterOption): IAppHistory[] {\n\t\tconst appHistory = this._getAppHistory();\n\t\tlet filteredAppHistory: IAppHistory[] = [];\n\t\tswitch (selectedKey) {\n\t\t\tcase DateFilterOption.TODAY: {\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => app.dateStamp === formatConstantTimeInDate(new Date()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.WEEK: {\n\t\t\t\tconst { startDate: currentWeekStartDate, endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, currentWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.TWO_WEEK: {\n\t\t\t\tconst { startDate: secondWeekStartDate } = getWeekRangeValues(1);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, secondWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.THREE_WEEK: {\n\t\t\t\tconst { startDate: thirdWeekStartDate } = getWeekRangeValues(2);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, thirdWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfilteredAppHistory = [...appHistory];\n\t\t\t\tbreak;\n\t\t}\n\t\treturn filteredAppHistory;\n\t}\n\n\t/**\n\t * Generates illustrated message for recent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noRecentAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"RecentAppPanel.js","names":["sap","ui","define","Log","Button","CustomListItem","Dialog","GroupHeaderListItem","sap_m_library","List","OverflowToolbar","Select","StandardListItem","ToolbarSpacer","VBox","EventBus","DateFormat","Item","Container","EventHub","__BaseAppPersPanel","__MenuItem","___utils_FESRUtil","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","URLHelper","BaseAppPersPanel","MenuItem","addFESRId","addFESRNavigationSource","FESRNavigationSource","DateFilterOption","GroupDateFormatter","getDateInstance","pattern","Constants","OLDER_DATE_TIMESTAMP","Number","MIN_SAFE_INTEGER","formatConstantTimeInDate","date","setHours","getWeekRangeValues","weekOffset","currentDate","Date","startDate","startDateTimeStamp","setDate","getDate","getDay","endDate","endDateTimeStamp","getDaysBefore","currentTimeStamp","days","newDateStamp","isDateWithinRange","appTimeStamp","startTimeStamp","endTimeStamp","RecentAppPanel","extend","metadata","library","defaultAggregation","aggregations","apps","type","singularName","multiple","visibility","constructor","_constructor","id","settings","BaseAppPersPanel.prototype.constructor.call","_recentApps","setSupported","init","_init","BaseAppPersPanel.prototype.init.call","setProperty","_i18nBundle","getText","_attachUserActivityTracking","on","do","refresh","showHistoryMenuItem","getId","title","icon","press","_openHistoryDialog","bind","insertAggregation","oEventBus","getInstance","subscribe","channelId","eventId","data","item","color","_applyUngroupedTileColor","additionalInfo","fesrSource","RecentlyUsed","getTargetUrl","_getTargetUrl","viz","checkIfStartWDAorStartGUI","url","targetURL","_checkIfStartWDAorStartGUI","sUpperURL","toUpperCase","indexOf","loadApps","_loadApps","_this","Promise","resolve","_getRecentApps","recentApps","destroyAggregation","map","app","index","menuItems","_getAppActions","addedInFavorites","setApps","generateApps","reject","_this2","getServiceAsync","UserRecentsService","all","getRecentActivity","oRecentActivity","_getRecentActivitiesFromLoadedData","recentActivities","recentActivitiesUsageData","convertActivitiesToVisualizations","_this2$convertActivit","recentDate","recentDay","_recentDayTimeStamp","recentUsage","recentUsageArray","recentUsageMap","Map","forEach","oItem","appId","set","aUsageArray","dateStamp","timestamp","size","usageArray","get","orgAppId","error","isAppAddedInFavorite","resumeLastActivityItem","getKey","_resumeAppActivity","appActions","addToFavoritesItem","event","_addAppToFavorites","push","menuItem","getSource","getParent","getUrl","redirect","ResumeAppActivity","_generateHistoryDialog","_controlMap","content","height","items","_generateAppHistoryList","addStyleClass","escapeHandler","_closeHistoryDialog","contentHeight","contentWidth","buttons","text","growing","growingScrollToLoad","headerToolbar","style","_generateAppHistoryListFilter","selectedKey","ALL","change","_onDateFilterChange","key","TODAY","WEEK","TWO_WEEK","THREE_WEEK","_generateAppHistoryListItems","appHistoryItems","appHistoryList","destroyItems","appHistoryItem","addItem","_getGroupHeader","name","historyDialog","appHistory","_getAppHistory","open","close","getParameter","filteredAppHistory","_getFilteredAppHistory","sTitle","format","length","groupedAppHistory","thresholdTimeStamp","recentApp","appUsage","usage","usageDate","Object","values","sort","a","b","filter","currentWeekStartDate","currentWeekEndDate","secondWeekStartDate","thirdWeekStartDate","generateIllustratedMessage","_generateIllustratedMessage","illustratedMessage","BaseAppPersPanel.prototype.generateIllustratedMessage.call","setDescription"],"sources":["RecentAppPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport Button from \"sap/m/Button\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport Dialog from \"sap/m/Dialog\";\nimport GroupHeaderListItem from \"sap/m/GroupHeaderListItem\";\nimport { URLHelper } from \"sap/m/library\";\nimport List from \"sap/m/List\";\nimport OverflowToolbar from \"sap/m/OverflowToolbar\";\nimport Select, { Select$ChangeEvent } from \"sap/m/Select\";\nimport StandardListItem from \"sap/m/StandardListItem\";\nimport ToolbarSpacer from \"sap/m/ToolbarSpacer\";\nimport VBox from \"sap/m/VBox\";\nimport Event from \"sap/ui/base/Event\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Item from \"sap/ui/core/Item\";\nimport Container from \"sap/ushell/Container\";\nimport EventHub from \"sap/ushell/EventHub\";\nimport UserRecents from \"sap/ushell/services/UserRecents\";\nimport App from \"./App\";\nimport BaseAppPersPanel from \"./BaseAppPersPanel\";\nimport type { $BasePanelSettings } from \"./BasePanel\";\nimport Group from \"./Group\";\nimport { IActivity, ICustomVisualization } from \"./interface/AppsInterface\";\nimport MenuItem from \"./MenuItem\";\nimport { addFESRId, addFESRNavigationSource, FESRNavigationSource } from \"./utils/FESRUtil\";\n\ninterface IAppHistoryItem {\n\tname: string;\n}\n\ninterface IAppHistory {\n\tdateStamp: number;\n\tapps: IAppHistoryItem[];\n}\n\nenum DateFilterOption {\n\tALL = \"ALL\",\n\tTODAY = \"TODAY\",\n\tWEEK = \"WEEK\",\n\tTWO_WEEK = \"TWO_WEEK\",\n\tTHREE_WEEK = \"THREE_WEEK\"\n}\n\nconst GroupDateFormatter = DateFormat.getDateInstance({ pattern: \"MMMM d, yyyy\" });\n\nconst Constants = {\n\tOLDER_DATE_TIMESTAMP: Number.MIN_SAFE_INTEGER\n};\n\nconst formatConstantTimeInDate = (date: Date): number => {\n\treturn date.setHours(12, 0, 0, 0);\n};\n\n/**\n * Calculates the start and end dates of a week based on the given week offset.\n * @param weekOffset - The offset from the current week.\n * @returns An object containing the start and end dates of the week.\n */\nconst getWeekRangeValues = (weekOffset: number) => {\n\tconst currentDate = new Date();\n\n\t// Calculate the start of the current week (with sunday as the first day of the week)\n\tconst startDate = new Date(currentDate);\n\tconst startDateTimeStamp = startDate.setDate(currentDate.getDate() - currentDate.getDay() - 7 * weekOffset);\n\n\t// Calculate the end of the week\n\tconst endDate = new Date(startDate);\n\tconst endDateTimeStamp = endDate.setDate(startDate.getDate() + 6);\n\n\treturn {\n\t\tstartDate: startDateTimeStamp,\n\t\tendDate: endDateTimeStamp\n\t};\n};\n\n/**\n * Calculates the timestamp of a date, that is a specified number of days before a given current date.\n *\n * @param {Date} currentTimeStamp - The current date to calculate days before.\n * @param {number} days - The number of days before the current date.\n * @returns {number} The timestamp of the date `days` before `currentDate`.\n */\nconst getDaysBefore = (currentTimeStamp: number, days: number): number => {\n\tconst currentDate = new Date(currentTimeStamp);\n\tconst newDateStamp = currentDate.setDate(currentDate.getDate() - days);\n\treturn formatConstantTimeInDate(new Date(newDateStamp));\n};\n\n/**\n * Filters an app by date.\n * @private\n * @param {number} appTimeStamp - The timestamp of the app.\n * @param {number} startTimeStamp - The start timestamp for filtering.\n * @param {number} endTimeStamp - The end timestamp for filtering.\n * @returns A boolean indicating whether the app falls within the specified date range.\n */\nconst isDateWithinRange = (appTimeStamp: number, startTimeStamp: number, endTimeStamp: number) => {\n\treturn appTimeStamp >= startTimeStamp && appTimeStamp <= endTimeStamp;\n};\n\n/**\n *\n * Provides class for managing Recently Used apps.\n *\n * @extends sap.cux.home.BaseAppPersPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.RecentAppPanel\n */\nexport default class RecentAppPanel extends BaseAppPersPanel {\n\tprivate oEventBus!: EventBus;\n\tprivate _recentDayTimeStamp!: number;\n\tprivate _recentApps: IActivity[] = [];\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tdefaultAggregation: \"apps\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Apps aggregation for Recent apps\n\t\t\t */\n\t\t\tapps: { type: \"sap.cux.home.App\", singularName: \"app\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\t/**\n\t * Constructor for a new Recently Used apps Panel.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BasePanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.setSupported(false);\n\t}\n\n\tpublic init() {\n\t\tsuper.init();\n\t\tthis.setProperty(\"key\", \"recentApps\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"recentlyUsedTab\"));\n\t\tthis.setProperty(\"tooltip\", this._i18nBundle.getText(\"recentAppsInfo\"));\n\t\tthis._attachUserActivityTracking();\n\t\tEventHub.on(\"userRecentsCleared\").do(() => {\n\t\t\tvoid this.refresh();\n\t\t});\n\n\t\t//Setup Menu Items\n\t\tconst showHistoryMenuItem = new MenuItem(`${this.getId()}-show-history-btn`, {\n\t\t\ttitle: this._i18nBundle.getText(\"showHistoryBtn\"),\n\t\t\ticon: \"sap-icon://history\",\n\t\t\tpress: this._openHistoryDialog.bind(this)\n\t\t});\n\t\taddFESRId(showHistoryMenuItem, \"showHistory\");\n\t\tthis.insertAggregation(\"menuItems\", showHistoryMenuItem, 0);\n\n\t\tthis.oEventBus = EventBus.getInstance();\n\t\tthis.oEventBus.subscribe(\n\t\t\t\"appsChannel\",\n\t\t\t\"favAppColorChanged\",\n\t\t\t(channelId?: string, eventId?: string, data?) => {\n\t\t\t\tconst { item, color } = data as { item: App | Group; color: string };\n\t\t\t\t//update color of the app in recent apps\n\t\t\t\tthis._applyUngroupedTileColor(item, color);\n\t\t\t},\n\t\t\tthis\n\t\t);\n\t\tthis.additionalInfo = {\n\t\t\tfesrSource: FESRNavigationSource.RecentlyUsed\n\t\t};\n\t}\n\n\t/**\n\t * Returns the target URL from visualiztion data for recently used apps. Special\n\t * handling for WDA and GUI apps, by using viz.url if they have special intents,\n\t * otherwise returns viz.targetURL.\n\t *\n\t * @param viz - The custom visualization object\n\t * @returns The target URL for all recently used apps except the special GUI , WDA apps\n\t */\n\tprotected getTargetUrl(viz: ICustomVisualization): string {\n\t\treturn (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || \"\";\n\t}\n\n\t/**\n\t * For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id\n\t * and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode\n\t * to launch the app correctly. This method checks if the url contains these intents.\n\t * @param viz - The custom visualization object\n\t * @returns boolean indicating whether the url contains WDA or GUI start intent\n\t */\n\tprivate checkIfStartWDAorStartGUI(viz: ICustomVisualization): boolean {\n\t\tif (!viz?.targetURL || typeof viz.targetURL !== \"string\") {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Convert to uppercase for case-insensitive comparison\n\t\tvar sUpperURL = viz.targetURL.toUpperCase();\n\n\t\t// Check if URL contains #Shell-startGUI or #Shell-startWDA\n\t\treturn sUpperURL.indexOf(\"#SHELL-STARTGUI\") !== -1 || sUpperURL.indexOf(\"#SHELL-STARTWDA\") !== -1;\n\t}\n\n\t/**\n\t * Fetch recent apps and set apps aggregation\n\t * @private\n\t */\n\tpublic async loadApps() {\n\t\tlet recentApps = await this._getRecentApps();\n\t\tthis.destroyAggregation(\"apps\", true);\n\t\trecentApps = recentApps.map((app, index) => {\n\t\t\treturn {\n\t\t\t\t...app,\n\t\t\t\tmenuItems: this._getAppActions(app.addedInFavorites, index)\n\t\t\t};\n\t\t});\n\t\t//convert apps objects array to apps instances\n\t\tthis.setApps(this.generateApps(recentApps));\n\t}\n\n\t/**\n\t * Returns list of recent apps\n\t * @private\n\t * @returns {Promise<IActivity[]>} - Array of recent apps.\n\t */\n\tprivate async _getRecentApps(): Promise<IActivity[]> {\n\t\ttry {\n\t\t\tconst UserRecentsService = await Container.getServiceAsync<UserRecents>(\"UserRecents\");\n\t\t\tconst [recentActivities, recentActivitiesUsageData] = await Promise.all([\n\t\t\t\tUserRecentsService?.getRecentActivity().then((result) => result || []),\n\t\t\t\tUserRecentsService?.oRecentActivity._getRecentActivitiesFromLoadedData().then((result) => result || {})\n\t\t\t]);\n\t\t\t//convert activity to apps\n\t\t\tthis._recentApps = await this.convertActivitiesToVisualizations(recentActivities);\n\t\t\tlet recentDate = new Date(recentActivitiesUsageData?.recentDay);\n\t\t\t// add last used and usage info\n\t\t\tthis._recentDayTimeStamp = formatConstantTimeInDate(recentDate);\n\n\t\t\tconst recentUsage = recentActivitiesUsageData?.recentUsageArray || [];\n\t\t\tconst recentUsageMap = new Map<string, number[]>();\n\t\t\trecentUsage.forEach((app) => {\n\t\t\t\tif (app.oItem?.appId) {\n\t\t\t\t\trecentUsageMap.set(app.oItem.appId, app.aUsageArray);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis._recentApps.forEach((app) => {\n\t\t\t\t//isolate only date information by having common time information\n\t\t\t\tapp.dateStamp = formatConstantTimeInDate(new Date(app.timestamp));\n\t\t\t\tif (recentUsageMap.size) {\n\t\t\t\t\tapp.usageArray = recentUsageMap.get(app.orgAppId);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn this._recentApps || [];\n\t\t} catch (error) {\n\t\t\tLog.error(error as string);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Returns list of actions available for selected app\n\t * @private\n\t * @param {boolean} isAppAddedInFavorite - true if app is already present in favorite, false otherwise.\n\t * @returns {sap.cux.home.MenuItem[]} - Array of list items.\n\t */\n\tprivate _getAppActions(isAppAddedInFavorite: boolean = false, index?: number): MenuItem[] {\n\t\tconst resumeLastActivityItem = new MenuItem(`${this.getKey()}--${index}--resumeLastActivityItem`, {\n\t\t\ttitle: this._i18nBundle.getText(\"resumeLastActivity\"),\n\t\t\ticon: \"sap-icon://past\",\n\t\t\tpress: this._resumeAppActivity.bind(this)\n\t\t});\n\t\taddFESRId(resumeLastActivityItem, \"resumeActivity\");\n\t\tconst appActions = [resumeLastActivityItem];\n\t\tif (!isAppAddedInFavorite) {\n\t\t\tconst addToFavoritesItem = new MenuItem(`${this.getKey()}--${index}--addToFavoritesRecentItem`, {\n\t\t\t\ttitle: this._i18nBundle.getText(\"addToFavorites\"),\n\t\t\t\ticon: \"sap-icon://add-favorite\",\n\t\t\t\tpress: (event) => {\n\t\t\t\t\tvoid this._addAppToFavorites(event);\n\t\t\t\t}\n\t\t\t});\n\t\t\taddFESRId(addToFavoritesItem, \"addFavFromRecent\");\n\t\t\tappActions.push(addToFavoritesItem);\n\t\t}\n\t\treturn appActions;\n\t}\n\n\t/**\n\t * Redirects to the selected app url\n\t * @private\n\t * @param {sap.ui.base.Event} event - The event object.\n\t */\n\tprivate _resumeAppActivity(event: Event) {\n\t\tconst menuItem = event.getSource<MenuItem>();\n\t\tconst app = menuItem.getParent() as App;\n\t\tconst url = app.getUrl?.();\n\t\tURLHelper.redirect(url, false);\n\t\taddFESRNavigationSource(FESRNavigationSource.ResumeAppActivity);\n\t}\n\n\t/**\n\t * Generates and returns a dialog for showing the history of recent applications.\n\t * @private\n\t * @returns The generated dialog for showing the history of recent applications.\n\t */\n\tprivate _generateHistoryDialog() {\n\t\tconst id = `${this.getId()}-history-dialog`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Dialog(id, {\n\t\t\t\t\ttitle: this._i18nBundle.getText(\"showHistoryTitle\"),\n\t\t\t\t\tcontent: new VBox({\n\t\t\t\t\t\tid: `${id}-container`,\n\t\t\t\t\t\theight: \"100%\",\n\t\t\t\t\t\titems: [this._generateAppHistoryList()]\n\t\t\t\t\t}).addStyleClass(\"sapUiTinyMargin\"),\n\t\t\t\t\tescapeHandler: this._closeHistoryDialog.bind(this),\n\t\t\t\t\tcontentHeight: \"29rem\",\n\t\t\t\t\tcontentWidth: \"25rem\",\n\t\t\t\t\tbuttons: [\n\t\t\t\t\t\tnew Button({\n\t\t\t\t\t\t\tid: `${id}-cancel-btn`,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"cancelBtn\"),\n\t\t\t\t\t\t\tpress: this._closeHistoryDialog.bind(this)\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t}).addStyleClass(\"sapContrastPlus\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Dialog;\n\t}\n\n\t/**\n\t * Generates the app history list.\n\t * @private\n\t * @returns The generated app history list.\n\t */\n\tprivate _generateAppHistoryList() {\n\t\tconst id = `${this.getId()}-history-dialog-list`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew List({\n\t\t\t\t\tid,\n\t\t\t\t\tgrowing: true,\n\t\t\t\t\tgrowingScrollToLoad: true,\n\t\t\t\t\theaderToolbar: new OverflowToolbar({\n\t\t\t\t\t\tid: `${id}-header-toolbar`,\n\t\t\t\t\t\tstyle: \"Clear\",\n\t\t\t\t\t\theight: \"1.75rem\",\n\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\tnew ToolbarSpacer({\n\t\t\t\t\t\t\t\tid: `${id}-header-toolbar-spacer`\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tthis._generateAppHistoryListFilter()\n\t\t\t\t\t\t]\n\t\t\t\t\t})\n\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone recentAppList\")\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as List;\n\t}\n\n\t/**\n\t * Generates the app history list filter.\n\t * @private\n\t * @returns The Select control for the app history list filter.\n\t */\n\tprivate _generateAppHistoryListFilter() {\n\t\tconst id = `${this.getId()}-history-dialog-list-filter`;\n\t\tif (!this._controlMap.get(id)) {\n\t\t\tthis._controlMap.set(\n\t\t\t\tid,\n\t\t\t\tnew Select({\n\t\t\t\t\tid,\n\t\t\t\t\tselectedKey: DateFilterOption.ALL,\n\t\t\t\t\tchange: (e) => this._onDateFilterChange(e),\n\t\t\t\t\titems: [\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-month`,\n\t\t\t\t\t\t\tkey: DateFilterOption.ALL,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThirty\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-today`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TODAY,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateToday\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-week`,\n\t\t\t\t\t\t\tkey: DateFilterOption.WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-twoWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.TWO_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateTwoWeek\")\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnew Item({\n\t\t\t\t\t\t\tid: `${id}-threeWeek`,\n\t\t\t\t\t\t\tkey: DateFilterOption.THREE_WEEK,\n\t\t\t\t\t\t\ttext: this._i18nBundle.getText(\"dateThreeWeek\")\n\t\t\t\t\t\t})\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\t\treturn this._controlMap.get(id) as Select;\n\t}\n\n\t/**\n\t * Generates and populates items in the app history list based on the provided list of items.\n\t * Clears existing items in the list before adding new items.\n\t *\n\t * @param {IAppHistory[]} appHistoryItems - Array of items to populate in the app history list.\n\t * @returns {void}\n\t * @private\n\t */\n\tprivate _generateAppHistoryListItems(appHistoryItems: IAppHistory[]): void {\n\t\tconst appHistoryList = this._generateAppHistoryList();\n\t\tappHistoryList?.destroyItems();\n\t\tappHistoryItems.forEach((appHistoryItem) => {\n\t\t\tappHistoryList.addItem(this._getGroupHeader(appHistoryItem.dateStamp));\n\t\t\tappHistoryList.addItem(\n\t\t\t\tnew CustomListItem({\n\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-lisItem`,\n\t\t\t\t\ttype: \"Inactive\",\n\t\t\t\t\tcontent: [\n\t\t\t\t\t\tnew List({\n\t\t\t\t\t\t\tid: `date-${appHistoryItem.dateStamp}-appList`,\n\t\t\t\t\t\t\titems: (appHistoryItem.apps || []).map((app, index) =>\n\t\t\t\t\t\t\t\tnew StandardListItem({\n\t\t\t\t\t\t\t\t\tid: `listItem--${appHistoryItem.dateStamp}--${index}`,\n\t\t\t\t\t\t\t\t\ttitle: app.name,\n\t\t\t\t\t\t\t\t\ttype: \"Inactive\"\n\t\t\t\t\t\t\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppList sapUiSmallMarginTop\")\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}).addStyleClass(\"sapMListShowSeparatorsNone sapUiTinyMarginBottom\")\n\t\t\t\t\t]\n\t\t\t\t})\n\t\t\t);\n\t\t});\n\t}\n\n\t/**\n\t * Opens the history dialog.\n\t * This method generates the show history dialog, retrieves the app history list,\n\t * generates the app history list items, and opens the dialog.\n\t * @private\n\t */\n\tprivate _openHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\tconst appHistory = this._getAppHistory();\n\t\tthis._generateAppHistoryListItems(appHistory);\n\t\thistoryDialog.open();\n\t}\n\n\t/**\n\t * Closes the history dialog.\n\t * @private\n\t */\n\tprivate _closeHistoryDialog() {\n\t\tconst historyDialog = this._generateHistoryDialog();\n\t\thistoryDialog.close();\n\t}\n\n\t/**\n\t * Handles the change event of the date filter.\n\t * Updates the app history list based on the selected date filter.\n\t * @private\n\t * @param {Select$ChangeEvent} event - The select change event.\n\t */\n\tprivate _onDateFilterChange(event: Select$ChangeEvent) {\n\t\tconst selectedKey = event.getParameter(\"selectedItem\")?.getKey() as DateFilterOption;\n\t\tconst filteredAppHistory: IAppHistory[] = this._getFilteredAppHistory(selectedKey);\n\t\tthis._generateAppHistoryListItems(filteredAppHistory);\n\t}\n\n\t/**\n\t * Generates a group header for the given date timestamp.\n\t *\n\t * @param {number} dateStamp - The timestamp representing the date.\n\t * @returns {GroupHeaderListItem} The generated group header list item.\n\t * @private\n\t */\n\tprivate _getGroupHeader(dateStamp: number): GroupHeaderListItem {\n\t\tlet sTitle = \"\";\n\t\tswitch (dateStamp) {\n\t\t\tcase Constants.OLDER_DATE_TIMESTAMP:\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateLater\") as string;\n\t\t\t\tbreak;\n\t\t\tcase formatConstantTimeInDate(new Date()):\n\t\t\t\tsTitle = this._i18nBundle.getText(\"dateToday\") as string;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsTitle = GroupDateFormatter.format(new Date(dateStamp));\n\t\t\t\tbreak;\n\t\t}\n\t\treturn new GroupHeaderListItem({\n\t\t\ttitle: sTitle\n\t\t}).addStyleClass(\"sapUiTinyMarginBeginEnd recentAppListHeader\");\n\t}\n\n\t/**\n\t * Retrieves the application usage history based on recent app data.\n\t *\n\t * @returns {IAppHistory[]} Array of objects, where each object contains the date timestamp and the apps that are used on that date.\n\t * @private\n\t */\n\tprivate _getAppHistory(): IAppHistory[] {\n\t\tif (this._recentDayTimeStamp && this._recentApps?.length) {\n\t\t\tconst groupedAppHistory: Record<number, IAppHistory> = {};\n\t\t\tconst thresholdTimeStamp = getDaysBefore(this._recentDayTimeStamp, 30); // 30 days threshold\n\t\t\tthis._recentApps.forEach((recentApp) => {\n\t\t\t\tconst appTimeStamp = formatConstantTimeInDate(new Date(recentApp.dateStamp!));\n\t\t\t\tif (appTimeStamp < thresholdTimeStamp) {\n\t\t\t\t\tif (!groupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]) {\n\t\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP] = { dateStamp: Constants.OLDER_DATE_TIMESTAMP, apps: [] };\n\t\t\t\t\t}\n\t\t\t\t\tgroupedAppHistory[Constants.OLDER_DATE_TIMESTAMP]?.apps.push({ name: recentApp.title });\n\t\t\t\t} else {\n\t\t\t\t\tconst appUsage = recentApp.usageArray || [];\n\t\t\t\t\tappUsage.forEach((usage, index) => {\n\t\t\t\t\t\tif (usage > 0) {\n\t\t\t\t\t\t\tconst usageDate = getDaysBefore(this._recentDayTimeStamp, appUsage.length - 1 - index);\n\t\t\t\t\t\t\tif (!groupedAppHistory[usageDate]) {\n\t\t\t\t\t\t\t\tgroupedAppHistory[usageDate] = { dateStamp: usageDate, apps: [] };\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgroupedAppHistory[usageDate]?.apps.push({ name: recentApp.title });\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t\tconst appHistory = Object.values(groupedAppHistory);\n\t\t\tappHistory.sort((a, b) => b.dateStamp - a.dateStamp);\n\t\t\treturn appHistory;\n\t\t}\n\t\treturn [];\n\t}\n\n\t/**\n\t * Retrieves the filtered app history based on the selected date filter option.\n\t * @private\n\t * @param {DateFilterOption} selectedKey - The selected date filter option.\n\t * @returns {IAppHistory[]} An array of filtered app history.\n\t */\n\tprivate _getFilteredAppHistory(selectedKey: DateFilterOption): IAppHistory[] {\n\t\tconst appHistory = this._getAppHistory();\n\t\tlet filteredAppHistory: IAppHistory[] = [];\n\t\tswitch (selectedKey) {\n\t\t\tcase DateFilterOption.TODAY: {\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => app.dateStamp === formatConstantTimeInDate(new Date()));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.WEEK: {\n\t\t\t\tconst { startDate: currentWeekStartDate, endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, currentWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.TWO_WEEK: {\n\t\t\t\tconst { startDate: secondWeekStartDate } = getWeekRangeValues(1);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, secondWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase DateFilterOption.THREE_WEEK: {\n\t\t\t\tconst { startDate: thirdWeekStartDate } = getWeekRangeValues(2);\n\t\t\t\tconst { endDate: currentWeekEndDate } = getWeekRangeValues(0);\n\t\t\t\tfilteredAppHistory = appHistory.filter((app) => isDateWithinRange(app.dateStamp, thirdWeekStartDate, currentWeekEndDate));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tfilteredAppHistory = [...appHistory];\n\t\t\t\tbreak;\n\t\t}\n\t\treturn filteredAppHistory;\n\t}\n\n\t/**\n\t * Generates illustrated message for recent apps panel.\n\t * @private\n\t * @override\n\t * @returns {sap.m.IllustratedMessage} Illustrated error message.\n\t */\n\tprotected generateIllustratedMessage() {\n\t\tconst illustratedMessage = super.generateIllustratedMessage();\n\t\t//override the default description\n\t\tillustratedMessage.setDescription(this._i18nBundle.getText(\"noRecentAppsDescription\"));\n\t\treturn illustratedMessage;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* * (c) Copyright 2009-
|
|
3
|
+
* * (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import Log from "sap/base/Log";
|
|
@@ -27,7 +27,7 @@ import App from "./App";
|
|
|
27
27
|
import BaseAppPersPanel from "./BaseAppPersPanel";
|
|
28
28
|
import type { $BasePanelSettings } from "./BasePanel";
|
|
29
29
|
import Group from "./Group";
|
|
30
|
-
import { IActivity } from "./interface/AppsInterface";
|
|
30
|
+
import { IActivity, ICustomVisualization } from "./interface/AppsInterface";
|
|
31
31
|
import MenuItem from "./MenuItem";
|
|
32
32
|
import { addFESRId, addFESRNavigationSource, FESRNavigationSource } from "./utils/FESRUtil";
|
|
33
33
|
|
|
@@ -181,6 +181,37 @@ export default class RecentAppPanel extends BaseAppPersPanel {
|
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
183
|
|
|
184
|
+
/**
|
|
185
|
+
* Returns the target URL from visualiztion data for recently used apps. Special
|
|
186
|
+
* handling for WDA and GUI apps, by using viz.url if they have special intents,
|
|
187
|
+
* otherwise returns viz.targetURL.
|
|
188
|
+
*
|
|
189
|
+
* @param viz - The custom visualization object
|
|
190
|
+
* @returns The target URL for all recently used apps except the special GUI , WDA apps
|
|
191
|
+
*/
|
|
192
|
+
protected getTargetUrl(viz: ICustomVisualization): string {
|
|
193
|
+
return (this.checkIfStartWDAorStartGUI(viz) ? viz.url : viz.targetURL) || "";
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* For WDA app with intent #Shell-startWDA, it requires the additional parameter sap-ui2-wd-app-id
|
|
198
|
+
* and for GUI app with intent Shell-startGUI, it requires the additional parameter sap-ui2-tcode
|
|
199
|
+
* to launch the app correctly. This method checks if the url contains these intents.
|
|
200
|
+
* @param viz - The custom visualization object
|
|
201
|
+
* @returns boolean indicating whether the url contains WDA or GUI start intent
|
|
202
|
+
*/
|
|
203
|
+
private checkIfStartWDAorStartGUI(viz: ICustomVisualization): boolean {
|
|
204
|
+
if (!viz?.targetURL || typeof viz.targetURL !== "string") {
|
|
205
|
+
return false;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Convert to uppercase for case-insensitive comparison
|
|
209
|
+
var sUpperURL = viz.targetURL.toUpperCase();
|
|
210
|
+
|
|
211
|
+
// Check if URL contains #Shell-startGUI or #Shell-startWDA
|
|
212
|
+
return sUpperURL.indexOf("#SHELL-STARTGUI") !== -1 || sUpperURL.indexOf("#SHELL-STARTWDA") !== -1;
|
|
213
|
+
}
|
|
214
|
+
|
|
184
215
|
/**
|
|
185
216
|
* Fetch recent apps and set apps aggregation
|
|
186
217
|
* @private
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecommendedAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecommendedAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAoBlD,OAAO,IAAI,MAAM,YAAY,CAAC;IAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"RecommendedAppPanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/RecommendedAppPanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,kCAAkC,CAAC;IAoBlD,OAAO,IAAI,MAAM,YAAY,CAAC;IAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAK3D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;IAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;IAQjE,MAAM,SAAS;;;KAGd,CAAC;IAEF;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,gBAAgB;QAChE,OAAO,CAAC,aAAa,CAAa;QAClC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CASvC;QAEF;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,kBAAkB;QAKtD,IAAI;QAiBX;;;WAGG;QACH,OAAO,CAAC,8BAA8B;QAWtC;;;WAGG;QACH,OAAO,CAAC,yBAAyB;QAMjC;;;;;WAKG;QACH,OAAO,CAAC,6BAA6B;QAcrC;;;;WAIG;QACH,OAAO,CAAC,mCAAmC;QAwE3C;;;;;WAKG;QACH,OAAO,CAAC,cAAc;QAQtB;;;;WAIG;QACH,OAAO,CAAC,4BAA4B;QA2BpC;;;WAGG;QACH,OAAO,CAAC,qBAAqB;QAQ7B;;;;WAIG;QACH,OAAO,CAAC,0BAA0B;QASlC;;;;WAIG;QACH,OAAO,CAAC,sBAAsB;QAkB9B;;;WAGG;QACH,OAAO,CAAC,0BAA0B;QAMlC;;;;WAIG;gBACW,gBAAgB;QAsB9B;;;;;WAKG;QACH,OAAO,CAAC,aAAa;QAiBrB;;;WAGG;QACH,OAAO,CAAC,uBAAuB;QAS/B;;;;;WAKG;QACH,SAAS,CAAC,gBAAgB,IAWiB,IAAI;QAG/C;;;WAGG;QACU,QAAQ;QAyBrB;;;;WAIG;QACH,OAAO,CAAC,qBAAqB;QAmB7B;;;;WAIG;QACH,OAAO,CAAC,WAAW;QAqBnB;;;;WAIG;gBACW,qBAAqB;QA0BnC;;;;WAIG;gBACW,wBAAwB;QAKtC;;;WAGG;QACU,wBAAwB;QAMrC;;;;;WAKG;QACH,SAAS,CAAC,0BAA0B;KAkBpC;CAEA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
-
* * (c) Copyright 2009-
|
|
3
|
+
* * (c) Copyright 2009-2026 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettings", "sap/m/Button", "sap/m/Dialog", "sap/m/IllustratedMessageSize", "sap/m/IllustratedMessageType", "sap/m/library", "sap/m/Link", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ScrollContainer", "sap/m/Text", "sap/m/Title", "sap/m/VBox", "sap/ui/core/Element", "sap/ui/core/EventBus", "./BaseAppPersPanel", "./MenuItem", "./utils/Constants", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper"], function (Log, GridContainer, GridContainerSettings, Button, Dialog, IllustratedMessageSize, IllustratedMessageType, sap_m_library, Link, MessageStrip, MessageToast, ScrollContainer, Text, Title, VBox, Element, EventBus, __BaseAppPersPanel, __MenuItem, ___utils_Constants, ___utils_Device, ___utils_FESRUtil, __HttpHelper) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettings", "sap/m/Button", "sap/m/Dialog", "sap/m/IllustratedMessageSize", "sap/m/IllustratedMessageType", "sap/m/library", "sap/m/Link", "sap/m/MessageStrip", "sap/m/MessageToast", "sap/m/ScrollContainer", "sap/m/Text", "sap/m/Title", "sap/m/VBox", "sap/ui/core/Element", "sap/ui/core/EventBus", "./BaseAppPersPanel", "./MenuItem", "./utils/Constants", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper", "./utils/DataFormatUtils"], function (Log, GridContainer, GridContainerSettings, Button, Dialog, IllustratedMessageSize, IllustratedMessageType, sap_m_library, Link, MessageStrip, MessageToast, ScrollContainer, Text, Title, VBox, Element, EventBus, __BaseAppPersPanel, __MenuItem, ___utils_Constants, ___utils_Device, ___utils_FESRUtil, __HttpHelper, ___utils_DataFormatUtils) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -194,6 +194,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
|
|
|
194
194
|
const addFESRSemanticStepName = ___utils_FESRUtil["addFESRSemanticStepName"];
|
|
195
195
|
const FESRNavigationSource = ___utils_FESRUtil["FESRNavigationSource"];
|
|
196
196
|
const HttpHelper = _interopRequireDefault(__HttpHelper);
|
|
197
|
+
const recycleId = ___utils_DataFormatUtils["recycleId"];
|
|
197
198
|
const CONSTANTS = {
|
|
198
199
|
USER_PREFERENCE_SRVC_URL: `${REPO_BASE_URL}UserPreference`,
|
|
199
200
|
KEY: "recommendedApps"
|
|
@@ -264,7 +265,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
|
|
|
264
265
|
* @private
|
|
265
266
|
*/
|
|
266
267
|
_createAddToFavouritesMenuItem: function _createAddToFavouritesMenuItem() {
|
|
267
|
-
const addToFavouritesMenuItem = new MenuItem(`${this.getId()}-addtofavouritesmenuitem
|
|
268
|
+
const addToFavouritesMenuItem = new MenuItem(recycleId(`${this.getId()}-addtofavouritesmenuitem`), {
|
|
268
269
|
title: this._i18nBundle.getText("addToFavoritesRecommended"),
|
|
269
270
|
icon: "sap-icon://add-favorite",
|
|
270
271
|
press: this._openAddRecommendedDialog.bind(this),
|
|
@@ -602,7 +603,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
|
|
|
602
603
|
* @returns {sap.cux.home.MenuItem[]} - Array of list items.
|
|
603
604
|
*/
|
|
604
605
|
_getActions: function _getActions(index) {
|
|
605
|
-
const addToFavoritesItem = new MenuItem(`${this.getKey()}--addToFavoritesItem--${index}
|
|
606
|
+
const addToFavoritesItem = new MenuItem(recycleId(`${this.getKey()}--addToFavoritesItem--${index}`), {
|
|
606
607
|
title: this._i18nBundle.getText("addToFavorites"),
|
|
607
608
|
icon: "sap-icon://add-favorite",
|
|
608
609
|
press: event => {
|
|
@@ -610,7 +611,7 @@ sap.ui.define(["sap/base/Log", "sap/f/GridContainer", "sap/f/GridContainerSettin
|
|
|
610
611
|
}
|
|
611
612
|
});
|
|
612
613
|
addFESRId(addToFavoritesItem, "acceptRecommendation");
|
|
613
|
-
const notRelevantItem = new MenuItem(`${this.getKey()}--notRelevantItem--${index}
|
|
614
|
+
const notRelevantItem = new MenuItem(recycleId(`${this.getKey()}--notRelevantItem--${index}`), {
|
|
614
615
|
title: this._i18nBundle.getText("notRelevantRecommendation"),
|
|
615
616
|
icon: "sap-icon://decline",
|
|
616
617
|
press: event => {
|