@sapui5/sap.cux.home 1.136.3 → 1.139.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +11 -7
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +13 -7
- package/src/sap/cux/home/App.d.ts +1 -2
- package/src/sap/cux/home/App.d.ts.map +1 -1
- package/src/sap/cux/home/App.js +7 -2
- package/src/sap/cux/home/App.js.map +1 -1
- package/src/sap/cux/home/App.ts +8 -3
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +0 -2
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +31 -15
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +36 -16
- package/src/sap/cux/home/AppsContainer.d.ts +0 -2
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +5 -8
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +3 -8
- package/src/sap/cux/home/BaseApp.d.ts +2 -2
- package/src/sap/cux/home/BaseApp.d.ts.map +1 -1
- package/src/sap/cux/home/BaseApp.js +10 -3
- package/src/sap/cux/home/BaseApp.js.map +1 -1
- package/src/sap/cux/home/BaseApp.ts +11 -4
- package/src/sap/cux/home/BaseAppPanel.d.ts +0 -2
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +5 -6
- 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.d.ts +0 -2
- package/src/sap/cux/home/BaseAppPersPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.js +6 -6
- package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPersPanel.ts +9 -7
- package/src/sap/cux/home/BaseContainer.d.ts +0 -1
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +10 -5
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +10 -5
- 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 +17 -19
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +21 -25
- package/src/sap/cux/home/BaseLayout.d.ts +0 -1
- package/src/sap/cux/home/BaseLayout.d.ts.map +1 -1
- package/src/sap/cux/home/BaseLayout.js +1 -2
- package/src/sap/cux/home/BaseLayout.js.map +1 -1
- package/src/sap/cux/home/BaseLayout.ts +1 -2
- package/src/sap/cux/home/BaseNewsItem.d.ts +1 -2
- package/src/sap/cux/home/BaseNewsItem.d.ts.map +1 -1
- package/src/sap/cux/home/BaseNewsItem.js +7 -2
- package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
- package/src/sap/cux/home/BaseNewsItem.ts +8 -3
- package/src/sap/cux/home/BaseNewsPanel.d.ts +1 -2
- package/src/sap/cux/home/BaseNewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.js +7 -2
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +8 -3
- package/src/sap/cux/home/BasePagePanel.d.ts +1 -2
- package/src/sap/cux/home/BasePagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/BasePagePanel.gen.d.ts +34 -0
- package/src/sap/cux/home/BasePagePanel.js +16 -2
- package/src/sap/cux/home/BasePagePanel.js.map +1 -1
- package/src/sap/cux/home/BasePagePanel.ts +17 -3
- package/src/sap/cux/home/BasePanel.d.ts +0 -1
- package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
- package/src/sap/cux/home/BasePanel.js +0 -1
- package/src/sap/cux/home/BasePanel.js.map +1 -1
- package/src/sap/cux/home/BasePanel.ts +0 -1
- package/src/sap/cux/home/BaseSettingsDialog.d.ts +0 -1
- package/src/sap/cux/home/BaseSettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.js +0 -1
- package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsDialog.ts +0 -1
- package/src/sap/cux/home/BaseSettingsPanel.d.ts +0 -1
- package/src/sap/cux/home/BaseSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.js +2 -2
- package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseSettingsPanel.ts +3 -2
- package/src/sap/cux/home/CardsPanel.d.ts +0 -1
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +3 -4
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +3 -7
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +0 -3
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +4 -8
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +4 -8
- package/src/sap/cux/home/ErrorPanel.d.ts +1 -2
- package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ErrorPanel.gen.d.ts +24 -0
- package/src/sap/cux/home/ErrorPanel.js +16 -2
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +17 -3
- package/src/sap/cux/home/FavAppPanel.d.ts +0 -1
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +15 -12
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +20 -15
- package/src/sap/cux/home/FrequentAppPanel.d.ts +0 -1
- package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.js +0 -1
- package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
- package/src/sap/cux/home/FrequentAppPanel.ts +0 -1
- package/src/sap/cux/home/Group.d.ts +2 -2
- package/src/sap/cux/home/Group.d.ts.map +1 -1
- package/src/sap/cux/home/Group.gen.d.ts +47 -1
- package/src/sap/cux/home/Group.js +30 -3
- package/src/sap/cux/home/Group.js.map +1 -1
- package/src/sap/cux/home/Group.ts +26 -6
- package/src/sap/cux/home/IToDoPanel.d.ts +1 -2
- package/src/sap/cux/home/IToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/IToDoPanel.js.map +1 -1
- package/src/sap/cux/home/IToDoPanel.ts +1 -2
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts +0 -4
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +5 -14
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +5 -16
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js +0 -3
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +0 -3
- package/src/sap/cux/home/InsightsContainer.d.ts +1 -2
- package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsContainer.js +21 -5
- package/src/sap/cux/home/InsightsContainer.js.map +1 -1
- package/src/sap/cux/home/InsightsContainer.ts +24 -5
- package/src/sap/cux/home/InsightsTilesSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/InsightsTilesSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js +5 -5
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +5 -5
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +0 -3
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +0 -3
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +0 -3
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +0 -3
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +4 -6
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +13 -8
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +0 -3
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +0 -3
- package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +0 -3
- package/src/sap/cux/home/KeyUserSettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.js +0 -3
- package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
- package/src/sap/cux/home/KeyUserSettingsDialog.ts +0 -3
- package/src/sap/cux/home/Layout.d.ts +0 -2
- package/src/sap/cux/home/Layout.d.ts.map +1 -1
- package/src/sap/cux/home/Layout.js +0 -2
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +0 -3
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js +0 -3
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +0 -3
- package/src/sap/cux/home/MenuItem.d.ts +0 -1
- package/src/sap/cux/home/MenuItem.d.ts.map +1 -1
- package/src/sap/cux/home/MenuItem.js +0 -1
- package/src/sap/cux/home/MenuItem.js.map +1 -1
- package/src/sap/cux/home/MenuItem.ts +0 -1
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts +12 -14
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js +10 -12
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
- package/src/sap/cux/home/NewsAndPagesContainer.ts +20 -18
- package/src/sap/cux/home/NewsGroup.d.ts +0 -3
- package/src/sap/cux/home/NewsGroup.d.ts.map +1 -1
- package/src/sap/cux/home/NewsGroup.js +0 -3
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +0 -3
- package/src/sap/cux/home/NewsItem.d.ts +0 -3
- package/src/sap/cux/home/NewsItem.d.ts.map +1 -1
- package/src/sap/cux/home/NewsItem.js +0 -3
- package/src/sap/cux/home/NewsItem.js.map +1 -1
- package/src/sap/cux/home/NewsItem.ts +0 -3
- package/src/sap/cux/home/NewsPanel.d.ts +7 -10
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +13 -14
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +15 -14
- package/src/sap/cux/home/NewsSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.js +1 -4
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +1 -4
- package/src/sap/cux/home/NoDataContainer.d.ts +0 -2
- package/src/sap/cux/home/NoDataContainer.d.ts.map +1 -1
- package/src/sap/cux/home/NoDataContainer.js +0 -1
- package/src/sap/cux/home/NoDataContainer.js.map +1 -1
- package/src/sap/cux/home/NoDataContainer.ts +0 -1
- package/src/sap/cux/home/Page.d.ts +0 -3
- package/src/sap/cux/home/Page.d.ts.map +1 -1
- package/src/sap/cux/home/Page.gen.d.ts +0 -12
- package/src/sap/cux/home/Page.js +0 -7
- package/src/sap/cux/home/Page.js.map +1 -1
- package/src/sap/cux/home/Page.ts +0 -7
- package/src/sap/cux/home/PagePanel.d.ts +0 -4
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +0 -4
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +0 -4
- package/src/sap/cux/home/PageSettingsPanel.d.ts +0 -3
- package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.js +3 -5
- package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/PageSettingsPanel.ts +3 -5
- package/src/sap/cux/home/RecentAppPanel.d.ts +0 -1
- package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.js +0 -1
- package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecentAppPanel.ts +0 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts +0 -1
- package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.js +0 -1
- package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
- package/src/sap/cux/home/RecommendedAppPanel.ts +0 -1
- package/src/sap/cux/home/SettingsDialog.d.ts +0 -3
- package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
- package/src/sap/cux/home/SettingsDialog.js +2 -4
- package/src/sap/cux/home/SettingsDialog.js.map +1 -1
- package/src/sap/cux/home/SettingsDialog.ts +2 -4
- package/src/sap/cux/home/SituationPanel.d.ts +0 -1
- package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SituationPanel.js +0 -1
- package/src/sap/cux/home/SituationPanel.js.map +1 -1
- package/src/sap/cux/home/SituationPanel.ts +0 -1
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts +207 -0
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -0
- package/src/sap/cux/home/SpaceInsightsPanel.gen.d.ts +200 -0
- package/src/sap/cux/home/SpaceInsightsPanel.js +789 -0
- package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -0
- package/src/sap/cux/home/SpaceInsightsPanel.ts +631 -0
- package/src/sap/cux/home/SpacePanel.d.ts +117 -0
- package/src/sap/cux/home/SpacePanel.d.ts.map +1 -0
- package/src/sap/cux/home/SpacePanel.gen.d.ts +77 -0
- package/src/sap/cux/home/SpacePanel.js +599 -0
- package/src/sap/cux/home/SpacePanel.js.map +1 -0
- package/src/sap/cux/home/SpacePanel.ts +461 -0
- package/src/sap/cux/home/TaskPanel.d.ts +0 -1
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +8 -20
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +9 -20
- package/src/sap/cux/home/TilesPanel.d.ts +0 -1
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +5 -6
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +5 -12
- package/src/sap/cux/home/ToDoPanel.d.ts +11 -1
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +59 -22
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +63 -22
- package/src/sap/cux/home/ToDosContainer.d.ts +0 -2
- package/src/sap/cux/home/ToDosContainer.d.ts.map +1 -1
- package/src/sap/cux/home/ToDosContainer.js +2 -3
- package/src/sap/cux/home/ToDosContainer.js.map +1 -1
- package/src/sap/cux/home/ToDosContainer.ts +1 -2
- package/src/sap/cux/home/i18n/messagebundle.properties +22 -13
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_da.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_de.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_el.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_en.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +65 -13
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +19 -9
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +57 -11
- package/src/sap/cux/home/i18n/messagebundle_es.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_et.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_id.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_it.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_no.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_th.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +6 -3
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +6 -3
- package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -0
- package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/AppsInterface.ts +1 -0
- package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -5
- package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
- package/src/sap/cux/home/interface/CardsInterface.ts +1 -1
- package/src/sap/cux/home/library.d.ts +3 -4
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +3 -4
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +3 -4
- package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +1 -9
- package/src/sap/cux/home/themes/base/InsightsContainer.less +4 -0
- package/src/sap/cux/home/themes/base/KeyUserSettingsDialog.less +0 -5
- package/src/sap/cux/home/themes/base/ToDosContainer.less +2 -1
- package/src/sap/cux/home/utils/Accessibility.js +2 -2
- package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
- package/src/sap/cux/home/utils/Accessibility.ts +2 -2
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +0 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +0 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
- package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +0 -1
- package/src/sap/cux/home/utils/AppManager.d.ts +4 -7
- package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/AppManager.js +12 -13
- package/src/sap/cux/home/utils/AppManager.js.map +1 -1
- package/src/sap/cux/home/utils/AppManager.ts +20 -13
- package/src/sap/cux/home/utils/BatchHelper.d.ts +0 -3
- package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js +0 -3
- package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.ts +0 -3
- package/src/sap/cux/home/utils/CommonUtils.d.ts +9 -0
- package/src/sap/cux/home/utils/CommonUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/CommonUtils.js +23 -2
- package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
- package/src/sap/cux/home/utils/CommonUtils.ts +28 -1
- package/src/sap/cux/home/utils/Constants.d.ts +4 -5
- package/src/sap/cux/home/utils/Constants.d.ts.map +1 -1
- package/src/sap/cux/home/utils/Constants.js +5 -5
- package/src/sap/cux/home/utils/Constants.js.map +1 -1
- package/src/sap/cux/home/utils/Constants.ts +4 -5
- package/src/sap/cux/home/utils/DecisionDialog.d.ts +0 -3
- package/src/sap/cux/home/utils/DecisionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.js +0 -3
- package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
- package/src/sap/cux/home/utils/DecisionDialog.ts +0 -3
- package/src/sap/cux/home/utils/FESRUtil.js +1 -1
- package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
- package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.d.ts +20 -13
- package/src/sap/cux/home/utils/FeatureUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.js +33 -29
- package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
- package/src/sap/cux/home/utils/FeatureUtils.ts +38 -31
- package/src/sap/cux/home/utils/HttpHelper.d.ts +7 -3
- package/src/sap/cux/home/utils/HttpHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/HttpHelper.js +43 -3
- package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
- package/src/sap/cux/home/utils/HttpHelper.ts +25 -3
- package/src/sap/cux/home/utils/KeyUserPersonalization.d.ts.map +1 -1
- package/src/sap/cux/home/utils/KeyUserPersonalization.js +32 -13
- package/src/sap/cux/home/utils/KeyUserPersonalization.js.map +1 -1
- package/src/sap/cux/home/utils/KeyUserPersonalization.ts +2 -3
- package/src/sap/cux/home/utils/PageManager.d.ts +0 -3
- package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PageManager.js +0 -3
- package/src/sap/cux/home/utils/PageManager.js.map +1 -1
- package/src/sap/cux/home/utils/PageManager.ts +0 -3
- package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +0 -3
- package/src/sap/cux/home/utils/PersonalisationUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.js +0 -3
- package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PersonalisationUtils.ts +0 -3
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +0 -3
- package/src/sap/cux/home/utils/UshellPersonalizer.d.ts.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.js +0 -3
- package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
- package/src/sap/cux/home/utils/UshellPersonalizer.ts +0 -3
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +20 -16
- package/src/sap/cux/home/{AppsContainerGenericPlaceholder.d.ts → utils/placeholder/AppsPlaceholder.d.ts} +2 -2
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/{AppsContainerGenericPlaceholder.js → utils/placeholder/AppsPlaceholder.js} +1 -1
- package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.js → utils/placeholder/InsightsPlaceholder.js} +1 -1
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.d.ts → utils/placeholder/NewsAndPagesPlaceholder.d.ts} +3 -3
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainerGenericPlaceholder.js → utils/placeholder/NewsAndPagesPlaceholder.js} +1 -1
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.d.ts → utils/placeholder/ToDosPlaceholder.d.ts} +2 -2
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.js → utils/placeholder/ToDosPlaceholder.js} +1 -1
- package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -0
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/AppsContainerGenericPlaceholder.js.map +0 -1
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/InsightsContainerGenericPlaceholder.js.map +0 -1
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts +0 -8
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.js.map +0 -1
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/ToDosContainerGenericPlaceholder.js.map +0 -1
- package/src/sap/cux/home/utils/CardSkeleton.d.ts +0 -54
- package/src/sap/cux/home/utils/CardSkeleton.d.ts.map +0 -1
- package/src/sap/cux/home/utils/CardSkeleton.js +0 -61
- package/src/sap/cux/home/utils/CardSkeleton.js.map +0 -1
- package/src/sap/cux/home/utils/CardSkeleton.ts +0 -53
- /package/src/sap/cux/home/{AppsContainerGenericPlaceholder.ts → utils/placeholder/AppsPlaceholder.ts} +0 -0
- /package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.ts → utils/placeholder/InsightsPlaceholder.ts} +0 -0
- /package/src/sap/cux/home/{NewsAndPagesContainerGenericPlaceholder.ts → utils/placeholder/NewsAndPagesPlaceholder.ts} +0 -0
- /package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.ts → utils/placeholder/ToDosPlaceholder.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsPanel.js","names":["sap","ui","define","Log","GenericTile","SlideTile","sap_m_library","EventBus","DateFormat","XMLModel","Container","__BaseLayout","__BaseNewsPanel","__MenuItem","__NewsGroup","__NewsItem","___library","___utils_Constants","___utils_DataFormatUtils","___utils_Device","___utils_FESRUtil","__HttpHelper","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_settle","pact","state","value","s","_Pact","v","o","bind","then","observer","Priority","prototype","onFulfilled","onRejected","result","callback","e","_this","_isSettledPact","thenable","_for","test","update","body","stage","shouldContinue","updateValue","reject","_resumeAfterTest","_resumeAfterBody","_resumeAfterUpdate","BaseLayout","_catch","recover","BaseNewsPanel","MenuItem","NewsGroup","NewsItem","NewsType","DEFAULT_NEWS_PLACEHOLDER","DEFAULT_NEWS_URL","recycleId","DeviceType","addFESRId","HttpHelper","PersonalisationUtils","UshellPersonalizer","BASE_URL","NEWS_FEED_READ_API","NEWS_FEED_TRANSLATION_API","DEFAULT_FEED_COUNT","fnImagePlaceholder","sPath","N","Array","from","length","i","CUSTOM_NEWS_FEED","TITLE","LINK","VALIDITY","PREPARATION_REQUIRED","EXCLUDE_FIELDS","IMAGE_URL","FESR_STEP_NAME","EMPTY_DATA_ERROR_CODE","CUSTOM_IMAGES","Finance","Manufacturing","Sales","NewsPanel","extend","metadata","library","properties","url","type","group","defaultValue","visibility","Default","customFeedKey","customFileName","newsAvailable","supportedFileFormats","aggregations","newsGroup","singularName","multiple","constructor","_constructor","id","settings","BaseNewsPanel.prototype.constructor.call","_defaultNewsPromise","_noUpdatesNewsFeed","customNewsFeedCache","Map","init","_init","BaseNewsPanel.prototype.init.call","oNewsTile","getId","displayTime","width","height","tiles","mode","frameType","addStyleClass","getNewsWrapper","addContent","setProperty","_i18nBundle","getText","_eventBus","getInstance","oManageMenuItem","title","icon","press","handleEditNews","visible","setManageNewsItemVisibility","addAggregation","getData","_getData","_exit","_temp9","_result","fireEvent","adjustLayout","sUrl","getUrl","showCustom","getProperty","Custom","showDefault","showRssAtom","NewsUrl","mandatoryNewsFeed","fetchedFeedUrl","Promise","resolve","endUserChange","getParent","getIsEndUserChange","_temp8","isEndUser","fetch","response","ok","Error","status","contentType","headers","get","_temp","includes","json","_response$json","_endUserResponse","setNewsFeedFromUrl","newsType","initializeXmlModel","_this$initializeXmlMo","oNewsModel","setModel","setVisible","_temp7","_temp5","bNewsLoad","setDefaultNews","_temp4","_this$initializeXmlMo2","_temp3","sCustomNewsFeedKey","getCustomFeedKey","_temp2","setCustomNewsFeed","handleFeedError","_temp6","persDataNewsFeed","setPersDataNewsFeed","_setDefaultNews","_this2","defaultUrl","generateErrorMessage","_setManageNewsItemVisibility","isParentBaseLayout","_isParentBaseLayout","parentContainer","parentLayout","_getLayout","setPressEnabledForNewsGroup","_setPressEnabledForNewsGroup","feeds","newsGroups","getAggregation","isArray","groupDetailsMap","groupHasDescription","_defaultNewsResponse","forEach","description","trim","removeInlineStylesFromDescription","group_id","articles","_group_to_article","hasDescription","article","newsGroupMap","filter","groupId","getCurrentNewsGroup","feed","getTile","_removeInlineStylesFromDescription","replace","_getCurrentNewsGroup","newsGroupList","idParts","split","undefined","find","_getCustomFeedKey","_getUrl","_initializeXmlModel","_this3","oParent","setDefaultBindingMode","attachRequestCompleted","oEvent","panelLoadedFn","loaded","count","oDocument","getSource","loadNewsFeed","publish","showError","date","Date","attachRequestFailed","_loadNewsFeed","noOfFeeds","_this4","_temp1","querySelector","oBindingInfo","path","destroyAggregation","bindNewsTile","_temp0","extractAllImageUrls","_handleFeedError","getNewsType","setManageNewsButtonVisibility","setURL","_setURL","_this5","_adjustLayout","getDeviceType","Mobile","setHeight","setWidth","removeStyleClass","_bindNewsTile","oSlideTile","bindAggregation","templateShareable","factory","sId","oContext","newsInfo","getObject","oTile","getElementsByTagName","getPropertyValue","subTitle","imageUrl","footer","formatDate","sGroupId","newsId","subTitleNews","priority","priorityText","_getPropertyValue","propertyName","textContent","_extractAllImageUrls","_this6","_temp10","oItemElement","extractImage","oImageUrl","createElement","appendChild","_formatDate","timeStamp","relativeDateFormatter","getDateTimeInstance","style","relative","relativeStyle","format","getPersDataNewsFeed","_getPersDataNewsFeed","_extractImage","sHrefLink","fnLoadPlaceholderImage","sPrefix","require","toUrl","image","res","text","sHTML","aMatches","match","catch","_getNewsType","isCSVFileFormat","_isCSVFileFormat","fileName","pop","toLowerCase","_setPersDataNewsFeed","defaultFeed","_this7","_getUserPersonalization","personalizer","read","persData","defaultNewsFeed","favNewsFeed","_setNewsFeedFromUrl","data","_this8","item","_temp12","_temp11","_setCustomNewsFeed","sFeedId","_this9","feedType","isDefaultNews","showAllPrepRequired","showAllPreparationRequired","push","showPrep","getCustomOrDefaultNewsFeed","newsFeeds","selectedItems","items","isSelectedEmpty","loadCustomNewsFeed","err","error","filterMandatoryNews","_filterMandatoryNews","mandatory_text","mandatory","toUpperCase","markGroupsWithCriticalArticles","_markGroupsWithCriticalArticles","criticalArticle","getDefaultNewsFeedDetails","_getDefaultNewsFeedDetails","newsResponse","newsFeedItems","JSON","parse","stringify","defaultNews","defaultFeedDict","map","oFeed","footer_text","getDefaultFeedImage","Medium","None","getMandatoryDefaultNewsFeed","_getMandatoryDefaultNewsFeed","getDefaultNewsResponse","_getDefaultNewsResponse","fetchDefaultNews","getNoUpdatesPlaceholder","_getNoUpdatesPlaceholder","placeholderTitle","placeholderDescription","enrichedNewsPlaceholder","isNoUpdatesNewsFeed","_isNoUpdatesNewsFeed","_fetchDefaultNews","_this0","getServiceAsync","navigationService","isNavigationSupported","target","semanticObject","action","supported","_exit2","_temp14","_result4","_temp13","_response$json2","_getCustomOrDefaultNewsFeed","_this1","aDefaultgroups","getCustomFeedData","_getCustomFeedData","_this10","newsDetailUrl","isEnduser","getNewsFeedDetailsUrl","changeId","has","set","getAuthNewsFeed","_this10$customNewsFee","authorizedNewsFeeds","oFeedDict","aFeeds","getCustomFeedImage","_getNewsFeedDetailsUrl","oNews","_getAuthNewsFeed","sNewsUrl","newsTitle","_this11","all","getAllAvailableApps","getNewsFeedDetails","aAvailableApps","aNewsFeed","arrangeNewsFeeds","_arrangeNewsFeeds","aAuthNewsFeed","oNewsFeed","Category","ImpactedArtifacts","aImpactedArtifacts","impactedArtifact","oImpactedArtifact","isAuthFeed","_isAuthFeed","fioriIdSplitter","aTokens","sFioriId","index","findIndex","oApp","signature","parameters","_getAllAvailableApps","oService","_oAdapter","_aInbounds","message","_getNewsFeedDetails","_exit3","_this12","_temp16","_result6","fnFormattedLabel","sLabel","GetJSON","getTranslatedText","translationResponse","aNews","aTranslation","filterNewsOnTitle","aFields","Object","keys","aExpandFields","oField","oTranslatedField","oTranslation","ColumnName","oTranslatedFieldName","TranslatedName","label","Link","expanded","expandFields","_temp15","newsFeedDetails","_this12$filterNewsOnT","_filterNewsOnTitle","newsDetail","LineOfBusiness","_getTranslatedText","_loadCustomNewsFeed","_this13","oXMLResponse","parseJsonToXml","unbindAggregation","setData","_parseJsonToXml","_transformJsonForXml","aData","_jsonToXml","xml","key","transformedJson","rootToken","replaceAll","parser","DOMParser","parseFromString","_getCustomFeedImage","sFileName","sFileBasePath","sFilePath","files","randomIndex","randomArray","window","Uint32Array","crypto","getRandomValues","_getDefaultFeedImage","imgId","bg_image_id","groupImg","_group_to_image","getRandomDefaultImage","random","Math","floor","image_id","bg_image","mimeType","mime_type","groupBgImg","isValidBase64","base64Data","base64UrlToBase64","_base64UrlToBase","base64Url","base64","_isValidBase","input","base64Regex","paddingIndex","indexOf","lastPaddingIndex","lastIndexOf","persContainerId","getPersContainerId","ownerComponent","getOwnerComponent"],"sources":["NewsPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport SlideTile from \"sap/m/SlideTile\";\nimport { FrameType, Priority } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Context from \"sap/ui/model/Context\";\nimport XMLModel from \"sap/ui/model/xml/XMLModel\";\nimport Container from \"sap/ushell/Container\";\nimport Navigation from \"sap/ushell/services/Navigation\";\nimport BaseLayout from \"./BaseLayout\";\nimport type { $BaseNewsPanelSettings } from \"./BaseNewsPanel\";\nimport BaseNewsPanel from \"./BaseNewsPanel\";\nimport MenuItem from \"./MenuItem\";\nimport NewsAndPagesContainer from \"./NewsAndPagesContainer\";\nimport NewsGroup from \"./NewsGroup\";\nimport NewsItem from \"./NewsItem\";\nimport { NewsType } from \"./library\";\nimport { DEFAULT_NEWS_PLACEHOLDER, DEFAULT_NEWS_URL } from \"./utils/Constants\";\nimport { recycleId } from \"./utils/DataFormatUtils\";\nimport { DeviceType } from \"./utils/Device\";\nimport { addFESRId } from \"./utils/FESRUtil\";\nimport HttpHelper from \"./utils/HttpHelper\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer from \"./utils/UshellPersonalizer\";\n\ninterface IBindingInfo {\n\tpath: string;\n\tlength: number;\n}\n\ninterface INewsResponse {\n\tvalue: INewsFeed[];\n}\n\nexport interface INewsFeed {\n\ttitle: string;\n\tsubTitle?: string;\n\tdescription?: string;\n\tfooter_text?: string;\n\tmandatory_text?: string;\n\tmandatory?: string;\n\t_group_to_image?: Record<string, string>;\n\t_group_to_article?: INewsFeed[];\n\tpriority?: string;\n\tgroup_id?: string;\n\t[key: string]: unknown;\n}\n\nexport interface INewsItem {\n\tchangeId: string;\n\ttitle?: string;\n\tshowAllPreparationRequired?: boolean;\n}\n\ninterface ITranslatedText {\n\tColumnName?: string;\n\tTranslatedName?: string;\n}\n\ninterface IAppConfiguration {\n\t_oAdapter: {\n\t\t_aInbounds: IAvailableApp[];\n\t};\n}\n\ninterface ODataResponse {\n\t\"@odata.context\": string;\n\t\"@odata.metadataEtag\": string;\n\tvalue: INewsFeed[];\n}\n\ninterface IAvailableApp {\n\tsemanticObject?: string;\n\taction?: string;\n\tid?: string;\n\ttitle?: string;\n\tpermanentKey?: string;\n\tcontentProviderId?: string;\n\tresolutionResult?: {\n\t\t[key: string]: string;\n\t};\n\tdeviceTypes?: {\n\t\t[key: string]: boolean;\n\t};\n\tsignature: {\n\t\tparameters: {\n\t\t\t[key: string]: IAppParameter;\n\t\t};\n\t\tadditionalParameters?: string;\n\t};\n}\n\ninterface IAppParameter {\n\tdefaultValue?: {\n\t\tvalue: string;\n\t\tformat: string;\n\t};\n\trequired: boolean;\n}\ninterface IPersDataNewsFeed {\n\titems: string[];\n\tshowAllPreparationRequired?: boolean;\n}\ninterface INewsGroupMap {\n\t[key: string]: NewsGroup;\n}\n\ninterface IGroupDetailsMap {\n\t[key: string]: INewsFeed[];\n}\n\nexport interface INewsLink {\n\t[key: string]: string;\n}\n\nexport interface INewsParam {\n\t[key: string]: { [key: string]: string };\n}\n\nexport type FileFormat = \"xlsx\" | \"csv\";\n\nconst BASE_URL = \"/sap/opu/odata4/ui2/insights_srv/srvd/ui2/\",\n\tNEWS_FEED_READ_API = BASE_URL + \"insights_read_srv/0001/\" + \"NEWS_FEED\",\n\tNEWS_FEED_TRANSLATION_API = BASE_URL + \"insights_read_srv/0001/\" + \"NewsFeedColumnTranslation\",\n\tDEFAULT_FEED_COUNT = 7,\n\tfnImagePlaceholder = function (sPath: string, N: number) {\n\t\treturn Array.from({ length: N }, function (v, i) {\n\t\t\treturn sPath + \"/\" + (i + 1) + \".jpg\";\n\t\t});\n\t};\n\nconst CUSTOM_NEWS_FEED = {\n\t\tTITLE: \"LineOfBusiness\",\n\t\tLINK: \"WhatsNewDocument\",\n\t\tVALIDITY: \"ValidAsOf\",\n\t\tPREPARATION_REQUIRED: \"PreparationRequired\",\n\t\tEXCLUDE_FIELDS: [\n\t\t\t\"ChangeId\",\n\t\t\t\"LineNumber\",\n\t\t\t\"LineOfBusiness\",\n\t\t\t\"SolutionArea\",\n\t\t\t\"Title\",\n\t\t\t\"Description\",\n\t\t\t\"Type\",\n\t\t\t\"ValidAsOf\",\n\t\t\t\"WhatsNewDocument\",\n\t\t\t\"Link\"\n\t\t],\n\t\tIMAGE_URL: \"sap/cux/home/img/CustomNewsFeed/\",\n\t\tFESR_STEP_NAME: \"custNewsSlide-press\",\n\t\tEMPTY_DATA_ERROR_CODE: \"NODATA\"\n\t},\n\tCUSTOM_IMAGES: { [key: string]: string[] } = {\n\t\t\"Application Platform and Infrastructure\": fnImagePlaceholder(\"ApplicationPlatformandInfrastructure\", 3),\n\t\t\"Asset Management\": fnImagePlaceholder(\"AssetManagement\", 3),\n\t\t\"Cross Applications\": fnImagePlaceholder(\"CrossApplications\", 3),\n\t\tFinance: fnImagePlaceholder(\"Finance\", 3),\n\t\tManufacturing: fnImagePlaceholder(\"Manufacturing\", 3),\n\t\t\"R&D / Engineering\": fnImagePlaceholder(\"RnDandEngineering\", 3),\n\t\tSales: fnImagePlaceholder(\"Sales\", 3),\n\t\t\"Sourcing and Procurement\": fnImagePlaceholder(\"SourcingandProcurement\", 3),\n\t\t\"Supply Chain\": fnImagePlaceholder(\"SupplyChain\", 3),\n\t\tdefault: [\"default.jpg\"]\n\t};\n\n/**\n *\n * Panel class for managing and storing News.\n *\n * @extends sap.cux.home.BaseNewsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @internal\n * @experimental Since 1.121\n * @public\n *\n * @alias sap.cux.home.NewsPanel\n */\nexport default class NewsPanel extends BaseNewsPanel {\n\tprivate oNewsTile!: SlideTile;\n\tprivate oNewsModel!: XMLModel;\n\tprivate oManageMenuItem!: MenuItem;\n\tprivate image!: number;\n\tprivate customNewsFeedCache: Map<string, unknown>;\n\tprivate bNewsLoad!: boolean;\n\tprivate persDataNewsFeed!: IPersDataNewsFeed; // hold the fav news feed for custom news and unselected group ids for default news\n\tprivate _eventBus!: EventBus;\n\tprivate _defaultNewsResponse!: ODataResponse;\n\tprivate mandatoryNewsFeed!: string[];\n\tprivate _defaultNewsPromise: Promise<ODataResponse> | null = null;\n\tprivate fetchedFeedUrl!: string;\n\tprivate defaultUrl!: string;\n\tprivate _noUpdatesNewsFeed: boolean = false; // flag to check if no updates news tile is shown or not\n\tprivate _endUserResponse!: ODataResponse;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * The URL of the news item.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\turl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Type of the news item.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\ttype: {\n\t\t\t\ttype: \"sap.cux.home.NewsType\",\n\t\t\t\tgroup: \"Misc\",\n\t\t\t\tvisibility: \"hidden\",\n\t\t\t\tdefaultValue: NewsType.Default\n\t\t\t},\n\t\t\t/**\n\t\t\t * The key of custom news feed.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tcustomFeedKey: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * The filename of custom news feed.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tcustomFileName: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * The flag to determine rss feed will load or not.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tnewsAvailable: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Supported file formats for news.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tsupportedFileFormats: { type: \"FileFormat[]\", group: \"Misc\", defaultValue: [\"xlsx\"], visibility: \"hidden\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * newsGroup aggregation for News\n\t\t\t */\n\t\t\tnewsGroup: { type: \"sap.cux.home.NewsGroup\", singularName: \"newsGroup\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $BaseNewsPanelSettings);\n\tconstructor(id?: string, settings?: $BaseNewsPanelSettings);\n\t/**\n\t * Constructor for a new News Panel.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsPanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.customNewsFeedCache = new Map();\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\n\t\tthis.oNewsTile = new SlideTile(this.getId() + \"--idNewsSlide\", {\n\t\t\tdisplayTime: 20000,\n\t\t\twidth: \"100%\",\n\t\t\theight: \"17rem\",\n\t\t\ttiles: [\n\t\t\t\tnew GenericTile(this.getId() + \"--placeholder\", {\n\t\t\t\t\tstate: \"Loading\",\n\t\t\t\t\tmode: \"ArticleMode\",\n\t\t\t\t\tframeType: \"Stretch\" as FrameType\n\t\t\t\t})\n\t\t\t]\n\t\t}).addStyleClass(\"newsTileMaxWidth sapUiSmallMarginTop\");\n\t\taddFESRId(this.oNewsTile, \"newsSlidePress\");\n\t\tthis.getNewsWrapper().addContent(this.oNewsTile);\n\t\tthis.getNewsWrapper().addStyleClass(\"newsWrapper\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"newsTitle\"));\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\tthis.oManageMenuItem = new MenuItem(`${this.getId()}-manageNews`, {\n\t\t\ttitle: this._i18nBundle.getText(\"editLinkNews\"),\n\t\t\ticon: \"sap-icon://edit\",\n\t\t\tpress: this.handleEditNews.bind(this),\n\t\t\tvisible: this.setManageNewsItemVisibility()\n\t\t});\n\t\tthis.addAggregation(\"menuItems\", this.oManageMenuItem);\n\t\taddFESRId(this.oManageMenuItem, \"manageNews\");\n\t}\n\n\t/**\n\t * Retrieves news data asynchronously.\n\t * If the news model is not initialized, it initializes the XML model and loads news feed data.\n\t * @private\n\t * @returns {Promise} A promise that resolves when the news data is retrieved.\n\t */\n\tpublic async getData() {\n\t\tlet sUrl: string = this.getUrl();\n\t\tlet showCustom = this.getProperty(\"type\") === NewsType.Custom;\n\t\tlet showDefault = this.getProperty(\"type\") === NewsType.Default;\n\t\tlet showRssAtom = this.getProperty(\"type\") === NewsType.NewsUrl;\n\t\tthis.mandatoryNewsFeed = [];\n\t\tif (this.fetchedFeedUrl && this.fetchedFeedUrl === sUrl) {\n\t\t\treturn;\n\t\t}\n\t\tconst endUserChange = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange();\n\t\tif (endUserChange.isEndUser) {\n\t\t\t//url scenario (developer side)\n\t\t\tconst response = await fetch(sUrl);\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`HTTP error! status: ${response.status}`);\n\t\t\t}\n\t\t\tconst contentType = response.headers.get(\"content-type\");\n\t\t\tif (contentType && contentType.includes(\"application/json\")) {\n\t\t\t\tthis._endUserResponse = (await response.json()) as ODataResponse;\n\t\t\t\tawait this.setNewsFeedFromUrl(this._endUserResponse?.value);\n\t\t\t} else {\n\t\t\t\tendUserChange.newsType = NewsType.NewsUrl;\n\t\t\t\tthis.oNewsModel = await this.initializeXmlModel(sUrl);\n\t\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t}\n\t\t} else {\n\t\t\t//key user scenarios\n\t\t\tif (!this.persDataNewsFeed) {\n\t\t\t\tawait this.setPersDataNewsFeed(showDefault);\n\t\t\t}\n\t\t\tif (showDefault) {\n\t\t\t\t//default news scenario\n\t\t\t\tthis.bNewsLoad = this.bNewsLoad || false;\n\t\t\t\tawait this.setDefaultNews();\n\t\t\t} else if (sUrl && showRssAtom) {\n\t\t\t\t//rss feed scenario\n\t\t\t\tthis.oNewsModel = await this.initializeXmlModel(sUrl);\n\t\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t} else if (showCustom) {\n\t\t\t\t//custom news scenario\n\t\t\t\tthis.bNewsLoad = this.bNewsLoad || false;\n\t\t\t\tthis.oManageMenuItem.setVisible(true);\n\t\t\t\tconst sCustomNewsFeedKey = this.getCustomFeedKey();\n\t\t\t\tif (sCustomNewsFeedKey) {\n\t\t\t\t\tawait this.setCustomNewsFeed(sCustomNewsFeedKey);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleFeedError();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.handleFeedError();\n\t\t\t}\n\t\t}\n\t\tthis.fireEvent(\"loaded\");\n\t\tthis.adjustLayout();\n\t}\n\n\t/**\n\t * Set default news feed based on the showDefault property.\n\t * @param {boolean} showDefault - Indicates whether to show the default news feed.\n\t * @param {boolean} [isKeyUserChange=false] - Indicates if the change is made by a key user.\n\t * @private\n\t */\n\tpublic async setDefaultNews() {\n\t\t// default news scenario, if url property is passed or showDefault is true\n\n\t\tlet sUrl: string = this.getUrl();\n\t\tconst isEndUser = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange().isEndUser;\n\t\tthis.defaultUrl = isEndUser ? sUrl : DEFAULT_NEWS_URL;\n\t\tthis.fetchedFeedUrl = this.defaultUrl;\n\n\t\t//reset properties\n\t\tthis.setProperty(\"newsAvailable\", true);\n\t\tthis.generateErrorMessage().setVisible(false);\n\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(true);\n\t\tthis.oManageMenuItem.setVisible(true);\n\t\tthis.setManageNewsItemVisibility(true);\n\n\t\tawait this.setCustomNewsFeed(\"\");\n\t}\n\t/**\n\t * Set the visibility of the manage news item in the menu.\n\t * @param visible - A boolean indicating whether the manage news item should be visible or not.\n\t */\n\tprivate setManageNewsItemVisibility(visible: boolean = true): boolean {\n\t\tif (this.isParentBaseLayout() && this.oManageMenuItem) {\n\t\t\tthis.oManageMenuItem.setVisible(visible);\n\t\t\treturn visible;\n\t\t}\n\t\tthis.oManageMenuItem?.setVisible(false);\n\t\treturn false;\n\t}\n\n\t/**\n\t * Check if the parent container layout is of BaseLayout.\n\t * @returns {boolean} True if the parent container layout is a BaseLayout, otherwise false.\n\t * @private\n\t */\n\tprivate isParentBaseLayout(): boolean {\n\t\tconst parentContainer = this.getParent() as NewsAndPagesContainer;\n\t\tconst parentLayout = parentContainer?._getLayout();\n\t\treturn !!(parentLayout && parentLayout instanceof BaseLayout);\n\t}\n\n\t/**\n\t * Set the pressEnabled property for news groups based on the feed articles.\n\t * If no description is found in any of the articles within a group, the pressEnabled property is set to false.\n\t * @param feeds - An array of news feeds to check for descriptions.\n\t * @returns {void}\n\t */\n\tprivate setPressEnabledForNewsGroup(feeds: INewsFeed[] = []) {\n\t\tconst newsGroups = this.getAggregation(\"newsGroup\") as NewsGroup[] | undefined;\n\t\tif (!Array.isArray(newsGroups)) return;\n\n\t\t// Build groupDetailsMap for group details to avoid multiple iterations and clean up descriptions by removing inline styles if any\n\t\tconst groupDetailsMap: IGroupDetailsMap = {};\n\t\tconst groupHasDescription: Record<string, boolean> = {};\n\n\t\t(this._defaultNewsResponse.value || []).forEach((group) => {\n\t\t\t// Clean group description\n\t\t\tif (group?.description && group.description.trim().length > 0) {\n\t\t\t\tgroup.description = this.removeInlineStylesFromDescription(group.description);\n\t\t\t}\n\t\t\tif (group?.group_id) {\n\t\t\t\tconst articles = group._group_to_article || [];\n\t\t\t\t// Clean article descriptions and check if any article has a valid description\n\t\t\t\tlet hasDescription = false;\n\t\t\t\tarticles.forEach((article: INewsFeed) => {\n\t\t\t\t\tif (article?.description && article.description.trim().length > 0) {\n\t\t\t\t\t\tarticle.description = this.removeInlineStylesFromDescription(article.description);\n\t\t\t\t\t\thasDescription = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tgroupDetailsMap[group.group_id] = articles;\n\t\t\t\tgroupHasDescription[group.group_id] = hasDescription;\n\t\t\t}\n\t\t});\n\n\t\tconst newsGroupMap: INewsGroupMap = {};\n\t\t// Iterate through the news groups and map group IDs to NewsGroup instances\n\t\tnewsGroups\n\t\t\t.filter((group) => group instanceof NewsGroup)\n\t\t\t.forEach((group) => {\n\t\t\t\tconst groupId = this.getCurrentNewsGroup(group.getId())?.group_id;\n\t\t\t\tif (groupId) {\n\t\t\t\t\tnewsGroupMap[groupId] = group;\n\t\t\t\t}\n\t\t\t});\n\n\t\t// If no description is found in any of the articles within the group,\n\t\t// \tdisable the pressEnabled property for the news group to prevent user interaction.\n\t\tfeeds.forEach((feed) => {\n\t\t\tif (!feed.group_id) return;\n\t\t\tconst newsGroup = newsGroupMap[feed.group_id];\n\t\t\tif (newsGroup && !groupHasDescription[feed.group_id]) {\n\t\t\t\tnewsGroup.getTile()?.setProperty(\"pressEnabled\", false);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @param description - The description from which inline styles need to be removed.\n\t * @returns {string} The description with inline styles removed.\n\t */\n\tprivate removeInlineStylesFromDescription(description: string): string {\n\t\treturn description.replace(/\\s*style\\s*=\\s*(['\"])[\\s\\S]*?\\1/gi, \"\");\n\t}\n\n\t/**\n\t * Retrieves the current news group data based on the provided id.\n\t *\n\t * @param id - The group ID\n\t * @returns The news group object that matches the extracted group ID, or `undefined`\n\t * if no matching group is found.\n\t * @private\n\t */\n\tpublic getCurrentNewsGroup(id: string) {\n\t\tconst newsGroupList = this._defaultNewsResponse?.value;\n\t\tconst idParts = id.split(\"-newsgroup-\");\n\t\tconst groupId = idParts.length > 1 ? idParts[1] : null;\n\n\t\tif (!groupId || !newsGroupList) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn groupId === \"placeholderNews\" ? newsGroupList[0] : newsGroupList.find((group) => group.group_id === groupId);\n\t}\n\n\t/**\n\t * Returns the custom news feed key property of NewsPanel\n\t * @returns {string} custom news feed key\n\t */\n\tpublic getCustomFeedKey(): string {\n\t\treturn this.getProperty(\"customFeedKey\") as string;\n\t}\n\n\t/**\n\t * Returns the Url property of NewsPanel\n\t * @returns {any}\n\t */\n\tpublic getUrl(): string {\n\t\treturn this.getProperty(\"url\") as string;\n\t}\n\n\t/**\n\t * Initializes an XML model for managing news data.\n\t * This method returns a Promise that resolves to the initialized XML model.\n\t */\n\n\t/**\n\t * Initializes an XML model for managing news data.\n\t * This method returns a Promise that resolves to the initialized XML model.\n\t * @param {string} sUrl rss url to load the news feed\n\t * @returns {Promise<XMLModel>} XML Document containing the news feeds\n\t */\n\tprivate async initializeXmlModel(sUrl: string): Promise<XMLModel> {\n\t\tconst oParent = this.getParent() as NewsAndPagesContainer;\n\t\treturn new Promise((resolve) => {\n\t\t\tconst oNewsModel = new XMLModel(sUrl);\n\t\t\tthis.fetchedFeedUrl = sUrl;\n\t\t\toNewsModel.setDefaultBindingMode(\"OneWay\");\n\t\t\toNewsModel.attachRequestCompleted((oEvent: Event) => {\n\t\t\t\tvoid (async () => {\n\t\t\t\t\tif (!this.bNewsLoad) {\n\t\t\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: true, count: DEFAULT_FEED_COUNT });\n\t\t\t\t\t\tthis.bNewsLoad = true;\n\t\t\t\t\t}\n\t\t\t\t\tconst oDocument = oEvent.getSource<XMLModel>().getData() as XMLDocument;\n\t\t\t\t\tawait this.loadNewsFeed(oDocument, 0);\n\t\t\t\t\tthis._eventBus.publish(\"KeyUserChanges\", \"newsFeedLoadFailed\", { showError: false, date: new Date() });\n\t\t\t\t\tresolve(oNewsModel);\n\t\t\t\t})();\n\t\t\t});\n\t\t\toNewsModel.attachRequestFailed(() => {\n\t\t\t\tthis.handleFeedError();\n\t\t\t\tif (!this.bNewsLoad) {\n\t\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: false, count: 0 });\n\t\t\t\t\tthis.bNewsLoad = true;\n\t\t\t\t}\n\t\t\t\tthis._eventBus.publish(\"KeyUserChanges\", \"newsFeedLoadFailed\", { showError: true, date: new Date() });\n\t\t\t\tresolve(oNewsModel);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Loads the news feed based on the provided document and number of feeds.\n\t * Determines the feed type (RSS, feed, custom) and binds the news tile accordingly.\n\t * @param {Document} oDocument - The document containing the news feed data.\n\t * @param {number} [noOfFeeds] - The number of feeds to be displayed. Defaults to a predefined value.\n\t */\n\tprivate async loadNewsFeed(oDocument: Document, noOfFeeds: number) {\n\t\tlet oBindingInfo: IBindingInfo;\n\t\tif (!oDocument?.querySelector(\"customFeed\") && !oDocument?.querySelector(\"defaultFeed\")) {\n\t\t\tawait this.extractAllImageUrls(oDocument, noOfFeeds || DEFAULT_FEED_COUNT);\n\t\t}\n\n\t\tif (!!oDocument?.querySelector(\"rss\") && !!oDocument?.querySelector(\"item\")) {\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/channel/item/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else if (!!oDocument?.querySelector(\"atom\") && !!oDocument?.querySelector(\"entry\")) {\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/entry/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else if (\n\t\t\t(!!oDocument?.querySelector(\"customFeed\") || !!oDocument?.querySelector(\"defaultFeed\")) &&\n\t\t\t!!oDocument?.querySelector(\"item\")\n\t\t) {\n\t\t\tthis.destroyAggregation(\"newsGroup\");\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/item/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else {\n\t\t\tthis.handleFeedError();\n\t\t\treturn;\n\t\t}\n\t\tthis.bindNewsTile(this.oNewsTile, oBindingInfo);\n\t}\n\n\t/**\n\t * Handles errors that occur during the loading of the news feed.\n\t * @returns {void}\n\t */\n\tpublic handleFeedError(): void {\n\t\tif (this.getNewsType() === NewsType.Custom || this.getNewsType() === NewsType.Default) {\n\t\t\tthis.generateErrorMessage().setVisible(true);\n\t\t\tif (!this.isParentBaseLayout()) {\n\t\t\t\tthis.setManageNewsButtonVisibility(false);\n\t\t\t}\n\t\t\tthis.oNewsTile.setVisible(false);\n\t\t} else {\n\t\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(false);\n\t\t\tthis.setProperty(\"newsAvailable\", false);\n\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t}\n\t}\n\n\t/**\n\t * Sets the URL for the news tile and triggers data fetch.\n\t *\n\t * @param {string} url - The news URL to be set.\n\t * @returns {Promise<void>} A promise that resolves once data fetching is complete.\n\t *\n\t * @private\n\t */\n\tpublic async setURL(url: string) {\n\t\tthis.setProperty(\"type\", NewsType.NewsUrl);\n\t\tthis.setProperty(\"newsAvailable\", true);\n\t\tthis.generateErrorMessage().setVisible(false);\n\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(true);\n\t\tthis.oNewsTile.setVisible(true);\n\t\tthis.setProperty(\"url\", url);\n\t\tawait this.getData();\n\t}\n\n\t/**\n\t * Adjust layout based on the device type\n\t *\n\t * @private\n\t */\n\tpublic adjustLayout() {\n\t\tif (this.getDeviceType() === DeviceType.Mobile) {\n\t\t\tthis.oNewsTile.setHeight(\"11rem\");\n\t\t\tthis.generateErrorMessage().setWidth(\"100%\");\n\t\t\tthis.oNewsTile.removeStyleClass(\"sapUiSmallMarginTop\");\n\t\t} else {\n\t\t\tthis.oNewsTile.setHeight(\"17rem\");\n\t\t\tthis.oNewsTile.addStyleClass(\"sapUiSmallMarginTop\");\n\t\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setWidth(\"100%\");\n\t\t}\n\t}\n\n\t/**\n\t * Binds the news tile with the provided binding information.\n\t * @param {sap.m.SlideTile} oSlideTile - The SlideTile control to be bound.\n\t * @param {IBindingInfo} oBindingInfo - The binding information containing the path and length of the aggregation.\n\t */\n\tprivate bindNewsTile(oSlideTile: SlideTile, oBindingInfo: IBindingInfo): void {\n\t\tif (oBindingInfo) {\n\t\t\toSlideTile.bindAggregation(\"tiles\", {\n\t\t\t\tpath: oBindingInfo.path,\n\t\t\t\tlength: oBindingInfo.length,\n\t\t\t\ttemplateShareable: false,\n\t\t\t\tfactory: (sId: string, oContext: Context) => {\n\t\t\t\t\tconst newsInfo = oContext.getObject() as XMLDocument;\n\t\t\t\t\tlet oTile;\n\t\t\t\t\tif (newsInfo.getElementsByTagName(\"link\").length > 0) {\n\t\t\t\t\t\toTile = new NewsItem(recycleId(`${sId}-news-item`), {\n\t\t\t\t\t\t\turl: this.getPropertyValue(newsInfo, \"link\") as string,\n\t\t\t\t\t\t\ttitle: this.getPropertyValue(newsInfo, \"title\") as string,\n\t\t\t\t\t\t\tsubTitle: this.getPropertyValue(newsInfo, \"description\") as string,\n\t\t\t\t\t\t\timageUrl: this.getPropertyValue(newsInfo, \"imageUrl\") as string,\n\t\t\t\t\t\t\tfooter: this.formatDate(this.getPropertyValue(newsInfo, \"pubDate\") as string)\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.addAggregation(\"newsItems\", oTile, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet sGroupId = (this.getPropertyValue(newsInfo, \"group_id\") as string) ?? \"\";\n\t\t\t\t\t\tlet newsId = sGroupId && sGroupId.trim() ? `${sId}-newsgroup-${sGroupId}` : `${sId}-newsgroup`;\n\t\t\t\t\t\tlet subTitleNews = this.getPropertyValue(newsInfo, \"subTitle\") ?? \"\";\n\t\t\t\t\t\toTile = new NewsGroup(recycleId(newsId), {\n\t\t\t\t\t\t\ttitle: this.getPropertyValue(newsInfo, \"title\") as string,\n\t\t\t\t\t\t\tsubTitle: subTitleNews || this._i18nBundle.getText(\"newsFeedDescription\"),\n\t\t\t\t\t\t\timageUrl: this.getPropertyValue(newsInfo, \"imageUrl\") as string,\n\t\t\t\t\t\t\tfooter: this.getPropertyValue(newsInfo, \"footer\") as string,\n\t\t\t\t\t\t\tpriority: this.getPropertyValue(newsInfo, \"priority\") as Priority,\n\t\t\t\t\t\t\tpriorityText: this.getPropertyValue(newsInfo, \"priorityText\") as string\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.addAggregation(\"newsGroup\", oTile, true);\n\t\t\t\t\t}\n\t\t\t\t\treturn oTile.getTile();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getPropertyValue(newsInfo: XMLDocument, propertyName: string) {\n\t\treturn newsInfo.getElementsByTagName(propertyName)?.[0]?.textContent;\n\t}\n\n\t/**\n\t * Extracts images for all the news tiles\n\t * @param {Document} oDocument - The document containing the news feed data.\n\t * @param {number} [noOfFeeds] - The number of feeds to be displayed. Defaults to a predefined value.\n\t */\n\tprivate async extractAllImageUrls(oDocument: Document, noOfFeeds: number) {\n\t\tfor (let i = 0; i < noOfFeeds; i++) {\n\t\t\tconst oItemElement = oDocument?.getElementsByTagName(\"item\")[i];\n\t\t\tconst sUrl: string = await this.extractImage(oItemElement.getElementsByTagName(\"link\")[0].textContent as string);\n\t\t\tconst oImageUrl = oDocument.createElement(\"imageUrl\");\n\t\t\toImageUrl.textContent = sUrl;\n\t\t\toItemElement.appendChild(oImageUrl);\n\t\t}\n\t}\n\n\t/**\n\t * Converts the given date to a relative date-time format.\n\t * @param {string} timeStamp - The timestamp to be converted.\n\t * @returns {string} The date in relative date-time format.\n\t */\n\tprivate formatDate(timeStamp: string): string {\n\t\tconst relativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\t\tstyle: \"medium\",\n\t\t\trelative: true,\n\t\t\trelativeStyle: \"short\"\n\t\t});\n\t\treturn relativeDateFormatter.format(new Date(timeStamp));\n\t}\n\n\t/**\n\t * Returns the favourite news feed for the custom news\n\t * @returns {IPersDataNewsFeed}\n\t * @private\n\t */\n\tpublic getPersDataNewsFeed() {\n\t\treturn this.persDataNewsFeed;\n\t}\n\n\t/**\n\t * Extracts the image URL from the provided HREF link or link.\n\t * @param {string} sHrefLink - The HREF link containing the image URL.\n\t * @returns {Promise} A promise that resolves to the extracted image URL.\n\t */\n\tprivate extractImage(sHrefLink: string): Promise<string> {\n\t\tconst fnLoadPlaceholderImage = () => {\n\t\t\tconst sPrefix = sap.ui.require.toUrl(\"sap/cux/home/img\");\n\t\t\tthis.image = this.image ? this.image + 1 : 1;\n\t\t\tthis.image = this.image < 9 ? this.image : 1;\n\t\t\treturn `${sPrefix}/${this.image}.jpg`;\n\t\t};\n\n\t\treturn fetch(sHrefLink)\n\t\t\t.then((res) => res.text())\n\t\t\t.then((sHTML) => {\n\t\t\t\tconst aMatches = sHTML.match(/<meta[^>]*property=[\"']og:image[\"'][^>]*content=[\"']([^\"']+)[\"'][^>]*>/i);\n\t\t\t\treturn Array.isArray(aMatches) && aMatches[1] ? aMatches[1] : fnLoadPlaceholderImage();\n\t\t\t})\n\t\t\t.catch(fnLoadPlaceholderImage);\n\t}\n\n\tpublic getNewsType(): NewsType {\n\t\treturn (this.getParent() as NewsAndPagesContainer)?.getIsEndUserChange?.()?.newsType || (this.getProperty(\"type\") as NewsType);\n\t}\n\t/**\n\t * Checks if the custom file format is CSV based on the custom file name.\n\t *\n\t * @param {string} fileName - The custom file name.\n\t * @returns {boolean} True if the file format is CSV, otherwise false.\n\t */\n\tprivate isCSVFileFormat(fileName: string): boolean {\n\t\treturn fileName.split(\".\").pop()?.toLowerCase() === (\"csv\" as string);\n\t}\n\t/**\n\t * Sets the favorite news feed for the user by retrieving personalization data.\n\t *\n\t * This method asynchronously fetches the user's personalization data and if defaultFeed is true, updates favNewsFeed as\n\t * `defaultNewsFeed`. If defaultFeed is false, it updates it with the `favNewsFeed` news feed information.\n\t * @param {boolean} [defaultFeed] - Indicates whether to set the default news feed or favorite (custom) news feed.\n\t * @returns {Promise<void>} A promise that resolves when the favorite news feed is set.\n\t * @private\n\t */\n\tprivate async setPersDataNewsFeed(defaultFeed?: boolean): Promise<void> {\n\t\tconst personalizer = await this._getUserPersonalization();\n\t\tconst persData = await personalizer?.read();\n\t\tthis.persDataNewsFeed = (defaultFeed ? persData?.defaultNewsFeed : persData?.favNewsFeed) as IPersDataNewsFeed;\n\t}\n\n\t/**\n\t * Sets the news feed type (Default or Custom) based on the provided data structure.\n\t *\n\t * @param {INewsFeed[]} data - News feed data from the URL.\n\t * @returns {Promise<void>} Resolves after setting the appropriate feed.\n\t */\n\tpublic async setNewsFeedFromUrl(data: INewsFeed[]): Promise<void> {\n\t\tconst item = data?.[0];\n\n\t\tif (item && \"group_id\" in item && \"title\" in item) {\n\t\t\t(this.getParent() as NewsAndPagesContainer).getIsEndUserChange().newsType = NewsType.Default;\n\t\t\tawait this.setDefaultNews();\n\t\t} else if (item && \"LineOfBusiness\" in item) {\n\t\t\t(this.getParent() as NewsAndPagesContainer).getIsEndUserChange().newsType = NewsType.Custom;\n\t\t\tthis.oManageMenuItem.setVisible(true);\n\t\t\tawait this.setCustomNewsFeed(\"\");\n\t\t} else {\n\t\t\tthis.handleFeedError();\n\t\t}\n\t}\n\n\t/**\n\t * This method retrieves the count and feeds of the custom news feed asynchronously.\n\t * If the count is not zero, it loads the custom news feed data and returns the feeds.\n\t * @param {string} sFeedId - The ID of the custom news feed to set.\n\t * @returns {Promise} A promise that resolves to an array of news feeds.\n\t * @private\n\t */\n\tpublic async setCustomNewsFeed(sFeedId: string): Promise<void> {\n\t\ttry {\n\t\t\tthis.oNewsTile.setVisible(true);\n\t\t\tthis.generateErrorMessage().setVisible(false);\n\t\t\tconst feedType = this.getNewsType();\n\t\t\tconst isDefaultNews = feedType === NewsType.Default;\n\t\t\tawait this.setPersDataNewsFeed(isDefaultNews);\n\t\t\tconst customFileName = this.getProperty(\"customFileName\") as string;\n\t\t\tconst showAllPrepRequired = this.isCSVFileFormat(customFileName)\n\t\t\t\t? false\n\t\t\t\t: (this.persDataNewsFeed?.showAllPreparationRequired ?? true);\n\n\t\t\tif (this.isCSVFileFormat(customFileName)) {\n\t\t\t\tCUSTOM_NEWS_FEED.EXCLUDE_FIELDS.push(\"PreparationRequired\");\n\t\t\t}\n\t\t\tconst showPrep = isDefaultNews ? true : showAllPrepRequired;\n\t\t\tlet newsFeeds = await this.getCustomOrDefaultNewsFeed(sFeedId || \"\", showPrep);\n\n\t\t\tif (newsFeeds.length === 0) {\n\t\t\t\tthrow new Error(\"Error: No news feed available\");\n\t\t\t}\n\t\t\tconst selectedItems = this.persDataNewsFeed?.items;\n\n\t\t\t// Handle no favorite feed case\n\t\t\tconst isSelectedEmpty = selectedItems?.length === 0;\n\n\t\t\tif (!isDefaultNews && isSelectedEmpty) {\n\t\t\t\t(this.getParent() as NewsAndPagesContainer)?.panelLoadedFn(\"News\", { loaded: true, count: 0 });\n\t\t\t\tthrow new Error(\"Error: No fav news feed available\");\n\t\t\t}\n\n\t\t\t// Filter feeds based on personalization\n\t\t\tif (selectedItems?.length) {\n\t\t\t\tnewsFeeds = newsFeeds.filter((feed) => {\n\t\t\t\t\t// if its defaultNews then we show everything except the group ids present inside persDataNewsFeed items\n\t\t\t\t\t// if the group id is mandatory then we show it\n\t\t\t\t\tif (isDefaultNews) {\n\t\t\t\t\t\treturn !selectedItems.includes(feed.group_id as string) || this.mandatoryNewsFeed.includes(feed.group_id as string);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if its customNews we show only the groups that is present in persDataNewsFeed items\n\t\t\t\t\t\treturn selectedItems.includes(feed.title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (newsFeeds.length === 0) {\n\t\t\t\t\t(this.getParent() as NewsAndPagesContainer)?.panelLoadedFn(\"News\", { loaded: true, count: 0 });\n\t\t\t\t\tthrow new Error(\"Error: No news feed available after filtering\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.loadCustomNewsFeed(newsFeeds, sFeedId ? \"customFeed\" : \"defaultFeed\");\n\t\t\tif (isDefaultNews) {\n\t\t\t\tthis.fetchedFeedUrl = this.defaultUrl;\n\t\t\t\t// If no description is found in any of the articles within a group, the pressEnabled property is set to false\n\t\t\t\tthis.setPressEnabledForNewsGroup(newsFeeds);\n\t\t\t} else {\n\t\t\t\tthis.fetchedFeedUrl = \"\";\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t\tthis.handleFeedError();\n\t\t}\n\t}\n\n\t/**\n\t * Filters the provided list of news groups to include only those that are marked as mandatory.\n\t *\n\t * A news group is considered mandatory if:\n\t * - Its `mandatory_text` property (at the top level) is set to \"TRUE\" (case-insensitive).\n\t *\n\n\t * @param newsGroups - An array of news groups to filter.\n\t * @returns An array of news groups that are marked as mandatory.\n\t * @private\n\t */\n\tprivate filterMandatoryNews(newsGroups: INewsFeed[]): INewsFeed[] {\n\t\treturn newsGroups.filter(\n\t\t\t({ mandatory_text, mandatory }) => mandatory_text?.toUpperCase() === \"TRUE\" || mandatory?.toUpperCase() === \"X\"\n\t\t);\n\t}\n\n\t/**\n\t * Set the priority of group to critical if any article within the group is critical.\n\t *\n\t * A news group is considered critical if:\n\t * - The group's `priority` is set to `\"1\"`.\n\t * - Any article within the group's `_group_to_article` array has a `priority` of `\"1\"`.\n\t *\n\t * If any article within a group is critical, the group's `priority` is updated to `\"1\"` and group's `priorityText` changed to \"Very high\".\n\t *\n\t * @param newsGroups - An array of news groups.\n\t *\n\t */\n\tprivate markGroupsWithCriticalArticles(newsGroups: INewsFeed[]): void {\n\t\tfor (const group of newsGroups) {\n\t\t\tconst criticalArticle = group._group_to_article?.find((article) => article.priority === \"1\");\n\t\t\t//make newsgroup priority to Veryhigh\n\t\t\tif (criticalArticle) {\n\t\t\t\tgroup.priority = criticalArticle.priority;\n\t\t\t\tgroup.priorityText = criticalArticle.priorityText;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the default news feed details from the given OData response.\n\t *\n\t * @param newsResponse - The OData response containing the news feed data.\n\t * @param showAllPreparationRequired - A boolean flag indicating whether to filter news items that require preparation.\n\t * @returns An array of default news feed items.\n\t * @private\n\t */\n\tprivate getDefaultNewsFeedDetails(newsResponse: ODataResponse) {\n\t\tlet newsFeedItems: INewsFeed[] = JSON.parse(JSON.stringify(newsResponse.value || [])) as INewsFeed[];\n\t\tconst defaultNews: INewsFeed[] = [];\n\t\tconst defaultFeedDict = {} as Record<string, string>;\n\t\tthis.mandatoryNewsFeed = [];\n\t\tif (newsFeedItems?.length > 0) {\n\t\t\tthis.mandatoryNewsFeed = this.filterMandatoryNews(newsFeedItems).map((oFeed) => oFeed.group_id || \"\");\n\t\t\tthis.markGroupsWithCriticalArticles(newsFeedItems);\n\n\t\t\tfor (const feed of newsFeedItems) {\n\t\t\t\tconst title = feed.title;\n\t\t\t\tlet subTitle = \"\";\n\t\t\t\tif (!defaultFeedDict[title]) {\n\t\t\t\t\tsubTitle = feed.subTitle || feed.description || \"\";\n\t\t\t\t\tdefaultNews.push({\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tfooter: feed?.footer_text,\n\t\t\t\t\t\timageUrl: this.getDefaultFeedImage(feed),\n\t\t\t\t\t\tgroup_id: feed.group_id,\n\t\t\t\t\t\tsubTitle: subTitle,\n\t\t\t\t\t\tpriority: feed?.priority == \"1\" ? Priority.Medium : Priority.None,\n\t\t\t\t\t\tpriorityText: feed?.priority == \"1\" ? this._i18nBundle.getText(\"criticalNews\") : \"\"\n\t\t\t\t\t});\n\t\t\t\t\tdefaultFeedDict[title] = title;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn defaultNews;\n\t}\n\n\t/**\n\t * Returns the mandatory news feed details\n\t * If the mandatory news feed is not set, it returns an empty array.\n\t *\n\t * @returns {INewsFeed[]} The mandatory news feed details.\n\t * @private\n\t */\n\tpublic getMandatoryDefaultNewsFeed() {\n\t\treturn this.mandatoryNewsFeed || [];\n\t}\n\n\t/**\n\t * Retrieves the default news response, either from cache or by fetching it.\n\t * @returns {Promise<ODataResponse>} A promise that resolves to the default news data\n\t * @private\n\t */\n\tprivate getDefaultNewsResponse(): Promise<ODataResponse> {\n\t\t// Return cached data if available\n\t\tif (this._defaultNewsResponse) {\n\t\t\treturn Promise.resolve(this._defaultNewsResponse);\n\t\t}\n\n\t\tif (!this._defaultNewsPromise) {\n\t\t\tthis._defaultNewsPromise = this.fetchDefaultNews();\n\t\t}\n\n\t\treturn this._defaultNewsPromise;\n\t}\n\n\t/**\n\t *\n\t * @returns {ODataResponse} The no update placeholder news group with enriched titles and descriptions to show when there are no updates\n\t * @private\n\t */\n\tprivate getNoUpdatesPlaceholder(): ODataResponse {\n\t\tconst placeholderTitle = this._i18nBundle.getText(\"placeholderNewsTitle\") as string;\n\t\tconst placeholderDescription = this._i18nBundle.getText(\"placeholderNewsDescription\");\n\n\t\tconst enrichedNewsPlaceholder = {\n\t\t\t...DEFAULT_NEWS_PLACEHOLDER,\n\t\t\tvalue: DEFAULT_NEWS_PLACEHOLDER.value.map((group) => ({\n\t\t\t\t...group,\n\t\t\t\ttitle: placeholderTitle,\n\t\t\t\tdescription: placeholderDescription,\n\t\t\t\t_group_to_article: group._group_to_article.map((article) => ({\n\t\t\t\t\t...article,\n\t\t\t\t\ttitle: placeholderTitle,\n\t\t\t\t\tdescription: \"\"\n\t\t\t\t}))\n\t\t\t}))\n\t\t};\n\t\treturn enrichedNewsPlaceholder;\n\t}\n\n\t/**\n\t * Returns if its a no updates new feed group or not\n\t * This indicates whether the news feed is a static no updates placeholder news feed.\n\t * @private\n\t */\n\tpublic isNoUpdatesNewsFeed(): boolean {\n\t\treturn this._noUpdatesNewsFeed;\n\t}\n\n\t/**\n\t * Fetches the default news data from the server.\n\t * @returns {Promise<ODataResponse>} A promise that resolves to the fetched news data\n\t * @throws {Error} If the network request fails or returns a non-OK status\n\t * @private\n\t */\n\tprivate async fetchDefaultNews(): Promise<ODataResponse> {\n\t\ttry {\n\t\t\tconst navigationService = await Container.getServiceAsync<Navigation>(\"Navigation\");\n\t\t\tconst [{ supported }] = await navigationService.isNavigationSupported([\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tsemanticObject: \"NewsArticle\",\n\t\t\t\t\t\taction: \"display\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]);\n\t\t\tif (supported) {\n\t\t\t\tif (this._endUserResponse) {\n\t\t\t\t\tthis._defaultNewsResponse = this._endUserResponse;\n\t\t\t\t} else {\n\t\t\t\t\tconst response = await fetch(this.defaultUrl || DEFAULT_NEWS_URL);\n\n\t\t\t\t\tif (!response.ok) {\n\t\t\t\t\t\tthrow new Error(`HTTP error! status: ${response.status}`);\n\t\t\t\t\t}\n\t\t\t\t\tthis._defaultNewsResponse = (await response.json()) as ODataResponse;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the response is not supported or empty, set the default news response to placeholder news\n\t\t\tif (!supported || !this._defaultNewsResponse?.value?.length) {\n\t\t\t\tthis._defaultNewsResponse = this.getNoUpdatesPlaceholder();\n\t\t\t\tthis._noUpdatesNewsFeed = true;\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t}\n\n\t\t\treturn this._defaultNewsResponse;\n\t\t} catch (error) {\n\t\t\tthis._defaultNewsPromise = null;\n\t\t\tLog.error(error as string);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves a custom news feed based on the provided feed ID.\n\t * If no feed ID is provided, it returns the default news feed.\n\t *\n\t * @param {string} sFeedId - The ID of the custom news feed to retrieve. If not provided, the default news feed is returned.\n\t * @param {boolean} showAllPreparationRequired - A flag indicating whether to show all preparation required.\n\t * @returns {Promise<INewsFeed[]>} A promise that resolves to an array of custom news feed items.\n\t * @private\n\t */\n\tpublic async getCustomOrDefaultNewsFeed(sFeedId: string, showAllPreparationRequired: boolean): Promise<INewsFeed[]> {\n\t\tconst feedType = this.getNewsType();\n\t\tconst isDefaultNews = feedType === NewsType.Default;\n\t\tif (isDefaultNews) {\n\t\t\tawait this.getDefaultNewsResponse();\n\t\t\tlet aDefaultgroups = this.getDefaultNewsFeedDetails(this._defaultNewsResponse);\n\t\t\treturn aDefaultgroups;\n\t\t} else {\n\t\t\treturn this.getCustomFeedData(sFeedId, showAllPreparationRequired);\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves custom news feed items identified by the provided feed ID and settings.\n\t * It processes the response data and returns an array of custom news feed items.\n\t * @param {string} sFeedId - The ID of the custom news feed.\n\t * @param {boolean} showAllPreparationRequired - Indicates whether to show all preparation required.\n\t * @returns {Promise} A Promise that resolves to an array of custom news feed items.\n\t * @private\n\t */\n\tprivate async getCustomFeedData(sFeedId: string, showAllPreparationRequired: boolean): Promise<INewsFeed[]> {\n\t\ttry {\n\t\t\tlet newsDetailUrl;\n\t\t\tconst isEnduser = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange().isEndUser;\n\t\t\tnewsDetailUrl = isEnduser ? this.getUrl() : this.getNewsFeedDetailsUrl({ changeId: sFeedId, showAllPreparationRequired });\n\t\t\tif (!this.customNewsFeedCache.has(newsDetailUrl)) {\n\t\t\t\tthis.customNewsFeedCache.set(newsDetailUrl, this.getAuthNewsFeed(newsDetailUrl));\n\t\t\t}\n\t\t\tconst authorizedNewsFeeds = (await this.customNewsFeedCache.get(newsDetailUrl)) as INewsFeed[];\n\t\t\tconst oFeedDict: { [key: string]: string } = {};\n\t\t\tconst aFeeds: INewsFeed[] = [];\n\t\t\tif (authorizedNewsFeeds?.length > 0) {\n\t\t\t\tauthorizedNewsFeeds.forEach((oFeed: INewsFeed) => {\n\t\t\t\t\tconst title = oFeed[CUSTOM_NEWS_FEED.TITLE] as INewsLink;\n\t\t\t\t\tif (!oFeedDict[title.value]) {\n\t\t\t\t\t\taFeeds.push({\n\t\t\t\t\t\t\ttitle: title.value,\n\t\t\t\t\t\t\tfooter: (oFeed[CUSTOM_NEWS_FEED.VALIDITY] as INewsLink)?.value,\n\t\t\t\t\t\t\timageUrl: this.getCustomFeedImage(title.value)\n\t\t\t\t\t\t});\n\t\t\t\t\t\toFeedDict[title.value] = title.value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn aFeeds; // group details\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t\tthrow new Error(err as string);\n\t\t}\n\t}\n\n\t/**\n\t * Generates the URL for retrieving news feed details based on the provided news object.\n\t * The generated URL limits the number of results to 999.\n\t * @param {INewsItem} oNews - The news object containing properties such as changeId, title, and showAllPreparationRequired.\n\t * @returns {string} The URL for retrieving news feed details.\n\t */\n\tpublic getNewsFeedDetailsUrl(oNews: INewsItem) {\n\t\tlet sUrl = NEWS_FEED_READ_API + \"?$filter=ChangeId eq \" + \"'\" + oNews.changeId + \"'\";\n\t\tconst customFileName = this.getProperty(\"customFileName\") as string;\n\t\tif (!this.isCSVFileFormat(customFileName) && oNews.showAllPreparationRequired) {\n\t\t\tsUrl = sUrl + \" and PreparationRequired eq true\";\n\t\t}\n\t\treturn sUrl + \"&$top=999\";\n\t}\n\n\t/**\n\t * Retrieves the news feed from the specified URL after applying authorization filtering based on the available apps.\n\t * If the news feed contains impacted artifacts, it checks if the current user has access to any of the impacted apps.\n\t * If the user has access to at least one impacted app, the news feed is included in the returned array.\n\t * @param {string} sNewsUrl - The URL of the news feed.\n\t * @returns {Array} The filtered array of news feed items authorized for the user.\n\t */\n\tpublic async getAuthNewsFeed(sNewsUrl: string, newsTitle?: string) {\n\t\ttry {\n\t\t\tconst [aAvailableApps, aNewsFeed] = await Promise.all([\n\t\t\t\tthis.getAllAvailableApps(),\n\t\t\t\tthis.getNewsFeedDetails(sNewsUrl, newsTitle)\n\t\t\t]);\n\t\t\tif (aAvailableApps.length === 0) {\n\t\t\t\treturn aNewsFeed;\n\t\t\t}\n\t\t\treturn this.arrangeNewsFeeds(aNewsFeed, aAvailableApps);\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t}\n\t}\n\n\t/**\n\t * If the news feed contains impacted artifacts, it checks if the current user has access to any of the impacted apps.\n\t * If the user has access to at least one impacted app, the news feed is included in the returned array.\n\t * @param {INewsFeed[]} aNewsFeed - array of news feed\n\t * @param {IAvailableApp[]} aAvailableApps - array of all availabel apps\n\t * @returns {Array} The filtered array of news feed items authorized for the user.\n\t */\n\tprivate arrangeNewsFeeds(aNewsFeed: INewsFeed[], aAvailableApps: IAvailableApp[]) {\n\t\tconst aAuthNewsFeed: INewsFeed[] = [];\n\n\t\taNewsFeed.forEach((oNewsFeed: INewsFeed) => {\n\t\t\tif ((oNewsFeed.Category as INewsLink).value !== \"App\" || !(oNewsFeed.ImpactedArtifacts as INewsLink).value) {\n\t\t\t\taAuthNewsFeed.push(oNewsFeed);\n\t\t\t} else {\n\t\t\t\tconst aImpactedArtifacts: string[] = (oNewsFeed.ImpactedArtifacts as INewsLink).value.split(\"\\n\");\n\t\t\t\tfor (let impactedArtifact of aImpactedArtifacts) {\n\t\t\t\t\tconst oImpactedArtifact = impactedArtifact;\n\t\t\t\t\tif (oImpactedArtifact && this.isAuthFeed(aAvailableApps, impactedArtifact)) {\n\t\t\t\t\t\taAuthNewsFeed.push(oNewsFeed);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn aAuthNewsFeed;\n\t}\n\n\t/**\n\t * takes all available apps list and the impacted atifact from the news and returns if it's valid\n\t * @param {IAvailableApp[]} aAvailableApps - Array of all available apps\n\t * @param {string} oImpactedArtifact - impacted artifact form the news\n\t * @returns {boolean} checks if the news is authenticated with the available apps list\n\t */\n\tprivate isAuthFeed(aAvailableApps: IAvailableApp[], oImpactedArtifact: string) {\n\t\tconst fioriIdSplitter = \"|\";\n\t\tif (oImpactedArtifact.includes(fioriIdSplitter)) {\n\t\t\tconst aTokens = oImpactedArtifact.split(fioriIdSplitter);\n\t\t\tconst sFioriId = (aTokens[aTokens.length - 1] || \"\").trim();\n\t\t\tif (sFioriId) {\n\t\t\t\tconst index = aAvailableApps.findIndex((oApp: IAvailableApp) => {\n\t\t\t\t\treturn sFioriId === oApp?.signature?.parameters[\"sap-fiori-id\"]?.defaultValue?.value;\n\t\t\t\t});\n\t\t\t\treturn index > -1;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Retrieves all available apps from the ClientSideTargetResolution service for authorization filtering.\n\t * @returns {Array} An array of available apps.\n\t */\n\tprivate async getAllAvailableApps(): Promise<IAvailableApp[]> {\n\t\ttry {\n\t\t\tconst oService = await Container.getServiceAsync<IAppConfiguration>(\"ClientSideTargetResolution\");\n\t\t\treturn oService?._oAdapter._aInbounds || [];\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tLog.error(err.message);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the news feed details from the specified URL, including translation and formatting of field labels.\n\t * @param {string} sUrl - The URL of the news feed details.\n\t * @returns {Array} The array of news feed items with translated and formatted field labels.\n\t */\n\tprivate async getNewsFeedDetails(sUrl: string, newsTitle?: string): Promise<INewsFeed[]> {\n\t\tif (this.customNewsFeedCache.has(sUrl)) {\n\t\t\tconst newsFeedDetails = await this.customNewsFeedCache.get(sUrl);\n\t\t\treturn this.filterNewsOnTitle(newsFeedDetails as INewsFeed[], newsTitle);\n\t\t}\n\n\t\tconst fnFormattedLabel = (sLabel: string) => sLabel.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\");\n\t\tconst [newsResponse, translationResponse] = await Promise.all([\n\t\t\tthis._endUserResponse ? Promise.resolve(this._endUserResponse) : (HttpHelper.GetJSON(sUrl) as Promise<{ value: INewsFeed[] }>),\n\t\t\tthis.getTranslatedText(this.getCustomFeedKey())\n\t\t]);\n\t\tlet aNews: INewsFeed[] = JSON.parse(JSON.stringify((newsResponse as INewsResponse).value || [])) as INewsFeed[];\n\t\tconst aTranslation = JSON.parse(JSON.stringify((translationResponse as INewsResponse).value || [])) as ITranslatedText[];\n\t\taNews = this.filterNewsOnTitle(aNews, newsTitle);\n\t\treturn aNews.map((oNews: INewsFeed) => {\n\t\t\tconst aFields = Object.keys(oNews);\n\t\t\tconst aExpandFields: INewsLink[] = [];\n\t\t\taFields.forEach((oField) => {\n\t\t\t\tconst oTranslatedField = aTranslation.find(\n\t\t\t\t\t(oTranslation: ITranslatedText) => oTranslation?.ColumnName?.toUpperCase() === oField.toUpperCase()\n\t\t\t\t);\n\t\t\t\tconst oTranslatedFieldName = (oTranslatedField?.TranslatedName as string) || fnFormattedLabel(oField);\n\t\t\t\toNews[oField] = { label: oTranslatedFieldName, value: oNews[oField] as string } as INewsLink;\n\t\t\t\tif (!CUSTOM_NEWS_FEED.EXCLUDE_FIELDS.includes(oField)) {\n\t\t\t\t\taExpandFields.push(oNews[oField] as INewsLink);\n\t\t\t\t}\n\t\t\t});\n\t\t\toNews.Link = {\n\t\t\t\tlabel: this._i18nBundle.getText(\"readMoreLink\") as string,\n\t\t\t\tvalue: oNews[CUSTOM_NEWS_FEED.LINK] as string,\n\t\t\t\ttext: \"Link\"\n\t\t\t};\n\t\t\toNews.expanded = aNews.length === 1;\n\t\t\toNews.expandFields = aExpandFields;\n\t\t\treturn oNews;\n\t\t});\n\t}\n\n\t/**\n\t * Filters the news feed data based on the LOB title for the news detail dialog\n\t *\n\t * @private\n\t * @param {INewsFeed[]} aNews complete news feed data\n\t * @param {?string} [newsTitle] title of the line of business to be filtered on\n\t * @returns {INewsFeed[]} filtered news feed for provided LOB title\n\t */\n\tprivate filterNewsOnTitle(aNews: INewsFeed[], newsTitle?: string): INewsFeed[] {\n\t\tif (newsTitle) {\n\t\t\treturn aNews.filter((newsDetail: INewsFeed) => {\n\t\t\t\treturn (newsDetail.LineOfBusiness as INewsLink).value === newsTitle;\n\t\t\t});\n\t\t}\n\t\treturn aNews;\n\t}\n\n\t/**\n\t * Retrieves translated text for news feed fields based on the specified feed ID.\n\t * @param {string} sFeedId - The ID of the custom news feed\n\t * @returns {Promise} A promise resolving to the translated text for news feed fields.\n\t */\n\tprivate getTranslatedText(sFeedId: string) {\n\t\ttry {\n\t\t\tconst sUrl = NEWS_FEED_TRANSLATION_API + \"?$filter=Changeid eq '\" + sFeedId + \"'\";\n\t\t\tif (!this.customNewsFeedCache.has(sUrl)) {\n\t\t\t\tthis.customNewsFeedCache.set(sUrl, HttpHelper.GetJSON(sUrl) as Promise<INewsFeed[]>);\n\t\t\t}\n\t\t\treturn this.customNewsFeedCache.get(sUrl);\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tLog.error(err.message);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads custom news feed into the news panel after parsing JSON feed data to XML format.\n\t * @param {Array} feeds - The array of custom news feed items.\n\t */\n\tprivate async loadCustomNewsFeed(feeds: INewsFeed[], feedType: string) {\n\t\tconst oXMLResponse = this.parseJsonToXml(JSON.parse(JSON.stringify(feeds)) as JSON[], feedType);\n\t\tconst oParent = this.getParent() as NewsAndPagesContainer;\n\t\tif (!this.oNewsModel) {\n\t\t\tthis.oNewsModel = new XMLModel(oXMLResponse);\n\t\t\tif (!this.bNewsLoad) {\n\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: true, count: DEFAULT_FEED_COUNT });\n\t\t\t\tthis.bNewsLoad = true;\n\t\t\t}\n\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t} else {\n\t\t\tthis.oNewsTile.unbindAggregation(\"tiles\", false); // Unbind the bound aggregation\n\t\t\tthis.oNewsTile.destroyAggregation(\"tiles\"); // Removes old tiles\n\t\t\tthis.oNewsModel.setData(oXMLResponse);\n\t\t}\n\t\tawait this.loadNewsFeed(oXMLResponse, feeds.length);\n\t}\n\n\t/**\n\t * Parses JSON data into XML format.\n\t * @param {JSON[]} json - The JSON data to be parsed into XML.\n\t * @returns {XMLDocument} The XML document representing the parsed JSON data.\n\t */\n\tprivate parseJsonToXml(json: JSON[], feedType: string): XMLDocument {\n\t\tconst _transformJsonForXml = (aData: JSON[]) => aData.map((data: JSON) => ({ item: data }));\n\t\tconst _jsonToXml = (json: JSON) => {\n\t\t\tlet xml = \"\";\n\t\t\tlet key: string;\n\t\t\tfor (key in json) {\n\t\t\t\tconst value = json[key as keyof typeof json];\n\t\t\t\tif (value) {\n\t\t\t\t\tif (typeof value === \"object\") {\n\t\t\t\t\t\txml += `<${key}>${_jsonToXml(value)}</${key}>`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\txml += `<${key}>${value as string}</${key}>`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn xml.replace(/<\\/?\\d+>/g, \"\");\n\t\t};\n\t\tconst transformedJson: JSON = JSON.parse(JSON.stringify(_transformJsonForXml(json))) as JSON;\n\t\tlet xml = \"<?xml version='1.0' encoding='UTF-8'?>\";\n\t\tconst rootToken = feedType;\n\t\txml += `<${rootToken}>`;\n\t\txml += _jsonToXml(transformedJson);\n\t\txml += `</${rootToken}>`;\n\t\txml = xml.replaceAll(\"&\", \"&\");\n\t\tconst parser = new DOMParser();\n\t\treturn parser.parseFromString(xml, \"text/xml\");\n\t}\n\n\t/**\n\t * Randomly selects an image from the available images for the feed item.\n\t * @param {string} sFileName - The file name of the custom news feed item.\n\t * @returns {string} The URL of the image for the feed item.\n\t * @private\n\t */\n\tprivate getCustomFeedImage(sFileName: string) {\n\t\tconst sFileBasePath = sap.ui.require.toUrl(CUSTOM_NEWS_FEED.IMAGE_URL);\n\t\tlet sFilePath = sFileBasePath + CUSTOM_IMAGES.default[0];\n\t\tconst files = CUSTOM_IMAGES[sFileName] || [];\n\t\tlet randomIndex = 0;\n\t\tif (files.length > 0) {\n\t\t\tconst randomArray = new window.Uint32Array(1);\n\t\t\twindow.crypto.getRandomValues(randomArray);\n\t\t\trandomIndex = randomArray[0] % 3;\n\t\t\tsFilePath = sFileBasePath + files[randomIndex];\n\t\t}\n\t\treturn sFilePath;\n\t}\n\n\t/**\n\t * Retrieves the default feed image for a given news feed.\n\t *\n\t * @param {INewsFeed} oFeed - The custom news feed object.\n\t * @returns {string} The base64 encoded image string with the appropriate MIME type, or an empty string if no valid image is found.\n\t * @private\n\t */\n\tprivate getDefaultFeedImage(oFeed: INewsFeed): string {\n\t\tconst imgId = oFeed?.bg_image_id;\n\t\tconst groupImg = oFeed?._group_to_image;\n\t\tconst getRandomDefaultImage = () => {\n\t\t\tconst sPrefix = sap.ui.require.toUrl(\"sap/cux/home/img\");\n\t\t\tconst random = Math.floor(Math.random() * 15) + 1;\n\t\t\treturn `${sPrefix}/${random}.jpg`;\n\t\t};\n\t\tif (!groupImg || groupImg?.image_id !== imgId || !groupImg?.bg_image) {\n\t\t\treturn getRandomDefaultImage();\n\t\t}\n\n\t\tlet mimeType = groupImg?.mime_type;\n\t\tconst groupBgImg = groupImg?.bg_image;\n\n\t\tif (mimeType === \"application/octet-stream\") {\n\t\t\tmimeType = \"image/jpeg\";\n\t\t}\n\n\t\t// if the image is not a valid base64 string, convert it to a standard base64 string\n\t\t// and return the data URL else return the data URL directly\n\t\tif (!this.isValidBase64(groupBgImg)) {\n\t\t\tconst base64Data = this.base64UrlToBase64(groupBgImg);\n\t\t\treturn `data:${mimeType};base64,${base64Data}`;\n\t\t}\n\t\treturn `data:${mimeType};base64,${groupBgImg}`;\n\t}\n\n\t/**\n\t * Converts a base64 URL string to a standard base64 string.\n\t *\n\t * @param {string} base64Url - The base64 URL string to convert.\n\t * @returns {string} The converted base64 string.\n\t * @private\n\t */\n\tprivate base64UrlToBase64(base64Url: string) {\n\t\tlet base64 = base64Url?.replace(/_/g, \"/\").replace(/-/g, \"+\");\n\n\t\t// Add padding if missing (Base64 should be a multiple of 4)\n\t\twhile (base64.length % 4 !== 0) {\n\t\t\tbase64 += \"=\";\n\t\t}\n\t\treturn base64;\n\t}\n\n\t/**\n\t * Checks if a string is a valid base64 encoded string.\n\t * @param input The string to validate\n\t * @returns boolean indicating if the string is valid base64\n\t * @private\n\t */\n\tprivate isValidBase64(input: string): boolean {\n\t\t// Check if the string exists and isn't empty\n\t\tif (!input || input.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Canonical base64 strings use these characters\n\t\t// A-Z, a-z, 0-9, +, /, and = for padding\n\t\tconst base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;\n\n\t\t// Check if the string matches the base64 character set\n\t\tif (!base64Regex.test(input)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if the length is valid\n\t\t// Base64 strings have a length that is a multiple of 4\n\t\tif (input.length % 4 !== 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check padding rules\n\t\tif (input.includes(\"=\")) {\n\t\t\t// If there is padding, it must be at the end\n\t\t\tconst paddingIndex = input.indexOf(\"=\");\n\t\t\tconst lastPaddingIndex = input.lastIndexOf(\"=\");\n\t\t\t// Padding should only occur at the end\n\t\t\tif (paddingIndex !== input.length - (input.length - paddingIndex)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Can only have 1 or 2 padding characters\n\t\t\tif (input.length - paddingIndex > 2) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Make sure all padding is at the end\n\t\t\tif (paddingIndex !== lastPaddingIndex && lastPaddingIndex !== paddingIndex + 1) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getUserPersonalization() {\n\t\tconst persContainerId = PersonalisationUtils.getPersContainerId(this);\n\t\tconst ownerComponent = PersonalisationUtils.getOwnerComponent(this) as Component;\n\t\treturn UshellPersonalizer.getInstance(persContainerId, ownerComponent);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NewsPanel.js","names":["sap","ui","define","Log","GenericTile","SlideTile","sap_m_library","EventBus","DateFormat","XMLModel","Container","__BaseLayout","__BaseNewsPanel","__MenuItem","__NewsGroup","__NewsItem","___library","___utils_Constants","___utils_DataFormatUtils","___utils_Device","___utils_FESRUtil","__HttpHelper","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","_settle","pact","state","value","s","_Pact","v","o","bind","then","observer","Priority","prototype","onFulfilled","onRejected","result","callback","e","_this","_isSettledPact","thenable","_for","test","update","body","stage","shouldContinue","updateValue","reject","_resumeAfterTest","_resumeAfterBody","_resumeAfterUpdate","BaseLayout","_catch","recover","BaseNewsPanel","MenuItem","NewsGroup","NewsItem","NewsType","DEFAULT_NEWS_PLACEHOLDER","DEFAULT_NEWS_URL","recycleId","DeviceType","addFESRId","HttpHelper","PersonalisationUtils","UshellPersonalizer","BASE_URL","NEWS_FEED_READ_API","NEWS_FEED_TRANSLATION_API","DEFAULT_FEED_COUNT","NEWS_HEIGHT","LargeDesktop","XLargeDesktop","Desktop","Tablet","Mobile","fnImagePlaceholder","sPath","N","Array","from","length","i","CUSTOM_NEWS_FEED","TITLE","LINK","VALIDITY","PREPARATION_REQUIRED","EXCLUDE_FIELDS","IMAGE_URL","FESR_STEP_NAME","EMPTY_DATA_ERROR_CODE","CUSTOM_IMAGES","Finance","Manufacturing","Sales","NewsPanel","extend","metadata","library","properties","url","type","group","defaultValue","visibility","Default","customFeedKey","customFileName","newsAvailable","supportedFileFormats","aggregations","newsGroup","singularName","multiple","constructor","_constructor","id","settings","BaseNewsPanel.prototype.constructor.call","_defaultNewsPromise","_noUpdatesNewsFeed","customNewsFeedCache","Map","init","_init","BaseNewsPanel.prototype.init.call","deviceType","getDeviceType","oNewsTile","getId","displayTime","width","height","tiles","mode","frameType","addStyleClass","getNewsWrapper","addContent","setProperty","_i18nBundle","getText","_eventBus","getInstance","oManageMenuItem","title","icon","press","handleEditNews","visible","setManageNewsItemVisibility","addAggregation","getData","_getData","_exit","_temp9","_result","fireEvent","adjustLayout","sUrl","getUrl","showCustom","getProperty","Custom","showDefault","showRssAtom","NewsUrl","mandatoryNewsFeed","fetchedFeedUrl","Promise","resolve","endUserChange","getParent","getIsEndUserChange","_temp8","isEndUser","fetch","response","ok","Error","status","contentType","headers","get","_temp","includes","json","_response$json","_endUserResponse","setNewsFeedFromUrl","newsType","initializeXmlModel","_this$initializeXmlMo","oNewsModel","setModel","setVisible","_temp7","_temp5","bNewsLoad","setDefaultNews","_temp4","_this$initializeXmlMo2","_temp3","sCustomNewsFeedKey","getCustomFeedKey","_temp2","setCustomNewsFeed","handleFeedError","_temp6","persDataNewsFeed","setPersDataNewsFeed","_setDefaultNews","_this2","defaultUrl","generateErrorMessage","_setManageNewsItemVisibility","isParentBaseLayout","_isParentBaseLayout","parentContainer","parentLayout","_getLayout","setPressEnabledForNewsGroup","_setPressEnabledForNewsGroup","feeds","newsGroups","getAggregation","isArray","groupDetailsMap","groupHasDescription","_defaultNewsResponse","forEach","description","trim","removeInlineStylesFromDescription","group_id","articles","_group_to_article","hasDescription","article","newsGroupMap","filter","groupId","getCurrentNewsGroup","feed","getTile","_removeInlineStylesFromDescription","replace","_getCurrentNewsGroup","newsGroupList","idParts","split","undefined","find","_getCustomFeedKey","_getUrl","_initializeXmlModel","_this3","oParent","setDefaultBindingMode","attachRequestCompleted","oEvent","panelLoadedFn","loaded","count","oDocument","getSource","loadNewsFeed","publish","showError","date","Date","attachRequestFailed","_loadNewsFeed","noOfFeeds","_this4","_temp1","querySelector","oBindingInfo","path","destroyAggregation","bindNewsTile","_temp0","extractAllImageUrls","_handleFeedError","getNewsType","setManageNewsButtonVisibility","setURL","_setURL","_this5","_adjustLayout","setHeight","setWidth","removeStyleClass","_bindNewsTile","oSlideTile","bindAggregation","templateShareable","factory","sId","oContext","newsInfo","getObject","oTile","getElementsByTagName","getPropertyValue","subTitle","imageUrl","footer","formatDate","sGroupId","newsId","subTitleNews","priority","priorityText","_getPropertyValue","propertyName","textContent","_extractAllImageUrls","_this6","_temp10","oItemElement","extractImage","oImageUrl","createElement","appendChild","_formatDate","timeStamp","relativeDateFormatter","getDateTimeInstance","style","relative","relativeStyle","format","getPersDataNewsFeed","_getPersDataNewsFeed","_extractImage","sHrefLink","fnLoadPlaceholderImage","sPrefix","require","toUrl","image","res","text","sHTML","aMatches","match","catch","_getNewsType","isCSVFileFormat","_isCSVFileFormat","fileName","pop","toLowerCase","_setPersDataNewsFeed","defaultFeed","_this7","_getUserPersonalization","personalizer","read","persData","defaultNewsFeed","favNewsFeed","_setNewsFeedFromUrl","data","_this8","item","_temp12","_temp11","_setCustomNewsFeed","sFeedId","_this9","feedType","isDefaultNews","showAllPrepRequired","showAllPreparationRequired","push","showPrep","getCustomOrDefaultNewsFeed","newsFeeds","selectedItems","items","isSelectedEmpty","loadCustomNewsFeed","err","error","filterMandatoryNews","_filterMandatoryNews","mandatory_text","mandatory","toUpperCase","markGroupsWithCriticalArticles","_markGroupsWithCriticalArticles","criticalArticle","getDefaultNewsFeedDetails","_getDefaultNewsFeedDetails","newsResponse","newsFeedItems","JSON","parse","stringify","defaultNews","defaultFeedDict","map","oFeed","footer_text","getDefaultFeedImage","Medium","None","getMandatoryDefaultNewsFeed","_getMandatoryDefaultNewsFeed","getDefaultNewsResponse","_getDefaultNewsResponse","fetchDefaultNews","getNoUpdatesPlaceholder","_getNoUpdatesPlaceholder","placeholderTitle","placeholderDescription","enrichedNewsPlaceholder","isNoUpdatesNewsFeed","_isNoUpdatesNewsFeed","_fetchDefaultNews","_this0","getServiceAsync","navigationService","isNavigationSupported","target","semanticObject","action","supported","_exit2","_temp14","_result4","_temp13","_response$json2","_getCustomOrDefaultNewsFeed","_this1","aDefaultgroups","getCustomFeedData","_getCustomFeedData","_this10","newsDetailUrl","isEnduser","getNewsFeedDetailsUrl","changeId","has","set","getAuthNewsFeed","_this10$customNewsFee","authorizedNewsFeeds","oFeedDict","aFeeds","getCustomFeedImage","_getNewsFeedDetailsUrl","oNews","_getAuthNewsFeed","sNewsUrl","newsTitle","_this11","all","getAllAvailableApps","getNewsFeedDetails","aAvailableApps","aNewsFeed","arrangeNewsFeeds","_arrangeNewsFeeds","aAuthNewsFeed","oNewsFeed","Category","ImpactedArtifacts","aImpactedArtifacts","impactedArtifact","oImpactedArtifact","isAuthFeed","_isAuthFeed","fioriIdSplitter","aTokens","sFioriId","index","findIndex","oApp","signature","parameters","_getAllAvailableApps","oService","_oAdapter","_aInbounds","message","_getNewsFeedDetails","_exit3","_this12","_temp16","_result6","fnFormattedLabel","sLabel","GetJSON","getTranslatedText","translationResponse","aNews","aTranslation","filterNewsOnTitle","aFields","Object","keys","aExpandFields","oField","oTranslatedField","oTranslation","ColumnName","oTranslatedFieldName","TranslatedName","label","Link","expanded","expandFields","_temp15","newsFeedDetails","_this12$filterNewsOnT","_filterNewsOnTitle","newsDetail","LineOfBusiness","_getTranslatedText","_loadCustomNewsFeed","_this13","oXMLResponse","parseJsonToXml","unbindAggregation","setData","_parseJsonToXml","_transformJsonForXml","aData","_jsonToXml","xml","key","transformedJson","rootToken","replaceAll","parser","DOMParser","parseFromString","_getCustomFeedImage","sFileName","sFileBasePath","sFilePath","files","randomIndex","randomArray","window","Uint32Array","crypto","getRandomValues","_getDefaultFeedImage","imgId","bg_image_id","groupImg","_group_to_image","getRandomDefaultImage","random","Math","floor","image_id","bg_image","mimeType","mime_type","groupBgImg","isValidBase64","base64Data","base64UrlToBase64","_base64UrlToBase","base64Url","base64","_isValidBase","input","base64Regex","paddingIndex","indexOf","lastPaddingIndex","lastIndexOf","persContainerId","getPersContainerId","ownerComponent","getOwnerComponent"],"sources":["NewsPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport SlideTile from \"sap/m/SlideTile\";\nimport { FrameType, Priority } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport Component from \"sap/ui/core/Component\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport EventBus from \"sap/ui/core/EventBus\";\nimport DateFormat from \"sap/ui/core/format/DateFormat\";\nimport Context from \"sap/ui/model/Context\";\nimport XMLModel from \"sap/ui/model/xml/XMLModel\";\nimport Container from \"sap/ushell/Container\";\nimport Navigation from \"sap/ushell/services/Navigation\";\nimport BaseLayout from \"./BaseLayout\";\nimport type { $BaseNewsPanelSettings } from \"./BaseNewsPanel\";\nimport BaseNewsPanel from \"./BaseNewsPanel\";\nimport MenuItem from \"./MenuItem\";\nimport NewsAndPagesContainer from \"./NewsAndPagesContainer\";\nimport NewsGroup from \"./NewsGroup\";\nimport NewsItem from \"./NewsItem\";\nimport { NewsType } from \"./library\";\nimport { DEFAULT_NEWS_PLACEHOLDER, DEFAULT_NEWS_URL } from \"./utils/Constants\";\nimport { recycleId } from \"./utils/DataFormatUtils\";\nimport { DeviceType } from \"./utils/Device\";\nimport { addFESRId } from \"./utils/FESRUtil\";\nimport HttpHelper from \"./utils/HttpHelper\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer from \"./utils/UshellPersonalizer\";\n\ninterface IBindingInfo {\n\tpath: string;\n\tlength: number;\n}\n\ninterface INewsResponse {\n\tvalue: INewsFeed[];\n}\n\nexport interface INewsFeed {\n\ttitle: string;\n\tsubTitle?: string;\n\tdescription?: string;\n\tfooter_text?: string;\n\tmandatory_text?: string;\n\tmandatory?: string;\n\t_group_to_image?: Record<string, string>;\n\t_group_to_article?: INewsFeed[];\n\tpriority?: string;\n\tgroup_id?: string;\n\t[key: string]: unknown;\n}\n\nexport interface INewsItem {\n\tchangeId: string;\n\ttitle?: string;\n\tshowAllPreparationRequired?: boolean;\n}\n\ninterface ITranslatedText {\n\tColumnName?: string;\n\tTranslatedName?: string;\n}\n\ninterface IAppConfiguration {\n\t_oAdapter: {\n\t\t_aInbounds: IAvailableApp[];\n\t};\n}\n\ninterface ODataResponse {\n\t\"@odata.context\": string;\n\t\"@odata.metadataEtag\": string;\n\tvalue: INewsFeed[];\n}\n\ninterface IAvailableApp {\n\tsemanticObject?: string;\n\taction?: string;\n\tid?: string;\n\ttitle?: string;\n\tpermanentKey?: string;\n\tcontentProviderId?: string;\n\tresolutionResult?: {\n\t\t[key: string]: string;\n\t};\n\tdeviceTypes?: {\n\t\t[key: string]: boolean;\n\t};\n\tsignature: {\n\t\tparameters: {\n\t\t\t[key: string]: IAppParameter;\n\t\t};\n\t\tadditionalParameters?: string;\n\t};\n}\n\ninterface IAppParameter {\n\tdefaultValue?: {\n\t\tvalue: string;\n\t\tformat: string;\n\t};\n\trequired: boolean;\n}\ninterface IPersDataNewsFeed {\n\titems: string[];\n\tshowAllPreparationRequired?: boolean;\n}\ninterface INewsGroupMap {\n\t[key: string]: NewsGroup;\n}\n\ninterface IGroupDetailsMap {\n\t[key: string]: INewsFeed[];\n}\n\nexport interface INewsLink {\n\t[key: string]: string;\n}\n\nexport interface INewsParam {\n\t[key: string]: { [key: string]: string };\n}\n\nexport type FileFormat = \"xlsx\" | \"csv\";\n\nconst BASE_URL = \"/sap/opu/odata4/ui2/insights_srv/srvd/ui2/\",\n\tNEWS_FEED_READ_API = BASE_URL + \"insights_read_srv/0001/\" + \"NEWS_FEED\",\n\tNEWS_FEED_TRANSLATION_API = BASE_URL + \"insights_read_srv/0001/\" + \"NewsFeedColumnTranslation\",\n\tDEFAULT_FEED_COUNT = 7,\n\tNEWS_HEIGHT = {\n\t\tLargeDesktop: \"17rem\",\n\t\tXLargeDesktop: \"17rem\",\n\t\tDesktop: \"17rem\",\n\t\tTablet: \"14rem\",\n\t\tMobile: \"11rem\"\n\t},\n\tfnImagePlaceholder = function (sPath: string, N: number) {\n\t\treturn Array.from({ length: N }, function (v, i) {\n\t\t\treturn sPath + \"/\" + (i + 1) + \".jpg\";\n\t\t});\n\t};\n\nconst CUSTOM_NEWS_FEED = {\n\t\tTITLE: \"LineOfBusiness\",\n\t\tLINK: \"WhatsNewDocument\",\n\t\tVALIDITY: \"ValidAsOf\",\n\t\tPREPARATION_REQUIRED: \"PreparationRequired\",\n\t\tEXCLUDE_FIELDS: [\n\t\t\t\"ChangeId\",\n\t\t\t\"LineNumber\",\n\t\t\t\"LineOfBusiness\",\n\t\t\t\"SolutionArea\",\n\t\t\t\"Title\",\n\t\t\t\"Description\",\n\t\t\t\"Type\",\n\t\t\t\"ValidAsOf\",\n\t\t\t\"WhatsNewDocument\",\n\t\t\t\"Link\"\n\t\t],\n\t\tIMAGE_URL: \"sap/cux/home/img/CustomNewsFeed/\",\n\t\tFESR_STEP_NAME: \"custNewsSlide-press\",\n\t\tEMPTY_DATA_ERROR_CODE: \"NODATA\"\n\t},\n\tCUSTOM_IMAGES: { [key: string]: string[] } = {\n\t\t\"Application Platform and Infrastructure\": fnImagePlaceholder(\"ApplicationPlatformandInfrastructure\", 3),\n\t\t\"Asset Management\": fnImagePlaceholder(\"AssetManagement\", 3),\n\t\t\"Cross Applications\": fnImagePlaceholder(\"CrossApplications\", 3),\n\t\tFinance: fnImagePlaceholder(\"Finance\", 3),\n\t\tManufacturing: fnImagePlaceholder(\"Manufacturing\", 3),\n\t\t\"R&D / Engineering\": fnImagePlaceholder(\"RnDandEngineering\", 3),\n\t\tSales: fnImagePlaceholder(\"Sales\", 3),\n\t\t\"Sourcing and Procurement\": fnImagePlaceholder(\"SourcingandProcurement\", 3),\n\t\t\"Supply Chain\": fnImagePlaceholder(\"SupplyChain\", 3),\n\t\tdefault: [\"default.jpg\"]\n\t};\n\n/**\n *\n * Panel class for managing and storing News.\n *\n * @extends sap.cux.home.BaseNewsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @internal\n * @public\n *\n * @alias sap.cux.home.NewsPanel\n */\nexport default class NewsPanel extends BaseNewsPanel {\n\tprivate oNewsTile!: SlideTile;\n\tprivate oNewsModel!: XMLModel;\n\tprivate oManageMenuItem!: MenuItem;\n\tprivate image!: number;\n\tprivate customNewsFeedCache: Map<string, unknown>;\n\tprivate bNewsLoad!: boolean;\n\tprivate persDataNewsFeed!: IPersDataNewsFeed; // hold the fav news feed for custom news and unselected group ids for default news\n\tprivate _eventBus!: EventBus;\n\tprivate _defaultNewsResponse!: ODataResponse;\n\tprivate mandatoryNewsFeed!: string[];\n\tprivate _defaultNewsPromise: Promise<ODataResponse> | null = null;\n\tprivate fetchedFeedUrl!: string;\n\tprivate defaultUrl!: string;\n\tprivate _noUpdatesNewsFeed: boolean = false; // flag to check if no updates news tile is shown or not\n\tprivate _endUserResponse!: ODataResponse;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * The URL of the news item.\n\t\t\t *\n\t\t\t * @public\n\t\t\t */\n\t\t\turl: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * Type of the news item.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\ttype: {\n\t\t\t\ttype: \"sap.cux.home.NewsType\",\n\t\t\t\tgroup: \"Misc\",\n\t\t\t\tvisibility: \"hidden\",\n\t\t\t\tdefaultValue: NewsType.Default\n\t\t\t},\n\t\t\t/**\n\t\t\t * The key of custom news feed.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tcustomFeedKey: { type: \"string\", group: \"Misc\", defaultValue: \"\", visibility: \"public\" },\n\t\t\t/**\n\t\t\t * The filename of custom news feed.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tcustomFileName: { type: \"string\", group: \"Misc\", defaultValue: \"\" },\n\t\t\t/**\n\t\t\t * The flag to determine rss feed will load or not.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tnewsAvailable: { type: \"boolean\", group: \"Misc\", defaultValue: true, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Supported file formats for news.\n\t\t\t *\n\t\t\t * @private\n\t\t\t */\n\t\t\tsupportedFileFormats: { type: \"FileFormat[]\", group: \"Misc\", defaultValue: [\"xlsx\"], visibility: \"hidden\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * newsGroup aggregation for News\n\t\t\t */\n\t\t\tnewsGroup: { type: \"sap.cux.home.NewsGroup\", singularName: \"newsGroup\", multiple: true, visibility: \"hidden\" }\n\t\t}\n\t};\n\n\tconstructor(idOrSettings?: string | $BaseNewsPanelSettings);\n\tconstructor(id?: string, settings?: $BaseNewsPanelSettings);\n\t/**\n\t * Constructor for a new News Panel.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsPanelSettings) {\n\t\tsuper(id, settings);\n\t\tthis.customNewsFeedCache = new Map();\n\t}\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tconst deviceType = this.getDeviceType();\n\n\t\tthis.oNewsTile = new SlideTile(this.getId() + \"--idNewsSlide\", {\n\t\t\tdisplayTime: 20000,\n\t\t\twidth: \"100%\",\n\t\t\theight: NEWS_HEIGHT[deviceType as keyof typeof NEWS_HEIGHT],\n\t\t\ttiles: [\n\t\t\t\tnew GenericTile(this.getId() + \"--placeholder\", {\n\t\t\t\t\tstate: \"Loading\",\n\t\t\t\t\tmode: \"ArticleMode\",\n\t\t\t\t\tframeType: \"Stretch\" as FrameType\n\t\t\t\t})\n\t\t\t]\n\t\t}).addStyleClass(\"newsTileMaxWidth sapUiSmallMarginTop\");\n\t\taddFESRId(this.oNewsTile, \"newsSlidePress\");\n\t\tthis.getNewsWrapper().addContent(this.oNewsTile);\n\t\tthis.getNewsWrapper().addStyleClass(\"newsWrapper\");\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"newsTitle\"));\n\t\tthis._eventBus = EventBus.getInstance();\n\n\t\tthis.oManageMenuItem = new MenuItem(`${this.getId()}-manageNews`, {\n\t\t\ttitle: this._i18nBundle.getText(\"mngNews\"),\n\t\t\ticon: \"sap-icon://edit\",\n\t\t\tpress: this.handleEditNews.bind(this),\n\t\t\tvisible: this.setManageNewsItemVisibility()\n\t\t});\n\t\tthis.addAggregation(\"menuItems\", this.oManageMenuItem);\n\t\taddFESRId(this.oManageMenuItem, \"manageNews\");\n\t}\n\n\t/**\n\t * Retrieves news data asynchronously.\n\t * If the news model is not initialized, it initializes the XML model and loads news feed data.\n\t * @private\n\t * @returns {Promise} A promise that resolves when the news data is retrieved.\n\t */\n\tpublic async getData() {\n\t\tlet sUrl: string = this.getUrl();\n\t\tlet showCustom = this.getProperty(\"type\") === NewsType.Custom;\n\t\tlet showDefault = this.getProperty(\"type\") === NewsType.Default;\n\t\tlet showRssAtom = this.getProperty(\"type\") === NewsType.NewsUrl;\n\n\t\tthis.mandatoryNewsFeed = [];\n\t\tif (this.fetchedFeedUrl && this.fetchedFeedUrl === sUrl) {\n\t\t\treturn;\n\t\t}\n\t\tconst endUserChange = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange();\n\t\tif (endUserChange.isEndUser) {\n\t\t\t//url scenario (developer side)\n\t\t\tconst response = await fetch(sUrl);\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(`HTTP error! status: ${response.status}`);\n\t\t\t}\n\t\t\tconst contentType = response.headers.get(\"content-type\");\n\t\t\tif (contentType && contentType.includes(\"application/json\")) {\n\t\t\t\tthis._endUserResponse = (await response.json()) as ODataResponse;\n\t\t\t\tawait this.setNewsFeedFromUrl(this._endUserResponse?.value);\n\t\t\t} else {\n\t\t\t\tendUserChange.newsType = NewsType.NewsUrl;\n\t\t\t\tthis.oNewsModel = await this.initializeXmlModel(sUrl);\n\t\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t}\n\t\t} else {\n\t\t\t//key user scenarios\n\t\t\tif (!this.persDataNewsFeed) {\n\t\t\t\tawait this.setPersDataNewsFeed(showDefault);\n\t\t\t}\n\t\t\tif (showDefault) {\n\t\t\t\t//default news scenario\n\t\t\t\tthis.bNewsLoad = this.bNewsLoad || false;\n\t\t\t\tawait this.setDefaultNews();\n\t\t\t} else if (sUrl && showRssAtom) {\n\t\t\t\t//rss feed scenario\n\t\t\t\tthis.oNewsModel = await this.initializeXmlModel(sUrl);\n\t\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t} else if (showCustom) {\n\t\t\t\t//custom news scenario\n\t\t\t\tthis.bNewsLoad = this.bNewsLoad || false;\n\t\t\t\tthis.oManageMenuItem.setVisible(true);\n\t\t\t\tconst sCustomNewsFeedKey = this.getCustomFeedKey();\n\t\t\t\tif (sCustomNewsFeedKey) {\n\t\t\t\t\tawait this.setCustomNewsFeed(sCustomNewsFeedKey);\n\t\t\t\t} else {\n\t\t\t\t\tthis.handleFeedError();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.handleFeedError();\n\t\t\t}\n\t\t}\n\t\tthis.fireEvent(\"loaded\");\n\t\tthis.adjustLayout();\n\t}\n\n\t/**\n\t * Set default news feed based on the showDefault property.\n\t * @param {boolean} showDefault - Indicates whether to show the default news feed.\n\t * @param {boolean} [isKeyUserChange=false] - Indicates if the change is made by a key user.\n\t * @private\n\t */\n\tpublic async setDefaultNews() {\n\t\t// default news scenario, if url property is passed or showDefault is true\n\n\t\tlet sUrl: string = this.getUrl();\n\t\tconst isEndUser = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange().isEndUser;\n\t\tthis.defaultUrl = isEndUser ? sUrl : DEFAULT_NEWS_URL;\n\t\tthis.fetchedFeedUrl = this.defaultUrl;\n\n\t\t//reset properties\n\t\tthis.setProperty(\"newsAvailable\", true);\n\t\tthis.generateErrorMessage().setVisible(false);\n\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(true);\n\t\tthis.oManageMenuItem.setVisible(true);\n\t\tthis.setManageNewsItemVisibility(true);\n\n\t\tawait this.setCustomNewsFeed(\"\");\n\t}\n\t/**\n\t * Set the visibility of the manage news item in the menu.\n\t * @param visible - A boolean indicating whether the manage news item should be visible or not.\n\t */\n\tprivate setManageNewsItemVisibility(visible: boolean = true): boolean {\n\t\tif (this.isParentBaseLayout() && this.oManageMenuItem) {\n\t\t\tthis.oManageMenuItem.setVisible(visible);\n\t\t\treturn visible;\n\t\t}\n\t\tthis.oManageMenuItem?.setVisible(false);\n\t\treturn false;\n\t}\n\n\t/**\n\t * Check if the parent container layout is of BaseLayout.\n\t * @returns {boolean} True if the parent container layout is a BaseLayout, otherwise false.\n\t * @private\n\t */\n\tprivate isParentBaseLayout(): boolean {\n\t\tconst parentContainer = this.getParent() as NewsAndPagesContainer;\n\t\tconst parentLayout = parentContainer?._getLayout();\n\t\treturn !!(parentLayout && parentLayout instanceof BaseLayout);\n\t}\n\n\t/**\n\t * Set the pressEnabled property for news groups based on the feed articles.\n\t * If no description is found in any of the articles within a group, the pressEnabled property is set to false.\n\t * @param feeds - An array of news feeds to check for descriptions.\n\t * @returns {void}\n\t */\n\tprivate setPressEnabledForNewsGroup(feeds: INewsFeed[] = []) {\n\t\tconst newsGroups = this.getAggregation(\"newsGroup\") as NewsGroup[] | undefined;\n\t\tif (!Array.isArray(newsGroups)) return;\n\n\t\t// Build groupDetailsMap for group details to avoid multiple iterations and clean up descriptions by removing inline styles if any\n\t\tconst groupDetailsMap: IGroupDetailsMap = {};\n\t\tconst groupHasDescription: Record<string, boolean> = {};\n\n\t\t(this._defaultNewsResponse.value || []).forEach((group) => {\n\t\t\t// Clean group description\n\t\t\tif (group?.description && group.description.trim().length > 0) {\n\t\t\t\tgroup.description = this.removeInlineStylesFromDescription(group.description);\n\t\t\t}\n\t\t\tif (group?.group_id) {\n\t\t\t\tconst articles = group._group_to_article || [];\n\t\t\t\t// Clean article descriptions and check if any article has a valid description\n\t\t\t\tlet hasDescription = false;\n\t\t\t\tarticles.forEach((article: INewsFeed) => {\n\t\t\t\t\tif (article?.description && article.description.trim().length > 0) {\n\t\t\t\t\t\tarticle.description = this.removeInlineStylesFromDescription(article.description);\n\t\t\t\t\t\thasDescription = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tgroupDetailsMap[group.group_id] = articles;\n\t\t\t\tgroupHasDescription[group.group_id] = hasDescription;\n\t\t\t}\n\t\t});\n\n\t\tconst newsGroupMap: INewsGroupMap = {};\n\t\t// Iterate through the news groups and map group IDs to NewsGroup instances\n\t\tnewsGroups\n\t\t\t.filter((group) => group instanceof NewsGroup)\n\t\t\t.forEach((group) => {\n\t\t\t\tconst groupId = this.getCurrentNewsGroup(group.getId())?.group_id;\n\t\t\t\tif (groupId) {\n\t\t\t\t\tnewsGroupMap[groupId] = group;\n\t\t\t\t}\n\t\t\t});\n\n\t\t// If no description is found in any of the articles within the group,\n\t\t// \tdisable the pressEnabled property for the news group to prevent user interaction.\n\t\tfeeds.forEach((feed) => {\n\t\t\tif (!feed.group_id) return;\n\t\t\tconst newsGroup = newsGroupMap[feed.group_id];\n\t\t\tif (newsGroup && !groupHasDescription[feed.group_id]) {\n\t\t\t\tnewsGroup.getTile()?.setProperty(\"pressEnabled\", false);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t *\n\t * @param description - The description from which inline styles need to be removed.\n\t * @returns {string} The description with inline styles removed.\n\t */\n\tprivate removeInlineStylesFromDescription(description: string): string {\n\t\treturn description.replace(/\\s*style\\s*=\\s*(['\"])[\\s\\S]*?\\1/gi, \"\");\n\t}\n\n\t/**\n\t * Retrieves the current news group data based on the provided id.\n\t *\n\t * @param id - The group ID\n\t * @returns The news group object that matches the extracted group ID, or `undefined`\n\t * if no matching group is found.\n\t * @private\n\t */\n\tpublic getCurrentNewsGroup(id: string) {\n\t\tconst newsGroupList = this._defaultNewsResponse?.value;\n\t\tconst idParts = id.split(\"-newsgroup-\");\n\t\tconst groupId = idParts.length > 1 ? idParts[1] : null;\n\n\t\tif (!groupId || !newsGroupList) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn groupId === \"placeholderNews\" ? newsGroupList[0] : newsGroupList.find((group) => group.group_id === groupId);\n\t}\n\n\t/**\n\t * Returns the custom news feed key property of NewsPanel\n\t * @returns {string} custom news feed key\n\t */\n\tpublic getCustomFeedKey(): string {\n\t\treturn this.getProperty(\"customFeedKey\") as string;\n\t}\n\n\t/**\n\t * Returns the Url property of NewsPanel\n\t * @returns {any}\n\t */\n\tpublic getUrl(): string {\n\t\treturn this.getProperty(\"url\") as string;\n\t}\n\n\t/**\n\t * Initializes an XML model for managing news data.\n\t * This method returns a Promise that resolves to the initialized XML model.\n\t */\n\n\t/**\n\t * Initializes an XML model for managing news data.\n\t * This method returns a Promise that resolves to the initialized XML model.\n\t * @param {string} sUrl rss url to load the news feed\n\t * @returns {Promise<XMLModel>} XML Document containing the news feeds\n\t */\n\tprivate async initializeXmlModel(sUrl: string): Promise<XMLModel> {\n\t\tconst oParent = this.getParent() as NewsAndPagesContainer;\n\t\treturn new Promise((resolve) => {\n\t\t\tconst oNewsModel = new XMLModel(sUrl);\n\t\t\tthis.fetchedFeedUrl = sUrl;\n\t\t\toNewsModel.setDefaultBindingMode(\"OneWay\");\n\t\t\toNewsModel.attachRequestCompleted((oEvent: Event) => {\n\t\t\t\tvoid (async () => {\n\t\t\t\t\tif (!this.bNewsLoad) {\n\t\t\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: true, count: DEFAULT_FEED_COUNT });\n\t\t\t\t\t\tthis.bNewsLoad = true;\n\t\t\t\t\t}\n\t\t\t\t\tconst oDocument = oEvent.getSource<XMLModel>().getData() as XMLDocument;\n\t\t\t\t\tawait this.loadNewsFeed(oDocument, 0);\n\t\t\t\t\tthis._eventBus.publish(\"KeyUserChanges\", \"newsFeedLoadFailed\", { showError: false, date: new Date() });\n\t\t\t\t\tresolve(oNewsModel);\n\t\t\t\t})();\n\t\t\t});\n\t\t\toNewsModel.attachRequestFailed(() => {\n\t\t\t\tthis.handleFeedError();\n\t\t\t\tif (!this.bNewsLoad) {\n\t\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: false, count: 0 });\n\t\t\t\t\tthis.bNewsLoad = true;\n\t\t\t\t}\n\t\t\t\tthis._eventBus.publish(\"KeyUserChanges\", \"newsFeedLoadFailed\", { showError: true, date: new Date() });\n\t\t\t\tresolve(oNewsModel);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Loads the news feed based on the provided document and number of feeds.\n\t * Determines the feed type (RSS, feed, custom) and binds the news tile accordingly.\n\t * @param {Document} oDocument - The document containing the news feed data.\n\t * @param {number} [noOfFeeds] - The number of feeds to be displayed. Defaults to a predefined value.\n\t */\n\tprivate async loadNewsFeed(oDocument: Document, noOfFeeds: number) {\n\t\tlet oBindingInfo: IBindingInfo;\n\t\tif (!oDocument?.querySelector(\"customFeed\") && !oDocument?.querySelector(\"defaultFeed\")) {\n\t\t\tawait this.extractAllImageUrls(oDocument, noOfFeeds || DEFAULT_FEED_COUNT);\n\t\t}\n\n\t\tif (!!oDocument?.querySelector(\"rss\") && !!oDocument?.querySelector(\"item\")) {\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/channel/item/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else if (!!oDocument?.querySelector(\"atom\") && !!oDocument?.querySelector(\"entry\")) {\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/entry/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else if (\n\t\t\t(!!oDocument?.querySelector(\"customFeed\") || !!oDocument?.querySelector(\"defaultFeed\")) &&\n\t\t\t!!oDocument?.querySelector(\"item\")\n\t\t) {\n\t\t\tthis.destroyAggregation(\"newsGroup\");\n\t\t\toBindingInfo = {\n\t\t\t\tpath: \"/item/\",\n\t\t\t\tlength: noOfFeeds || DEFAULT_FEED_COUNT\n\t\t\t};\n\t\t} else {\n\t\t\tthis.handleFeedError();\n\t\t\treturn;\n\t\t}\n\t\tthis.bindNewsTile(this.oNewsTile, oBindingInfo);\n\t}\n\n\t/**\n\t * Handles errors that occur during the loading of the news feed.\n\t * @returns {void}\n\t */\n\tpublic handleFeedError(): void {\n\t\tif (this.getNewsType() === NewsType.Custom || this.getNewsType() === NewsType.Default) {\n\t\t\tthis.generateErrorMessage().setVisible(true);\n\t\t\tif (!this.isParentBaseLayout()) {\n\t\t\t\tthis.setManageNewsButtonVisibility(false);\n\t\t\t}\n\t\t\tthis.oNewsTile.setVisible(false);\n\t\t} else {\n\t\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(false);\n\t\t\tthis.setProperty(\"newsAvailable\", false);\n\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t}\n\t}\n\n\tpublic async setURL(url: string) {\n\t\tthis.setProperty(\"type\", NewsType.NewsUrl);\n\t\tthis.setProperty(\"newsAvailable\", true);\n\t\tthis.generateErrorMessage().setVisible(false);\n\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setVisible(true);\n\t\tthis.oNewsTile.setVisible(true);\n\t\tthis.setProperty(\"url\", url);\n\t\tawait this.getData();\n\t}\n\n\t/**\n\t * Adjust layout based on the device type\n\t *\n\t * @private\n\t */\n\tpublic adjustLayout() {\n\t\tconst deviceType = this.getDeviceType();\n\t\tthis.oNewsTile.setHeight(NEWS_HEIGHT[deviceType as keyof typeof NEWS_HEIGHT]);\n\n\t\tif (deviceType === DeviceType.Mobile) {\n\t\t\tthis.generateErrorMessage().setWidth(\"100%\");\n\t\t\tthis.oNewsTile.removeStyleClass(\"sapUiSmallMarginTop\");\n\t\t} else {\n\t\t\tthis.oNewsTile.addStyleClass(\"sapUiSmallMarginTop\");\n\t\t\t(this.getNewsWrapper()?.getParent() as FlexBox).setWidth(\"100%\");\n\t\t}\n\t}\n\n\t/**\n\t * Binds the news tile with the provided binding information.\n\t * @param {sap.m.SlideTile} oSlideTile - The SlideTile control to be bound.\n\t * @param {IBindingInfo} oBindingInfo - The binding information containing the path and length of the aggregation.\n\t */\n\tprivate bindNewsTile(oSlideTile: SlideTile, oBindingInfo: IBindingInfo): void {\n\t\tif (oBindingInfo) {\n\t\t\toSlideTile.bindAggregation(\"tiles\", {\n\t\t\t\tpath: oBindingInfo.path,\n\t\t\t\tlength: oBindingInfo.length,\n\t\t\t\ttemplateShareable: false,\n\t\t\t\tfactory: (sId: string, oContext: Context) => {\n\t\t\t\t\tconst newsInfo = oContext.getObject() as XMLDocument;\n\t\t\t\t\tlet oTile;\n\t\t\t\t\tif (newsInfo.getElementsByTagName(\"link\").length > 0) {\n\t\t\t\t\t\toTile = new NewsItem(recycleId(`${sId}-news-item`), {\n\t\t\t\t\t\t\turl: this.getPropertyValue(newsInfo, \"link\") as string,\n\t\t\t\t\t\t\ttitle: this.getPropertyValue(newsInfo, \"title\") as string,\n\t\t\t\t\t\t\tsubTitle: this.getPropertyValue(newsInfo, \"description\") as string,\n\t\t\t\t\t\t\timageUrl: this.getPropertyValue(newsInfo, \"imageUrl\") as string,\n\t\t\t\t\t\t\tfooter: this.formatDate(this.getPropertyValue(newsInfo, \"pubDate\") as string)\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.addAggregation(\"newsItems\", oTile, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet sGroupId = (this.getPropertyValue(newsInfo, \"group_id\") as string) ?? \"\";\n\t\t\t\t\t\tlet newsId = sGroupId && sGroupId.trim() ? `${sId}-newsgroup-${sGroupId}` : `${sId}-newsgroup`;\n\t\t\t\t\t\tlet subTitleNews = this.getPropertyValue(newsInfo, \"subTitle\") ?? \"\";\n\t\t\t\t\t\toTile = new NewsGroup(recycleId(newsId), {\n\t\t\t\t\t\t\ttitle: this.getPropertyValue(newsInfo, \"title\") as string,\n\t\t\t\t\t\t\tsubTitle: subTitleNews || this._i18nBundle.getText(\"newsFeedDescription\"),\n\t\t\t\t\t\t\timageUrl: this.getPropertyValue(newsInfo, \"imageUrl\") as string,\n\t\t\t\t\t\t\tfooter: this.getPropertyValue(newsInfo, \"footer\") as string,\n\t\t\t\t\t\t\tpriority: this.getPropertyValue(newsInfo, \"priority\") as Priority,\n\t\t\t\t\t\t\tpriorityText: this.getPropertyValue(newsInfo, \"priorityText\") as string\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.addAggregation(\"newsGroup\", oTile, true);\n\t\t\t\t\t}\n\t\t\t\t\treturn oTile.getTile();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getPropertyValue(newsInfo: XMLDocument, propertyName: string) {\n\t\treturn newsInfo.getElementsByTagName(propertyName)?.[0]?.textContent;\n\t}\n\n\t/**\n\t * Extracts images for all the news tiles\n\t * @param {Document} oDocument - The document containing the news feed data.\n\t * @param {number} [noOfFeeds] - The number of feeds to be displayed. Defaults to a predefined value.\n\t */\n\tprivate async extractAllImageUrls(oDocument: Document, noOfFeeds: number) {\n\t\tfor (let i = 0; i < noOfFeeds; i++) {\n\t\t\tconst oItemElement = oDocument?.getElementsByTagName(\"item\")[i];\n\t\t\tconst sUrl: string = await this.extractImage(oItemElement.getElementsByTagName(\"link\")[0].textContent as string);\n\t\t\tconst oImageUrl = oDocument.createElement(\"imageUrl\");\n\t\t\toImageUrl.textContent = sUrl;\n\t\t\toItemElement.appendChild(oImageUrl);\n\t\t}\n\t}\n\n\t/**\n\t * Converts the given date to a relative date-time format.\n\t * @param {string} timeStamp - The timestamp to be converted.\n\t * @returns {string} The date in relative date-time format.\n\t */\n\tprivate formatDate(timeStamp: string): string {\n\t\tconst relativeDateFormatter = DateFormat.getDateTimeInstance({\n\t\t\tstyle: \"medium\",\n\t\t\trelative: true,\n\t\t\trelativeStyle: \"short\"\n\t\t});\n\t\treturn relativeDateFormatter.format(new Date(timeStamp));\n\t}\n\n\t/**\n\t * Returns the favourite news feed for the custom news\n\t * @returns {IPersDataNewsFeed}\n\t * @private\n\t */\n\tpublic getPersDataNewsFeed() {\n\t\treturn this.persDataNewsFeed;\n\t}\n\n\t/**\n\t * Extracts the image URL from the provided HREF link or link.\n\t * @param {string} sHrefLink - The HREF link containing the image URL.\n\t * @returns {Promise} A promise that resolves to the extracted image URL.\n\t */\n\tprivate extractImage(sHrefLink: string): Promise<string> {\n\t\tconst fnLoadPlaceholderImage = () => {\n\t\t\tconst sPrefix = sap.ui.require.toUrl(\"sap/cux/home/img\");\n\t\t\tthis.image = this.image ? this.image + 1 : 1;\n\t\t\tthis.image = this.image < 9 ? this.image : 1;\n\t\t\treturn `${sPrefix}/${this.image}.jpg`;\n\t\t};\n\n\t\treturn fetch(sHrefLink)\n\t\t\t.then((res) => res.text())\n\t\t\t.then((sHTML) => {\n\t\t\t\tconst aMatches = sHTML.match(/<meta[^>]*property=[\"']og:image[\"'][^>]*content=[\"']([^\"']+)[\"'][^>]*>/i);\n\t\t\t\treturn Array.isArray(aMatches) && aMatches[1] ? aMatches[1] : fnLoadPlaceholderImage();\n\t\t\t})\n\t\t\t.catch(fnLoadPlaceholderImage);\n\t}\n\n\tpublic getNewsType(): NewsType {\n\t\treturn (this.getParent() as NewsAndPagesContainer)?.getIsEndUserChange?.()?.newsType || (this.getProperty(\"type\") as NewsType);\n\t}\n\t/**\n\t * Checks if the custom file format is CSV based on the custom file name.\n\t *\n\t * @param {string} fileName - The custom file name.\n\t * @returns {boolean} True if the file format is CSV, otherwise false.\n\t */\n\tprivate isCSVFileFormat(fileName: string): boolean {\n\t\treturn fileName.split(\".\").pop()?.toLowerCase() === (\"csv\" as string);\n\t}\n\t/**\n\t * Sets the favorite news feed for the user by retrieving personalization data.\n\t *\n\t * This method asynchronously fetches the user's personalization data and if defaultFeed is true, updates favNewsFeed as\n\t * `defaultNewsFeed`. If defaultFeed is false, it updates it with the `favNewsFeed` news feed information.\n\t * @param {boolean} [defaultFeed] - Indicates whether to set the default news feed or favorite (custom) news feed.\n\t * @returns {Promise<void>} A promise that resolves when the favorite news feed is set.\n\t * @private\n\t */\n\tprivate async setPersDataNewsFeed(defaultFeed?: boolean): Promise<void> {\n\t\tconst personalizer = await this._getUserPersonalization();\n\t\tconst persData = await personalizer?.read();\n\t\tthis.persDataNewsFeed = (defaultFeed ? persData?.defaultNewsFeed : persData?.favNewsFeed) as IPersDataNewsFeed;\n\t}\n\n\t/**\n\t * Sets the news feed type (Default or Custom) based on the provided data structure.\n\t *\n\t * @param {INewsFeed[]} data - News feed data from the URL.\n\t * @returns {Promise<void>} Resolves after setting the appropriate feed.\n\t */\n\tpublic async setNewsFeedFromUrl(data: INewsFeed[]): Promise<void> {\n\t\tconst item = data?.[0];\n\n\t\tif (item && \"group_id\" in item && \"title\" in item) {\n\t\t\t(this.getParent() as NewsAndPagesContainer).getIsEndUserChange().newsType = NewsType.Default;\n\t\t\tawait this.setDefaultNews();\n\t\t} else if (item && \"LineOfBusiness\" in item) {\n\t\t\t(this.getParent() as NewsAndPagesContainer).getIsEndUserChange().newsType = NewsType.Custom;\n\t\t\tthis.oManageMenuItem.setVisible(true);\n\t\t\tawait this.setCustomNewsFeed(\"\");\n\t\t} else {\n\t\t\tthis.handleFeedError();\n\t\t}\n\t}\n\n\t/**\n\t * This method retrieves the count and feeds of the custom news feed asynchronously.\n\t * If the count is not zero, it loads the custom news feed data and returns the feeds.\n\t * @param {string} sFeedId - The ID of the custom news feed to set.\n\t * @returns {Promise} A promise that resolves to an array of news feeds.\n\t * @private\n\t */\n\tpublic async setCustomNewsFeed(sFeedId: string): Promise<void> {\n\t\ttry {\n\t\t\tthis.oNewsTile.setVisible(true);\n\t\t\tthis.generateErrorMessage().setVisible(false);\n\t\t\tconst feedType = this.getNewsType();\n\t\t\tconst isDefaultNews = feedType === NewsType.Default;\n\t\t\tawait this.setPersDataNewsFeed(isDefaultNews);\n\t\t\tconst customFileName = this.getProperty(\"customFileName\") as string;\n\t\t\tconst showAllPrepRequired = this.isCSVFileFormat(customFileName)\n\t\t\t\t? false\n\t\t\t\t: (this.persDataNewsFeed?.showAllPreparationRequired ?? true);\n\n\t\t\tif (this.isCSVFileFormat(customFileName)) {\n\t\t\t\tCUSTOM_NEWS_FEED.EXCLUDE_FIELDS.push(\"PreparationRequired\");\n\t\t\t}\n\t\t\tconst showPrep = isDefaultNews ? true : showAllPrepRequired;\n\t\t\tlet newsFeeds = await this.getCustomOrDefaultNewsFeed(sFeedId || \"\", showPrep);\n\n\t\t\tif (newsFeeds.length === 0) {\n\t\t\t\tthrow new Error(\"Error: No news feed available\");\n\t\t\t}\n\t\t\tconst selectedItems = this.persDataNewsFeed?.items;\n\n\t\t\t// Handle no favorite feed case\n\t\t\tconst isSelectedEmpty = selectedItems?.length === 0;\n\n\t\t\tif (!isDefaultNews && isSelectedEmpty) {\n\t\t\t\t(this.getParent() as NewsAndPagesContainer)?.panelLoadedFn(\"News\", { loaded: true, count: 0 });\n\t\t\t\tthrow new Error(\"Error: No fav news feed available\");\n\t\t\t}\n\n\t\t\t// Filter feeds based on personalization\n\t\t\tif (selectedItems?.length) {\n\t\t\t\tnewsFeeds = newsFeeds.filter((feed) => {\n\t\t\t\t\t// if its defaultNews then we show everything except the group ids present inside persDataNewsFeed items\n\t\t\t\t\t// if the group id is mandatory then we show it\n\t\t\t\t\tif (isDefaultNews) {\n\t\t\t\t\t\treturn !selectedItems.includes(feed.group_id as string) || this.mandatoryNewsFeed.includes(feed.group_id as string);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// if its customNews we show only the groups that is present in persDataNewsFeed items\n\t\t\t\t\t\treturn selectedItems.includes(feed.title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (newsFeeds.length === 0) {\n\t\t\t\t\t(this.getParent() as NewsAndPagesContainer)?.panelLoadedFn(\"News\", { loaded: true, count: 0 });\n\t\t\t\t\tthrow new Error(\"Error: No news feed available after filtering\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait this.loadCustomNewsFeed(newsFeeds, sFeedId ? \"customFeed\" : \"defaultFeed\");\n\t\t\tif (isDefaultNews) {\n\t\t\t\tthis.fetchedFeedUrl = this.defaultUrl;\n\t\t\t\t// If no description is found in any of the articles within a group, the pressEnabled property is set to false\n\t\t\t\tthis.setPressEnabledForNewsGroup(newsFeeds);\n\t\t\t} else {\n\t\t\t\tthis.fetchedFeedUrl = \"\";\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t\tthis.handleFeedError();\n\t\t}\n\t}\n\n\t/**\n\t * Filters the provided list of news groups to include only those that are marked as mandatory.\n\t *\n\t * A news group is considered mandatory if:\n\t * - Its `mandatory_text` property (at the top level) is set to \"TRUE\" (case-insensitive).\n\t *\n\n\t * @param newsGroups - An array of news groups to filter.\n\t * @returns An array of news groups that are marked as mandatory.\n\t * @private\n\t */\n\tprivate filterMandatoryNews(newsGroups: INewsFeed[]): INewsFeed[] {\n\t\treturn newsGroups.filter(\n\t\t\t({ mandatory_text, mandatory }) => mandatory_text?.toUpperCase() === \"TRUE\" || mandatory?.toUpperCase() === \"X\"\n\t\t);\n\t}\n\n\t/**\n\t * Set the priority of group to critical if any article within the group is critical.\n\t *\n\t * A news group is considered critical if:\n\t * - The group's `priority` is set to `\"1\"`.\n\t * - Any article within the group's `_group_to_article` array has a `priority` of `\"1\"`.\n\t *\n\t * If any article within a group is critical, the group's `priority` is updated to `\"1\"` and group's `priorityText` changed to \"Very high\".\n\t *\n\t * @param newsGroups - An array of news groups.\n\t *\n\t */\n\tprivate markGroupsWithCriticalArticles(newsGroups: INewsFeed[]): void {\n\t\tfor (const group of newsGroups) {\n\t\t\tconst criticalArticle = group._group_to_article?.find((article) => article.priority === \"1\");\n\t\t\t//make newsgroup priority to Veryhigh\n\t\t\tif (criticalArticle) {\n\t\t\t\tgroup.priority = criticalArticle.priority;\n\t\t\t\tgroup.priorityText = criticalArticle.priorityText;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the default news feed details from the given OData response.\n\t *\n\t * @param newsResponse - The OData response containing the news feed data.\n\t * @param showAllPreparationRequired - A boolean flag indicating whether to filter news items that require preparation.\n\t * @returns An array of default news feed items.\n\t * @private\n\t */\n\tprivate getDefaultNewsFeedDetails(newsResponse: ODataResponse) {\n\t\tlet newsFeedItems: INewsFeed[] = JSON.parse(JSON.stringify(newsResponse.value || [])) as INewsFeed[];\n\t\tconst defaultNews: INewsFeed[] = [];\n\t\tconst defaultFeedDict = {} as Record<string, string>;\n\t\tthis.mandatoryNewsFeed = [];\n\t\tif (newsFeedItems?.length > 0) {\n\t\t\tthis.mandatoryNewsFeed = this.filterMandatoryNews(newsFeedItems).map((oFeed) => oFeed.group_id || \"\");\n\t\t\tthis.markGroupsWithCriticalArticles(newsFeedItems);\n\n\t\t\tfor (const feed of newsFeedItems) {\n\t\t\t\tconst title = feed.title;\n\t\t\t\tlet subTitle = \"\";\n\t\t\t\tif (!defaultFeedDict[title]) {\n\t\t\t\t\tsubTitle = feed.subTitle || feed.description || \"\";\n\t\t\t\t\tdefaultNews.push({\n\t\t\t\t\t\ttitle: title,\n\t\t\t\t\t\tfooter: feed?.footer_text,\n\t\t\t\t\t\timageUrl: this.getDefaultFeedImage(feed),\n\t\t\t\t\t\tgroup_id: feed.group_id,\n\t\t\t\t\t\tsubTitle: subTitle,\n\t\t\t\t\t\tpriority: feed?.priority == \"1\" ? Priority.Medium : Priority.None,\n\t\t\t\t\t\tpriorityText: feed?.priority == \"1\" ? this._i18nBundle.getText(\"criticalNews\") : \"\"\n\t\t\t\t\t});\n\t\t\t\t\tdefaultFeedDict[title] = title;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn defaultNews;\n\t}\n\n\t/**\n\t * Returns the mandatory news feed details\n\t * If the mandatory news feed is not set, it returns an empty array.\n\t *\n\t * @returns {INewsFeed[]} The mandatory news feed details.\n\t * @private\n\t */\n\tpublic getMandatoryDefaultNewsFeed() {\n\t\treturn this.mandatoryNewsFeed || [];\n\t}\n\n\t/**\n\t * Retrieves the default news response, either from cache or by fetching it.\n\t * @returns {Promise<ODataResponse>} A promise that resolves to the default news data\n\t * @private\n\t */\n\tprivate getDefaultNewsResponse(): Promise<ODataResponse> {\n\t\t// Return cached data if available\n\t\tif (this._defaultNewsResponse) {\n\t\t\treturn Promise.resolve(this._defaultNewsResponse);\n\t\t}\n\n\t\tif (!this._defaultNewsPromise) {\n\t\t\tthis._defaultNewsPromise = this.fetchDefaultNews();\n\t\t}\n\n\t\treturn this._defaultNewsPromise;\n\t}\n\n\t/**\n\t *\n\t * @returns {ODataResponse} The no update placeholder news group with enriched titles and descriptions to show when there are no updates\n\t * @private\n\t */\n\tprivate getNoUpdatesPlaceholder(): ODataResponse {\n\t\tconst placeholderTitle = this._i18nBundle.getText(\"placeholderNewsTitle\") as string;\n\t\tconst placeholderDescription = this._i18nBundle.getText(\"placeholderNewsDescription\");\n\n\t\tconst enrichedNewsPlaceholder = {\n\t\t\t...DEFAULT_NEWS_PLACEHOLDER,\n\t\t\tvalue: DEFAULT_NEWS_PLACEHOLDER.value.map((group) => ({\n\t\t\t\t...group,\n\t\t\t\ttitle: placeholderTitle,\n\t\t\t\tdescription: placeholderDescription,\n\t\t\t\t_group_to_article: group._group_to_article.map((article) => ({\n\t\t\t\t\t...article,\n\t\t\t\t\ttitle: placeholderTitle,\n\t\t\t\t\tdescription: \"\"\n\t\t\t\t}))\n\t\t\t}))\n\t\t};\n\t\treturn enrichedNewsPlaceholder;\n\t}\n\n\t/**\n\t * Returns if its a no updates new feed group or not\n\t * This indicates whether the news feed is a static no updates placeholder news feed.\n\t * @private\n\t */\n\tpublic isNoUpdatesNewsFeed(): boolean {\n\t\treturn this._noUpdatesNewsFeed;\n\t}\n\n\t/**\n\t * Fetches the default news data from the server.\n\t * @returns {Promise<ODataResponse>} A promise that resolves to the fetched news data\n\t * @throws {Error} If the network request fails or returns a non-OK status\n\t * @private\n\t */\n\tprivate async fetchDefaultNews(): Promise<ODataResponse> {\n\t\ttry {\n\t\t\tconst navigationService = await Container.getServiceAsync<Navigation>(\"Navigation\");\n\t\t\tconst [{ supported }] = await navigationService.isNavigationSupported([\n\t\t\t\t{\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\tsemanticObject: \"NewsArticle\",\n\t\t\t\t\t\taction: \"display\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t]);\n\t\t\tif (supported) {\n\t\t\t\tif (this._endUserResponse) {\n\t\t\t\t\tthis._defaultNewsResponse = this._endUserResponse;\n\t\t\t\t} else {\n\t\t\t\t\tconst response = await fetch(this.defaultUrl || DEFAULT_NEWS_URL);\n\n\t\t\t\t\tif (!response.ok) {\n\t\t\t\t\t\tthrow new Error(`HTTP error! status: ${response.status}`);\n\t\t\t\t\t}\n\t\t\t\t\tthis._defaultNewsResponse = (await response.json()) as ODataResponse;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the response is not supported or empty, set the default news response to placeholder news\n\t\t\tif (!supported || !this._defaultNewsResponse?.value?.length) {\n\t\t\t\tthis._defaultNewsResponse = this.getNoUpdatesPlaceholder();\n\t\t\t\tthis._noUpdatesNewsFeed = true;\n\t\t\t\tthis.oManageMenuItem.setVisible(false);\n\t\t\t}\n\n\t\t\treturn this._defaultNewsResponse;\n\t\t} catch (error) {\n\t\t\tthis._defaultNewsPromise = null;\n\t\t\tLog.error(error as string);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves a custom news feed based on the provided feed ID.\n\t * If no feed ID is provided, it returns the default news feed.\n\t *\n\t * @param {string} sFeedId - The ID of the custom news feed to retrieve. If not provided, the default news feed is returned.\n\t * @param {boolean} showAllPreparationRequired - A flag indicating whether to show all preparation required.\n\t * @returns {Promise<INewsFeed[]>} A promise that resolves to an array of custom news feed items.\n\t * @private\n\t */\n\tpublic async getCustomOrDefaultNewsFeed(sFeedId: string, showAllPreparationRequired: boolean): Promise<INewsFeed[]> {\n\t\tconst feedType = this.getNewsType();\n\t\tconst isDefaultNews = feedType === NewsType.Default;\n\t\tif (isDefaultNews) {\n\t\t\tawait this.getDefaultNewsResponse();\n\t\t\tlet aDefaultgroups = this.getDefaultNewsFeedDetails(this._defaultNewsResponse);\n\t\t\treturn aDefaultgroups;\n\t\t} else {\n\t\t\treturn this.getCustomFeedData(sFeedId, showAllPreparationRequired);\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves custom news feed items identified by the provided feed ID and settings.\n\t * It processes the response data and returns an array of custom news feed items.\n\t * @param {string} sFeedId - The ID of the custom news feed.\n\t * @param {boolean} showAllPreparationRequired - Indicates whether to show all preparation required.\n\t * @returns {Promise} A Promise that resolves to an array of custom news feed items.\n\t * @private\n\t */\n\tprivate async getCustomFeedData(sFeedId: string, showAllPreparationRequired: boolean): Promise<INewsFeed[]> {\n\t\ttry {\n\t\t\tlet newsDetailUrl;\n\t\t\tconst isEnduser = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange().isEndUser;\n\t\t\tnewsDetailUrl = isEnduser ? this.getUrl() : this.getNewsFeedDetailsUrl({ changeId: sFeedId, showAllPreparationRequired });\n\t\t\tif (!this.customNewsFeedCache.has(newsDetailUrl)) {\n\t\t\t\tthis.customNewsFeedCache.set(newsDetailUrl, this.getAuthNewsFeed(newsDetailUrl));\n\t\t\t}\n\t\t\tconst authorizedNewsFeeds = (await this.customNewsFeedCache.get(newsDetailUrl)) as INewsFeed[];\n\t\t\tconst oFeedDict: { [key: string]: string } = {};\n\t\t\tconst aFeeds: INewsFeed[] = [];\n\t\t\tif (authorizedNewsFeeds?.length > 0) {\n\t\t\t\tauthorizedNewsFeeds.forEach((oFeed: INewsFeed) => {\n\t\t\t\t\tconst title = oFeed[CUSTOM_NEWS_FEED.TITLE] as INewsLink;\n\t\t\t\t\tif (!oFeedDict[title.value]) {\n\t\t\t\t\t\taFeeds.push({\n\t\t\t\t\t\t\ttitle: title.value,\n\t\t\t\t\t\t\tfooter: (oFeed[CUSTOM_NEWS_FEED.VALIDITY] as INewsLink)?.value,\n\t\t\t\t\t\t\timageUrl: this.getCustomFeedImage(title.value)\n\t\t\t\t\t\t});\n\t\t\t\t\t\toFeedDict[title.value] = title.value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn aFeeds; // group details\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t\tthrow new Error(err as string);\n\t\t}\n\t}\n\n\t/**\n\t * Generates the URL for retrieving news feed details based on the provided news object.\n\t * The generated URL limits the number of results to 999.\n\t * @param {INewsItem} oNews - The news object containing properties such as changeId, title, and showAllPreparationRequired.\n\t * @returns {string} The URL for retrieving news feed details.\n\t */\n\tpublic getNewsFeedDetailsUrl(oNews: INewsItem) {\n\t\tlet sUrl = NEWS_FEED_READ_API + \"?$filter=ChangeId eq \" + \"'\" + oNews.changeId + \"'\";\n\t\tconst customFileName = this.getProperty(\"customFileName\") as string;\n\t\tif (!this.isCSVFileFormat(customFileName) && oNews.showAllPreparationRequired) {\n\t\t\tsUrl = sUrl + \" and PreparationRequired eq true\";\n\t\t}\n\t\treturn sUrl + \"&$top=999\";\n\t}\n\n\t/**\n\t * Retrieves the news feed from the specified URL after applying authorization filtering based on the available apps.\n\t * If the news feed contains impacted artifacts, it checks if the current user has access to any of the impacted apps.\n\t * If the user has access to at least one impacted app, the news feed is included in the returned array.\n\t * @param {string} sNewsUrl - The URL of the news feed.\n\t * @returns {Array} The filtered array of news feed items authorized for the user.\n\t */\n\tpublic async getAuthNewsFeed(sNewsUrl: string, newsTitle?: string) {\n\t\ttry {\n\t\t\tconst [aAvailableApps, aNewsFeed] = await Promise.all([\n\t\t\t\tthis.getAllAvailableApps(),\n\t\t\t\tthis.getNewsFeedDetails(sNewsUrl, newsTitle)\n\t\t\t]);\n\t\t\tif (aAvailableApps.length === 0) {\n\t\t\t\treturn aNewsFeed;\n\t\t\t}\n\t\t\treturn this.arrangeNewsFeeds(aNewsFeed, aAvailableApps);\n\t\t} catch (err) {\n\t\t\tLog.error(err as string);\n\t\t}\n\t}\n\n\t/**\n\t * If the news feed contains impacted artifacts, it checks if the current user has access to any of the impacted apps.\n\t * If the user has access to at least one impacted app, the news feed is included in the returned array.\n\t * @param {INewsFeed[]} aNewsFeed - array of news feed\n\t * @param {IAvailableApp[]} aAvailableApps - array of all availabel apps\n\t * @returns {Array} The filtered array of news feed items authorized for the user.\n\t */\n\tprivate arrangeNewsFeeds(aNewsFeed: INewsFeed[], aAvailableApps: IAvailableApp[]) {\n\t\tconst aAuthNewsFeed: INewsFeed[] = [];\n\n\t\taNewsFeed.forEach((oNewsFeed: INewsFeed) => {\n\t\t\tif ((oNewsFeed.Category as INewsLink).value !== \"App\" || !(oNewsFeed.ImpactedArtifacts as INewsLink).value) {\n\t\t\t\taAuthNewsFeed.push(oNewsFeed);\n\t\t\t} else {\n\t\t\t\tconst aImpactedArtifacts: string[] = (oNewsFeed.ImpactedArtifacts as INewsLink).value.split(\"\\n\");\n\t\t\t\tfor (let impactedArtifact of aImpactedArtifacts) {\n\t\t\t\t\tconst oImpactedArtifact = impactedArtifact;\n\t\t\t\t\tif (oImpactedArtifact && this.isAuthFeed(aAvailableApps, impactedArtifact)) {\n\t\t\t\t\t\taAuthNewsFeed.push(oNewsFeed);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn aAuthNewsFeed;\n\t}\n\n\t/**\n\t * takes all available apps list and the impacted atifact from the news and returns if it's valid\n\t * @param {IAvailableApp[]} aAvailableApps - Array of all available apps\n\t * @param {string} oImpactedArtifact - impacted artifact form the news\n\t * @returns {boolean} checks if the news is authenticated with the available apps list\n\t */\n\tprivate isAuthFeed(aAvailableApps: IAvailableApp[], oImpactedArtifact: string) {\n\t\tconst fioriIdSplitter = \"|\";\n\t\tif (oImpactedArtifact.includes(fioriIdSplitter)) {\n\t\t\tconst aTokens = oImpactedArtifact.split(fioriIdSplitter);\n\t\t\tconst sFioriId = (aTokens[aTokens.length - 1] || \"\").trim();\n\t\t\tif (sFioriId) {\n\t\t\t\tconst index = aAvailableApps.findIndex((oApp: IAvailableApp) => {\n\t\t\t\t\treturn sFioriId === oApp?.signature?.parameters[\"sap-fiori-id\"]?.defaultValue?.value;\n\t\t\t\t});\n\t\t\t\treturn index > -1;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Retrieves all available apps from the ClientSideTargetResolution service for authorization filtering.\n\t * @returns {Array} An array of available apps.\n\t */\n\tprivate async getAllAvailableApps(): Promise<IAvailableApp[]> {\n\t\ttry {\n\t\t\tconst oService = await Container.getServiceAsync<IAppConfiguration>(\"ClientSideTargetResolution\");\n\t\t\treturn oService?._oAdapter._aInbounds || [];\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tLog.error(err.message);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the news feed details from the specified URL, including translation and formatting of field labels.\n\t * @param {string} sUrl - The URL of the news feed details.\n\t * @returns {Array} The array of news feed items with translated and formatted field labels.\n\t */\n\tprivate async getNewsFeedDetails(sUrl: string, newsTitle?: string): Promise<INewsFeed[]> {\n\t\tif (this.customNewsFeedCache.has(sUrl)) {\n\t\t\tconst newsFeedDetails = await this.customNewsFeedCache.get(sUrl);\n\t\t\treturn this.filterNewsOnTitle(newsFeedDetails as INewsFeed[], newsTitle);\n\t\t}\n\n\t\tconst fnFormattedLabel = (sLabel: string) => sLabel.replace(/([a-z0-9])([A-Z])/g, \"$1 $2\");\n\t\tconst [newsResponse, translationResponse] = await Promise.all([\n\t\t\tthis._endUserResponse ? Promise.resolve(this._endUserResponse) : (HttpHelper.GetJSON(sUrl) as Promise<{ value: INewsFeed[] }>),\n\t\t\tthis.getTranslatedText(this.getCustomFeedKey())\n\t\t]);\n\t\tlet aNews: INewsFeed[] = JSON.parse(JSON.stringify((newsResponse as INewsResponse).value || [])) as INewsFeed[];\n\t\tconst aTranslation = JSON.parse(JSON.stringify((translationResponse as INewsResponse).value || [])) as ITranslatedText[];\n\t\taNews = this.filterNewsOnTitle(aNews, newsTitle);\n\t\treturn aNews.map((oNews: INewsFeed) => {\n\t\t\tconst aFields = Object.keys(oNews);\n\t\t\tconst aExpandFields: INewsLink[] = [];\n\t\t\taFields.forEach((oField) => {\n\t\t\t\tconst oTranslatedField = aTranslation.find(\n\t\t\t\t\t(oTranslation: ITranslatedText) => oTranslation?.ColumnName?.toUpperCase() === oField.toUpperCase()\n\t\t\t\t);\n\t\t\t\tconst oTranslatedFieldName = (oTranslatedField?.TranslatedName as string) || fnFormattedLabel(oField);\n\t\t\t\toNews[oField] = { label: oTranslatedFieldName, value: oNews[oField] as string } as INewsLink;\n\t\t\t\tif (!CUSTOM_NEWS_FEED.EXCLUDE_FIELDS.includes(oField)) {\n\t\t\t\t\taExpandFields.push(oNews[oField] as INewsLink);\n\t\t\t\t}\n\t\t\t});\n\t\t\toNews.Link = {\n\t\t\t\tlabel: this._i18nBundle.getText(\"readMoreLink\") as string,\n\t\t\t\tvalue: oNews[CUSTOM_NEWS_FEED.LINK] as string,\n\t\t\t\ttext: \"Link\"\n\t\t\t};\n\t\t\toNews.expanded = aNews.length === 1;\n\t\t\toNews.expandFields = aExpandFields;\n\t\t\treturn oNews;\n\t\t});\n\t}\n\n\t/**\n\t * Filters the news feed data based on the LOB title for the news detail dialog\n\t *\n\t * @private\n\t * @param {INewsFeed[]} aNews complete news feed data\n\t * @param {?string} [newsTitle] title of the line of business to be filtered on\n\t * @returns {INewsFeed[]} filtered news feed for provided LOB title\n\t */\n\tprivate filterNewsOnTitle(aNews: INewsFeed[], newsTitle?: string): INewsFeed[] {\n\t\tif (newsTitle) {\n\t\t\treturn aNews.filter((newsDetail: INewsFeed) => {\n\t\t\t\treturn (newsDetail.LineOfBusiness as INewsLink).value === newsTitle;\n\t\t\t});\n\t\t}\n\t\treturn aNews;\n\t}\n\n\t/**\n\t * Retrieves translated text for news feed fields based on the specified feed ID.\n\t * @param {string} sFeedId - The ID of the custom news feed\n\t * @returns {Promise} A promise resolving to the translated text for news feed fields.\n\t */\n\tprivate getTranslatedText(sFeedId: string) {\n\t\ttry {\n\t\t\tconst sUrl = NEWS_FEED_TRANSLATION_API + \"?$filter=Changeid eq '\" + sFeedId + \"'\";\n\t\t\tif (!this.customNewsFeedCache.has(sUrl)) {\n\t\t\t\tthis.customNewsFeedCache.set(sUrl, HttpHelper.GetJSON(sUrl) as Promise<INewsFeed[]>);\n\t\t\t}\n\t\t\treturn this.customNewsFeedCache.get(sUrl);\n\t\t} catch (err) {\n\t\t\tif (err instanceof Error) {\n\t\t\t\tLog.error(err.message);\n\t\t\t}\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t/**\n\t * Loads custom news feed into the news panel after parsing JSON feed data to XML format.\n\t * @param {Array} feeds - The array of custom news feed items.\n\t */\n\tprivate async loadCustomNewsFeed(feeds: INewsFeed[], feedType: string) {\n\t\tconst oXMLResponse = this.parseJsonToXml(JSON.parse(JSON.stringify(feeds)) as JSON[], feedType);\n\t\tconst oParent = this.getParent() as NewsAndPagesContainer;\n\t\tif (!this.oNewsModel) {\n\t\t\tthis.oNewsModel = new XMLModel(oXMLResponse);\n\t\t\tif (!this.bNewsLoad) {\n\t\t\t\toParent?.panelLoadedFn(\"News\", { loaded: true, count: DEFAULT_FEED_COUNT });\n\t\t\t\tthis.bNewsLoad = true;\n\t\t\t}\n\t\t\tthis.oNewsTile.setModel(this.oNewsModel);\n\t\t} else {\n\t\t\tthis.oNewsTile.unbindAggregation(\"tiles\", false); // Unbind the bound aggregation\n\t\t\tthis.oNewsTile.destroyAggregation(\"tiles\"); // Removes old tiles\n\t\t\tthis.oNewsModel.setData(oXMLResponse);\n\t\t}\n\t\tawait this.loadNewsFeed(oXMLResponse, feeds.length);\n\t}\n\n\t/**\n\t * Parses JSON data into XML format.\n\t * @param {JSON[]} json - The JSON data to be parsed into XML.\n\t * @returns {XMLDocument} The XML document representing the parsed JSON data.\n\t */\n\tprivate parseJsonToXml(json: JSON[], feedType: string): XMLDocument {\n\t\tconst _transformJsonForXml = (aData: JSON[]) => aData.map((data: JSON) => ({ item: data }));\n\t\tconst _jsonToXml = (json: JSON) => {\n\t\t\tlet xml = \"\";\n\t\t\tlet key: string;\n\t\t\tfor (key in json) {\n\t\t\t\tconst value = json[key as keyof typeof json];\n\t\t\t\tif (value) {\n\t\t\t\t\tif (typeof value === \"object\") {\n\t\t\t\t\t\txml += `<${key}>${_jsonToXml(value)}</${key}>`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\txml += `<${key}>${value as string}</${key}>`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn xml.replace(/<\\/?\\d+>/g, \"\");\n\t\t};\n\t\tconst transformedJson: JSON = JSON.parse(JSON.stringify(_transformJsonForXml(json))) as JSON;\n\t\tlet xml = \"<?xml version='1.0' encoding='UTF-8'?>\";\n\t\tconst rootToken = feedType;\n\t\txml += `<${rootToken}>`;\n\t\txml += _jsonToXml(transformedJson);\n\t\txml += `</${rootToken}>`;\n\t\txml = xml.replaceAll(\"&\", \"&\");\n\t\tconst parser = new DOMParser();\n\t\treturn parser.parseFromString(xml, \"text/xml\");\n\t}\n\n\t/**\n\t * Randomly selects an image from the available images for the feed item.\n\t * @param {string} sFileName - The file name of the custom news feed item.\n\t * @returns {string} The URL of the image for the feed item.\n\t * @private\n\t */\n\tprivate getCustomFeedImage(sFileName: string) {\n\t\tconst sFileBasePath = sap.ui.require.toUrl(CUSTOM_NEWS_FEED.IMAGE_URL);\n\t\tlet sFilePath = sFileBasePath + CUSTOM_IMAGES.default[0];\n\t\tconst files = CUSTOM_IMAGES[sFileName] || [];\n\t\tlet randomIndex = 0;\n\t\tif (files.length > 0) {\n\t\t\tconst randomArray = new window.Uint32Array(1);\n\t\t\twindow.crypto.getRandomValues(randomArray);\n\t\t\trandomIndex = randomArray[0] % 3;\n\t\t\tsFilePath = sFileBasePath + files[randomIndex];\n\t\t}\n\t\treturn sFilePath;\n\t}\n\n\t/**\n\t * Retrieves the default feed image for a given news feed.\n\t *\n\t * @param {INewsFeed} oFeed - The custom news feed object.\n\t * @returns {string} The base64 encoded image string with the appropriate MIME type, or an empty string if no valid image is found.\n\t * @private\n\t */\n\tprivate getDefaultFeedImage(oFeed: INewsFeed): string {\n\t\tconst imgId = oFeed?.bg_image_id;\n\t\tconst groupImg = oFeed?._group_to_image;\n\t\tconst getRandomDefaultImage = () => {\n\t\t\tconst sPrefix = sap.ui.require.toUrl(\"sap/cux/home/img\");\n\t\t\tconst random = Math.floor(Math.random() * 15) + 1;\n\t\t\treturn `${sPrefix}/${random}.jpg`;\n\t\t};\n\t\tif (!groupImg || groupImg?.image_id !== imgId || !groupImg?.bg_image) {\n\t\t\treturn getRandomDefaultImage();\n\t\t}\n\n\t\tlet mimeType = groupImg?.mime_type;\n\t\tconst groupBgImg = groupImg?.bg_image;\n\n\t\tif (mimeType === \"application/octet-stream\") {\n\t\t\tmimeType = \"image/jpeg\";\n\t\t}\n\n\t\t// if the image is not a valid base64 string, convert it to a standard base64 string\n\t\t// and return the data URL else return the data URL directly\n\t\tif (!this.isValidBase64(groupBgImg)) {\n\t\t\tconst base64Data = this.base64UrlToBase64(groupBgImg);\n\t\t\treturn `data:${mimeType};base64,${base64Data}`;\n\t\t}\n\t\treturn `data:${mimeType};base64,${groupBgImg}`;\n\t}\n\n\t/**\n\t * Converts a base64 URL string to a standard base64 string.\n\t *\n\t * @param {string} base64Url - The base64 URL string to convert.\n\t * @returns {string} The converted base64 string.\n\t * @private\n\t */\n\tprivate base64UrlToBase64(base64Url: string) {\n\t\tlet base64 = base64Url?.replace(/_/g, \"/\").replace(/-/g, \"+\");\n\n\t\t// Add padding if missing (Base64 should be a multiple of 4)\n\t\twhile (base64.length % 4 !== 0) {\n\t\t\tbase64 += \"=\";\n\t\t}\n\t\treturn base64;\n\t}\n\n\t/**\n\t * Checks if a string is a valid base64 encoded string.\n\t * @param input The string to validate\n\t * @returns boolean indicating if the string is valid base64\n\t * @private\n\t */\n\tprivate isValidBase64(input: string): boolean {\n\t\t// Check if the string exists and isn't empty\n\t\tif (!input || input.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Canonical base64 strings use these characters\n\t\t// A-Z, a-z, 0-9, +, /, and = for padding\n\t\tconst base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;\n\n\t\t// Check if the string matches the base64 character set\n\t\tif (!base64Regex.test(input)) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check if the length is valid\n\t\t// Base64 strings have a length that is a multiple of 4\n\t\tif (input.length % 4 !== 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Check padding rules\n\t\tif (input.includes(\"=\")) {\n\t\t\t// If there is padding, it must be at the end\n\t\t\tconst paddingIndex = input.indexOf(\"=\");\n\t\t\tconst lastPaddingIndex = input.lastIndexOf(\"=\");\n\t\t\t// Padding should only occur at the end\n\t\t\tif (paddingIndex !== input.length - (input.length - paddingIndex)) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Can only have 1 or 2 padding characters\n\t\t\tif (input.length - paddingIndex > 2) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// Make sure all padding is at the end\n\t\t\tif (paddingIndex !== lastPaddingIndex && lastPaddingIndex !== paddingIndex + 1) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tprivate _getUserPersonalization() {\n\t\tconst persContainerId = PersonalisationUtils.getPersContainerId(this);\n\t\tconst ownerComponent = PersonalisationUtils.getOwnerComponent(this) as Component;\n\t\treturn UshellPersonalizer.getInstance(persContainerId, ownerComponent);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|