@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/m/GenericTile", "sap/m/SlideTile", "sap/ui/core/EventBus", "sap/ui/core/format/DateFormat", "sap/ui/model/xml/XMLModel", "sap/ushell/Container", "./BaseNewsPanel", "./MenuItem", "./NewsGroup", "./NewsItem", "./library", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper", "./utils/PersonalisationUtils", "./utils/UshellPersonalizer"], function (Log, GenericTile, SlideTile, EventBus, DateFormat, XMLModel, Container, __BaseNewsPanel, __MenuItem, __NewsGroup, __NewsItem, ___library, ___utils_Device, ___utils_FESRUtil, __HttpHelper, __PersonalisationUtils, __UshellPersonalizer) {
|
|
5
|
+
sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/core/EventBus", "sap/ui/core/format/DateFormat", "sap/ui/model/xml/XMLModel", "sap/ushell/Container", "./BaseNewsPanel", "./MenuItem", "./NewsGroup", "./NewsItem", "./library", "./utils/Constants", "./utils/DataFormatUtils", "./utils/Device", "./utils/FESRUtil", "./utils/HttpHelper", "./utils/PersonalisationUtils", "./utils/UshellPersonalizer"], function (Log, GenericTile, SlideTile, EventBus, DateFormat, XMLModel, Container, __BaseNewsPanel, __MenuItem, __NewsGroup, __NewsItem, ___library, ___utils_Constants, ___utils_DataFormatUtils, ___utils_Device, ___utils_FESRUtil, __HttpHelper, __PersonalisationUtils, __UshellPersonalizer) {
|
|
6
6
|
"use strict";
|
|
7
7
|
|
|
8
8
|
function _interopRequireDefault(obj) {
|
|
@@ -173,6 +173,8 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
173
173
|
const NewsGroup = _interopRequireDefault(__NewsGroup);
|
|
174
174
|
const NewsItem = _interopRequireDefault(__NewsItem);
|
|
175
175
|
const NewsType = ___library["NewsType"];
|
|
176
|
+
const DEFAULT_NEWS_URL = ___utils_Constants["DEFAULT_NEWS_URL"];
|
|
177
|
+
const recycleId = ___utils_DataFormatUtils["recycleId"];
|
|
176
178
|
const DeviceType = ___utils_Device["DeviceType"];
|
|
177
179
|
const addFESRId = ___utils_FESRUtil["addFESRId"];
|
|
178
180
|
const HttpHelper = _interopRequireDefault(__HttpHelper);
|
|
@@ -181,7 +183,6 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
181
183
|
const BASE_URL = "/sap/opu/odata4/ui2/insights_srv/srvd/ui2/",
|
|
182
184
|
NEWS_FEED_READ_API = BASE_URL + "insights_read_srv/0001/" + "NEWS_FEED",
|
|
183
185
|
NEWS_FEED_TRANSLATION_API = BASE_URL + "insights_read_srv/0001/" + "NewsFeedColumnTranslation",
|
|
184
|
-
NEWS_FEED_COUNT_URL = NEWS_FEED_READ_API + "/$count",
|
|
185
186
|
DEFAULT_FEED_COUNT = 7,
|
|
186
187
|
fnImagePlaceholder = function (sPath, N) {
|
|
187
188
|
return Array.from({
|
|
@@ -329,6 +330,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
329
330
|
*/
|
|
330
331
|
constructor: function _constructor(id, settings) {
|
|
331
332
|
BaseNewsPanel.prototype.constructor.call(this, id, settings);
|
|
333
|
+
this._defaultNewsPromise = null;
|
|
332
334
|
this.customNewsFeedCache = new Map();
|
|
333
335
|
},
|
|
334
336
|
/**
|
|
@@ -348,7 +350,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
348
350
|
mode: "ArticleMode",
|
|
349
351
|
frameType: "Stretch"
|
|
350
352
|
})]
|
|
351
|
-
}).addStyleClass("newsTileMaxWidth");
|
|
353
|
+
}).addStyleClass("newsTileMaxWidth sapUiSmallMarginTop");
|
|
352
354
|
addFESRId(this.oNewsTile, "newsSlidePress");
|
|
353
355
|
this.getNewsWrapper().addContent(this.oNewsTile);
|
|
354
356
|
this.getNewsWrapper().addStyleClass("newsWrapper");
|
|
@@ -361,6 +363,23 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
361
363
|
});
|
|
362
364
|
this.addAggregation("menuItems", this.oManageMenuItem);
|
|
363
365
|
addFESRId(this.oManageMenuItem, "manageNews");
|
|
366
|
+
let defaultNewsEnabled = this.isURLParamEnabled("default-News");
|
|
367
|
+
// if Default News url param is enabled, show default news only
|
|
368
|
+
if (defaultNewsEnabled) {
|
|
369
|
+
this.setUrl(DEFAULT_NEWS_URL);
|
|
370
|
+
this.setProperty("showCustom", false);
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
/**
|
|
374
|
+
*
|
|
375
|
+
* @param paramName name of parameter
|
|
376
|
+
* This method checks if the URL parameter is enabled.
|
|
377
|
+
* @returns {boolean} True if the parameter is enabled, false otherwise.
|
|
378
|
+
* @private
|
|
379
|
+
*/
|
|
380
|
+
isURLParamEnabled: function _isURLParamEnabled(paramName) {
|
|
381
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
382
|
+
return urlParams.get(paramName)?.toUpperCase() === "TRUE";
|
|
364
383
|
},
|
|
365
384
|
/**
|
|
366
385
|
* Retrieves news data asynchronously.
|
|
@@ -371,44 +390,82 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
371
390
|
getData: function _getData() {
|
|
372
391
|
try {
|
|
373
392
|
const _this = this;
|
|
374
|
-
function
|
|
375
|
-
|
|
376
|
-
|
|
393
|
+
function _temp7() {
|
|
394
|
+
function _temp5() {
|
|
395
|
+
_this.fireEvent("loaded");
|
|
396
|
+
_this.adjustLayout();
|
|
397
|
+
}
|
|
398
|
+
const _temp4 = function () {
|
|
399
|
+
if (sUrl && sUrl !== DEFAULT_NEWS_URL && !_this.getProperty("showCustom")) {
|
|
400
|
+
//rss feed scenario
|
|
401
|
+
return Promise.resolve(_this.initializeXmlModel(sUrl)).then(function (_this$initializeXmlMo) {
|
|
402
|
+
_this.oNewsModel = _this$initializeXmlMo;
|
|
403
|
+
_this.oNewsTile.setModel(_this.oNewsModel);
|
|
404
|
+
_this.oManageMenuItem.setVisible(false);
|
|
405
|
+
});
|
|
406
|
+
} else {
|
|
407
|
+
const _temp3 = function () {
|
|
408
|
+
if (sUrl == DEFAULT_NEWS_URL && !_this.getProperty("showCustom")) {
|
|
409
|
+
// default news scenario
|
|
410
|
+
_this.bNewsLoad = _this.bNewsLoad || false;
|
|
411
|
+
_this.oManageMenuItem.setVisible(true);
|
|
412
|
+
void _this.setCustomNewsFeed("");
|
|
413
|
+
} else {
|
|
414
|
+
const _temp2 = function () {
|
|
415
|
+
if (_this.getProperty("showCustom")) {
|
|
416
|
+
//custom news scenario
|
|
417
|
+
_this.bNewsLoad = _this.bNewsLoad || false;
|
|
418
|
+
_this.oManageMenuItem.setVisible(true);
|
|
419
|
+
const sCustomNewsFeedKey = _this.getCustomFeedKey();
|
|
420
|
+
const _temp = function () {
|
|
421
|
+
if (sCustomNewsFeedKey) {
|
|
422
|
+
return Promise.resolve(_this.setCustomNewsFeed(sCustomNewsFeedKey)).then(function () {});
|
|
423
|
+
} else {
|
|
424
|
+
_this.handleFeedError();
|
|
425
|
+
}
|
|
426
|
+
}();
|
|
427
|
+
if (_temp && _temp.then) return _temp.then(function () {});
|
|
428
|
+
} else {
|
|
429
|
+
_this.handleFeedError();
|
|
430
|
+
}
|
|
431
|
+
}();
|
|
432
|
+
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
433
|
+
}
|
|
434
|
+
}();
|
|
435
|
+
if (_temp3 && _temp3.then) return _temp3.then(function () {});
|
|
436
|
+
}
|
|
437
|
+
}();
|
|
438
|
+
return _temp4 && _temp4.then ? _temp4.then(_temp5) : _temp5(_temp4);
|
|
377
439
|
}
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
_this.oManageMenuItem.setVisible(false);
|
|
385
|
-
});
|
|
386
|
-
} else {
|
|
387
|
-
const _temp2 = function () {
|
|
388
|
-
if (_this.getProperty("showCustom")) {
|
|
389
|
-
_this.bNewsLoad = _this.bNewsLoad || false;
|
|
390
|
-
_this.oManageMenuItem.setVisible(true);
|
|
391
|
-
const sCustomNewsFeedKey = _this.getCustomFeedKey();
|
|
392
|
-
const _temp = function () {
|
|
393
|
-
if (sCustomNewsFeedKey) {
|
|
394
|
-
return Promise.resolve(_this.setCustomNewsFeed(sCustomNewsFeedKey)).then(function () {});
|
|
395
|
-
} else {
|
|
396
|
-
_this.handleFeedError();
|
|
397
|
-
}
|
|
398
|
-
}();
|
|
399
|
-
if (_temp && _temp.then) return _temp.then(function () {});
|
|
400
|
-
} else {
|
|
401
|
-
_this.handleFeedError();
|
|
402
|
-
}
|
|
403
|
-
}();
|
|
404
|
-
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
440
|
+
let sUrl = _this.getUrl();
|
|
441
|
+
let defaultNewsEnabled = _this.isURLParamEnabled("default-News");
|
|
442
|
+
_this.mandatoryNewsFeed = [];
|
|
443
|
+
const _temp6 = function () {
|
|
444
|
+
if (!_this.favNewsFeed) {
|
|
445
|
+
return Promise.resolve(_this.setFavNewsFeed(defaultNewsEnabled)).then(function () {});
|
|
405
446
|
}
|
|
406
447
|
}();
|
|
407
|
-
return Promise.resolve(
|
|
448
|
+
return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(_temp7) : _temp7(_temp6));
|
|
408
449
|
} catch (e) {
|
|
409
450
|
return Promise.reject(e);
|
|
410
451
|
}
|
|
411
452
|
},
|
|
453
|
+
/**
|
|
454
|
+
* Retrieves the current news group data based on the provided id.
|
|
455
|
+
*
|
|
456
|
+
* @param id - The group ID
|
|
457
|
+
* @returns The news group object that matches the extracted group ID, or `undefined`
|
|
458
|
+
* if no matching group is found.
|
|
459
|
+
* @private
|
|
460
|
+
*/
|
|
461
|
+
getCurrentNewsGroup: function _getCurrentNewsGroup(id) {
|
|
462
|
+
let aValues = this._defaultNews.value;
|
|
463
|
+
let aGroupId = id.split("-");
|
|
464
|
+
// find the groupid from the sId
|
|
465
|
+
let groupId = aGroupId?.[aGroupId.length - 1];
|
|
466
|
+
let currentGroup = aValues.find(oGroup => oGroup.group_id === groupId);
|
|
467
|
+
return currentGroup;
|
|
468
|
+
},
|
|
412
469
|
/**
|
|
413
470
|
* Returns the custom news feed key property of NewsPanel
|
|
414
471
|
* @returns {string} custom news feed key
|
|
@@ -492,7 +549,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
492
549
|
loadNewsFeed: function _loadNewsFeed(oDocument, noOfFeeds) {
|
|
493
550
|
try {
|
|
494
551
|
const _this3 = this;
|
|
495
|
-
function
|
|
552
|
+
function _temp9() {
|
|
496
553
|
if (!!oDocument?.querySelector("rss") && !!oDocument?.querySelector("item")) {
|
|
497
554
|
oBindingInfo = {
|
|
498
555
|
path: "/channel/item/",
|
|
@@ -503,7 +560,8 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
503
560
|
path: "/entry/",
|
|
504
561
|
length: noOfFeeds || DEFAULT_FEED_COUNT
|
|
505
562
|
};
|
|
506
|
-
} else if (!!oDocument?.querySelector("customFeed") && !!oDocument?.querySelector("item")) {
|
|
563
|
+
} else if ((!!oDocument?.querySelector("customFeed") || !!oDocument?.querySelector("defaultFeed")) && !!oDocument?.querySelector("item")) {
|
|
564
|
+
_this3.destroyAggregation("newsItems");
|
|
507
565
|
oBindingInfo = {
|
|
508
566
|
path: "/item/",
|
|
509
567
|
length: noOfFeeds || DEFAULT_FEED_COUNT
|
|
@@ -515,12 +573,12 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
515
573
|
_this3.bindNewsTile(_this3.oNewsTile, oBindingInfo);
|
|
516
574
|
}
|
|
517
575
|
let oBindingInfo;
|
|
518
|
-
const
|
|
519
|
-
if (!oDocument?.querySelector("customFeed")) {
|
|
576
|
+
const _temp8 = function () {
|
|
577
|
+
if (!oDocument?.querySelector("customFeed") && !oDocument?.querySelector("defaultFeed")) {
|
|
520
578
|
return Promise.resolve(_this3.extractAllImageUrls(oDocument, noOfFeeds || DEFAULT_FEED_COUNT)).then(function () {});
|
|
521
579
|
}
|
|
522
580
|
}();
|
|
523
|
-
return Promise.resolve(
|
|
581
|
+
return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp9) : _temp9(_temp8));
|
|
524
582
|
} catch (e) {
|
|
525
583
|
return Promise.reject(e);
|
|
526
584
|
}
|
|
@@ -530,7 +588,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
530
588
|
* @returns {void}
|
|
531
589
|
*/
|
|
532
590
|
handleFeedError: function _handleFeedError() {
|
|
533
|
-
if (this.getProperty("showCustom")) {
|
|
591
|
+
if (this.getProperty("showCustom") || this.getUrl() === DEFAULT_NEWS_URL) {
|
|
534
592
|
this.generateErrorMessage().setVisible(true);
|
|
535
593
|
this.oNewsTile.setVisible(false);
|
|
536
594
|
} else {
|
|
@@ -553,14 +611,19 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
553
611
|
return Promise.reject(e);
|
|
554
612
|
}
|
|
555
613
|
},
|
|
556
|
-
|
|
614
|
+
/**
|
|
615
|
+
* Adjust layout based on the device type
|
|
616
|
+
*
|
|
617
|
+
* @private
|
|
618
|
+
*/
|
|
619
|
+
adjustLayout: function _adjustLayout() {
|
|
557
620
|
if (this.getDeviceType() === DeviceType.Mobile) {
|
|
558
621
|
this.oNewsTile.setHeight("11rem");
|
|
559
622
|
this.generateErrorMessage().setWidth("100%");
|
|
623
|
+
this.oNewsTile.removeStyleClass("sapUiSmallMarginTop");
|
|
560
624
|
} else {
|
|
561
625
|
this.oNewsTile.setHeight("17rem");
|
|
562
626
|
(this.getNewsWrapper()?.getParent()).setWidth("100%");
|
|
563
|
-
this.oNewsTile.addStyleClass("sapUiSmallMarginTopBottom");
|
|
564
627
|
}
|
|
565
628
|
},
|
|
566
629
|
/**
|
|
@@ -570,33 +633,38 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
570
633
|
*/
|
|
571
634
|
bindNewsTile: function _bindNewsTile(oSlideTile, oBindingInfo) {
|
|
572
635
|
if (oBindingInfo) {
|
|
573
|
-
oSlideTile.
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
636
|
+
if (!oSlideTile.getBinding("tiles")) {
|
|
637
|
+
oSlideTile.bindAggregation("tiles", {
|
|
638
|
+
path: oBindingInfo.path,
|
|
639
|
+
length: oBindingInfo.length,
|
|
640
|
+
templateShareable: false,
|
|
641
|
+
factory: (sId, oContext) => {
|
|
642
|
+
const newsInfo = oContext.getObject();
|
|
643
|
+
let oTile;
|
|
644
|
+
if (newsInfo.getElementsByTagName("link").length > 0) {
|
|
645
|
+
oTile = new NewsItem(recycleId(`${sId}-news-item`), {
|
|
646
|
+
url: newsInfo.getElementsByTagName("link")[0].textContent,
|
|
647
|
+
title: newsInfo.getElementsByTagName("title")[0].textContent,
|
|
648
|
+
subTitle: newsInfo.getElementsByTagName("description")[0].textContent,
|
|
649
|
+
imageUrl: newsInfo.getElementsByTagName("imageUrl")[0].textContent,
|
|
650
|
+
footer: this.formatDate(newsInfo.getElementsByTagName("pubDate")[0].textContent)
|
|
651
|
+
});
|
|
652
|
+
} else {
|
|
653
|
+
let sGroupId = newsInfo.getElementsByTagName("id")?.[0]?.textContent ?? "";
|
|
654
|
+
let newsId = sGroupId ? sId + "-newsgroup-" + sGroupId : sId + "-newsgroup";
|
|
655
|
+
let subTitleNews = newsInfo.getElementsByTagName("subTitle")?.[0]?.textContent ?? "";
|
|
656
|
+
oTile = new NewsGroup(recycleId(newsId), {
|
|
657
|
+
title: newsInfo.getElementsByTagName("title")[0].textContent,
|
|
658
|
+
subTitle: subTitleNews || this._i18nBundle.getText("newsFeedDescription"),
|
|
659
|
+
imageUrl: newsInfo.getElementsByTagName("imageUrl")?.[0]?.textContent,
|
|
660
|
+
footer: newsInfo.getElementsByTagName("footer")?.[0]?.textContent
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
this.addAggregation("newsItems", oTile, true);
|
|
664
|
+
return oTile.getTile();
|
|
595
665
|
}
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
}
|
|
599
|
-
});
|
|
666
|
+
});
|
|
667
|
+
}
|
|
600
668
|
}
|
|
601
669
|
},
|
|
602
670
|
/**
|
|
@@ -608,7 +676,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
608
676
|
try {
|
|
609
677
|
const _this5 = this;
|
|
610
678
|
let i = 0;
|
|
611
|
-
const
|
|
679
|
+
const _temp10 = _for(function () {
|
|
612
680
|
return i < noOfFeeds;
|
|
613
681
|
}, function () {
|
|
614
682
|
return i++;
|
|
@@ -620,7 +688,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
620
688
|
oItemElement.appendChild(oImageUrl);
|
|
621
689
|
});
|
|
622
690
|
});
|
|
623
|
-
return Promise.resolve(
|
|
691
|
+
return Promise.resolve(_temp10 && _temp10.then ? _temp10.then(function () {}) : void 0);
|
|
624
692
|
} catch (e) {
|
|
625
693
|
return Promise.reject(e);
|
|
626
694
|
}
|
|
@@ -640,10 +708,11 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
640
708
|
},
|
|
641
709
|
/**
|
|
642
710
|
* Returns the favourite news feed for the custom news
|
|
643
|
-
* @returns {
|
|
711
|
+
* @returns {IFavNewsFeed}
|
|
712
|
+
* @private
|
|
644
713
|
*/
|
|
645
714
|
getFavNewsFeed: function _getFavNewsFeed() {
|
|
646
|
-
return this.
|
|
715
|
+
return this.favNewsFeed;
|
|
647
716
|
},
|
|
648
717
|
/**
|
|
649
718
|
* Extracts the image URL from the provided HREF link or link.
|
|
@@ -662,64 +731,232 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
662
731
|
return Array.isArray(aMatches) && aMatches[1] ? aMatches[1] : fnLoadPlaceholderImage();
|
|
663
732
|
}).catch(fnLoadPlaceholderImage);
|
|
664
733
|
},
|
|
734
|
+
/**
|
|
735
|
+
* Checks if the custom file format is CSV based on the custom file name.
|
|
736
|
+
*
|
|
737
|
+
* @param {string} fileName - The custom file name.
|
|
738
|
+
* @returns {boolean} True if the file format is CSV, otherwise false.
|
|
739
|
+
*/
|
|
740
|
+
isCSVFileFormat: function _isCSVFileFormat(fileName) {
|
|
741
|
+
return fileName.split(".").pop()?.toLowerCase() === "csv";
|
|
742
|
+
},
|
|
743
|
+
/**
|
|
744
|
+
* Sets the favorite news feed for the user by retrieving personalization data.
|
|
745
|
+
*
|
|
746
|
+
* This method asynchronously fetches the user's personalization data and updates
|
|
747
|
+
* the `favNewsFeed` property with the favorite news feed information.
|
|
748
|
+
*
|
|
749
|
+
* @returns {Promise<void>} A promise that resolves when the favorite news feed is set.
|
|
750
|
+
* @private
|
|
751
|
+
*/
|
|
752
|
+
setFavNewsFeed: function _setFavNewsFeed(defaultFeed) {
|
|
753
|
+
try {
|
|
754
|
+
const _this6 = this;
|
|
755
|
+
return Promise.resolve(_this6._getUserPersonalization()).then(function (personalizer) {
|
|
756
|
+
return Promise.resolve(personalizer?.read()).then(function (persData) {
|
|
757
|
+
_this6.favNewsFeed = defaultFeed ? persData?.defaultNewsFeed : persData?.favNewsFeed;
|
|
758
|
+
});
|
|
759
|
+
});
|
|
760
|
+
} catch (e) {
|
|
761
|
+
return Promise.reject(e);
|
|
762
|
+
}
|
|
763
|
+
},
|
|
665
764
|
/**
|
|
666
765
|
* This method retrieves the count and feeds of the custom news feed asynchronously.
|
|
667
766
|
* If the count is not zero, it loads the custom news feed data and returns the feeds.
|
|
668
767
|
* @param {string} sFeedId - The ID of the custom news feed to set.
|
|
669
768
|
* @returns {Promise} A promise that resolves to an array of news feeds.
|
|
769
|
+
* @private
|
|
670
770
|
*/
|
|
671
771
|
setCustomNewsFeed: function _setCustomNewsFeed(sFeedId) {
|
|
672
772
|
try {
|
|
673
|
-
const
|
|
773
|
+
const _this7 = this;
|
|
674
774
|
return Promise.resolve(_catch(function () {
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
return Promise.resolve(
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
775
|
+
_this7.oNewsTile.setVisible(true);
|
|
776
|
+
_this7.generateErrorMessage().setVisible(false);
|
|
777
|
+
return Promise.resolve(_this7.setFavNewsFeed(!sFeedId)).then(function () {
|
|
778
|
+
function _temp12() {
|
|
779
|
+
if (aFeeds.length === 0) {
|
|
780
|
+
throw new Error("Error: No news feed available");
|
|
781
|
+
}
|
|
782
|
+
//filer selected feeds from all news feed
|
|
783
|
+
if (_this7.favNewsFeed?.items?.length) {
|
|
784
|
+
aFeeds = aFeeds.filter(oNewsFeed => {
|
|
785
|
+
//return this.favNewsFeed?.items.includes(oNewsFeed.title) || this.mandatoryNewsFeed.includes(oNewsFeed.title);
|
|
786
|
+
return _this7.favNewsFeed?.items.includes(oNewsFeed.title);
|
|
787
|
+
});
|
|
788
|
+
} else if (_this7.favNewsFeed?.items?.length === 0) {
|
|
789
|
+
_this7.getParent()?.panelLoadedFn("News", {
|
|
790
|
+
loaded: true,
|
|
791
|
+
count: 0
|
|
792
|
+
});
|
|
793
|
+
throw new Error("Error: No fav news feed available");
|
|
794
|
+
}
|
|
795
|
+
return Promise.resolve(_this7.loadCustomNewsFeed(aFeeds, sFeedId ? "customFeed" : "defaultFeed")).then(function () {});
|
|
796
|
+
}
|
|
797
|
+
const customFileName = _this7.getProperty("customFileName");
|
|
798
|
+
const showAllPrepRequired = _this7.isCSVFileFormat(customFileName) ? false : _this7.favNewsFeed?.showAllPreparationRequired ?? true;
|
|
799
|
+
if (_this7.isCSVFileFormat(customFileName)) {
|
|
800
|
+
CUSTOM_NEWS_FEED.EXCLUDE_FIELDS.push("PreparationRequired");
|
|
801
|
+
}
|
|
802
|
+
let aFeeds;
|
|
803
|
+
const _temp11 = function () {
|
|
804
|
+
if (sFeedId) {
|
|
805
|
+
return Promise.resolve(_this7.getCustomNewsFeed(sFeedId, showAllPrepRequired)).then(function (_this7$getCustomNewsF) {
|
|
806
|
+
aFeeds = _this7$getCustomNewsF;
|
|
807
|
+
});
|
|
808
|
+
} else {
|
|
809
|
+
return Promise.resolve(_this7.getCustomNewsFeed("", true)).then(function (_this7$getCustomNewsF2) {
|
|
810
|
+
aFeeds = _this7$getCustomNewsF2;
|
|
811
|
+
});
|
|
812
|
+
}
|
|
813
|
+
}();
|
|
814
|
+
return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
|
|
701
815
|
});
|
|
702
816
|
}, function (err) {
|
|
703
817
|
Log.error(err);
|
|
704
|
-
|
|
818
|
+
_this7.handleFeedError();
|
|
705
819
|
}));
|
|
706
820
|
} catch (e) {
|
|
707
821
|
return Promise.reject(e);
|
|
708
822
|
}
|
|
709
823
|
},
|
|
710
824
|
/**
|
|
711
|
-
*
|
|
712
|
-
*
|
|
713
|
-
*
|
|
825
|
+
* Filters the provided list of news groups to include only those that are marked as mandatory.
|
|
826
|
+
*
|
|
827
|
+
* A news group is considered mandatory if:
|
|
828
|
+
* - Its `mandatory_text` property (at the top level) is set to "TRUE" (case-insensitive).
|
|
829
|
+
* - Any of its associated articles (in the `_group_to_article` array) has a `mandatory_text` property set to "TRUE" (case-insensitive).
|
|
830
|
+
*
|
|
831
|
+
* If any article within a group is marked as mandatory, the group's `mandatory_text` property
|
|
832
|
+
* is updated to "TRUE".
|
|
833
|
+
*
|
|
834
|
+
* @param newsGroups - An array of news groups to filter. Each group is expected to implement the `ICustomNewsFeed` interface.
|
|
835
|
+
* @returns An array of news groups that are marked as mandatory.
|
|
836
|
+
* @private
|
|
837
|
+
*/
|
|
838
|
+
filterMandatoryNews: function _filterMandatoryNews(newsGroups) {
|
|
839
|
+
return newsGroups.filter(group => {
|
|
840
|
+
// Check top-level mandatory_text
|
|
841
|
+
const isTopLevelMandatory = group.mandatory_text?.toUpperCase() === "TRUE";
|
|
842
|
+
|
|
843
|
+
// Check if any inner _group_to_article has mandatory_text true
|
|
844
|
+
const isAnyArticleMandatory = group._group_to_article?.some(function (article) {
|
|
845
|
+
//make mandatory_test true at group level if any article is mandatory
|
|
846
|
+
if (article.mandatory_text?.toUpperCase() === "TRUE") {
|
|
847
|
+
group.mandatory_text = "TRUE";
|
|
848
|
+
return true;
|
|
849
|
+
}
|
|
850
|
+
});
|
|
851
|
+
return isTopLevelMandatory || isAnyArticleMandatory;
|
|
852
|
+
});
|
|
853
|
+
},
|
|
854
|
+
/**
|
|
855
|
+
* Retrieves the default news feed details from the given OData response.
|
|
856
|
+
*
|
|
857
|
+
* @param newsResponse - The OData response containing the news feed data.
|
|
858
|
+
* @param showAllPreparationRequired - A boolean flag indicating whether to filter news items that require preparation.
|
|
859
|
+
* @returns An array of default news feed items.
|
|
860
|
+
* @private
|
|
861
|
+
*/
|
|
862
|
+
getDefaultNewsFeedDetails: function _getDefaultNewsFeedDetails(newsResponse) {
|
|
863
|
+
let aNews = JSON.parse(JSON.stringify(newsResponse.value || []));
|
|
864
|
+
const aDefaultNews = [];
|
|
865
|
+
const oDefaultFeedDict = {};
|
|
866
|
+
this.mandatoryNewsFeed = [];
|
|
867
|
+
if (aNews?.length > 0) {
|
|
868
|
+
this.mandatoryNewsFeed = this.filterMandatoryNews(aNews).map(oFeed => oFeed.title);
|
|
869
|
+
for (const oFeed of aNews) {
|
|
870
|
+
const title = oFeed.title;
|
|
871
|
+
let subTitle = "";
|
|
872
|
+
if (!oDefaultFeedDict[title]) {
|
|
873
|
+
subTitle = oFeed.subTitle || oFeed.description || "";
|
|
874
|
+
aDefaultNews.push({
|
|
875
|
+
title: title,
|
|
876
|
+
footer: oFeed.footer_text,
|
|
877
|
+
imageUrl: this.getDefaultFeedImage(oFeed),
|
|
878
|
+
id: oFeed.group_id,
|
|
879
|
+
subTitle: subTitle || ""
|
|
880
|
+
});
|
|
881
|
+
oDefaultFeedDict[title] = title;
|
|
882
|
+
}
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
return aDefaultNews;
|
|
886
|
+
},
|
|
887
|
+
/**
|
|
888
|
+
* Returns the mandatory news feed details
|
|
889
|
+
* If the mandatory news feed is not set, it returns an empty array.
|
|
890
|
+
*
|
|
891
|
+
* @returns {ICustomNewsFeed[]} The mandatory news feed details.
|
|
892
|
+
* @private
|
|
714
893
|
*/
|
|
715
|
-
|
|
894
|
+
getMandatoryDefaultNewsFeed: function _getMandatoryDefaultNewsFeed() {
|
|
895
|
+
return this.mandatoryNewsFeed || [];
|
|
896
|
+
},
|
|
897
|
+
/**
|
|
898
|
+
* Retrieves the default news response, either from cache or by fetching it.
|
|
899
|
+
* @returns {Promise<ODataResponse>} A promise that resolves to the default news data
|
|
900
|
+
* @private
|
|
901
|
+
*/
|
|
902
|
+
getDefaultNewsResponse: function _getDefaultNewsResponse() {
|
|
903
|
+
// Return cached data if available
|
|
904
|
+
if (this._defaultNews) {
|
|
905
|
+
return Promise.resolve(this._defaultNews);
|
|
906
|
+
}
|
|
907
|
+
if (!this._defaultNewsPromise) {
|
|
908
|
+
this._defaultNewsPromise = this.fetchDefaultNews();
|
|
909
|
+
}
|
|
910
|
+
return this._defaultNewsPromise;
|
|
911
|
+
},
|
|
912
|
+
/**
|
|
913
|
+
* Fetches the default news data from the server.
|
|
914
|
+
* @returns {Promise<ODataResponse>} A promise that resolves to the fetched news data
|
|
915
|
+
* @throws {Error} If the network request fails or returns a non-OK status
|
|
916
|
+
* @private
|
|
917
|
+
*/
|
|
918
|
+
fetchDefaultNews: function _fetchDefaultNews() {
|
|
716
919
|
try {
|
|
717
|
-
const
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
920
|
+
const _this8 = this;
|
|
921
|
+
return Promise.resolve(_catch(function () {
|
|
922
|
+
return Promise.resolve(fetch(DEFAULT_NEWS_URL)).then(function (response) {
|
|
923
|
+
if (!response.ok) {
|
|
924
|
+
throw new Error(`HTTP error! status: ${response.status}`);
|
|
925
|
+
}
|
|
926
|
+
return Promise.resolve(response.json()).then(function (_response$json) {
|
|
927
|
+
_this8._defaultNews = _response$json;
|
|
928
|
+
return _this8._defaultNews;
|
|
929
|
+
});
|
|
930
|
+
});
|
|
931
|
+
}, function (error) {
|
|
932
|
+
_this8._defaultNewsPromise = null;
|
|
933
|
+
Log.error(error);
|
|
934
|
+
throw error;
|
|
935
|
+
}));
|
|
936
|
+
} catch (e) {
|
|
937
|
+
return Promise.reject(e);
|
|
938
|
+
}
|
|
939
|
+
},
|
|
940
|
+
/**
|
|
941
|
+
* Retrieves a custom news feed based on the provided feed ID.
|
|
942
|
+
* If no feed ID is provided, it returns the default news feed.
|
|
943
|
+
*
|
|
944
|
+
* @param {string} sFeedId - The ID of the custom news feed to retrieve. If not provided, the default news feed is returned.
|
|
945
|
+
* @param {boolean} showAllPreparationRequired - A flag indicating whether to show all preparation required.
|
|
946
|
+
* @returns {Promise<ICustomNewsFeed[]>} A promise that resolves to an array of custom news feed items.
|
|
947
|
+
* @private
|
|
948
|
+
*/
|
|
949
|
+
getCustomNewsFeed: function _getCustomNewsFeed(sFeedId, showAllPreparationRequired) {
|
|
950
|
+
try {
|
|
951
|
+
const _this9 = this;
|
|
952
|
+
if (!sFeedId) {
|
|
953
|
+
return Promise.resolve(_this9.getDefaultNewsResponse()).then(function () {
|
|
954
|
+
let aDefaultgroups = _this9.getDefaultNewsFeedDetails(_this9._defaultNews);
|
|
955
|
+
return aDefaultgroups;
|
|
956
|
+
});
|
|
957
|
+
} else {
|
|
958
|
+
return Promise.resolve(_this9.getCustomFeedData(sFeedId, showAllPreparationRequired));
|
|
721
959
|
}
|
|
722
|
-
return Promise.resolve(_this7.customNewsFeedCache.get(sUrl));
|
|
723
960
|
} catch (e) {
|
|
724
961
|
return Promise.reject(e);
|
|
725
962
|
}
|
|
@@ -730,20 +967,21 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
730
967
|
* @param {string} sFeedId - The ID of the custom news feed.
|
|
731
968
|
* @param {boolean} showAllPreparationRequired - Indicates whether to show all preparation required.
|
|
732
969
|
* @returns {Promise} A Promise that resolves to an array of custom news feed items.
|
|
970
|
+
* @private
|
|
733
971
|
*/
|
|
734
|
-
|
|
972
|
+
getCustomFeedData: function _getCustomFeedData(sFeedId, showAllPreparationRequired) {
|
|
735
973
|
try {
|
|
736
|
-
const
|
|
974
|
+
const _this10 = this;
|
|
737
975
|
return Promise.resolve(_catch(function () {
|
|
738
|
-
const newsDetailUrl =
|
|
976
|
+
const newsDetailUrl = _this10.getNewsFeedDetailsUrl({
|
|
739
977
|
changeId: sFeedId,
|
|
740
978
|
showAllPreparationRequired
|
|
741
979
|
});
|
|
742
|
-
if (!
|
|
743
|
-
|
|
980
|
+
if (!_this10.customNewsFeedCache.has(newsDetailUrl)) {
|
|
981
|
+
_this10.customNewsFeedCache.set(newsDetailUrl, _this10.getAuthNewsFeed(newsDetailUrl));
|
|
744
982
|
}
|
|
745
|
-
return Promise.resolve(
|
|
746
|
-
const authorizedNewsFeeds =
|
|
983
|
+
return Promise.resolve(_this10.customNewsFeedCache.get(newsDetailUrl)).then(function (_this10$customNewsFee) {
|
|
984
|
+
const authorizedNewsFeeds = _this10$customNewsFee;
|
|
747
985
|
const oFeedDict = {};
|
|
748
986
|
const aFeeds = [];
|
|
749
987
|
if (authorizedNewsFeeds?.length > 0) {
|
|
@@ -753,13 +991,13 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
753
991
|
aFeeds.push({
|
|
754
992
|
title: title.value,
|
|
755
993
|
footer: oFeed[CUSTOM_NEWS_FEED.VALIDITY].value,
|
|
756
|
-
imageUrl:
|
|
994
|
+
imageUrl: _this10.getCustomFeedImage(title.value)
|
|
757
995
|
});
|
|
758
996
|
oFeedDict[title.value] = title.value;
|
|
759
997
|
}
|
|
760
998
|
});
|
|
761
999
|
}
|
|
762
|
-
return aFeeds;
|
|
1000
|
+
return aFeeds; // group details
|
|
763
1001
|
});
|
|
764
1002
|
}, function (err) {
|
|
765
1003
|
Log.error(err);
|
|
@@ -777,8 +1015,10 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
777
1015
|
*/
|
|
778
1016
|
getNewsFeedDetailsUrl: function _getNewsFeedDetailsUrl(oNews) {
|
|
779
1017
|
let sUrl = NEWS_FEED_READ_API + "?$filter=ChangeId eq " + "'" + oNews.changeId + "'";
|
|
780
|
-
|
|
781
|
-
|
|
1018
|
+
const customFileName = this.getProperty("customFileName");
|
|
1019
|
+
if (!this.isCSVFileFormat(customFileName) && oNews.showAllPreparationRequired) {
|
|
1020
|
+
sUrl = sUrl + " and PreparationRequired eq true";
|
|
1021
|
+
}
|
|
782
1022
|
return sUrl + "&$top=999";
|
|
783
1023
|
},
|
|
784
1024
|
/**
|
|
@@ -788,13 +1028,13 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
788
1028
|
* @param {string} sNewsUrl - The URL of the news feed.
|
|
789
1029
|
* @returns {Array} The filtered array of news feed items authorized for the user.
|
|
790
1030
|
*/
|
|
791
|
-
getAuthNewsFeed: function _getAuthNewsFeed(sNewsUrl) {
|
|
1031
|
+
getAuthNewsFeed: function _getAuthNewsFeed(sNewsUrl, newsTitle) {
|
|
792
1032
|
try {
|
|
793
|
-
const
|
|
1033
|
+
const _this11 = this;
|
|
794
1034
|
return Promise.resolve(_catch(function () {
|
|
795
|
-
return Promise.resolve(Promise.all([
|
|
796
|
-
let [aAvailableApps, aNewsFeed] =
|
|
797
|
-
return aAvailableApps.length === 0 ? aNewsFeed :
|
|
1035
|
+
return Promise.resolve(Promise.all([_this11.getAllAvailableApps(), _this11.getNewsFeedDetails(sNewsUrl, newsTitle)])).then(function (_ref) {
|
|
1036
|
+
let [aAvailableApps, aNewsFeed] = _ref;
|
|
1037
|
+
return aAvailableApps.length === 0 ? aNewsFeed : _this11.arrangeNewsFeeds(aNewsFeed, aAvailableApps);
|
|
798
1038
|
});
|
|
799
1039
|
}, function (err) {
|
|
800
1040
|
Log.error(err);
|
|
@@ -873,45 +1113,73 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
873
1113
|
* @param {string} sUrl - The URL of the news feed details.
|
|
874
1114
|
* @returns {Array} The array of news feed items with translated and formatted field labels.
|
|
875
1115
|
*/
|
|
876
|
-
getNewsFeedDetails: function _getNewsFeedDetails(sUrl) {
|
|
1116
|
+
getNewsFeedDetails: function _getNewsFeedDetails(sUrl, newsTitle) {
|
|
877
1117
|
try {
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
1118
|
+
let _exit = false;
|
|
1119
|
+
const _this12 = this;
|
|
1120
|
+
function _temp14(_result3) {
|
|
1121
|
+
if (_exit) return _result3;
|
|
1122
|
+
const fnFormattedLabel = sLabel => sLabel.replace(/([a-z0-9])([A-Z])/g, "$1 $2");
|
|
1123
|
+
return Promise.resolve(Promise.all([HttpHelper.GetJSON(sUrl), _this12.getTranslatedText(_this12.getCustomFeedKey())])).then(function (_ref2) {
|
|
1124
|
+
let [newsResponse, translationResponse] = _ref2;
|
|
1125
|
+
let aNews = JSON.parse(JSON.stringify(newsResponse.value || []));
|
|
1126
|
+
const aTranslation = JSON.parse(JSON.stringify(translationResponse.value || []));
|
|
1127
|
+
aNews = _this12.filterNewsOnTitle(aNews, newsTitle);
|
|
1128
|
+
return aNews.map(oNews => {
|
|
1129
|
+
const aFields = Object.keys(oNews);
|
|
1130
|
+
const aExpandFields = [];
|
|
1131
|
+
aFields.forEach(oField => {
|
|
1132
|
+
const oTranslatedField = aTranslation.find(oTranslation => oTranslation?.ColumnName?.toUpperCase() === oField.toUpperCase());
|
|
1133
|
+
const oTranslatedFieldName = oTranslatedField?.TranslatedName || fnFormattedLabel(oField);
|
|
1134
|
+
oNews[oField] = {
|
|
1135
|
+
label: oTranslatedFieldName,
|
|
1136
|
+
value: oNews[oField]
|
|
1137
|
+
};
|
|
1138
|
+
if (!CUSTOM_NEWS_FEED.EXCLUDE_FIELDS.includes(oField)) {
|
|
1139
|
+
aExpandFields.push(oNews[oField]);
|
|
1140
|
+
}
|
|
1141
|
+
});
|
|
1142
|
+
oNews.Link = {
|
|
1143
|
+
label: _this12._i18nBundle.getText("readMoreLink"),
|
|
1144
|
+
value: oNews[CUSTOM_NEWS_FEED.LINK],
|
|
1145
|
+
text: "Link"
|
|
896
1146
|
};
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
1147
|
+
oNews.expanded = aNews.length === 1;
|
|
1148
|
+
oNews.expandFields = aExpandFields;
|
|
1149
|
+
return oNews;
|
|
900
1150
|
});
|
|
901
|
-
oNews.Link = {
|
|
902
|
-
label: _this10._i18nBundle.getText("readMoreLink"),
|
|
903
|
-
value: oNews[CUSTOM_NEWS_FEED.LINK],
|
|
904
|
-
text: "Link"
|
|
905
|
-
};
|
|
906
|
-
oNews.expanded = aNews.length === 1;
|
|
907
|
-
oNews.expandFields = aExpandFields;
|
|
908
|
-
return oNews;
|
|
909
1151
|
});
|
|
910
|
-
}
|
|
1152
|
+
}
|
|
1153
|
+
const _temp13 = function () {
|
|
1154
|
+
if (_this12.customNewsFeedCache.has(sUrl)) {
|
|
1155
|
+
return Promise.resolve(_this12.customNewsFeedCache.get(sUrl)).then(function (newsFeedDetails) {
|
|
1156
|
+
const _this12$filterNewsOnT = _this12.filterNewsOnTitle(newsFeedDetails, newsTitle);
|
|
1157
|
+
_exit = true;
|
|
1158
|
+
return _this12$filterNewsOnT;
|
|
1159
|
+
});
|
|
1160
|
+
}
|
|
1161
|
+
}();
|
|
1162
|
+
return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13));
|
|
911
1163
|
} catch (e) {
|
|
912
1164
|
return Promise.reject(e);
|
|
913
1165
|
}
|
|
914
1166
|
},
|
|
1167
|
+
/**
|
|
1168
|
+
* Filters the news feed data based on the LOB title for the news detail dialog
|
|
1169
|
+
*
|
|
1170
|
+
* @private
|
|
1171
|
+
* @param {ICustomNewsFeed[]} aNews complete news feed data
|
|
1172
|
+
* @param {?string} [newsTitle] title of the line of business to be filtered on
|
|
1173
|
+
* @returns {ICustomNewsFeed[]} filtered news feed for provided LOB title
|
|
1174
|
+
*/
|
|
1175
|
+
filterNewsOnTitle: function _filterNewsOnTitle(aNews, newsTitle) {
|
|
1176
|
+
if (newsTitle) {
|
|
1177
|
+
return aNews.filter(newsDetail => {
|
|
1178
|
+
return newsDetail.LineOfBusiness.value === newsTitle;
|
|
1179
|
+
});
|
|
1180
|
+
}
|
|
1181
|
+
return aNews;
|
|
1182
|
+
},
|
|
915
1183
|
/**
|
|
916
1184
|
* Retrieves translated text for news feed fields based on the specified feed ID.
|
|
917
1185
|
* @param {string} sFeedId - The ID of the custom news feed
|
|
@@ -935,30 +1203,37 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
935
1203
|
* Loads custom news feed into the news panel after parsing JSON feed data to XML format.
|
|
936
1204
|
* @param {Array} feeds - The array of custom news feed items.
|
|
937
1205
|
*/
|
|
938
|
-
loadCustomNewsFeed: function _loadCustomNewsFeed(feeds) {
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
if (!
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
1206
|
+
loadCustomNewsFeed: function _loadCustomNewsFeed(feeds, feedType) {
|
|
1207
|
+
try {
|
|
1208
|
+
const _this13 = this;
|
|
1209
|
+
const oXMLResponse = _this13.parseJsonToXml(JSON.parse(JSON.stringify(feeds)), feedType);
|
|
1210
|
+
const oParent = _this13.getParent();
|
|
1211
|
+
if (!_this13.oNewsModel) {
|
|
1212
|
+
_this13.oNewsModel = new XMLModel(oXMLResponse);
|
|
1213
|
+
if (!_this13.bNewsLoad) {
|
|
1214
|
+
oParent?.panelLoadedFn("News", {
|
|
1215
|
+
loaded: true,
|
|
1216
|
+
count: DEFAULT_FEED_COUNT
|
|
1217
|
+
});
|
|
1218
|
+
_this13.bNewsLoad = true;
|
|
1219
|
+
}
|
|
1220
|
+
_this13.oNewsTile.setModel(_this13.oNewsModel);
|
|
1221
|
+
} else {
|
|
1222
|
+
_this13.oNewsTile.unbindAggregation("tiles", false); // Unbind the bound aggregation
|
|
1223
|
+
_this13.oNewsTile.destroyAggregation("tiles"); // Removes old tiles
|
|
1224
|
+
_this13.oNewsModel.setData(oXMLResponse);
|
|
949
1225
|
}
|
|
950
|
-
|
|
951
|
-
}
|
|
952
|
-
|
|
1226
|
+
return Promise.resolve(_this13.loadNewsFeed(oXMLResponse, feeds.length)).then(function () {});
|
|
1227
|
+
} catch (e) {
|
|
1228
|
+
return Promise.reject(e);
|
|
953
1229
|
}
|
|
954
|
-
void this.loadNewsFeed(oXMLResponse, feeds.length);
|
|
955
1230
|
},
|
|
956
1231
|
/**
|
|
957
1232
|
* Parses JSON data into XML format.
|
|
958
1233
|
* @param {JSON[]} json - The JSON data to be parsed into XML.
|
|
959
1234
|
* @returns {XMLDocument} The XML document representing the parsed JSON data.
|
|
960
1235
|
*/
|
|
961
|
-
parseJsonToXml: function _parseJsonToXml(json) {
|
|
1236
|
+
parseJsonToXml: function _parseJsonToXml(json, feedType) {
|
|
962
1237
|
const _transformJsonForXml = aData => aData.map(data => ({
|
|
963
1238
|
item: data
|
|
964
1239
|
}));
|
|
@@ -979,7 +1254,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
979
1254
|
};
|
|
980
1255
|
const transformedJson = JSON.parse(JSON.stringify(_transformJsonForXml(json)));
|
|
981
1256
|
let xml = "<?xml version='1.0' encoding='UTF-8'?>";
|
|
982
|
-
const rootToken =
|
|
1257
|
+
const rootToken = feedType;
|
|
983
1258
|
xml += `<${rootToken}>`;
|
|
984
1259
|
xml += _jsonToXml(transformedJson);
|
|
985
1260
|
xml += `</${rootToken}>`;
|
|
@@ -991,6 +1266,7 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
991
1266
|
* Randomly selects an image from the available images for the feed item.
|
|
992
1267
|
* @param {string} sFileName - The file name of the custom news feed item.
|
|
993
1268
|
* @returns {string} The URL of the image for the feed item.
|
|
1269
|
+
* @private
|
|
994
1270
|
*/
|
|
995
1271
|
getCustomFeedImage: function _getCustomFeedImage(sFileName) {
|
|
996
1272
|
const sFileBasePath = sap.ui.require.toUrl(CUSTOM_NEWS_FEED.IMAGE_URL);
|
|
@@ -1005,6 +1281,98 @@ sap.ui.define(["sap/base/Log", "sap/m/GenericTile", "sap/m/SlideTile", "sap/ui/c
|
|
|
1005
1281
|
}
|
|
1006
1282
|
return sFilePath;
|
|
1007
1283
|
},
|
|
1284
|
+
/**
|
|
1285
|
+
* Retrieves the default feed image for a given news feed.
|
|
1286
|
+
*
|
|
1287
|
+
* @param {ICustomNewsFeed} oFeed - The custom news feed object.
|
|
1288
|
+
* @returns {string} The base64 encoded image string with the appropriate MIME type, or an empty string if no valid image is found.
|
|
1289
|
+
* @private
|
|
1290
|
+
*/
|
|
1291
|
+
getDefaultFeedImage: function _getDefaultFeedImage(oFeed) {
|
|
1292
|
+
const imgId = oFeed?.bg_image_id;
|
|
1293
|
+
const groupImg = oFeed?._group_to_image;
|
|
1294
|
+
if (!groupImg || groupImg.image_id !== imgId) {
|
|
1295
|
+
return "";
|
|
1296
|
+
}
|
|
1297
|
+
let mimeType = groupImg.mime_type;
|
|
1298
|
+
const groupBgImg = groupImg.bg_image;
|
|
1299
|
+
if (!groupBgImg) {
|
|
1300
|
+
return "";
|
|
1301
|
+
}
|
|
1302
|
+
if (mimeType === "application/octet-stream") {
|
|
1303
|
+
mimeType = "image/jpeg";
|
|
1304
|
+
}
|
|
1305
|
+
if (!this.isValidBase64(groupBgImg)) {
|
|
1306
|
+
const base64Data = this.base64UrlToBase64(groupBgImg);
|
|
1307
|
+
return `data:${mimeType};base64,${base64Data}`;
|
|
1308
|
+
}
|
|
1309
|
+
return `data:${mimeType};base64,${groupBgImg}`;
|
|
1310
|
+
},
|
|
1311
|
+
/**
|
|
1312
|
+
* Converts a base64 URL string to a standard base64 string.
|
|
1313
|
+
*
|
|
1314
|
+
* @param {string} base64Url - The base64 URL string to convert.
|
|
1315
|
+
* @returns {string} The converted base64 string.
|
|
1316
|
+
* @private
|
|
1317
|
+
*/
|
|
1318
|
+
base64UrlToBase64: function _base64UrlToBase(base64Url) {
|
|
1319
|
+
let base64 = base64Url?.replace(/_/g, "/").replace(/-/g, "+");
|
|
1320
|
+
|
|
1321
|
+
// Add padding if missing (Base64 should be a multiple of 4)
|
|
1322
|
+
while (base64.length % 4 !== 0) {
|
|
1323
|
+
base64 += "=";
|
|
1324
|
+
}
|
|
1325
|
+
return base64;
|
|
1326
|
+
},
|
|
1327
|
+
/**
|
|
1328
|
+
* Checks if a string is a valid base64 encoded string.
|
|
1329
|
+
* @param input The string to validate
|
|
1330
|
+
* @returns boolean indicating if the string is valid base64
|
|
1331
|
+
* @private
|
|
1332
|
+
*/
|
|
1333
|
+
isValidBase64: function _isValidBase(input) {
|
|
1334
|
+
// Check if the string exists and isn't empty
|
|
1335
|
+
if (!input || input.length === 0) {
|
|
1336
|
+
return false;
|
|
1337
|
+
}
|
|
1338
|
+
|
|
1339
|
+
// Canonical base64 strings use these characters
|
|
1340
|
+
// A-Z, a-z, 0-9, +, /, and = for padding
|
|
1341
|
+
const base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;
|
|
1342
|
+
|
|
1343
|
+
// Check if the string matches the base64 character set
|
|
1344
|
+
if (!base64Regex.test(input)) {
|
|
1345
|
+
return false;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
// Check if the length is valid
|
|
1349
|
+
// Base64 strings have a length that is a multiple of 4
|
|
1350
|
+
if (input.length % 4 !== 0) {
|
|
1351
|
+
return false;
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
// Check padding rules
|
|
1355
|
+
if (input.includes("=")) {
|
|
1356
|
+
// If there is padding, it must be at the end
|
|
1357
|
+
const paddingIndex = input.indexOf("=");
|
|
1358
|
+
const lastPaddingIndex = input.lastIndexOf("=");
|
|
1359
|
+
// Padding should only occur at the end
|
|
1360
|
+
if (paddingIndex !== input.length - (input.length - paddingIndex)) {
|
|
1361
|
+
return false;
|
|
1362
|
+
}
|
|
1363
|
+
|
|
1364
|
+
// Can only have 1 or 2 padding characters
|
|
1365
|
+
if (input.length - paddingIndex > 2) {
|
|
1366
|
+
return false;
|
|
1367
|
+
}
|
|
1368
|
+
|
|
1369
|
+
// Make sure all padding is at the end
|
|
1370
|
+
if (paddingIndex !== lastPaddingIndex && lastPaddingIndex !== paddingIndex + 1) {
|
|
1371
|
+
return false;
|
|
1372
|
+
}
|
|
1373
|
+
}
|
|
1374
|
+
return true;
|
|
1375
|
+
},
|
|
1008
1376
|
_getUserPersonalization: function _getUserPersonalization() {
|
|
1009
1377
|
const persContainerId = PersonalisationUtils.getPersContainerId(this);
|
|
1010
1378
|
const ownerComponent = PersonalisationUtils.getOwnerComponent(this);
|