@sapui5/sap.cux.home 1.135.0 → 1.136.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel-dbg.js +23 -5
- package/src/sap/cux/home/AdvancedSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +7 -0
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +24 -5
- package/src/sap/cux/home/AppsAdditionPanel-dbg.js +919 -0
- package/src/sap/cux/home/AppsAdditionPanel-dbg.js.map +1 -0
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +293 -0
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -0
- package/src/sap/cux/home/AppsAdditionPanel.js +6 -0
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -0
- package/src/sap/cux/home/AppsAdditionPanel.ts +757 -0
- package/src/sap/cux/home/AppsContainer-dbg.js +42 -28
- package/src/sap/cux/home/AppsContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.d.ts +17 -1
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +1 -1
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +27 -6
- package/src/sap/cux/home/AppsContainerGenericPlaceholder-dbg.js +261 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder-dbg.js.map +1 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.js +6 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.js.map +1 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.ts +251 -0
- package/src/sap/cux/home/BaseAppPanel-dbg.js +4 -5
- package/src/sap/cux/home/BaseAppPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +1 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +3 -5
- package/src/sap/cux/home/BaseAppPersPanel-dbg.js +2 -1
- package/src/sap/cux/home/BaseAppPersPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.d.ts.map +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 +2 -1
- package/src/sap/cux/home/BaseContainer-dbg.js +24 -3
- package/src/sap/cux/home/BaseContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.d.ts +10 -0
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +1 -1
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +24 -2
- package/src/sap/cux/home/BaseContainerRenderer-dbg.js +18 -1
- package/src/sap/cux/home/BaseContainerRenderer-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.d.ts +4 -4
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +25 -4
- package/src/sap/cux/home/BaseLayout-dbg.js +22 -2
- package/src/sap/cux/home/BaseLayout-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseLayout.d.ts +6 -0
- package/src/sap/cux/home/BaseLayout.d.ts.map +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 +23 -2
- package/src/sap/cux/home/BaseNewsItem-dbg.js +3 -3
- package/src/sap/cux/home/BaseNewsItem-dbg.js.map +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 +3 -3
- package/src/sap/cux/home/BaseNewsPanel-dbg.js +4 -5
- package/src/sap/cux/home/BaseNewsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.d.ts.map +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 +5 -4
- package/src/sap/cux/home/BasePanel-dbg.js +1 -1
- package/src/sap/cux/home/BasePanel-dbg.js.map +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-dbg.js +11 -0
- package/src/sap/cux/home/BaseSettingsDialog-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.d.ts.map +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 +12 -0
- package/src/sap/cux/home/BaseSettingsPanel-dbg.js +67 -2
- package/src/sap/cux/home/BaseSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +42 -0
- package/src/sap/cux/home/BaseSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.gen.d.ts +75 -0
- 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 +70 -2
- package/src/sap/cux/home/CardsPanel-dbg.js +548 -168
- package/src/sap/cux/home/CardsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.d.ts +121 -15
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.gen.d.ts +78 -0
- package/src/sap/cux/home/CardsPanel.js +1 -1
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +450 -97
- package/src/sap/cux/home/ContentAdditionDialog-dbg.js +353 -0
- package/src/sap/cux/home/ContentAdditionDialog-dbg.js.map +1 -0
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +82 -0
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -0
- package/src/sap/cux/home/ContentAdditionDialog.js +6 -0
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -0
- package/src/sap/cux/home/ContentAdditionDialog.ts +214 -0
- package/src/sap/cux/home/ErrorPanel-dbg.js +3 -3
- package/src/sap/cux/home/ErrorPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ErrorPanel.js +1 -1
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +4 -2
- package/src/sap/cux/home/FavAppPanel-dbg.js +352 -333
- package/src/sap/cux/home/FavAppPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +1 -1
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +63 -54
- package/src/sap/cux/home/InsightsAdditionPanel-dbg.js +97 -0
- package/src/sap/cux/home/InsightsAdditionPanel-dbg.js.map +1 -0
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts +57 -0
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -0
- package/src/sap/cux/home/InsightsAdditionPanel.js +6 -0
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -0
- package/src/sap/cux/home/InsightsAdditionPanel.ts +94 -0
- package/src/sap/cux/home/InsightsContainer-dbg.js +22 -2
- package/src/sap/cux/home/InsightsContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/InsightsContainer.d.ts +14 -0
- package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsContainer.js +1 -1
- package/src/sap/cux/home/InsightsContainer.js.map +1 -1
- package/src/sap/cux/home/InsightsContainer.ts +22 -1
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder-dbg.js +401 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder-dbg.js.map +1 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.js +6 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.js.map +1 -0
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.ts +391 -0
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel-dbg.js +10 -9
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +9 -8
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel-dbg.js +2 -2
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +2 -2
- package/src/sap/cux/home/KeyUserPagesSettingsPanel-dbg.js +6 -6
- package/src/sap/cux/home/KeyUserPagesSettingsPanel-dbg.js.map +1 -1
- 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 +6 -6
- package/src/sap/cux/home/Layout-dbg.js +58 -33
- package/src/sap/cux/home/Layout-dbg.js.map +1 -1
- package/src/sap/cux/home/Layout.d.ts +13 -0
- package/src/sap/cux/home/Layout.d.ts.map +1 -1
- package/src/sap/cux/home/Layout.js +1 -1
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +48 -20
- package/src/sap/cux/home/LayoutSettingsPanel-dbg.js +1 -10
- package/src/sap/cux/home/LayoutSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +2 -10
- package/src/sap/cux/home/NewsAndPagesContainer-dbg.js +35 -17
- package/src/sap/cux/home/NewsAndPagesContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts +7 -0
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.ts +40 -16
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder-dbg.js +164 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder-dbg.js.map +1 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.js +6 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.js.map +1 -0
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.ts +154 -0
- package/src/sap/cux/home/NewsGroup-dbg.js +112 -79
- package/src/sap/cux/home/NewsGroup-dbg.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.d.ts +1 -0
- package/src/sap/cux/home/NewsGroup.d.ts.map +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 +136 -100
- package/src/sap/cux/home/NewsPanel-dbg.js +541 -173
- package/src/sap/cux/home/NewsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts +156 -16
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +1 -1
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +452 -82
- package/src/sap/cux/home/NewsSettingsPanel-dbg.js +61 -20
- package/src/sap/cux/home/NewsSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.d.ts +14 -0
- package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +75 -21
- package/src/sap/cux/home/NoDataContainer-dbg.js +3 -3
- package/src/sap/cux/home/NoDataContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/NoDataContainer.d.ts +1 -0
- package/src/sap/cux/home/NoDataContainer.d.ts.map +1 -1
- 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 +4 -2
- package/src/sap/cux/home/PagePanel-dbg.js +86 -75
- package/src/sap/cux/home/PagePanel-dbg.js.map +1 -1
- package/src/sap/cux/home/PagePanel.d.ts +25 -3
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +1 -1
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +91 -76
- package/src/sap/cux/home/PageSettingsPanel-dbg.js +16 -15
- package/src/sap/cux/home/PageSettingsPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
- 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 +15 -14
- package/src/sap/cux/home/RecentAppPanel-dbg.js +2 -2
- package/src/sap/cux/home/RecentAppPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +1 -1
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +2 -2
- package/src/sap/cux/home/RecommendedAppPanel-dbg.js +4 -3
- package/src/sap/cux/home/RecommendedAppPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +4 -2
- package/src/sap/cux/home/SettingsDialog-dbg.js +4 -3
- package/src/sap/cux/home/SettingsDialog-dbg.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +1 -1
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +4 -2
- package/src/sap/cux/home/TaskPanel-dbg.js +16 -12
- package/src/sap/cux/home/TaskPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.d.ts +1 -2
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +1 -1
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +19 -12
- package/src/sap/cux/home/TilesPanel-dbg.js +9 -8
- package/src/sap/cux/home/TilesPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +1 -1
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +15 -8
- package/src/sap/cux/home/ToDoPanel-dbg.js +34 -25
- package/src/sap/cux/home/ToDoPanel-dbg.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.d.ts +0 -7
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +1 -1
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +27 -29
- package/src/sap/cux/home/ToDosContainer-dbg.js +27 -18
- package/src/sap/cux/home/ToDosContainer-dbg.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.d.ts +7 -0
- package/src/sap/cux/home/ToDosContainer.d.ts.map +1 -1
- 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 +10 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder-dbg.js +84 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder-dbg.js.map +1 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.js +6 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.js.map +1 -0
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.ts +74 -0
- package/src/sap/cux/home/i18n/messagebundle.properties +63 -1
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_da.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_de.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_el.properties +44 -2
- package/src/sap/cux/home/i18n/messagebundle_en.properties +43 -246
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +31 -1
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_es.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_et.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_id.properties +47 -5
- package/src/sap/cux/home/i18n/messagebundle_it.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_no.properties +44 -2
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +44 -2
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +44 -2
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_th.properties +43 -2
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +42 -1
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +43 -1
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +42 -1
- package/src/sap/cux/home/interface/AppsInterface-dbg.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.d.ts +5 -3
- package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +5 -3
- package/src/sap/cux/home/interface/CardsInterface-dbg.js +32 -0
- package/src/sap/cux/home/interface/CardsInterface-dbg.js.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.d.ts +320 -55
- package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js +5 -1
- package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.ts +359 -55
- package/src/sap/cux/home/library-preload.js +88 -45
- package/src/sap/cux/home/library-preload.js.map +1 -1
- package/src/sap/cux/home/manifest.json +4 -4
- package/src/sap/cux/home/themes/base/AppsContainer.less +12 -0
- package/src/sap/cux/home/themes/base/BaseLayout.less +1 -0
- package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +69 -0
- package/src/sap/cux/home/themes/base/NewsAndPagesContainer.less +37 -12
- package/src/sap/cux/home/themes/base/PlaceHolder.less +1374 -0
- package/src/sap/cux/home/themes/base/ToDosContainer.less +1 -1
- package/src/sap/cux/home/themes/base/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/base/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/base/library.css +2 -2
- package/src/sap/cux/home/themes/base/library.source.less +2 -0
- package/src/sap/cux/home/themes/sap_fiori_3/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_fiori_3/library.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_dark/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_dark/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_fiori_3_dark/library.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_hcb/AppsContainer.less +1 -0
- package/src/sap/cux/home/themes/sap_fiori_3_hcb/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_hcb/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_fiori_3_hcb/library.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_hcb/library.source.less +2 -0
- package/src/sap/cux/home/themes/sap_fiori_3_hcw/AppsContainer.less +1 -0
- package/src/sap/cux/home/themes/sap_fiori_3_hcw/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_hcw/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_fiori_3_hcw/library.css +2 -2
- package/src/sap/cux/home/themes/sap_fiori_3_hcw/library.source.less +2 -0
- package/src/sap/cux/home/themes/sap_horizon/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_horizon/library.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_dark/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_dark/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_horizon_dark/library.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_hcb/AppsContainer.less +1 -0
- package/src/sap/cux/home/themes/sap_horizon_hcb/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_hcb/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_horizon_hcb/library.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_hcb/library.source.less +2 -0
- package/src/sap/cux/home/themes/sap_horizon_hcw/AppsContainer.less +1 -0
- package/src/sap/cux/home/themes/sap_horizon_hcw/library-RTL.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_hcw/library-parameters.json +1 -1
- package/src/sap/cux/home/themes/sap_horizon_hcw/library.css +2 -2
- package/src/sap/cux/home/themes/sap_horizon_hcw/library.source.less +2 -0
- package/src/sap/cux/home/utils/AppManager-dbg.js +405 -440
- package/src/sap/cux/home/utils/AppManager-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.d.ts +88 -124
- package/src/sap/cux/home/utils/AppManager.d.ts.map +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 +351 -542
- package/src/sap/cux/home/utils/Constants-dbg.js +25 -1
- package/src/sap/cux/home/utils/Constants-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/Constants.d.ts +17 -0
- package/src/sap/cux/home/utils/Constants.d.ts.map +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 +20 -1
- package/src/sap/cux/home/utils/Device-dbg.js +49 -1
- package/src/sap/cux/home/utils/Device-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/Device.d.ts +13 -0
- package/src/sap/cux/home/utils/Device.d.ts.map +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 +58 -1
- package/src/sap/cux/home/utils/InsightsUtils-dbg.js +25 -0
- package/src/sap/cux/home/utils/InsightsUtils-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/InsightsUtils.d.ts +14 -0
- package/src/sap/cux/home/utils/InsightsUtils.d.ts.map +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 +25 -0
- package/src/sap/cux/home/utils/PerformanceUtils-dbg.js +5 -2
- package/src/sap/cux/home/utils/PerformanceUtils-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts +1 -0
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.ts +5 -1
- package/src/sap/cux/home/utils/RecommendedCardUtil-dbg.js +1599 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil-dbg.js.map +1 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil.d.ts +534 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil.d.ts.map +1 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil.js +6 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil.js.map +1 -0
- package/src/sap/cux/home/utils/RecommendedCardUtil.ts +1945 -0
- package/src/sap/cux/home/utils/SituationUtils-dbg.js +1 -1
- package/src/sap/cux/home/utils/SituationUtils-dbg.js.map +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/UshellPersonalizer-dbg.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +4 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.ts +2 -1
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +126 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* * (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log", "sap/base/i18n/
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/base/i18n/ResourceBundle", "sap/ui/VersionInfo", "sap/ui/base/Object", "sap/ui/model/odata/v2/ODataModel", "sap/ushell/Config", "sap/ushell/Container", "./AnalyticalCardSkeleton", "./Constants", "./DataFormatUtils", "./HttpHelper", "./RecommendedCardUtil"], function (Log, ResourceBundle, VersionInfo, BaseObject, ODataModelV2, Config, Container, ___AnalyticalCardSkeleton, ___Constants, ___DataFormatUtils, __HttpHelper, __RecommendedCardUtil) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -163,7 +163,7 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
163
163
|
return body(values[i]);
|
|
164
164
|
}, check);
|
|
165
165
|
}
|
|
166
|
-
const
|
|
166
|
+
const COLUMN_LENGTH = ___Constants["COLUMN_LENGTH"];
|
|
167
167
|
function _catch(body, recover) {
|
|
168
168
|
try {
|
|
169
169
|
var result = body();
|
|
@@ -186,8 +186,8 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
186
186
|
const RECOMMENDED_CARD_LIMIT = ___Constants["RECOMMENDED_CARD_LIMIT"];
|
|
187
187
|
const createBookMarkData = ___DataFormatUtils["createBookMarkData"];
|
|
188
188
|
const getLeanURL = ___DataFormatUtils["getLeanURL"];
|
|
189
|
-
const sortCollectionByImportance = ___DataFormatUtils["sortCollectionByImportance"];
|
|
190
189
|
const HttpHelper = _interopRequireDefault(__HttpHelper);
|
|
190
|
+
const RecommendedCardUtil = _interopRequireDefault(__RecommendedCardUtil);
|
|
191
191
|
const CONSTANTS = {
|
|
192
192
|
MUST_INCLUDE_RECOMMEDED_APPS: ["F0862", "F1823"] //My Inbox and Manage Timesheet apps
|
|
193
193
|
};
|
|
@@ -295,14 +295,18 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
295
295
|
*
|
|
296
296
|
* @alias sap.cux.home.util.AppManager
|
|
297
297
|
*/
|
|
298
|
+
|
|
298
299
|
class AppManager extends BaseObject {
|
|
299
300
|
aRequestQueue = [];
|
|
300
301
|
bInsightsSectionPresent = false;
|
|
301
302
|
vizDataModified = false;
|
|
302
303
|
_oVizCacheData = {};
|
|
303
304
|
_favPageVisualizations = [];
|
|
305
|
+
componentData = {};
|
|
306
|
+
fioriAppData = {};
|
|
304
307
|
constructor() {
|
|
305
308
|
super();
|
|
309
|
+
this.recommendedUtilInstance = RecommendedCardUtil.getInstance();
|
|
306
310
|
}
|
|
307
311
|
static getInstance() {
|
|
308
312
|
if (!AppManager.Instance) {
|
|
@@ -903,6 +907,17 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
903
907
|
return Promise.reject(e);
|
|
904
908
|
}
|
|
905
909
|
}
|
|
910
|
+
/**
|
|
911
|
+
* Checks if a specific URL parameter is enabled (set to "true").
|
|
912
|
+
*
|
|
913
|
+
* @param {string} param - The name of the URL parameter to check.
|
|
914
|
+
* @returns {boolean} `true` if the URL parameter exists and is set to "true" (case-insensitive), otherwise `false`.
|
|
915
|
+
*/
|
|
916
|
+
isURLParamEnabled(param) {
|
|
917
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
918
|
+
return urlParams?.get(param)?.toLowerCase() === "true" || false;
|
|
919
|
+
}
|
|
920
|
+
|
|
906
921
|
/**
|
|
907
922
|
* Fetch Recommended Fiori IDs
|
|
908
923
|
*
|
|
@@ -947,38 +962,42 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
947
962
|
*/
|
|
948
963
|
_getCatalogApps() {
|
|
949
964
|
try {
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
965
|
+
let _exit3 = false;
|
|
966
|
+
const _this15 = this;
|
|
967
|
+
function _temp14(_result4) {
|
|
968
|
+
return _exit3 ? _result4 : Promise.resolve(_this15.catalogAppData);
|
|
969
|
+
}
|
|
970
|
+
const _temp13 = function () {
|
|
971
|
+
if (!_this15.catalogAppData) {
|
|
972
|
+
return _catch(function () {
|
|
973
|
+
return Promise.resolve(Container.getServiceAsync("SearchableContent")).then(function (SearchableContent) {
|
|
974
|
+
_this15.catalogAppData = SearchableContent.getApps({
|
|
975
|
+
includeAppsWithoutVisualizations: false
|
|
976
|
+
});
|
|
977
|
+
const _this15$catalogAppDat = _this15.catalogAppData;
|
|
978
|
+
_exit3 = true;
|
|
979
|
+
return _this15$catalogAppDat;
|
|
980
|
+
});
|
|
981
|
+
}, function (error) {
|
|
982
|
+
_this15.catalogAppData = undefined;
|
|
983
|
+
Log.error(error instanceof Error ? "Error while fetching catalog apps:" + error.message : String(error));
|
|
984
|
+
const _temp12 = [];
|
|
985
|
+
_exit3 = true;
|
|
986
|
+
return _temp12;
|
|
954
987
|
});
|
|
955
|
-
}
|
|
956
|
-
}
|
|
957
|
-
|
|
958
|
-
return [];
|
|
959
|
-
}));
|
|
988
|
+
}
|
|
989
|
+
}();
|
|
990
|
+
return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13));
|
|
960
991
|
} catch (e) {
|
|
961
992
|
return Promise.reject(e);
|
|
962
993
|
}
|
|
963
994
|
}
|
|
964
|
-
/**
|
|
965
|
-
* Check If Page is List Report
|
|
966
|
-
*
|
|
967
|
-
* @param {object} page - page object
|
|
968
|
-
* @returns {boolean} returns boolean
|
|
969
|
-
* @private
|
|
970
|
-
*/
|
|
971
|
-
_isListReport(page) {
|
|
972
|
-
return page?.component?.name === "sap.suite.ui.generic.template.ListReport";
|
|
973
|
-
}
|
|
974
|
-
|
|
975
995
|
/**
|
|
976
996
|
* Checks whether page settings contains addCardtoInsightsHidden
|
|
977
997
|
* @param {object} page - page object
|
|
978
998
|
* @returns {boolean} returns boolean
|
|
979
999
|
* @private
|
|
980
1000
|
*/
|
|
981
|
-
// checks whether page settings contains addCardtoInsightsHidden
|
|
982
1001
|
isAddCardToInsightsHidden(page) {
|
|
983
1002
|
return page?.component?.settings?.tableSettings?.addCardtoInsightsHidden;
|
|
984
1003
|
}
|
|
@@ -991,7 +1010,10 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
991
1010
|
*/
|
|
992
1011
|
|
|
993
1012
|
_checkValidManifests(manifest) {
|
|
994
|
-
const
|
|
1013
|
+
const dataSources = manifest["sap.app"]?.dataSources;
|
|
1014
|
+
|
|
1015
|
+
// Ensure dataSources has the correct structure for `mainService`
|
|
1016
|
+
const hasRequiredDataSource = manifest["sap.ui.generic.app"] && dataSources?.mainService;
|
|
995
1017
|
if (!hasRequiredDataSource) {
|
|
996
1018
|
return false;
|
|
997
1019
|
}
|
|
@@ -999,12 +1021,12 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
999
1021
|
// if its not list report component or if listreport page settings has
|
|
1000
1022
|
// isAddCardToInsightsHidden as true, then do not recommend the card
|
|
1001
1023
|
if (Array.isArray(pages)) {
|
|
1002
|
-
return this._isListReport(pages[0]) && !this.isAddCardToInsightsHidden(pages[0]);
|
|
1003
|
-
}
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1024
|
+
return this.recommendedUtilInstance._isListReport(pages[0]) && !this.isAddCardToInsightsHidden(pages[0]);
|
|
1025
|
+
}
|
|
1026
|
+
const pageValues = Object.values(pages);
|
|
1027
|
+
if (pageValues.length > 0) {
|
|
1028
|
+
return pageValues.some(page => {
|
|
1029
|
+
return typeof page === "object" && this.recommendedUtilInstance._isListReport(page) && !this.isAddCardToInsightsHidden(page);
|
|
1008
1030
|
});
|
|
1009
1031
|
}
|
|
1010
1032
|
return false;
|
|
@@ -1014,18 +1036,14 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1014
1036
|
* Get OData Model
|
|
1015
1037
|
*
|
|
1016
1038
|
* @param {object} manifest - manifest object
|
|
1017
|
-
* @returns {
|
|
1039
|
+
* @returns {ODataModelV2} returns OData Model
|
|
1018
1040
|
* @private
|
|
1019
1041
|
*/
|
|
1020
1042
|
_getOdataModel(oManifest) {
|
|
1021
1043
|
return new Promise(function (resolve) {
|
|
1022
1044
|
const datasource = oManifest?.["sap.app"]?.dataSources;
|
|
1023
1045
|
const mainService = datasource?.mainService;
|
|
1024
|
-
|
|
1025
|
-
if (datasource && datasource[sname]) {
|
|
1026
|
-
return datasource[sname]?.uri;
|
|
1027
|
-
}
|
|
1028
|
-
}).filter(urls => urls !== undefined);
|
|
1046
|
+
let annotationUrls = (mainService?.settings?.annotations || []).map(name => datasource?.[name]?.uri || "").filter(Boolean);
|
|
1029
1047
|
const oDataModel = new ODataModelV2(mainService?.uri, {
|
|
1030
1048
|
annotationURI: annotationUrls,
|
|
1031
1049
|
loadAnnotationsJoined: true
|
|
@@ -1053,7 +1071,7 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1053
1071
|
} else if (pages) {
|
|
1054
1072
|
for (const key in pages) {
|
|
1055
1073
|
const oApp = pages[key];
|
|
1056
|
-
if (
|
|
1074
|
+
if (this.recommendedUtilInstance._isListReport(oApp)) {
|
|
1057
1075
|
return oApp.entitySet;
|
|
1058
1076
|
}
|
|
1059
1077
|
}
|
|
@@ -1061,203 +1079,6 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1061
1079
|
return undefined;
|
|
1062
1080
|
}
|
|
1063
1081
|
|
|
1064
|
-
/**
|
|
1065
|
-
* function returns true if the passed entityset / properties have mandatory properties
|
|
1066
|
-
*
|
|
1067
|
-
* @param {EntitySet} oEntitySet - Entity set
|
|
1068
|
-
* @param {Array} aProperties - Additional Properties
|
|
1069
|
-
* @returns {boolean} returns boolean
|
|
1070
|
-
* @private
|
|
1071
|
-
*/
|
|
1072
|
-
_hasMandatoryProperties(oEntitySet, aProperties) {
|
|
1073
|
-
// if entityset has required properties in filter restrictions return true
|
|
1074
|
-
if (oEntitySet?.["Org.OData.Capabilities.V1.FilterRestrictions"]?.["RequiredProperties"]?.length) {
|
|
1075
|
-
return true;
|
|
1076
|
-
} else if (aProperties?.length) {
|
|
1077
|
-
// iterate through all properties and return true if any property is mandatory or sap:rquired-in-filter is true
|
|
1078
|
-
return aProperties.some(oProperty => {
|
|
1079
|
-
return Object.keys(oProperty).length && (oProperty["sap:parameter"] === "mandatory" || oProperty["sap:required-in-filter"] === "true");
|
|
1080
|
-
});
|
|
1081
|
-
}
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
/**
|
|
1085
|
-
* Get Parametersised Entity Set Params
|
|
1086
|
-
*
|
|
1087
|
-
* @param {ODataMetaModel} oMetaModel - Meta Model
|
|
1088
|
-
* @param {string} sEntitySet - Entity Set
|
|
1089
|
-
* @param {boolean} bIsParamEntitySet - Is Param Entity Set
|
|
1090
|
-
* @returns {object} returns entity set params
|
|
1091
|
-
* @private
|
|
1092
|
-
*/
|
|
1093
|
-
_getParametersisedEntitySetParams(oMetaModel, sEntitySet, bInfoParams) {
|
|
1094
|
-
if (!oMetaModel) {
|
|
1095
|
-
throw new Error("OData Model needs to be passed as an argument");
|
|
1096
|
-
}
|
|
1097
|
-
const oResult = {
|
|
1098
|
-
entitySetName: null,
|
|
1099
|
-
parameters: [],
|
|
1100
|
-
navPropertyName: null
|
|
1101
|
-
};
|
|
1102
|
-
const oEntitySet = oMetaModel.getODataEntitySet(sEntitySet);
|
|
1103
|
-
const oEntityType = oMetaModel.getODataEntityType(oEntitySet.entityType);
|
|
1104
|
-
const aNavigationProperties = oEntityType.navigationProperty;
|
|
1105
|
-
if (!aNavigationProperties) {
|
|
1106
|
-
return oResult;
|
|
1107
|
-
}
|
|
1108
|
-
// filter the parameter entityset for extracting it's key and it's entityset name
|
|
1109
|
-
aNavigationProperties.forEach(function (oNavProperty) {
|
|
1110
|
-
const oNavigationEntitySet = oMetaModel.getODataAssociationEnd(oEntityType, oNavProperty.name);
|
|
1111
|
-
const oNavigationEntityType = oNavigationEntitySet && oMetaModel.getODataEntityType(oNavigationEntitySet.type);
|
|
1112
|
-
if (oNavigationEntityType?.["sap:semantics"] !== "parameters" || !oNavigationEntityType.key) {
|
|
1113
|
-
return;
|
|
1114
|
-
}
|
|
1115
|
-
oResult.entitySetName = oMetaModel.getODataAssociationSetEnd(oEntityType, oNavProperty.name)?.entitySet;
|
|
1116
|
-
for (let value of oNavigationEntityType.key.propertyRef) {
|
|
1117
|
-
if (bInfoParams) {
|
|
1118
|
-
const navProp = oNavigationEntityType.property;
|
|
1119
|
-
for (let navProperty of navProp) {
|
|
1120
|
-
if (navProperty.name === value.name) {
|
|
1121
|
-
oResult.parameters.push(navProperty);
|
|
1122
|
-
oResult.entitySetName = oMetaModel.getODataAssociationSetEnd(oEntityType, oNavProperty.name)?.entitySet;
|
|
1123
|
-
}
|
|
1124
|
-
}
|
|
1125
|
-
} else {
|
|
1126
|
-
oResult.parameters.push(value.name);
|
|
1127
|
-
}
|
|
1128
|
-
}
|
|
1129
|
-
const aSubNavigationProperties = oNavigationEntityType.navigationProperty;
|
|
1130
|
-
// Parameter entityset must have association back to main entityset.
|
|
1131
|
-
const bBackAssociationPresent = aSubNavigationProperties?.some(function (oSubNavigationProperty) {
|
|
1132
|
-
const sSubNavigationEntityType = oMetaModel.getODataAssociationEnd(oNavigationEntityType, oSubNavigationProperty.name)?.type;
|
|
1133
|
-
//if entityset.entitytype is same as subnavigation entitytype then it's a back association
|
|
1134
|
-
oResult.navPropertyName = sSubNavigationEntityType === oEntitySet.entityType ? oSubNavigationProperty.name : null;
|
|
1135
|
-
return oResult.navPropertyName;
|
|
1136
|
-
});
|
|
1137
|
-
return bBackAssociationPresent && oResult.navPropertyName && oResult.entitySetName;
|
|
1138
|
-
});
|
|
1139
|
-
return oResult;
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
/**
|
|
1143
|
-
* Get Column Detail
|
|
1144
|
-
*
|
|
1145
|
-
* @param {object} oEntityType - entity type object
|
|
1146
|
-
* @param {object} oMetaModel - meta model object
|
|
1147
|
-
* @param {object} oColumn - column object
|
|
1148
|
-
* @returns {object} returns column detail
|
|
1149
|
-
* @private
|
|
1150
|
-
*/
|
|
1151
|
-
_getColumnDetail(oEntityType, oMetaModel, oLineItemContext) {
|
|
1152
|
-
let oProperty,
|
|
1153
|
-
oColumnObject = {};
|
|
1154
|
-
if (oLineItemContext.Value?.Path) {
|
|
1155
|
-
oProperty = oMetaModel.getODataProperty(oEntityType, oLineItemContext.Value.Path);
|
|
1156
|
-
}
|
|
1157
|
-
if (!oProperty || oProperty["com.sap.vocabularies.UI.v1.Hidden"]?.Bool || oLineItemContext["com.sap.vocabularies.UI.v1.Hidden"]?.Bool) {
|
|
1158
|
-
return oColumnObject;
|
|
1159
|
-
}
|
|
1160
|
-
// if there is field control path binding then ignore the column
|
|
1161
|
-
if (oProperty["com.sap.vocabularies.Common.v1.FieldControl"]?.Path) {
|
|
1162
|
-
return undefined;
|
|
1163
|
-
}
|
|
1164
|
-
let sColumnKeyDescription = oProperty["com.sap.vocabularies.Common.v1.Text"]?.Path || "";
|
|
1165
|
-
sColumnKeyDescription = "{" + sColumnKeyDescription + "}";
|
|
1166
|
-
let sColumnValue = "{" + oProperty.name + "}";
|
|
1167
|
-
let sNavigation = ""; //need to improve
|
|
1168
|
-
const aSemKeyAnnotation = oEntityType["com.sap.vocabularies.Common.v1.SemanticKey"];
|
|
1169
|
-
const bIsPropertySemanticKey = !!aSemKeyAnnotation && aSemKeyAnnotation.some(function (oAnnotation) {
|
|
1170
|
-
return oAnnotation.PropertyPath === oProperty.name;
|
|
1171
|
-
});
|
|
1172
|
-
if (oProperty["Org.OData.Measures.V1.ISOCurrency"]?.Path) {
|
|
1173
|
-
sColumnValue = sColumnValue.concat(" " + "{" + sNavigation + oProperty["Org.OData.Measures.V1.ISOCurrency"].Path + "}");
|
|
1174
|
-
}
|
|
1175
|
-
if (oProperty["Org.OData.Measures.V1.Unit"]?.Path) {
|
|
1176
|
-
sColumnValue = sColumnValue.concat(" " + "{" + sNavigation + oProperty["Org.OData.Measures.V1.Unit"].Path + "}");
|
|
1177
|
-
}
|
|
1178
|
-
if (oProperty["com.sap.vocabularies.Common.v1.Text"]?.Path) {
|
|
1179
|
-
let sTextArragement = oProperty["com.sap.vocabularies.Common.v1.Text"]["com.sap.vocabularies.UI.v1.TextArrangement"];
|
|
1180
|
-
if (!sTextArragement) {
|
|
1181
|
-
sTextArragement = oEntityType["com.sap.vocabularies.UI.v1.TextArrangement"];
|
|
1182
|
-
}
|
|
1183
|
-
this._setColumnTextValue(sTextArragement, oColumnObject, sColumnKeyDescription, sColumnValue);
|
|
1184
|
-
} else {
|
|
1185
|
-
oColumnObject["value"] = sColumnValue;
|
|
1186
|
-
if (bIsPropertySemanticKey) {
|
|
1187
|
-
oColumnObject.identifier = bIsPropertySemanticKey;
|
|
1188
|
-
}
|
|
1189
|
-
}
|
|
1190
|
-
oColumnObject.path = oProperty["com.sap.vocabularies.Common.v1.Text"] ? oProperty["com.sap.vocabularies.Common.v1.Text"].Path : oProperty.name;
|
|
1191
|
-
oColumnObject.importance = oLineItemContext["com.sap.vocabularies.UI.v1.Importance"];
|
|
1192
|
-
oColumnObject.type = oProperty.type;
|
|
1193
|
-
return oColumnObject;
|
|
1194
|
-
}
|
|
1195
|
-
|
|
1196
|
-
/**
|
|
1197
|
-
* Sets display text format of column
|
|
1198
|
-
*
|
|
1199
|
-
* @private
|
|
1200
|
-
* @param {{EnumMember: string} | undefined} sTextArragement - sTextArragement object
|
|
1201
|
-
* @param {Record<string, unknown>} oColumnObject - Object containing column details
|
|
1202
|
-
* @param {string} sColumnKeyDescription - Description field to include in text value
|
|
1203
|
-
* @param {string} sColumnValue - The value to include in Text value
|
|
1204
|
-
*/
|
|
1205
|
-
_setColumnTextValue(sTextArragement, oColumnObject, sColumnKeyDescription, sColumnValue) {
|
|
1206
|
-
const sTextArrangementType = sTextArragement?.EnumMember.split("/")[1];
|
|
1207
|
-
if (sTextArrangementType === "TextOnly") {
|
|
1208
|
-
oColumnObject["value"] = "{= $" + sColumnKeyDescription + " === '' ? '' : $" + sColumnKeyDescription + "}";
|
|
1209
|
-
} else if (sTextArrangementType === "TextLast") {
|
|
1210
|
-
oColumnObject["value"] = "{= $" + sColumnValue + " === '' ? '' : $" + sColumnValue + "}" + "{= $" + sColumnKeyDescription + " === '' ? '' : ' (' + ($" + sColumnKeyDescription + ") + ')'}";
|
|
1211
|
-
} else if (sTextArrangementType === "TextSeparate") {
|
|
1212
|
-
oColumnObject["value"] = "{= $" + sColumnValue + " === '' ? '' : $" + sColumnValue + "}";
|
|
1213
|
-
} else {
|
|
1214
|
-
// Default case
|
|
1215
|
-
oColumnObject["value"] = "{= $" + sColumnKeyDescription + " === '' ? '' : $" + sColumnKeyDescription + "}" + "{= $" + sColumnValue + " === '' ? '' : ' (' + ($" + sColumnValue + ") + ')'}";
|
|
1216
|
-
}
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
/**
|
|
1220
|
-
* Get Manifest Card Data
|
|
1221
|
-
*
|
|
1222
|
-
* @param {object} manifest - manifest object
|
|
1223
|
-
* @param {object} entityType - entity type object
|
|
1224
|
-
* @param {object} lineItem - line item object
|
|
1225
|
-
* @param {string} entitySet - entity set
|
|
1226
|
-
* @param {object} parentApp - parent app object
|
|
1227
|
-
* @param {object} metaModel - meta model object
|
|
1228
|
-
* @returns {object} returns card data
|
|
1229
|
-
* @private
|
|
1230
|
-
*/
|
|
1231
|
-
_getManifestCardData(manifest, oEntityType, lineItem, entitySet, oParentApp, oMetaModel) {
|
|
1232
|
-
const mainServiceUri = manifest?.["sap.app"]?.dataSources.mainService.uri;
|
|
1233
|
-
const serviceUrl = mainServiceUri?.[mainServiceUri.length - 1] === "/" ? mainServiceUri + entitySet : mainServiceUri + "/" + entitySet;
|
|
1234
|
-
|
|
1235
|
-
//get the column details for each of the lineitem columns
|
|
1236
|
-
const aColumns = lineItem?.map(oColumn => {
|
|
1237
|
-
return this._getColumnDetail(oEntityType, oMetaModel, oColumn);
|
|
1238
|
-
}).filter(function (oItem) {
|
|
1239
|
-
// if no column or if path of column is complex path then filter it out
|
|
1240
|
-
return oItem !== undefined && oItem.path.split("/").length <= 1;
|
|
1241
|
-
});
|
|
1242
|
-
//sort the column based on their importance and then splice the first 4 columns
|
|
1243
|
-
const aColumnSorted = sortCollectionByImportance(aColumns).map(column => {
|
|
1244
|
-
return {
|
|
1245
|
-
path: column.path,
|
|
1246
|
-
type: column.type,
|
|
1247
|
-
value: column.value
|
|
1248
|
-
};
|
|
1249
|
-
}).splice(0, 4);
|
|
1250
|
-
return {
|
|
1251
|
-
cardTitle: manifest?.["sap.app"]?.title,
|
|
1252
|
-
subTitle: oEntityType["com.sap.vocabularies.Common.v1.Label"] ? "Top 5 " + oEntityType["com.sap.vocabularies.Common.v1.Label"].String : "",
|
|
1253
|
-
url: serviceUrl + "?$top=5&skip=0",
|
|
1254
|
-
semanticObject: oParentApp.semanticObject,
|
|
1255
|
-
action: oParentApp.action,
|
|
1256
|
-
id: manifest?.["sap.app"]?.id,
|
|
1257
|
-
columns: aColumnSorted
|
|
1258
|
-
};
|
|
1259
|
-
}
|
|
1260
|
-
|
|
1261
1082
|
/**
|
|
1262
1083
|
* Load I18n
|
|
1263
1084
|
*
|
|
@@ -1268,27 +1089,27 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1268
1089
|
*/
|
|
1269
1090
|
loadI18n(manifest, manifestUrl) {
|
|
1270
1091
|
try {
|
|
1271
|
-
const
|
|
1272
|
-
function
|
|
1273
|
-
return
|
|
1092
|
+
const _this16 = this;
|
|
1093
|
+
function _temp16() {
|
|
1094
|
+
return _this16._RBManifestMap[absoluteUrl];
|
|
1274
1095
|
}
|
|
1275
1096
|
// construct abslute url for properties file relative to manifest url
|
|
1276
|
-
const i18nBundleUrl = manifest?.["sap.app"]?.["i18n"]["bundleUrl"];
|
|
1097
|
+
const i18nBundleUrl = manifest?.["sap.app"]?.["i18n"]?.["bundleUrl"];
|
|
1277
1098
|
const absoluteUrl = new URL(i18nBundleUrl, manifestUrl).href;
|
|
1278
|
-
|
|
1279
|
-
const
|
|
1280
|
-
if (!
|
|
1099
|
+
_this16._RBManifestMap = _this16._RBManifestMap || {};
|
|
1100
|
+
const _temp15 = function () {
|
|
1101
|
+
if (!_this16._RBManifestMap[absoluteUrl]) {
|
|
1281
1102
|
return Promise.resolve(ResourceBundle.create({
|
|
1282
1103
|
// specify url of the base .properties file
|
|
1283
1104
|
bundleUrl: absoluteUrl,
|
|
1284
1105
|
async: true,
|
|
1285
|
-
terminologies: manifest["sap.app"]?.["i18n"]["terminologies"]
|
|
1106
|
+
terminologies: manifest["sap.app"]?.["i18n"]?.["terminologies"]
|
|
1286
1107
|
})).then(function (oResourceBundle) {
|
|
1287
|
-
|
|
1108
|
+
_this16._RBManifestMap[absoluteUrl] = oResourceBundle;
|
|
1288
1109
|
});
|
|
1289
1110
|
}
|
|
1290
1111
|
}();
|
|
1291
|
-
return Promise.resolve(
|
|
1112
|
+
return Promise.resolve(_temp15 && _temp15.then ? _temp15.then(_temp16) : _temp16(_temp15));
|
|
1292
1113
|
} catch (e) {
|
|
1293
1114
|
return Promise.reject(e);
|
|
1294
1115
|
}
|
|
@@ -1311,24 +1132,6 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1311
1132
|
return sPath ? oRB.getText(sPath) : sValue;
|
|
1312
1133
|
}
|
|
1313
1134
|
|
|
1314
|
-
/**
|
|
1315
|
-
* Get Attribute Value
|
|
1316
|
-
*
|
|
1317
|
-
* @param {object} oColumn - column object
|
|
1318
|
-
* @returns {string} returns attribute value
|
|
1319
|
-
* @private
|
|
1320
|
-
*/
|
|
1321
|
-
_getAttributeValue(oAttribute) {
|
|
1322
|
-
let oAttributeValue = !oAttribute.value.startsWith("{") ? "{= extension.formatters.stringFormatter(${" + oAttribute.path + "}) }" : oAttribute.value;
|
|
1323
|
-
if (oAttribute.type === "Edm.Date" || oAttribute.type === "Edm.DateTime") {
|
|
1324
|
-
const oDateFormatOptions = JSON.stringify({
|
|
1325
|
-
pattern: Formatting.getDatePattern("short")
|
|
1326
|
-
});
|
|
1327
|
-
oAttributeValue = "{=${" + oAttribute.path + "}?format.dateTime(${" + oAttribute.path + "}, " + oDateFormatOptions + ") : ''}";
|
|
1328
|
-
}
|
|
1329
|
-
return oAttributeValue;
|
|
1330
|
-
}
|
|
1331
|
-
|
|
1332
1135
|
/**
|
|
1333
1136
|
* Retrieves a copy of the analytical card manifest.
|
|
1334
1137
|
*
|
|
@@ -1339,48 +1142,177 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1339
1142
|
_getAnalyticalCardManifest() {
|
|
1340
1143
|
return JSON.parse(JSON.stringify(AnalyticalCardSkeleton));
|
|
1341
1144
|
}
|
|
1145
|
+
|
|
1342
1146
|
/**
|
|
1343
|
-
*
|
|
1147
|
+
* Processes the app manifest and generates a recommended card manifest if the app meets the required conditions.
|
|
1344
1148
|
*
|
|
1345
|
-
* @param {
|
|
1346
|
-
* @
|
|
1149
|
+
* @param {ODataMetaModel} metaModel - The OData meta model containing metadata about entities and properties.
|
|
1150
|
+
* @param {IValidManifest} manifestObj - An object containing the app manifest and its URL.
|
|
1151
|
+
* @param {AppInfoData | undefined} parentApp - The parent app information, if available.
|
|
1152
|
+
* @param {IVersionInfo} versionInfo - The version and build timestamp of the app.
|
|
1153
|
+
* @returns {Promise<ICardManifest | undefined>} A promise that resolves to the generated card manifest if the app is eligible,
|
|
1154
|
+
* or `undefined` if the app does not meet the required conditions.
|
|
1347
1155
|
* @private
|
|
1348
1156
|
*/
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1157
|
+
getProcessedManifest(metaModel, manifestObj, parentApp, versionInfo) {
|
|
1158
|
+
try {
|
|
1159
|
+
const _this17 = this;
|
|
1160
|
+
return Promise.resolve(_catch(function () {
|
|
1161
|
+
function _temp19() {
|
|
1162
|
+
return _this17.recommendedUtilInstance._createCardManifest(cardInput, versionInfo, manifest, suppressRowNavigation);
|
|
1163
|
+
}
|
|
1164
|
+
const manifest = manifestObj.manifest;
|
|
1165
|
+
const mainEntitySetName = _this17._getEntitySet(manifest);
|
|
1166
|
+
if (!mainEntitySetName) {
|
|
1167
|
+
return undefined;
|
|
1168
|
+
}
|
|
1169
|
+
const mainEntitySet = metaModel.getODataEntitySet(mainEntitySetName);
|
|
1170
|
+
const lineItemDetails = _this17.recommendedUtilInstance.getLineItemDetails(metaModel, manifest, mainEntitySetName);
|
|
1171
|
+
if (!lineItemDetails?.lineItem) {
|
|
1172
|
+
return undefined;
|
|
1173
|
+
}
|
|
1174
|
+
const entitySetName = lineItemDetails.entitySet || mainEntitySetName;
|
|
1175
|
+
const entitySet = entitySetName === mainEntitySetName ? mainEntitySet : metaModel.getODataEntitySet(entitySetName);
|
|
1176
|
+
const entityType = metaModel.getODataEntityType(entitySet.entityType);
|
|
1177
|
+
const suppressRowNavigation = lineItemDetails?.lrSettings?.["bSupressCardRowNavigation"];
|
|
1178
|
+
|
|
1179
|
+
// Check for mandatory properties
|
|
1180
|
+
if (_this17.recommendedUtilInstance.hasMandatoryProperties(entitySet, entityType?.property)) {
|
|
1181
|
+
return undefined;
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
// Check for parameterized entity sets
|
|
1185
|
+
const parameterDetails = _this17.recommendedUtilInstance._getParametersisedEntitySetParams(metaModel, entitySetName, true);
|
|
1186
|
+
if (parameterDetails?.entitySetName && parameterDetails?.parameters?.length) {
|
|
1187
|
+
const paramEntitySet = metaModel.getODataEntitySet(parameterDetails.entitySetName);
|
|
1188
|
+
if (_this17.recommendedUtilInstance.hasMandatoryProperties(paramEntitySet, parameterDetails.parameters)) {
|
|
1189
|
+
return undefined;
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
const cardInput = _this17.recommendedUtilInstance._getManifestCardData(manifest, lineItemDetails, parentApp, metaModel);
|
|
1193
|
+
|
|
1194
|
+
// Ensure the card has at least 3 columns
|
|
1195
|
+
if (cardInput.columns.length < COLUMN_LENGTH) {
|
|
1196
|
+
return undefined;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
// Resolve card title
|
|
1200
|
+
const headerInfo = lineItemDetails?.headerInfo;
|
|
1201
|
+
const cardTitle = headerInfo.TypeNamePlural?.String || "";
|
|
1202
|
+
cardInput.cardTitle = cardTitle || cardInput.cardTitle;
|
|
1203
|
+
|
|
1204
|
+
// Resolve i18n title if necessary
|
|
1205
|
+
const _temp18 = function () {
|
|
1206
|
+
if (!cardTitle && manifest["sap.app"]?.i18n) {
|
|
1207
|
+
const i18nBundleUrl = manifest["sap.app"].i18n.bundleUrl;
|
|
1208
|
+
const appTitle = manifest["sap.app"].title;
|
|
1209
|
+
const _temp17 = function () {
|
|
1210
|
+
if (i18nBundleUrl && (appTitle.startsWith("i18n>") || appTitle.startsWith("{"))) {
|
|
1211
|
+
return Promise.resolve(_this17.loadI18n(manifest, manifestObj.url)).then(function (i18nResourceBundle) {
|
|
1212
|
+
cardInput.cardTitle = _this17.getI18nValueOrDefaultString(cardInput.cardTitle, i18nResourceBundle);
|
|
1213
|
+
});
|
|
1214
|
+
}
|
|
1215
|
+
}();
|
|
1216
|
+
if (_temp17 && _temp17.then) return _temp17.then(function () {});
|
|
1217
|
+
}
|
|
1218
|
+
}();
|
|
1219
|
+
return _temp18 && _temp18.then ? _temp18.then(_temp19) : _temp19(_temp18);
|
|
1220
|
+
}, function (oError) {
|
|
1221
|
+
Log.error("Error while processing manifest", oError instanceof Error ? oError.message : String(oError));
|
|
1222
|
+
return undefined;
|
|
1223
|
+
}));
|
|
1224
|
+
} catch (e) {
|
|
1225
|
+
return Promise.reject(e);
|
|
1357
1226
|
}
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1227
|
+
}
|
|
1228
|
+
/**
|
|
1229
|
+
* Fetches the OData meta models for a given list of valid manifests.
|
|
1230
|
+
* @param {IValidManifest[]} validManifests - An array of valid manifest objects
|
|
1231
|
+
* @returns {Promise<(ODataMetaModel | undefined)[]>} A promise that resolves to an array of OData meta models.
|
|
1232
|
+
* Each element corresponds to a manifest in the input array, and may be `undefined` if the meta model could not be fetched.
|
|
1233
|
+
* @private
|
|
1234
|
+
*/
|
|
1235
|
+
fetchMetaModels(validManifests) {
|
|
1236
|
+
try {
|
|
1237
|
+
const _this18 = this;
|
|
1238
|
+
const odataPromises = validManifests.map(function (manifestObj) {
|
|
1239
|
+
try {
|
|
1240
|
+
return Promise.resolve(_catch(function () {
|
|
1241
|
+
return Promise.resolve(_this18._getOdataModel(manifestObj.manifest)).then(function (_this18$_getOdataMode) {
|
|
1242
|
+
return _this18$_getOdataMode?.getMetaModel();
|
|
1243
|
+
});
|
|
1244
|
+
}, function (oError) {
|
|
1245
|
+
Log.error("Error while fetching metamodel", oError instanceof Error ? oError.message : String(oError));
|
|
1246
|
+
return undefined;
|
|
1247
|
+
}));
|
|
1248
|
+
} catch (e) {
|
|
1249
|
+
return Promise.reject(e);
|
|
1372
1250
|
}
|
|
1251
|
+
});
|
|
1252
|
+
return Promise.resolve(Promise.all(odataPromises));
|
|
1253
|
+
} catch (e) {
|
|
1254
|
+
return Promise.reject(e);
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
/**
|
|
1258
|
+
* Combines the valid manifests with their corresponding OData meta models.
|
|
1259
|
+
* @param {IValidManifest[]} validManifests - An array of valid manifest objects
|
|
1260
|
+
* @param {ODataMetaModel[]} aMetaModel - An array of OData meta models
|
|
1261
|
+
* @returns {ICombinedManifestDetails[]} An array of objects containing the manifest and the corresponding meta model.
|
|
1262
|
+
* @private
|
|
1263
|
+
*/
|
|
1264
|
+
combineManifestsAndMetaModels(validManifests, aMetaModel) {
|
|
1265
|
+
return validManifests.reduce((combined, manifestObj, index) => {
|
|
1266
|
+
const metaModel = aMetaModel[index];
|
|
1267
|
+
if (metaModel) {
|
|
1268
|
+
combined.push({
|
|
1269
|
+
manifest: manifestObj,
|
|
1270
|
+
metaModel
|
|
1271
|
+
});
|
|
1373
1272
|
}
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1273
|
+
return combined;
|
|
1274
|
+
}, []);
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
/**
|
|
1278
|
+
* Process the manifest and meta model to get the card manifest
|
|
1279
|
+
* @param {ICombinedManifestDetails[]} combinedDetails - An array of objects containing the manifest and the corresponding meta model.
|
|
1280
|
+
* @param {IAppInfoData[]} aCSTR - An array of app info data
|
|
1281
|
+
* @returns {Promise<(ICardManifest | undefined)[]>} A promise that resolves to an array of recommended card manifests.
|
|
1282
|
+
* @private
|
|
1283
|
+
*/
|
|
1284
|
+
processManifests(combinedDetails, aCSTR) {
|
|
1285
|
+
try {
|
|
1286
|
+
const _this19 = this;
|
|
1287
|
+
return Promise.all(combinedDetails.map(item => {
|
|
1288
|
+
const parentApp = aCSTR.find(oApp => oApp.resolutionResult?.ui5ComponentName === item.manifest.manifest?.["sap.app"]?.id);
|
|
1289
|
+
return _this19.getProcessedManifest(item.metaModel, item.manifest, parentApp, _this19.versionInfo);
|
|
1290
|
+
}));
|
|
1291
|
+
} catch (e) {
|
|
1292
|
+
return Promise.reject(e);
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
/**
|
|
1296
|
+
* Processes the app list to generate a list of Fiori IDs.
|
|
1297
|
+
*
|
|
1298
|
+
* If `aList` is not provided, it uses `aAppComponentIds` and `aComponent` to generate the list of Fiori IDs.
|
|
1299
|
+
* It matches the `semanticObject` and `action` of each component in `aAppComponentIds` with the entries in `aComponent`.
|
|
1300
|
+
* If a match is found, the corresponding `fioriId` is added to the list.
|
|
1301
|
+
*
|
|
1302
|
+
* @param {string[]} [aList] - An optional array of Fiori IDs to return directly.
|
|
1303
|
+
* @param {ICardDetails[]} [aAppComponentIds] - An array of app component details to process.
|
|
1304
|
+
* @param {IAppInfo} [aComponent] - A mapping of component IDs to their corresponding data entries.
|
|
1305
|
+
* @returns {string[]} - A list of Fiori IDs.
|
|
1306
|
+
*/
|
|
1307
|
+
processAppList(aList, aAppComponentIds, aComponent) {
|
|
1308
|
+
if (!aList && aAppComponentIds && aAppComponentIds.length) {
|
|
1309
|
+
return aAppComponentIds.reduce((list, oComponent) => {
|
|
1310
|
+
const oData = aComponent?.[oComponent.id] || [];
|
|
1311
|
+
const matchingData = oData.find(entry => entry.semanticObject === oComponent.target?.semanticObject && entry.action === oComponent.target?.action);
|
|
1312
|
+
return matchingData ? [...list, matchingData.fioriId] : list;
|
|
1313
|
+
}, []);
|
|
1314
|
+
}
|
|
1315
|
+
return aList || [];
|
|
1384
1316
|
}
|
|
1385
1317
|
|
|
1386
1318
|
/**
|
|
@@ -1390,119 +1322,94 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1390
1322
|
* @returns {Promise} resolves to array of card manifest
|
|
1391
1323
|
* @private
|
|
1392
1324
|
*/
|
|
1393
|
-
|
|
1325
|
+
_getCardManifest(aList, aAppComponentIds) {
|
|
1394
1326
|
try {
|
|
1395
|
-
const
|
|
1396
|
-
return Promise.resolve(
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
const
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
return
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
return url !== undefined;
|
|
1413
|
-
});
|
|
1414
|
-
const aManifestPromises = aAppUrls.map(function (url) {
|
|
1415
|
-
try {
|
|
1416
|
-
return Promise.resolve(fetch(String(url))).then(function (response) {
|
|
1417
|
-
return Promise.resolve(response.json()).then(function (_response$json) {
|
|
1418
|
-
const manifest = _response$json;
|
|
1419
|
-
return {
|
|
1420
|
-
url: response.url,
|
|
1421
|
-
manifest: manifest
|
|
1422
|
-
};
|
|
1327
|
+
const _this20 = this;
|
|
1328
|
+
return Promise.resolve(_catch(function () {
|
|
1329
|
+
return Promise.resolve(Promise.all([_this20._getCatalogApps(), _this20.getFioriAppData()])).then(function (_ref3) {
|
|
1330
|
+
let [aCatalog, aFioriData] = _ref3;
|
|
1331
|
+
return Promise.resolve(VersionInfo.load()).then(function (_VersionInfo$load) {
|
|
1332
|
+
_this20.versionInfo = _VersionInfo$load;
|
|
1333
|
+
const aCSTR = Object.values(aFioriData).flat();
|
|
1334
|
+
const aComponent = _this20.componentData;
|
|
1335
|
+
// in case of replacing old recommended cards fioriIds are not available hence make use of componnetname
|
|
1336
|
+
// and semanticobject and action to find fioriId, and populate aList to recreate recommended card again
|
|
1337
|
+
const processedList = _this20.processAppList(aList, aAppComponentIds, aComponent);
|
|
1338
|
+
return Promise.resolve(_this20.fetchManifests(processedList, aFioriData, aCatalog)).then(function (manifests) {
|
|
1339
|
+
const validManifests = manifests.filter(manifestObj => _this20._checkValidManifests(manifestObj.manifest));
|
|
1340
|
+
return Promise.resolve(_this20.fetchMetaModels(validManifests)).then(function (aMetaModel) {
|
|
1341
|
+
const combinedDetails = _this20.combineManifestsAndMetaModels(validManifests, aMetaModel);
|
|
1342
|
+
return Promise.resolve(_this20.processManifests(combinedDetails, aCSTR)).then(function (cards) {
|
|
1343
|
+
return cards.filter(card => card !== undefined);
|
|
1423
1344
|
});
|
|
1424
1345
|
});
|
|
1425
|
-
} catch (e) {
|
|
1426
|
-
return Promise.reject(e);
|
|
1427
|
-
}
|
|
1428
|
-
});
|
|
1429
|
-
return Promise.resolve(Promise.all(aManifestPromises)).then(function (aManifest) {
|
|
1430
|
-
const validManifests = aManifest.filter(manifestObj => {
|
|
1431
|
-
return _this16._checkValidManifests(manifestObj.manifest);
|
|
1432
|
-
});
|
|
1433
|
-
const odataPromises = validManifests.map(manifestObj => {
|
|
1434
|
-
return _this16._getOdataModel(manifestObj.manifest).then(model => {
|
|
1435
|
-
return model.getMetaModel();
|
|
1436
|
-
});
|
|
1437
1346
|
});
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1347
|
+
});
|
|
1348
|
+
});
|
|
1349
|
+
}, function (oError) {
|
|
1350
|
+
Log.error("Error while fetching card manifest", oError instanceof Error ? oError.message : String(oError));
|
|
1351
|
+
return [];
|
|
1352
|
+
}));
|
|
1353
|
+
} catch (e) {
|
|
1354
|
+
return Promise.reject(e);
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
/**
|
|
1358
|
+
* Fetch the app manifest for the given app ids
|
|
1359
|
+
* @param {string[]} appIdList - array of app ids
|
|
1360
|
+
* @param {AppInfo} fioriData - fiori data
|
|
1361
|
+
* @param {AppData[]} catalogData - catalog data
|
|
1362
|
+
* @returns {Promise} resolves to array of manifests
|
|
1363
|
+
* @private
|
|
1364
|
+
*/
|
|
1365
|
+
fetchManifests(appIdList, fioriData, catalogData) {
|
|
1366
|
+
try {
|
|
1367
|
+
return Promise.resolve(_catch(function () {
|
|
1368
|
+
const appPromises = appIdList.map(function (appId) {
|
|
1369
|
+
try {
|
|
1370
|
+
let _exit4 = false;
|
|
1371
|
+
const aApp = fioriData[appId] || [];
|
|
1372
|
+
const _temp20 = _forOf(aApp, function (oApp) {
|
|
1373
|
+
const oViz = catalogData.find(catalog => oApp.semanticObject === catalog.target?.semanticObject && oApp.action === catalog.target?.action);
|
|
1374
|
+
const manifestUrl = oApp?.resolutionResult?.applicationDependencies?.manifest;
|
|
1375
|
+
return function () {
|
|
1376
|
+
if (oViz && manifestUrl) {
|
|
1377
|
+
return _catch(function () {
|
|
1378
|
+
return Promise.resolve(fetch(manifestUrl)).then(function (response) {
|
|
1379
|
+
return Promise.resolve(response.json()).then(function (_response$json) {
|
|
1380
|
+
const manifest = _response$json;
|
|
1381
|
+
const _url$manifest = {
|
|
1382
|
+
url: response.url,
|
|
1383
|
+
manifest
|
|
1384
|
+
};
|
|
1385
|
+
_exit4 = true;
|
|
1386
|
+
return _url$manifest;
|
|
1387
|
+
});
|
|
1466
1388
|
});
|
|
1467
|
-
const cardInput = _this16._getManifestCardData(manifestObj.manifest, oEntityType, oLineItem, entitySet, oParentApp, oMetaModel);
|
|
1468
|
-
// if less than 3 columns are present in the card, then do not recommend the card
|
|
1469
|
-
if (cardInput.columns.length < 3) {
|
|
1470
|
-
return undefined;
|
|
1471
|
-
}
|
|
1472
|
-
const _temp14 = function () {
|
|
1473
|
-
if (typeof manifestObj?.manifest?.["sap.app"]?.i18n === "object") {
|
|
1474
|
-
const i18nBundleUrl = manifestObj.manifest["sap.app"].i18n.bundleUrl;
|
|
1475
|
-
//if manifest title is not resolved load the resource bundle of the parent app and get the text
|
|
1476
|
-
return function () {
|
|
1477
|
-
if (i18nBundleUrl && (manifestObj.manifest["sap.app"].title.startsWith("i18n>") || manifestObj.manifest["sap.app"].title.startsWith("{"))) {
|
|
1478
|
-
return Promise.resolve(_this16.loadI18n(manifestObj.manifest, manifestObj.url)).then(function (i18nResourceBundle) {
|
|
1479
|
-
cardInput.cardTitle = _this16.getI18nValueOrDefaultString(cardInput.cardTitle, i18nResourceBundle);
|
|
1480
|
-
const _this16$_getListCardM = _this16._getListCardManifest(cardInput);
|
|
1481
|
-
_exit3 = true;
|
|
1482
|
-
return _this16$_getListCardM;
|
|
1483
|
-
});
|
|
1484
|
-
}
|
|
1485
|
-
}();
|
|
1486
|
-
}
|
|
1487
|
-
}();
|
|
1488
|
-
return _temp14 && _temp14.then ? _temp14.then(_temp15) : _temp15(_temp14);
|
|
1489
1389
|
}, function (error) {
|
|
1490
|
-
Log.error(error);
|
|
1390
|
+
Log.error("Error while fetching manifest", error instanceof Error ? error.message : String(error));
|
|
1391
|
+
_exit4 = true;
|
|
1491
1392
|
return undefined;
|
|
1492
|
-
})
|
|
1493
|
-
} catch (e) {
|
|
1494
|
-
return Promise.reject(e);
|
|
1393
|
+
});
|
|
1495
1394
|
}
|
|
1496
|
-
});
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
return card !== undefined;
|
|
1500
|
-
});
|
|
1501
|
-
});
|
|
1395
|
+
}();
|
|
1396
|
+
}, function () {
|
|
1397
|
+
return _exit4;
|
|
1502
1398
|
});
|
|
1503
|
-
|
|
1399
|
+
return Promise.resolve(_temp20 && _temp20.then ? _temp20.then(function (_result6) {
|
|
1400
|
+
return _exit4 ? _result6 : undefined;
|
|
1401
|
+
}) : _exit4 ? _temp20 : undefined); // No valid manifest found in this appId's entries
|
|
1402
|
+
} catch (e) {
|
|
1403
|
+
return Promise.reject(e);
|
|
1404
|
+
}
|
|
1504
1405
|
});
|
|
1505
|
-
|
|
1406
|
+
return Promise.resolve(Promise.all(appPromises)).then(function (results) {
|
|
1407
|
+
return results.filter(manifest => manifest !== undefined);
|
|
1408
|
+
});
|
|
1409
|
+
}, function (oError) {
|
|
1410
|
+
Log.error("Error while processing manifests", oError instanceof Error ? oError.message : String(oError));
|
|
1411
|
+
return [];
|
|
1412
|
+
}));
|
|
1506
1413
|
} catch (e) {
|
|
1507
1414
|
return Promise.reject(e);
|
|
1508
1415
|
}
|
|
@@ -1530,19 +1437,19 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1530
1437
|
/**
|
|
1531
1438
|
* Fetch Recommended Cards
|
|
1532
1439
|
*
|
|
1533
|
-
* @returns {Promise} resolves to array of recommended cards
|
|
1440
|
+
* @returns {Promise<ICard[] | []> } resolves to array of recommended cards
|
|
1534
1441
|
* @private
|
|
1535
1442
|
*/
|
|
1536
1443
|
getRecommenedCards() {
|
|
1537
1444
|
try {
|
|
1538
|
-
const
|
|
1445
|
+
const _this21 = this;
|
|
1539
1446
|
return Promise.resolve(_catch(function () {
|
|
1540
|
-
return Promise.resolve(
|
|
1541
|
-
return Promise.resolve(
|
|
1542
|
-
const aRecManifests = aManifests
|
|
1543
|
-
const aRecommendedCards = aRecManifests
|
|
1447
|
+
return Promise.resolve(_this21._getRecommenedFioriIds()).then(function (aAppIds) {
|
|
1448
|
+
return Promise.resolve(_this21._getCardManifest(aAppIds)).then(function (aManifests) {
|
|
1449
|
+
const aRecManifests = aManifests?.slice(0, RECOMMENDED_CARD_LIMIT);
|
|
1450
|
+
const aRecommendedCards = aRecManifests?.map(manifest => {
|
|
1544
1451
|
let id;
|
|
1545
|
-
if (manifest) {
|
|
1452
|
+
if (manifest?.["sap.card"]) {
|
|
1546
1453
|
manifest["sap.card"].rec = true;
|
|
1547
1454
|
id = manifest["sap.app"]?.id;
|
|
1548
1455
|
}
|
|
@@ -1551,11 +1458,11 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1551
1458
|
descriptorContent: manifest
|
|
1552
1459
|
};
|
|
1553
1460
|
});
|
|
1554
|
-
return
|
|
1461
|
+
return _this21._removeDuplicateCards(aRecommendedCards);
|
|
1555
1462
|
});
|
|
1556
1463
|
});
|
|
1557
1464
|
}, function (error) {
|
|
1558
|
-
Log.error("Error while fetching recommended cards:
|
|
1465
|
+
Log.error("Error while fetching recommended cards:", error instanceof Error ? error.message : String(error));
|
|
1559
1466
|
return [];
|
|
1560
1467
|
}));
|
|
1561
1468
|
} catch (e) {
|
|
@@ -1578,18 +1485,18 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1578
1485
|
getRecommendedVisualizations() {
|
|
1579
1486
|
let forceRefresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
1580
1487
|
try {
|
|
1581
|
-
const
|
|
1582
|
-
function
|
|
1583
|
-
return
|
|
1488
|
+
const _this22 = this;
|
|
1489
|
+
function _temp23() {
|
|
1490
|
+
return _this22._recommendedVisualizations;
|
|
1584
1491
|
}
|
|
1585
|
-
const
|
|
1586
|
-
if (!
|
|
1587
|
-
return Promise.resolve(
|
|
1588
|
-
const
|
|
1492
|
+
const _temp22 = function () {
|
|
1493
|
+
if (!_this22._recommendedVisualizations || forceRefresh) {
|
|
1494
|
+
return Promise.resolve(_this22._getRecommenedFioriIds(forceRefresh)).then(function (recommendedFioriIds) {
|
|
1495
|
+
const _temp21 = function () {
|
|
1589
1496
|
if (recommendedFioriIds.length) {
|
|
1590
1497
|
let finalRecommendations = [];
|
|
1591
1498
|
let mustIncludeRecommendations = [];
|
|
1592
|
-
return Promise.resolve(Promise.all([
|
|
1499
|
+
return Promise.resolve(Promise.all([_this22._getVisualizationsByFioriIds(recommendedFioriIds), _this22._fetchMyHomeVizs(forceRefresh)])).then(function (_ref4) {
|
|
1593
1500
|
let [recommendedVisualizations, favoriteVisualizations] = _ref4;
|
|
1594
1501
|
//filter out recommendations that are already added
|
|
1595
1502
|
recommendedVisualizations = recommendedVisualizations.filter(recViz => _isVisualizationAlreadyAdded(recViz, favoriteVisualizations));
|
|
@@ -1601,17 +1508,17 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1601
1508
|
}
|
|
1602
1509
|
});
|
|
1603
1510
|
//return only 10 recommended apps along with 'MyInbox' and 'Manage My Timesheet' if user has access to these apps.
|
|
1604
|
-
|
|
1511
|
+
_this22._recommendedVisualizations = finalRecommendations.slice(0, 10 - mustIncludeRecommendations.length).concat(mustIncludeRecommendations);
|
|
1605
1512
|
});
|
|
1606
1513
|
} else {
|
|
1607
|
-
|
|
1514
|
+
_this22._recommendedVisualizations = [];
|
|
1608
1515
|
}
|
|
1609
1516
|
}();
|
|
1610
|
-
if (
|
|
1517
|
+
if (_temp21 && _temp21.then) return _temp21.then(function () {});
|
|
1611
1518
|
});
|
|
1612
1519
|
}
|
|
1613
1520
|
}();
|
|
1614
|
-
return Promise.resolve(
|
|
1521
|
+
return Promise.resolve(_temp22 && _temp22.then ? _temp22.then(_temp23) : _temp23(_temp22));
|
|
1615
1522
|
} catch (e) {
|
|
1616
1523
|
return Promise.reject(e);
|
|
1617
1524
|
}
|
|
@@ -1638,6 +1545,64 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1638
1545
|
return Promise.reject(e);
|
|
1639
1546
|
}
|
|
1640
1547
|
}
|
|
1548
|
+
/**
|
|
1549
|
+
* Retrieves Fiori app data and stores it in the `fioriAppData` and `componentData` properties.
|
|
1550
|
+
*
|
|
1551
|
+
* This method fetches inbound applications using the `_getInboundApps` method and processes them to extract
|
|
1552
|
+
* Fiori app IDs (`sap-fiori-id`) and their associated semantic data. It also maps UI5 component names to their
|
|
1553
|
+
* corresponding Fiori app IDs for later use.
|
|
1554
|
+
*
|
|
1555
|
+
* @returns {Promise<IAppInfo>} A promise that resolves to an object containing Fiori app data
|
|
1556
|
+
* @private
|
|
1557
|
+
*/
|
|
1558
|
+
getFioriAppData() {
|
|
1559
|
+
try {
|
|
1560
|
+
const _this23 = this;
|
|
1561
|
+
return Promise.resolve(_catch(function () {
|
|
1562
|
+
function _temp25() {
|
|
1563
|
+
return _this23.fioriAppData;
|
|
1564
|
+
}
|
|
1565
|
+
const _temp24 = function () {
|
|
1566
|
+
if (!Object.keys(_this23.componentData).length) {
|
|
1567
|
+
_this23.componentData = {};
|
|
1568
|
+
_this23.fioriAppData = {};
|
|
1569
|
+
return Promise.resolve(_this23._getInboundApps()).then(function (inbounds) {
|
|
1570
|
+
inbounds.forEach(oItem => {
|
|
1571
|
+
const fioriId = oItem?.signature?.parameters?.["sap-fiori-id"]?.defaultValue?.value;
|
|
1572
|
+
const componentId = oItem?.resolutionResult?.ui5ComponentName;
|
|
1573
|
+
if (fioriId) {
|
|
1574
|
+
const semanticData = {
|
|
1575
|
+
action: oItem.action,
|
|
1576
|
+
semanticObject: oItem.semanticObject,
|
|
1577
|
+
resolutionResult: oItem.resolutionResult
|
|
1578
|
+
};
|
|
1579
|
+
_this23.fioriAppData[fioriId] = _this23.fioriAppData[fioriId] || [];
|
|
1580
|
+
_this23.fioriAppData[fioriId].push(semanticData);
|
|
1581
|
+
|
|
1582
|
+
// store data along with fioriId in componentData, this can be used later to find the
|
|
1583
|
+
// fioriId for those apps when only ui5ComponentName is known
|
|
1584
|
+
if (componentId) {
|
|
1585
|
+
const combinedData = {
|
|
1586
|
+
...semanticData,
|
|
1587
|
+
fioriId
|
|
1588
|
+
};
|
|
1589
|
+
_this23.componentData[componentId] = _this23.componentData[componentId] || [];
|
|
1590
|
+
_this23.componentData[componentId].push(combinedData);
|
|
1591
|
+
}
|
|
1592
|
+
}
|
|
1593
|
+
});
|
|
1594
|
+
});
|
|
1595
|
+
}
|
|
1596
|
+
}();
|
|
1597
|
+
return _temp24 && _temp24.then ? _temp24.then(_temp25) : _temp25(_temp24);
|
|
1598
|
+
}, function (oError) {
|
|
1599
|
+
Log.error(oError instanceof Error ? oError.message : String(oError));
|
|
1600
|
+
return {};
|
|
1601
|
+
}));
|
|
1602
|
+
} catch (e) {
|
|
1603
|
+
return Promise.reject(e);
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1641
1606
|
/**
|
|
1642
1607
|
* Retrieves visualizations based on a list of Fiori IDs.
|
|
1643
1608
|
*
|
|
@@ -1653,10 +1618,10 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1653
1618
|
*/
|
|
1654
1619
|
_getVisualizationsByFioriIds(fioriIds) {
|
|
1655
1620
|
try {
|
|
1656
|
-
const
|
|
1621
|
+
const _this24 = this;
|
|
1657
1622
|
const visualizations = [];
|
|
1658
1623
|
const visitedVisualizations = new Map();
|
|
1659
|
-
return Promise.resolve(Promise.all([
|
|
1624
|
+
return Promise.resolve(Promise.all([_this24._getInboundApps(), _this24._getCatalogApps()])).then(function (_ref5) {
|
|
1660
1625
|
let [inbounds, catalogApps] = _ref5;
|
|
1661
1626
|
fioriIds.forEach(fioriId => {
|
|
1662
1627
|
// get all inbounds with the fiori id
|
|
@@ -1709,17 +1674,17 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1709
1674
|
*/
|
|
1710
1675
|
_getAllFavPageApps(pages, shouldReload) {
|
|
1711
1676
|
try {
|
|
1712
|
-
let
|
|
1713
|
-
const
|
|
1677
|
+
let _exit5 = false;
|
|
1678
|
+
const _this25 = this;
|
|
1714
1679
|
return Promise.resolve(_catch(function () {
|
|
1715
|
-
function
|
|
1716
|
-
return
|
|
1680
|
+
function _temp27(_result7) {
|
|
1681
|
+
return _exit5 ? _result7 : [];
|
|
1717
1682
|
}
|
|
1718
|
-
const
|
|
1683
|
+
const _temp26 = function () {
|
|
1719
1684
|
if (pages) {
|
|
1720
|
-
|
|
1685
|
+
_this25._favPageVisualizations = _this25._favPageVisualizations || [];
|
|
1721
1686
|
//Check to ensure that missing visualization data is loaded, if any
|
|
1722
|
-
const loadedPages =
|
|
1687
|
+
const loadedPages = _this25._favPageVisualizations.reduce((pageIDs, visualization) => {
|
|
1723
1688
|
if (visualization.pageId && !pageIDs.includes(visualization.pageId)) {
|
|
1724
1689
|
pageIDs.push(visualization.pageId);
|
|
1725
1690
|
}
|
|
@@ -1728,20 +1693,20 @@ sap.ui.define(["sap/base/Log", "sap/base/i18n/Formatting", "sap/base/i18n/Resour
|
|
|
1728
1693
|
const pageIds = pages.map(page => page.pageId);
|
|
1729
1694
|
const shouldLoadMissingApps = loadedPages.length === 0 || !loadedPages.every(pageId => pageIds.includes(pageId));
|
|
1730
1695
|
if (!shouldReload && !shouldLoadMissingApps) {
|
|
1731
|
-
const
|
|
1732
|
-
|
|
1733
|
-
return
|
|
1696
|
+
const _this25$_favPageVisua = _this25._favPageVisualizations;
|
|
1697
|
+
_exit5 = true;
|
|
1698
|
+
return _this25$_favPageVisua;
|
|
1734
1699
|
} else {
|
|
1735
|
-
return Promise.resolve(
|
|
1736
|
-
|
|
1737
|
-
const
|
|
1738
|
-
|
|
1739
|
-
return
|
|
1700
|
+
return Promise.resolve(_this25._loadAllPageVisualizations(pages)).then(function (_this25$_loadAllPageV) {
|
|
1701
|
+
_this25._favPageVisualizations = _this25$_loadAllPageV;
|
|
1702
|
+
const _this25$_favPageVisua2 = _this25._favPageVisualizations;
|
|
1703
|
+
_exit5 = true;
|
|
1704
|
+
return _this25$_favPageVisua2;
|
|
1740
1705
|
});
|
|
1741
1706
|
}
|
|
1742
1707
|
}
|
|
1743
1708
|
}();
|
|
1744
|
-
return
|
|
1709
|
+
return _temp26 && _temp26.then ? _temp26.then(_temp27) : _temp27(_temp26);
|
|
1745
1710
|
}, function (error) {
|
|
1746
1711
|
Log.error(error);
|
|
1747
1712
|
return [];
|