@sapui5/sap.cux.home 1.142.0 → 1.142.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/cux/home/.library +4 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
- package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.js +6 -5
- package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/AdvancedSettingsPanel.ts +6 -5
- package/src/sap/cux/home/AppsAdditionPanel.d.ts +47 -34
- package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.js +333 -237
- package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/AppsAdditionPanel.ts +344 -230
- package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
- package/src/sap/cux/home/AppsContainer.js +3 -2
- package/src/sap/cux/home/AppsContainer.js.map +1 -1
- package/src/sap/cux/home/AppsContainer.ts +3 -2
- package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.js +6 -1
- package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
- package/src/sap/cux/home/BaseAppPanel.ts +6 -1
- package/src/sap/cux/home/BaseContainer.d.ts +1 -1
- package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainer.js +10 -2
- package/src/sap/cux/home/BaseContainer.js.map +1 -1
- package/src/sap/cux/home/BaseContainer.ts +7 -3
- package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
- package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
- package/src/sap/cux/home/BaseContainerRenderer.ts +6 -0
- package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
- package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
- package/src/sap/cux/home/CardsContainer.d.ts +108 -0
- package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
- package/src/sap/cux/home/CardsContainer.js +207 -0
- package/src/sap/cux/home/CardsContainer.js.map +1 -0
- package/src/sap/cux/home/CardsContainer.ts +202 -0
- package/src/sap/cux/home/CardsPanel.d.ts +43 -62
- package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/CardsPanel.js +345 -285
- package/src/sap/cux/home/CardsPanel.js.map +1 -1
- package/src/sap/cux/home/CardsPanel.ts +211 -200
- package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
- package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.js +12 -6
- package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
- package/src/sap/cux/home/ContentAdditionDialog.ts +13 -5
- package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
- package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
- package/src/sap/cux/home/ErrorPanel.js +11 -16
- package/src/sap/cux/home/ErrorPanel.js.map +1 -1
- package/src/sap/cux/home/ErrorPanel.ts +7 -19
- package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
- package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
- package/src/sap/cux/home/FavAppPanel.js +296 -301
- package/src/sap/cux/home/FavAppPanel.js.map +1 -1
- package/src/sap/cux/home/FavAppPanel.ts +14 -10
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts +11 -4
- package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.js +20 -8
- package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsAdditionPanel.ts +20 -7
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
- package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js +15 -0
- package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +11 -0
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +287 -57
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
- package/src/sap/cux/home/Layout.d.ts +3 -1
- package/src/sap/cux/home/Layout.d.ts.map +1 -1
- package/src/sap/cux/home/Layout.js +49 -8
- package/src/sap/cux/home/Layout.js.map +1 -1
- package/src/sap/cux/home/Layout.ts +59 -8
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
- package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
- package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/LayoutSettingsPanel.ts +379 -63
- package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
- package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
- package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
- package/src/sap/cux/home/NewsContainer.js.map +1 -0
- package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +29 -118
- package/src/sap/cux/home/NewsGroup.js.map +1 -1
- package/src/sap/cux/home/NewsGroup.ts +1 -1
- package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/NewsPanel.js +12 -14
- package/src/sap/cux/home/NewsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsPanel.ts +13 -16
- package/src/sap/cux/home/NewsSettingsPanel.js +4 -4
- package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
- package/src/sap/cux/home/NewsSettingsPanel.ts +5 -5
- package/src/sap/cux/home/PagePanel.d.ts +1 -1
- package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
- package/src/sap/cux/home/PagePanel.js +18 -10
- package/src/sap/cux/home/PagePanel.js.map +1 -1
- package/src/sap/cux/home/PagePanel.ts +25 -15
- package/src/sap/cux/home/PagesContainer.d.ts +72 -0
- package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
- package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
- package/src/sap/cux/home/PagesContainer.js +333 -0
- package/src/sap/cux/home/PagesContainer.js.map +1 -0
- package/src/sap/cux/home/PagesContainer.ts +179 -0
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
- package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.js +66 -132
- package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
- package/src/sap/cux/home/SpaceInsightsPanel.ts +69 -151
- package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TaskPanel.js +16 -1
- package/src/sap/cux/home/TaskPanel.js.map +1 -1
- package/src/sap/cux/home/TaskPanel.ts +15 -1
- package/src/sap/cux/home/TilesContainer.d.ts +111 -0
- package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
- package/src/sap/cux/home/TilesContainer.js +218 -0
- package/src/sap/cux/home/TilesContainer.js.map +1 -0
- package/src/sap/cux/home/TilesContainer.ts +216 -0
- package/src/sap/cux/home/TilesPanel.d.ts +22 -52
- package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
- package/src/sap/cux/home/TilesPanel.js +184 -165
- package/src/sap/cux/home/TilesPanel.js.map +1 -1
- package/src/sap/cux/home/TilesPanel.ts +160 -154
- package/src/sap/cux/home/ToDoPanel.d.ts +1 -0
- package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
- package/src/sap/cux/home/ToDoPanel.js +38 -63
- package/src/sap/cux/home/ToDoPanel.js.map +1 -1
- package/src/sap/cux/home/ToDoPanel.ts +32 -31
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
- package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
- package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
- package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
- package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
- package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
- package/src/sap/cux/home/i18n/messagebundle.properties +26 -12
- package/src/sap/cux/home/i18n/messagebundle_ar.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_bg.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ca.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_cnr.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_cs.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_cy.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_da.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_de.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_el.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_en.properties +19 -3
- package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +21 -5
- package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +21 -5
- package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_es.properties +19 -2
- package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_et.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_fi.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_fr.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_hi.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_hr.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_hu.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_id.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_it.properties +23 -7
- package/src/sap/cux/home/i18n/messagebundle_iw.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ja.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_kk.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ko.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_lt.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_lv.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_mk.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ms.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_nl.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_no.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_pl.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_pt.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ro.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_ru.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_sh.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_sk.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_sl.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_sr.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_sv.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_th.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_tr.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_uk.properties +20 -4
- package/src/sap/cux/home/i18n/messagebundle_vi.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +18 -2
- package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +18 -2
- package/src/sap/cux/home/interface/CardsInterface.d.ts +6 -0
- 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 +6 -1
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
- package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
- package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
- package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
- package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
- package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
- package/src/sap/cux/home/library.d.ts.map +1 -1
- package/src/sap/cux/home/library.js +7 -4
- package/src/sap/cux/home/library.js.map +1 -1
- package/src/sap/cux/home/library.ts +10 -5
- package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
- package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
- package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +0 -45
- package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
- package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
- package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
- package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
- package/src/sap/cux/home/themes/base/library.source.less +2 -1
- package/src/sap/cux/home/utils/BatchHelper.d.ts +1 -0
- package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.js +7 -2
- package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
- package/src/sap/cux/home/utils/BatchHelper.ts +8 -1
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
- package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
- package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
- package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
- package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +150 -151
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
- package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
- package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
- package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
- package/ui5.yaml +1 -0
- package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
- package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
- package/src/sap/cux/home/InsightsContainer.js +0 -459
- package/src/sap/cux/home/InsightsContainer.js.map +0 -1
- package/src/sap/cux/home/InsightsContainer.ts +0 -489
- package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
- package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
- package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
|
@@ -19,7 +19,7 @@ import BaseLayout from "./BaseLayout";
|
|
|
19
19
|
import type { $BaseNewsPanelSettings } from "./BaseNewsPanel";
|
|
20
20
|
import BaseNewsPanel from "./BaseNewsPanel";
|
|
21
21
|
import MenuItem from "./MenuItem";
|
|
22
|
-
import NewsAndPagesContainer from "./
|
|
22
|
+
import NewsAndPagesContainer from "./NewsContainer";
|
|
23
23
|
import NewsGroup from "./NewsGroup";
|
|
24
24
|
import NewsItem from "./NewsItem";
|
|
25
25
|
import { NewsType } from "./library";
|
|
@@ -322,19 +322,16 @@ export default class NewsPanel extends BaseNewsPanel {
|
|
|
322
322
|
* @returns {Promise} A promise that resolves when the news data is retrieved.
|
|
323
323
|
*/
|
|
324
324
|
public async getData() {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
let showDefault = this.getProperty("type") === NewsType.Default;
|
|
328
|
-
let showRssAtom = this.getProperty("type") === NewsType.NewsUrl;
|
|
329
|
-
|
|
325
|
+
// Use getter methods instead of direct property access because URL and type can be updated
|
|
326
|
+
// after personalization. This keeps both values consistent and in sync.
|
|
330
327
|
this.mandatoryNewsFeed = [];
|
|
331
|
-
if (this.fetchedFeedUrl && this.fetchedFeedUrl ===
|
|
328
|
+
if (this.fetchedFeedUrl && this.fetchedFeedUrl === this.getUrl()) {
|
|
332
329
|
return;
|
|
333
330
|
}
|
|
334
331
|
const endUserChange = (this.getParent() as NewsAndPagesContainer).getIsEndUserChange();
|
|
335
332
|
if (endUserChange.isEndUser) {
|
|
336
333
|
//url scenario (developer side)
|
|
337
|
-
const response = await fetch(
|
|
334
|
+
const response = await fetch(this.getUrl());
|
|
338
335
|
if (!response.ok) {
|
|
339
336
|
throw new Error(`HTTP error! status: ${response.status}`);
|
|
340
337
|
}
|
|
@@ -344,25 +341,25 @@ export default class NewsPanel extends BaseNewsPanel {
|
|
|
344
341
|
await this.setNewsFeedFromUrl(this._endUserResponse?.value);
|
|
345
342
|
} else {
|
|
346
343
|
endUserChange.newsType = NewsType.NewsUrl;
|
|
347
|
-
this.oNewsModel = await this.initializeXmlModel(
|
|
344
|
+
this.oNewsModel = await this.initializeXmlModel(this.getUrl());
|
|
348
345
|
this.oNewsTile.setModel(this.oNewsModel);
|
|
349
346
|
this.oManageMenuItem.setVisible(false);
|
|
350
347
|
}
|
|
351
348
|
} else {
|
|
352
349
|
//key user scenarios
|
|
353
350
|
if (!this.persDataNewsFeed) {
|
|
354
|
-
await this.setPersDataNewsFeed(
|
|
351
|
+
await this.setPersDataNewsFeed(this.getProperty("type") === NewsType.Default);
|
|
355
352
|
}
|
|
356
|
-
if (
|
|
353
|
+
if (this.getProperty("type") === NewsType.Default) {
|
|
357
354
|
//default news scenario
|
|
358
355
|
this.bNewsLoad = this.bNewsLoad || false;
|
|
359
356
|
await this.setDefaultNews();
|
|
360
|
-
} else if (
|
|
357
|
+
} else if (this.getUrl() && this.getProperty("type") === NewsType.NewsUrl) {
|
|
361
358
|
//rss feed scenario
|
|
362
|
-
this.oNewsModel = await this.initializeXmlModel(
|
|
359
|
+
this.oNewsModel = await this.initializeXmlModel(this.getUrl());
|
|
363
360
|
this.oNewsTile.setModel(this.oNewsModel);
|
|
364
361
|
this.oManageMenuItem.setVisible(false);
|
|
365
|
-
} else if (
|
|
362
|
+
} else if (this.getProperty("type") === NewsType.Custom) {
|
|
366
363
|
//custom news scenario
|
|
367
364
|
this.bNewsLoad = this.bNewsLoad || false;
|
|
368
365
|
this.oManageMenuItem.setVisible(true);
|
|
@@ -951,7 +948,7 @@ export default class NewsPanel extends BaseNewsPanel {
|
|
|
951
948
|
* @returns {INewsFeed[]} An array of news feed items that have associated articles.
|
|
952
949
|
* @private
|
|
953
950
|
*/
|
|
954
|
-
private removeExpiredArticleGroup(newsFeedItems: INewsFeed[]): INewsFeed[] {
|
|
951
|
+
private removeExpiredArticleGroup(newsFeedItems: INewsFeed[] = []): INewsFeed[] {
|
|
955
952
|
const defaultNews: INewsFeed[] = [];
|
|
956
953
|
const defaultFeedSet = new Set<string>();
|
|
957
954
|
for (const feed of newsFeedItems) {
|
|
@@ -1097,7 +1094,7 @@ export default class NewsPanel extends BaseNewsPanel {
|
|
|
1097
1094
|
const feedType = this.getNewsType();
|
|
1098
1095
|
const isDefaultNews = feedType === NewsType.Default;
|
|
1099
1096
|
if (isDefaultNews) {
|
|
1100
|
-
let aDefaultNewsItems = this.defaultNewsItems
|
|
1097
|
+
let aDefaultNewsItems = this.defaultNewsItems ? this.defaultNewsItems : await this.getDefaultNewsData();
|
|
1101
1098
|
return this.removeExpiredArticleGroup(aDefaultNewsItems);
|
|
1102
1099
|
} else {
|
|
1103
1100
|
return this.getCustomFeedData(sFeedId, showAllPreparationRequired);
|
|
@@ -47,7 +47,7 @@ sap.ui.define(["sap/m/Button", "sap/m/CheckBox", "sap/m/Column", "sap/m/ColumnLi
|
|
|
47
47
|
id: `${this.getId()}-newsResetBtn`,
|
|
48
48
|
visible: false,
|
|
49
49
|
enabled: false,
|
|
50
|
-
text: this._i18nBundle.getText("
|
|
50
|
+
text: this._i18nBundle.getText("resetButton"),
|
|
51
51
|
press: () => this.resetDefaultNewsSettings()
|
|
52
52
|
});
|
|
53
53
|
// Add button to actionButtons aggregation
|
|
@@ -197,7 +197,7 @@ sap.ui.define(["sap/m/Button", "sap/m/CheckBox", "sap/m/Column", "sap/m/ColumnLi
|
|
|
197
197
|
visible: false
|
|
198
198
|
}).addStyleClass("sapUiTinyMarginBegin");
|
|
199
199
|
const placeHolderCol = new Column(this.getId() + "--idNewsGroupPlaceHolder", {
|
|
200
|
-
width: "
|
|
200
|
+
width: "15%"
|
|
201
201
|
});
|
|
202
202
|
|
|
203
203
|
//title column
|
|
@@ -205,13 +205,13 @@ sap.ui.define(["sap/m/Button", "sap/m/CheckBox", "sap/m/Column", "sap/m/ColumnLi
|
|
|
205
205
|
header: new Label(this.getId() + "--idNewsGroupTitleLbl", {
|
|
206
206
|
text: this._i18nBundle.getText("defaultNewsSettingsHeading")
|
|
207
207
|
}),
|
|
208
|
-
width: "
|
|
208
|
+
width: "45%"
|
|
209
209
|
});
|
|
210
210
|
const articleCount = new Column(this.getId() + "--idNewsGroupCount", {
|
|
211
211
|
header: new Label(this.getId() + "--idNewsGroupCountLbl", {
|
|
212
212
|
text: this._i18nBundle.getText("articleCount")
|
|
213
213
|
}),
|
|
214
|
-
width: "
|
|
214
|
+
width: "40%"
|
|
215
215
|
});
|
|
216
216
|
this.groupTable.addColumn(placeHolderCol);
|
|
217
217
|
this.groupTable.addColumn(titleCol);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewsSettingsPanel.js","names":["sap","ui","define","Button","CheckBox","Column","ColumnListItem","CustomListItem","HBox","Label","List","Switch","Table","Text","Title","VBox","CustomData","__BaseSettingsPanel","___library","___utils_Accessibility","___utils_Constants","___utils_FESRUtil","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","BaseSettingsPanel","NewsType","getInvisibleText","SETTINGS_PANELS_KEYS","addFESRSemanticStepName","FESR_EVENTS","PersonalisationUtils","UshellPersonalizer","NewsSettingsPanel","extend","init","_init","BaseSettingsPanel.prototype.init.call","setProperty","NEWS","_i18nBundle","getText","_resetActionButton","id","getId","visible","enabled","text","press","resetDefaultNewsSettings","addActionButton","addAggregation","getContent","attachPanelNavigated","loadNewsFeedSettings","aFavNewsFeed","_getContent","oHeader","setHeader","oTitle","setTitleMessage","oContentVBox","alignItems","justifyContent","items","createCustomNewsList","createNewsGroupTable","getPersonalization","_getPersonalization","_this","_temp2","oPersonalizer","_temp","Promise","resolve","getInstance","getPersContainerId","_getPanel","getOwnerComponent","then","_UshellPersonalizer$g","e","reject","_setHeader","headerText","oHeaderVBox","addStyleClass","_setTitleMessage","title","titleStyle","oTitleHbox","oTitleVBox","_createCustomNewsList","newsListVBox","oShowSwitchLabel","oShowSwitch","customTextOn","customTextOff","change","saveNewsFeedSettings","state","ariaLabelledBy","CHANGE","oCustNewsSwitchContainer","width","oShowAllPrep","oInvisibleText","oList","direction","_createNewsGroupTable","groupTable","includeItemInSelection","placeHolderCol","titleCol","header","articleCount","addColumn","isCSVFileFormat","_isCSVFileFormat","fileName","split","pop","toLowerCase","_saveNewsFeedSettings","_this2","selectedFeeds","deselectedDefaultFeeds","newsType","oNewsPanel","getNewsType","showDefault","Default","customFileName","getProperty","feedKey","getCustomFeedKey","push","collectDeselectedDefaultGroupIds","collectSelectedCustomFeedTitles","personalizer","read","personalizationData","defaultNewsFeed","favNewsFeed","showAllPreparationRequired","getState","write","setState","setEnabled","length","setCustomNewsFeed","_collectSelectedCustomFeedTitles","getItems","flatMap","item","content","getAggregation","hBox","checkBox","getSelected","_collectDeselectedDefaultGroupIds","rows","row","cells","getCells","groupId","getDefaultGroupId","_getDefaultGroupId","contentBox","customData","getCustomData","getValue","setCustomNewsItems","_setCustomNewsItems","aItems","destroyAggregation","forEach","oItem","i","oNewsListItemHbox","select","selected","disabled","customListItem","addItem","_loadNewsFeedSettings","_this3","sFeedKey","showDefaultNewsFeed","setVisible","oPersData","aPersNewsFeed","aNewsFeed","getDefaultNewsData","_this3$oNewsPanel$get","_handleDefaultNewsFeed","getCustomOrDefaultNewsFeed","_this3$oNewsPanel$get2","_handleCustomNewsFeed","setText","mandatoryNewsFeed","getMandatoryDefaultNewsFeed","map","oNewsFeed","isDeselected","group_id","includes","setColumnListItems","_setColumnListItems","destroyItems","colListItem","type","String","_group_to_article","addCustomData","key","value","favFeedTitles","isFavorite","_resetDefaultNewsSettings","_this4","isSupported","_isSupported","_this5","newsPanel","getParent","Custom","isNoUpdatesNewsFeed"],"sources":["NewsSettingsPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Button from \"sap/m/Button\";\nimport CheckBox from \"sap/m/CheckBox\";\nimport Column from \"sap/m/Column\";\nimport ColumnListItem from \"sap/m/ColumnListItem\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport HBox from \"sap/m/HBox\";\nimport Label from \"sap/m/Label\";\nimport List from \"sap/m/List\";\nimport Switch from \"sap/m/Switch\";\nimport Table from \"sap/m/Table\";\nimport Text from \"sap/m/Text\";\nimport Title from \"sap/m/Title\";\nimport VBox from \"sap/m/VBox\";\nimport Component from \"sap/ui/core/Component\";\nimport Control from \"sap/ui/core/Control\";\nimport CustomData from \"sap/ui/core/CustomData\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport { NewsType } from \"./library\";\nimport NewsAndPagesContainer from \"./NewsAndPagesContainer\";\nimport NewsPanel, { INewsFeed } from \"./NewsPanel\";\nimport { getInvisibleText } from \"./utils/Accessibility\";\nimport { SETTINGS_PANELS_KEYS } from \"./utils/Constants\";\nimport { addFESRSemanticStepName, FESR_EVENTS } from \"./utils/FESRUtil\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer from \"./utils/UshellPersonalizer\";\n\ninterface IFavNewsFeed {\n\titems: string[];\n\tshowAllPreparationRequired?: boolean;\n}\n\n/**\n *\n * Class for My Home News Settings Panel.\n *\n * @extends BaseSettingsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.NewsSettingsPanel\n */\nexport default class NewsSettingsPanel extends BaseSettingsPanel {\n\tprivate oShowSwitch!: Switch;\n\tprivate oCustNewsSwitchContainer!: HBox;\n\tprivate oList!: List;\n\tprivate oPersonalizer!: UshellPersonalizer;\n\tprivate oNewsPanel!: NewsPanel;\n\tprivate aFavNewsFeed!: INewsFeed[] | string[];\n\tprivate deselectedDefaultFeeds!: string[];\n\tprivate headerText!: Text;\n\tprivate title!: Title;\n\tprivate groupTable!: Table;\n\tprivate newsListVBox!: VBox;\n\tprivate _resetActionButton!: Button;\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @public\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\n\t\t//setup panel\n\t\tthis.setProperty(\"key\", SETTINGS_PANELS_KEYS.NEWS);\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"news\"));\n\t\tthis.setProperty(\"icon\", \"sap-icon://newspaper\");\n\n\t\tthis._resetActionButton = new Button({\n\t\t\tid: `${this.getId()}-newsResetBtn`,\n\t\t\tvisible: false,\n\t\t\tenabled: false,\n\t\t\ttext: this._i18nBundle.getText(\"resetDefaultButton\"),\n\t\t\tpress: () => this.resetDefaultNewsSettings()\n\t\t});\n\t\t// Add button to actionButtons aggregation\n\t\tthis.addActionButton(this._resetActionButton);\n\t\t//setup layout content\n\t\tthis.addAggregation(\"content\", this.getContent());\n\n\t\t//fired every time on panel navigation\n\t\tthis.attachPanelNavigated(() => {\n\t\t\tvoid this.loadNewsFeedSettings();\n\t\t});\n\t\tthis.aFavNewsFeed = [];\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel.\n\t *\n\t * @private\n\t * @returns {Control} The control containing the News Settings Panel content.\n\t */\n\tprivate getContent(): Control {\n\t\tconst oHeader = this.setHeader();\n\t\tconst oTitle = this.setTitleMessage();\n\t\tconst oContentVBox = new VBox(this.getId() + \"--idNewsPageOuterVBoX\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [oHeader, oTitle, this.createCustomNewsList(), this.createNewsGroupTable()]\n\t\t});\n\t\treturn oContentVBox;\n\t}\n\n\t/**\n\t * Get personalization instance\n\t */\n\tprivate async getPersonalization() {\n\t\tif (!this.oPersonalizer) {\n\t\t\tthis.oPersonalizer = await UshellPersonalizer.getInstance(\n\t\t\t\tPersonalisationUtils.getPersContainerId(this._getPanel()),\n\t\t\t\tPersonalisationUtils.getOwnerComponent(this._getPanel()) as Component\n\t\t\t);\n\t\t}\n\t\treturn this.oPersonalizer;\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel Header.\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's Header content.\n\t */\n\tprivate setHeader() {\n\t\tthis.headerText = new Text(this.getId() + \"--idCustNewsFeedSettingsText\", {\n\t\t\ttext: this._i18nBundle.getText(\"newsFeedSettingsText\")\n\t\t});\n\t\tconst oHeaderVBox = new VBox(this.getId() + \"--idCustNewsFeedSettingsTextContainer\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [this.headerText]\n\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\treturn oHeaderVBox;\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel Title description.\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's Title description.\n\t */\n\tprivate setTitleMessage() {\n\t\tthis.title = new Title(this.getId() + \"--idCustNewsFeedSettignsTitle\", {\n\t\t\ttext: this._i18nBundle.getText(\"newsFeedSettingsHeading\"),\n\t\t\ttitleStyle: \"H3\"\n\t\t});\n\t\tconst oTitleHbox = new HBox(this.getId() + \"--idCustNewsFeedSettingsTitleContainer\", {\n\t\t\talignItems: \"Center\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [this.title]\n\t\t});\n\t\tconst oTitleVBox = new VBox(this.getId() + \"--idCustNewsFeedSettingsTitleVBox\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [oTitleHbox]\n\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\treturn oTitleVBox;\n\t}\n\n\t/**\n\t * Returns the content for the news List for custom news feed\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's List\n\t */\n\tprivate createCustomNewsList() {\n\t\tif (!this.newsListVBox) {\n\t\t\t//showAllPrepRequired Switch\n\t\t\tconst oShowSwitchLabel = new Label(this.getId() + \"--idShowAllCustNewsSwitchLabel\", {\n\t\t\t\ttext: this._i18nBundle.getText(\"showAllPreparationRequiredSwitchLabel\")\n\t\t\t});\n\t\t\tthis.oShowSwitch = new Switch(`${this.getId()}-showSwitch`, {\n\t\t\t\tcustomTextOn: \" \",\n\t\t\t\tcustomTextOff: \" \",\n\t\t\t\tchange: () => {\n\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t},\n\t\t\t\tstate: false,\n\t\t\t\tariaLabelledBy: [`${this.getId()}--idShowAllCustNewsSwitchLabel`]\n\t\t\t});\n\t\t\taddFESRSemanticStepName(this.oShowSwitch, FESR_EVENTS.CHANGE, \"showPrepRequire\");\n\t\t\tthis.oCustNewsSwitchContainer = new HBox(this.getId() + \"--idShowAllCustNewsSwitchContainer\", {\n\t\t\t\talignItems: \"Center\",\n\t\t\t\titems: [oShowSwitchLabel, this.oShowSwitch],\n\t\t\t\twidth: \"94%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop\");\n\n\t\t\tconst oShowAllPrep = new VBox(this.getId() + \"--idShowAllCustNewsSwitchVBox\", {\n\t\t\t\titems: [this.oCustNewsSwitchContainer],\n\t\t\t\twidth: \"94%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop\");\n\t\t\tconst oInvisibleText = getInvisibleText(`${this.getId()}--newsTitleText`, this._i18nBundle.getText(\"newsTitle\"));\n\t\t\t//List of news items\n\t\t\tthis.oList = new List(this.getId() + \"--idCustNewsFeedList\", {\n\t\t\t\tariaLabelledBy: [\n\t\t\t\t\toInvisibleText.getId(),\n\t\t\t\t\t`${this.getId()}--idCustNewsFeedSettingsText`,\n\t\t\t\t\t`${this.getId()}--idCustNewsFeedSettignsTitle`\n\t\t\t\t]\n\t\t\t});\n\t\t\t//Outer VBox\n\t\t\tthis.newsListVBox = new VBox(this.getId() + \"--idCustNewsFeedListContainer\", {\n\t\t\t\tdirection: \"Column\",\n\t\t\t\tvisible: false,\n\t\t\t\titems: [this.oList, oShowAllPrep, oInvisibleText],\n\t\t\t\twidth: \"96%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\t}\n\t\treturn this.newsListVBox;\n\t}\n\n\t/**\n\t *\tCreates and returns a table for managing default news group settings.\n\t * @returns {Table} Table for news groups for default manage news feed\n\t * @private\n\t */\n\tprivate createNewsGroupTable() {\n\t\t//Table for news groups\n\t\tif (!this.groupTable) {\n\t\t\tthis.groupTable = new Table(this.getId() + \"--idNewsGroupTbl\", {\n\t\t\t\tincludeItemInSelection: true,\n\t\t\t\tvisible: false\n\t\t\t}).addStyleClass(\"sapUiTinyMarginBegin\");\n\t\t\tconst placeHolderCol = new Column(this.getId() + \"--idNewsGroupPlaceHolder\", {\n\t\t\t\twidth: \"8%\"\n\t\t\t});\n\n\t\t\t//title column\n\t\t\tconst titleCol = new Column(this.getId() + \"--idNewsGroupTitle\", {\n\t\t\t\theader: new Label(this.getId() + \"--idNewsGroupTitleLbl\", {\n\t\t\t\t\ttext: this._i18nBundle.getText(\"defaultNewsSettingsHeading\")\n\t\t\t\t}),\n\t\t\t\twidth: \"50%\"\n\t\t\t});\n\t\t\tconst articleCount = new Column(this.getId() + \"--idNewsGroupCount\", {\n\t\t\t\theader: new Label(this.getId() + \"--idNewsGroupCountLbl\", {\n\t\t\t\t\ttext: this._i18nBundle.getText(\"articleCount\")\n\t\t\t\t}),\n\t\t\t\twidth: \"42%\"\n\t\t\t});\n\t\t\tthis.groupTable.addColumn(placeHolderCol);\n\t\t\tthis.groupTable.addColumn(titleCol);\n\t\t\tthis.groupTable.addColumn(articleCount);\n\t\t}\n\t\treturn this.groupTable;\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\";\n\t}\n\n\t/**\n\t *\n\t * Saves news feed settings and shows news feed based on selection change of list of switch\n\t *\n\t * @private\n\t */\n\tprivate async saveNewsFeedSettings(): Promise<void> {\n\t\tconst selectedFeeds: string[] = [];\n\t\tconst deselectedDefaultFeeds: string[] = [];\n\t\tconst newsType = this.oNewsPanel?.getNewsType();\n\t\tconst showDefault = newsType === NewsType.Default;\n\t\tconst customFileName = this.oNewsPanel.getProperty(\"customFileName\") as string;\n\t\tconst feedKey = this.oNewsPanel.getCustomFeedKey();\n\t\tif (showDefault) {\n\t\t\tdeselectedDefaultFeeds.push(...this.collectDeselectedDefaultGroupIds());\n\t\t} else {\n\t\t\tselectedFeeds.push(...this.collectSelectedCustomFeedTitles());\n\t\t}\n\n\t\tconst personalizer = await this.getPersonalization();\n\t\tconst personalizationData = (await personalizer.read()) || {};\n\n\t\tif (showDefault) {\n\t\t\tpersonalizationData.defaultNewsFeed = { items: deselectedDefaultFeeds };\n\t\t} else {\n\t\t\tpersonalizationData.favNewsFeed = {\n\t\t\t\titems: selectedFeeds,\n\t\t\t\tshowAllPreparationRequired: this.isCSVFileFormat(customFileName) ? false : this.oShowSwitch.getState()\n\t\t\t} as IFavNewsFeed;\n\t\t}\n\n\t\tawait personalizer.write(personalizationData);\n\n\t\t// get the latest value of switch and set the state\n\t\tif (!showDefault) {\n\t\t\tthis.oShowSwitch.setState(personalizationData.favNewsFeed?.showAllPreparationRequired);\n\t\t} else {\n\t\t\tthis._resetActionButton.setEnabled(!!(deselectedDefaultFeeds.length > 0));\n\t\t}\n\t\tawait this.oNewsPanel.setCustomNewsFeed(showDefault ? \"\" : feedKey);\n\t}\n\n\t/**\n\t * Collect selected custom feed titles from the list\n\t * @returns {string[]} Array of selected custom feed titles\n\t * @private\n\t */\n\tprivate collectSelectedCustomFeedTitles(): string[] {\n\t\tconst items = this.oList?.getItems() ?? [];\n\t\tif (!items.length) return [];\n\t\treturn items.flatMap((item) => {\n\t\t\tconst content = item.getAggregation(\"content\") as Control[] | undefined;\n\t\t\tconst hBox = content?.[0] as HBox | undefined;\n\t\t\tif (!hBox) return [];\n\t\t\tconst [checkBox, text] = hBox.getItems() as [CheckBox, Text];\n\t\t\treturn checkBox.getSelected() ? [text.getText()] : [];\n\t\t});\n\t}\n\n\t/**\n\t * Collect deselected default group IDs from the table\n\t * @returns {string[]} Array of deselected default group IDs from the table\n\t * @private\n\t */\n\tprivate collectDeselectedDefaultGroupIds(): string[] {\n\t\tconst rows = (this.groupTable?.getItems() as ColumnListItem[]) ?? [];\n\t\tif (!rows.length) return [];\n\t\treturn rows.flatMap((row: ColumnListItem) => {\n\t\t\tconst cells = row.getCells() as [CheckBox, Text, Text];\n\t\t\tconst checkBox = cells[0];\n\t\t\tif (checkBox.getSelected()) return [];\n\t\t\tconst groupId = this.getDefaultGroupId(row);\n\t\t\treturn groupId ? [groupId] : [];\n\t\t});\n\t}\n\n\t/**\n\t * Get groupId info for the default NewsList\n\t * @param {HBox | ColumnListItem} contentBox, content Hbox or ColumnListItem\n\t * @returns {string} groupId\n\t * @private\n\t */\n\tprivate getDefaultGroupId(contentBox: HBox | ColumnListItem): string {\n\t\tconst customData = contentBox.getCustomData();\n\t\treturn customData?.length ? (customData[0].getValue() as string) : \"\";\n\t}\n\n\t/**\n\t * Set items for the NewsList for custom news feed\n\t * @param {Array} [aItems] news items to be set as items aggregation\n\t * @private\n\t */\n\tprivate setCustomNewsItems(aItems: INewsFeed[]) {\n\t\tthis.oList.destroyAggregation(\"items\", true);\n\t\t(aItems || []).forEach((oItem: INewsFeed, i: number) => {\n\t\t\tlet oNewsListItemHbox = new HBox({\n\t\t\t\tid: `${this.getId()}--idCustNewsFeedItemContent--${i}`,\n\t\t\t\talignItems: \"Center\",\n\t\t\t\titems: [\n\t\t\t\t\tnew CheckBox(`${this.getId()}--custNewsFeedItemCheckBox--${i}`, {\n\t\t\t\t\t\tselect: () => {\n\t\t\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\t\t\tenabled: !oItem.disabled\n\t\t\t\t\t}),\n\t\t\t\t\tnew Text(`${this.getId()}--custNewsFeedItemText--${i}`, { text: oItem.title })\n\t\t\t\t],\n\t\t\t\twidth: \"100%\"\n\t\t\t});\n\n\t\t\tconst customListItem = new CustomListItem({\n\t\t\t\tid: `${this.getId()}--idCustNewsFeedItem--${i}`,\n\t\t\t\tcontent: [oNewsListItemHbox]\n\t\t\t});\n\t\t\tthis.oList.addItem(customListItem);\n\t\t});\n\t}\n\n\t/**\n\t * Loads news feed settings\n\t *\n\t * @returns {Promise} resolves to news feed settings\n\t */\n\tprivate async loadNewsFeedSettings(): Promise<INewsFeed[] | undefined> {\n\t\tthis.oNewsPanel = this._getPanel() as NewsPanel;\n\t\tconst sFeedKey = this.oNewsPanel.getCustomFeedKey();\n\t\tconst newsType = this.oNewsPanel?.getNewsType();\n\t\tconst showDefaultNewsFeed = newsType === NewsType.Default;\n\n\t\tconst customFileName = this.oNewsPanel.getProperty(\"customFileName\") as string;\n\t\tif (this.isCSVFileFormat(customFileName) || showDefaultNewsFeed) {\n\t\t\tthis.oCustNewsSwitchContainer.setVisible(false);\n\t\t}\n\n\t\tconst oPersonalizer = await this.getPersonalization();\n\t\tconst oPersData = await oPersonalizer.read();\n\t\tconst aPersNewsFeed = (showDefaultNewsFeed ? oPersData?.[\"defaultNewsFeed\"] : oPersData?.[\"favNewsFeed\"]) as IFavNewsFeed;\n\t\tconst showAllPreparationRequired = aPersNewsFeed?.showAllPreparationRequired ?? !aPersNewsFeed;\n\n\t\tlet aNewsFeed: INewsFeed[];\n\t\tif (showDefaultNewsFeed) {\n\t\t\tthis._resetActionButton.setVisible(true);\n\t\t\tthis._resetActionButton.setEnabled(!!(aPersNewsFeed?.items?.length > 0));\n\t\t\taNewsFeed = await this.oNewsPanel.getDefaultNewsData();\n\t\t\treturn this._handleDefaultNewsFeed(aNewsFeed, aPersNewsFeed);\n\t\t} else {\n\t\t\tthis._resetActionButton.setVisible(false);\n\t\t\taNewsFeed = await this.oNewsPanel.getCustomOrDefaultNewsFeed(showDefaultNewsFeed ? \"\" : sFeedKey, false);\n\t\t\treturn this._handleCustomNewsFeed(aNewsFeed, aPersNewsFeed, showAllPreparationRequired);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {INewsFeed[]} aNewsFeed\n\t * @param {IFavNewsFeed} aPersNewsFeed\n\t * @returns {INewsFeed[] | undefined}\n\t * @private\n\t * @description Handles the default news feed settings by setting the header text, title, and items.\n\t * It maps the news feed items to set their selected and disabled states based on the personalisation data.\n\t * If no news feed is provided, it returns undefined.\n\t */\n\tprivate _handleDefaultNewsFeed(aNewsFeed: INewsFeed[], aPersNewsFeed: IFavNewsFeed): INewsFeed[] | undefined {\n\t\tthis.headerText.setText(\n\t\t\tthis._i18nBundle.getText(\"defaultNewsSettingsText\") + \"\\n\" + this._i18nBundle.getText(\"defaultNewsSettingsSubText\")\n\t\t);\n\t\tthis.title.setVisible(false);\n\t\tthis.newsListVBox.setVisible(false);\n\t\tthis.oShowSwitch.setState(false);\n\n\t\tconst mandatoryNewsFeed = this.oNewsPanel.getMandatoryDefaultNewsFeed();\n\t\tthis.deselectedDefaultFeeds = aPersNewsFeed?.items || [];\n\n\t\tif (!aNewsFeed || aNewsFeed.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\taNewsFeed = aNewsFeed.map((oNewsFeed: INewsFeed) => {\n\t\t\t// if group_id not available in deselectedDefaultFeeds, then mark it as selected\n\t\t\tconst isDeselected = oNewsFeed.group_id ? this.deselectedDefaultFeeds.includes(oNewsFeed.group_id) : false;\n\t\t\toNewsFeed.selected = !aPersNewsFeed ? true : !isDeselected;\n\t\t\t// if group_id is available in mandatoryNewsFeed, then mark it as disabled, user cannot hide mandatory feeds\n\t\t\tif (mandatoryNewsFeed.includes(oNewsFeed.group_id ?? \"\")) {\n\t\t\t\toNewsFeed.selected = true;\n\t\t\t\toNewsFeed.disabled = true;\n\t\t\t}\n\n\t\t\treturn oNewsFeed;\n\t\t});\n\n\t\tthis.groupTable.setVisible(true);\n\t\tthis.setColumnListItems(aNewsFeed);\n\n\t\treturn aNewsFeed;\n\t}\n\n\t/**\n\t * This method populates the column list items in the group table for the default news feed settings.\n\t * @param aItems Array of news feed items\n\t * @private\n\t */\n\tprivate setColumnListItems(aItems: INewsFeed[]) {\n\t\tthis.groupTable.destroyItems();\n\t\t//add column list item, title and article count\n\t\t(aItems || []).forEach((oItem: INewsFeed, i: number) => {\n\t\t\tconst colListItem = new ColumnListItem({\n\t\t\t\tid: `${this.getId()}--idNewsGroupColListItem--${i}`,\n\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\ttype: \"Active\",\n\t\t\t\tcells: [\n\t\t\t\t\tnew CheckBox({\n\t\t\t\t\t\tid: `${this.getId()}--idNewsGroupCheckBox--${i}`,\n\t\t\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\t\t\tenabled: !oItem.disabled,\n\t\t\t\t\t\tselect: () => {\n\t\t\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t\tnew Text({ text: oItem.title }),\n\t\t\t\t\tnew Text({ text: String(oItem._group_to_article?.length ?? 0) })\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// if showDefault is true, add group_id as custom data to the item\n\t\t\tcolListItem.addCustomData(new CustomData({ key: \"newsGroupId\", value: oItem.group_id }));\n\t\t\tthis.groupTable.addItem(colListItem);\n\t\t});\n\t}\n\t/**\n\t * @param {INewsFeed[]} aNewsFeed\n\t * @param aPersNewsFeed\n\t * @param showAllPreparationRequired\n\t * @returns {INewsFeed[] | undefined}\n\t * @private\n\t * This method is responsible for managing the custom news feed settings in the News Settings Panel.\n\t * It updates the header text and title, checks if the news feed is available, and maps the news feed items to set their selected state.\n\t * If the news feed is not available or empty, it returns undefined.\n\t * It also sets the state of the show switch based on the `showAllPreparationRequired` parameter.\n\t */\n\tprivate _handleCustomNewsFeed(\n\t\taNewsFeed: INewsFeed[],\n\t\taPersNewsFeed: IFavNewsFeed,\n\t\tshowAllPreparationRequired: boolean\n\t): INewsFeed[] | undefined {\n\t\tthis.groupTable.setVisible(false);\n\t\tthis.headerText.setText(this._i18nBundle.getText(\"newsFeedSettingsText\"));\n\t\tthis.title.setText(this._i18nBundle.getText(\"newsFeedSettingsHeading\"));\n\t\tthis.title.setVisible(true);\n\t\tthis.newsListVBox.setVisible(true);\n\n\t\tif (!aNewsFeed || aNewsFeed.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst favFeedTitles: string[] = aPersNewsFeed?.items || aNewsFeed;\n\t\taNewsFeed = aNewsFeed.map((oNewsFeed: INewsFeed) => {\n\t\t\tconst isFavorite = favFeedTitles.includes(oNewsFeed.title);\n\t\t\toNewsFeed.selected = !aPersNewsFeed ? true : isFavorite;\n\t\t\treturn oNewsFeed;\n\t\t});\n\n\t\tthis.aFavNewsFeed = aNewsFeed;\n\t\tthis.setCustomNewsItems(this.aFavNewsFeed);\n\t\tthis.oShowSwitch.setState(!!showAllPreparationRequired);\n\t\treturn aNewsFeed;\n\t}\n\n\t/**\n\t * Resets the default manage news' news settings to default by clearing\n\t * the personalization data and updating the news panel.\n\t * @private\n\t * @returns {Promise<INewsFeed[] | undefined>} A promise that resolves to the updated news feed items or undefined.\n\t */\n\tprivate async resetDefaultNewsSettings() {\n\t\tconst personalizer = await this.getPersonalization();\n\t\tconst personalizationData = (await personalizer.read()) || {};\n\t\tpersonalizationData.defaultNewsFeed = { items: [] };\n\t\tawait personalizer.write(personalizationData);\n\t\tawait this.oNewsPanel.setCustomNewsFeed(\"\");\n\t\tlet aNewsFeed = await this.oNewsPanel.getDefaultNewsData();\n\t\tthis._resetActionButton.setEnabled(false);\n\t\treturn this._handleDefaultNewsFeed(aNewsFeed, personalizationData.defaultNewsFeed);\n\t}\n\n\t/**\n\t * Checks if the News Settings Panel is supported based on the properties of the News Panel.\n\t *\n\t * @returns {Promise<boolean>} A promise that resolves to true if the News Settings Panel is supported, otherwise false.\n\t */\n\tpublic async isSupported(): Promise<boolean> {\n\t\tconst newsPanel = this._getPanel() as NewsPanel;\n\t\tif (!newsPanel || !(newsPanel?.getParent() as NewsAndPagesContainer).getProperty(\"newsFeedVisibility\")) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\n\t\treturn Promise.resolve(\n\t\t\t(newsPanel.getNewsType() === NewsType.Custom || newsPanel.getNewsType() === NewsType.Default) &&\n\t\t\t\t!newsPanel.isNoUpdatesNewsFeed()\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"NewsSettingsPanel.js","names":["sap","ui","define","Button","CheckBox","Column","ColumnListItem","CustomListItem","HBox","Label","List","Switch","Table","Text","Title","VBox","CustomData","__BaseSettingsPanel","___library","___utils_Accessibility","___utils_Constants","___utils_FESRUtil","__PersonalisationUtils","__UshellPersonalizer","_interopRequireDefault","obj","__esModule","default","BaseSettingsPanel","NewsType","getInvisibleText","SETTINGS_PANELS_KEYS","addFESRSemanticStepName","FESR_EVENTS","PersonalisationUtils","UshellPersonalizer","NewsSettingsPanel","extend","init","_init","BaseSettingsPanel.prototype.init.call","setProperty","NEWS","_i18nBundle","getText","_resetActionButton","id","getId","visible","enabled","text","press","resetDefaultNewsSettings","addActionButton","addAggregation","getContent","attachPanelNavigated","loadNewsFeedSettings","aFavNewsFeed","_getContent","oHeader","setHeader","oTitle","setTitleMessage","oContentVBox","alignItems","justifyContent","items","createCustomNewsList","createNewsGroupTable","getPersonalization","_getPersonalization","_this","_temp2","oPersonalizer","_temp","Promise","resolve","getInstance","getPersContainerId","_getPanel","getOwnerComponent","then","_UshellPersonalizer$g","e","reject","_setHeader","headerText","oHeaderVBox","addStyleClass","_setTitleMessage","title","titleStyle","oTitleHbox","oTitleVBox","_createCustomNewsList","newsListVBox","oShowSwitchLabel","oShowSwitch","customTextOn","customTextOff","change","saveNewsFeedSettings","state","ariaLabelledBy","CHANGE","oCustNewsSwitchContainer","width","oShowAllPrep","oInvisibleText","oList","direction","_createNewsGroupTable","groupTable","includeItemInSelection","placeHolderCol","titleCol","header","articleCount","addColumn","isCSVFileFormat","_isCSVFileFormat","fileName","split","pop","toLowerCase","_saveNewsFeedSettings","_this2","selectedFeeds","deselectedDefaultFeeds","newsType","oNewsPanel","getNewsType","showDefault","Default","customFileName","getProperty","feedKey","getCustomFeedKey","push","collectDeselectedDefaultGroupIds","collectSelectedCustomFeedTitles","personalizer","read","personalizationData","defaultNewsFeed","favNewsFeed","showAllPreparationRequired","getState","write","setState","setEnabled","length","setCustomNewsFeed","_collectSelectedCustomFeedTitles","getItems","flatMap","item","content","getAggregation","hBox","checkBox","getSelected","_collectDeselectedDefaultGroupIds","rows","row","cells","getCells","groupId","getDefaultGroupId","_getDefaultGroupId","contentBox","customData","getCustomData","getValue","setCustomNewsItems","_setCustomNewsItems","aItems","destroyAggregation","forEach","oItem","i","oNewsListItemHbox","select","selected","disabled","customListItem","addItem","_loadNewsFeedSettings","_this3","sFeedKey","showDefaultNewsFeed","setVisible","oPersData","aPersNewsFeed","aNewsFeed","getDefaultNewsData","_this3$oNewsPanel$get","_handleDefaultNewsFeed","getCustomOrDefaultNewsFeed","_this3$oNewsPanel$get2","_handleCustomNewsFeed","setText","mandatoryNewsFeed","getMandatoryDefaultNewsFeed","map","oNewsFeed","isDeselected","group_id","includes","setColumnListItems","_setColumnListItems","destroyItems","colListItem","type","String","_group_to_article","addCustomData","key","value","favFeedTitles","isFavorite","_resetDefaultNewsSettings","_this4","isSupported","_isSupported","_this5","newsPanel","getParent","Custom","isNoUpdatesNewsFeed"],"sources":["NewsSettingsPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Button from \"sap/m/Button\";\nimport CheckBox from \"sap/m/CheckBox\";\nimport Column from \"sap/m/Column\";\nimport ColumnListItem from \"sap/m/ColumnListItem\";\nimport CustomListItem from \"sap/m/CustomListItem\";\nimport HBox from \"sap/m/HBox\";\nimport Label from \"sap/m/Label\";\nimport List from \"sap/m/List\";\nimport Switch from \"sap/m/Switch\";\nimport Table from \"sap/m/Table\";\nimport Text from \"sap/m/Text\";\nimport Title from \"sap/m/Title\";\nimport VBox from \"sap/m/VBox\";\nimport Component from \"sap/ui/core/Component\";\nimport Control from \"sap/ui/core/Control\";\nimport CustomData from \"sap/ui/core/CustomData\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport { NewsType } from \"./library\";\nimport NewsAndPagesContainer from \"./NewsContainer\";\nimport NewsPanel, { INewsFeed } from \"./NewsPanel\";\nimport { getInvisibleText } from \"./utils/Accessibility\";\nimport { SETTINGS_PANELS_KEYS } from \"./utils/Constants\";\nimport { addFESRSemanticStepName, FESR_EVENTS } from \"./utils/FESRUtil\";\nimport PersonalisationUtils from \"./utils/PersonalisationUtils\";\nimport UshellPersonalizer from \"./utils/UshellPersonalizer\";\n\ninterface IFavNewsFeed {\n\titems: string[];\n\tshowAllPreparationRequired?: boolean;\n}\n\n/**\n *\n * Class for My Home News Settings Panel.\n *\n * @extends BaseSettingsPanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.NewsSettingsPanel\n */\nexport default class NewsSettingsPanel extends BaseSettingsPanel {\n\tprivate oShowSwitch!: Switch;\n\tprivate oCustNewsSwitchContainer!: HBox;\n\tprivate oList!: List;\n\tprivate oPersonalizer!: UshellPersonalizer;\n\tprivate oNewsPanel!: NewsPanel;\n\tprivate aFavNewsFeed!: INewsFeed[] | string[];\n\tprivate deselectedDefaultFeeds!: string[];\n\tprivate headerText!: Text;\n\tprivate title!: Title;\n\tprivate groupTable!: Table;\n\tprivate newsListVBox!: VBox;\n\tprivate _resetActionButton!: Button;\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @public\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\n\t\t//setup panel\n\t\tthis.setProperty(\"key\", SETTINGS_PANELS_KEYS.NEWS);\n\t\tthis.setProperty(\"title\", this._i18nBundle.getText(\"news\"));\n\t\tthis.setProperty(\"icon\", \"sap-icon://newspaper\");\n\n\t\tthis._resetActionButton = new Button({\n\t\t\tid: `${this.getId()}-newsResetBtn`,\n\t\t\tvisible: false,\n\t\t\tenabled: false,\n\t\t\ttext: this._i18nBundle.getText(\"resetButton\"),\n\t\t\tpress: () => this.resetDefaultNewsSettings()\n\t\t});\n\t\t// Add button to actionButtons aggregation\n\t\tthis.addActionButton(this._resetActionButton);\n\t\t//setup layout content\n\t\tthis.addAggregation(\"content\", this.getContent());\n\n\t\t//fired every time on panel navigation\n\t\tthis.attachPanelNavigated(() => {\n\t\t\tvoid this.loadNewsFeedSettings();\n\t\t});\n\t\tthis.aFavNewsFeed = [];\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel.\n\t *\n\t * @private\n\t * @returns {Control} The control containing the News Settings Panel content.\n\t */\n\tprivate getContent(): Control {\n\t\tconst oHeader = this.setHeader();\n\t\tconst oTitle = this.setTitleMessage();\n\t\tconst oContentVBox = new VBox(this.getId() + \"--idNewsPageOuterVBoX\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [oHeader, oTitle, this.createCustomNewsList(), this.createNewsGroupTable()]\n\t\t});\n\t\treturn oContentVBox;\n\t}\n\n\t/**\n\t * Get personalization instance\n\t */\n\tprivate async getPersonalization() {\n\t\tif (!this.oPersonalizer) {\n\t\t\tthis.oPersonalizer = await UshellPersonalizer.getInstance(\n\t\t\t\tPersonalisationUtils.getPersContainerId(this._getPanel()),\n\t\t\t\tPersonalisationUtils.getOwnerComponent(this._getPanel()) as Component\n\t\t\t);\n\t\t}\n\t\treturn this.oPersonalizer;\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel Header.\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's Header content.\n\t */\n\tprivate setHeader() {\n\t\tthis.headerText = new Text(this.getId() + \"--idCustNewsFeedSettingsText\", {\n\t\t\ttext: this._i18nBundle.getText(\"newsFeedSettingsText\")\n\t\t});\n\t\tconst oHeaderVBox = new VBox(this.getId() + \"--idCustNewsFeedSettingsTextContainer\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [this.headerText]\n\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\treturn oHeaderVBox;\n\t}\n\n\t/**\n\t * Returns the content for the News Settings Panel Title description.\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's Title description.\n\t */\n\tprivate setTitleMessage() {\n\t\tthis.title = new Title(this.getId() + \"--idCustNewsFeedSettignsTitle\", {\n\t\t\ttext: this._i18nBundle.getText(\"newsFeedSettingsHeading\"),\n\t\t\ttitleStyle: \"H3\"\n\t\t});\n\t\tconst oTitleHbox = new HBox(this.getId() + \"--idCustNewsFeedSettingsTitleContainer\", {\n\t\t\talignItems: \"Center\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [this.title]\n\t\t});\n\t\tconst oTitleVBox = new VBox(this.getId() + \"--idCustNewsFeedSettingsTitleVBox\", {\n\t\t\talignItems: \"Start\",\n\t\t\tjustifyContent: \"SpaceBetween\",\n\t\t\titems: [oTitleHbox]\n\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\treturn oTitleVBox;\n\t}\n\n\t/**\n\t * Returns the content for the news List for custom news feed\n\t *\n\t * @private\n\t * @returns {sap.ui.core.Control} The control containing the News Settings Panel's List\n\t */\n\tprivate createCustomNewsList() {\n\t\tif (!this.newsListVBox) {\n\t\t\t//showAllPrepRequired Switch\n\t\t\tconst oShowSwitchLabel = new Label(this.getId() + \"--idShowAllCustNewsSwitchLabel\", {\n\t\t\t\ttext: this._i18nBundle.getText(\"showAllPreparationRequiredSwitchLabel\")\n\t\t\t});\n\t\t\tthis.oShowSwitch = new Switch(`${this.getId()}-showSwitch`, {\n\t\t\t\tcustomTextOn: \" \",\n\t\t\t\tcustomTextOff: \" \",\n\t\t\t\tchange: () => {\n\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t},\n\t\t\t\tstate: false,\n\t\t\t\tariaLabelledBy: [`${this.getId()}--idShowAllCustNewsSwitchLabel`]\n\t\t\t});\n\t\t\taddFESRSemanticStepName(this.oShowSwitch, FESR_EVENTS.CHANGE, \"showPrepRequire\");\n\t\t\tthis.oCustNewsSwitchContainer = new HBox(this.getId() + \"--idShowAllCustNewsSwitchContainer\", {\n\t\t\t\talignItems: \"Center\",\n\t\t\t\titems: [oShowSwitchLabel, this.oShowSwitch],\n\t\t\t\twidth: \"94%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop\");\n\n\t\t\tconst oShowAllPrep = new VBox(this.getId() + \"--idShowAllCustNewsSwitchVBox\", {\n\t\t\t\titems: [this.oCustNewsSwitchContainer],\n\t\t\t\twidth: \"94%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop\");\n\t\t\tconst oInvisibleText = getInvisibleText(`${this.getId()}--newsTitleText`, this._i18nBundle.getText(\"newsTitle\"));\n\t\t\t//List of news items\n\t\t\tthis.oList = new List(this.getId() + \"--idCustNewsFeedList\", {\n\t\t\t\tariaLabelledBy: [\n\t\t\t\t\toInvisibleText.getId(),\n\t\t\t\t\t`${this.getId()}--idCustNewsFeedSettingsText`,\n\t\t\t\t\t`${this.getId()}--idCustNewsFeedSettignsTitle`\n\t\t\t\t]\n\t\t\t});\n\t\t\t//Outer VBox\n\t\t\tthis.newsListVBox = new VBox(this.getId() + \"--idCustNewsFeedListContainer\", {\n\t\t\t\tdirection: \"Column\",\n\t\t\t\tvisible: false,\n\t\t\t\titems: [this.oList, oShowAllPrep, oInvisibleText],\n\t\t\t\twidth: \"96%\"\n\t\t\t}).addStyleClass(\"sapUiSmallMarginTop sapUiSmallMarginBegin\");\n\t\t}\n\t\treturn this.newsListVBox;\n\t}\n\n\t/**\n\t *\tCreates and returns a table for managing default news group settings.\n\t * @returns {Table} Table for news groups for default manage news feed\n\t * @private\n\t */\n\tprivate createNewsGroupTable() {\n\t\t//Table for news groups\n\t\tif (!this.groupTable) {\n\t\t\tthis.groupTable = new Table(this.getId() + \"--idNewsGroupTbl\", {\n\t\t\t\tincludeItemInSelection: true,\n\t\t\t\tvisible: false\n\t\t\t}).addStyleClass(\"sapUiTinyMarginBegin\");\n\t\t\tconst placeHolderCol = new Column(this.getId() + \"--idNewsGroupPlaceHolder\", {\n\t\t\t\twidth: \"15%\"\n\t\t\t});\n\n\t\t\t//title column\n\t\t\tconst titleCol = new Column(this.getId() + \"--idNewsGroupTitle\", {\n\t\t\t\theader: new Label(this.getId() + \"--idNewsGroupTitleLbl\", {\n\t\t\t\t\ttext: this._i18nBundle.getText(\"defaultNewsSettingsHeading\")\n\t\t\t\t}),\n\t\t\t\twidth: \"45%\"\n\t\t\t});\n\t\t\tconst articleCount = new Column(this.getId() + \"--idNewsGroupCount\", {\n\t\t\t\theader: new Label(this.getId() + \"--idNewsGroupCountLbl\", {\n\t\t\t\t\ttext: this._i18nBundle.getText(\"articleCount\")\n\t\t\t\t}),\n\t\t\t\twidth: \"40%\"\n\t\t\t});\n\t\t\tthis.groupTable.addColumn(placeHolderCol);\n\t\t\tthis.groupTable.addColumn(titleCol);\n\t\t\tthis.groupTable.addColumn(articleCount);\n\t\t}\n\t\treturn this.groupTable;\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\";\n\t}\n\n\t/**\n\t *\n\t * Saves news feed settings and shows news feed based on selection change of list of switch\n\t *\n\t * @private\n\t */\n\tprivate async saveNewsFeedSettings(): Promise<void> {\n\t\tconst selectedFeeds: string[] = [];\n\t\tconst deselectedDefaultFeeds: string[] = [];\n\t\tconst newsType = this.oNewsPanel?.getNewsType();\n\t\tconst showDefault = newsType === NewsType.Default;\n\t\tconst customFileName = this.oNewsPanel.getProperty(\"customFileName\") as string;\n\t\tconst feedKey = this.oNewsPanel.getCustomFeedKey();\n\t\tif (showDefault) {\n\t\t\tdeselectedDefaultFeeds.push(...this.collectDeselectedDefaultGroupIds());\n\t\t} else {\n\t\t\tselectedFeeds.push(...this.collectSelectedCustomFeedTitles());\n\t\t}\n\n\t\tconst personalizer = await this.getPersonalization();\n\t\tconst personalizationData = (await personalizer.read()) || {};\n\n\t\tif (showDefault) {\n\t\t\tpersonalizationData.defaultNewsFeed = { items: deselectedDefaultFeeds };\n\t\t} else {\n\t\t\tpersonalizationData.favNewsFeed = {\n\t\t\t\titems: selectedFeeds,\n\t\t\t\tshowAllPreparationRequired: this.isCSVFileFormat(customFileName) ? false : this.oShowSwitch.getState()\n\t\t\t} as IFavNewsFeed;\n\t\t}\n\n\t\tawait personalizer.write(personalizationData);\n\n\t\t// get the latest value of switch and set the state\n\t\tif (!showDefault) {\n\t\t\tthis.oShowSwitch.setState(personalizationData.favNewsFeed?.showAllPreparationRequired);\n\t\t} else {\n\t\t\tthis._resetActionButton.setEnabled(!!(deselectedDefaultFeeds.length > 0));\n\t\t}\n\t\tawait this.oNewsPanel.setCustomNewsFeed(showDefault ? \"\" : feedKey);\n\t}\n\n\t/**\n\t * Collect selected custom feed titles from the list\n\t * @returns {string[]} Array of selected custom feed titles\n\t * @private\n\t */\n\tprivate collectSelectedCustomFeedTitles(): string[] {\n\t\tconst items = this.oList?.getItems() ?? [];\n\t\tif (!items.length) return [];\n\t\treturn items.flatMap((item) => {\n\t\t\tconst content = item.getAggregation(\"content\") as Control[] | undefined;\n\t\t\tconst hBox = content?.[0] as HBox | undefined;\n\t\t\tif (!hBox) return [];\n\t\t\tconst [checkBox, text] = hBox.getItems() as [CheckBox, Text];\n\t\t\treturn checkBox.getSelected() ? [text.getText()] : [];\n\t\t});\n\t}\n\n\t/**\n\t * Collect deselected default group IDs from the table\n\t * @returns {string[]} Array of deselected default group IDs from the table\n\t * @private\n\t */\n\tprivate collectDeselectedDefaultGroupIds(): string[] {\n\t\tconst rows = (this.groupTable?.getItems() as ColumnListItem[]) ?? [];\n\t\tif (!rows.length) return [];\n\t\treturn rows.flatMap((row: ColumnListItem) => {\n\t\t\tconst cells = row.getCells() as [CheckBox, Text, Text];\n\t\t\tconst checkBox = cells[0];\n\t\t\tif (checkBox.getSelected()) return [];\n\t\t\tconst groupId = this.getDefaultGroupId(row);\n\t\t\treturn groupId ? [groupId] : [];\n\t\t});\n\t}\n\n\t/**\n\t * Get groupId info for the default NewsList\n\t * @param {HBox | ColumnListItem} contentBox, content Hbox or ColumnListItem\n\t * @returns {string} groupId\n\t * @private\n\t */\n\tprivate getDefaultGroupId(contentBox: HBox | ColumnListItem): string {\n\t\tconst customData = contentBox.getCustomData();\n\t\treturn customData?.length ? (customData[0].getValue() as string) : \"\";\n\t}\n\n\t/**\n\t * Set items for the NewsList for custom news feed\n\t * @param {Array} [aItems] news items to be set as items aggregation\n\t * @private\n\t */\n\tprivate setCustomNewsItems(aItems: INewsFeed[]) {\n\t\tthis.oList.destroyAggregation(\"items\", true);\n\t\t(aItems || []).forEach((oItem: INewsFeed, i: number) => {\n\t\t\tlet oNewsListItemHbox = new HBox({\n\t\t\t\tid: `${this.getId()}--idCustNewsFeedItemContent--${i}`,\n\t\t\t\talignItems: \"Center\",\n\t\t\t\titems: [\n\t\t\t\t\tnew CheckBox(`${this.getId()}--custNewsFeedItemCheckBox--${i}`, {\n\t\t\t\t\t\tselect: () => {\n\t\t\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t\t\t},\n\t\t\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\t\t\tenabled: !oItem.disabled\n\t\t\t\t\t}),\n\t\t\t\t\tnew Text(`${this.getId()}--custNewsFeedItemText--${i}`, { text: oItem.title })\n\t\t\t\t],\n\t\t\t\twidth: \"100%\"\n\t\t\t});\n\n\t\t\tconst customListItem = new CustomListItem({\n\t\t\t\tid: `${this.getId()}--idCustNewsFeedItem--${i}`,\n\t\t\t\tcontent: [oNewsListItemHbox]\n\t\t\t});\n\t\t\tthis.oList.addItem(customListItem);\n\t\t});\n\t}\n\n\t/**\n\t * Loads news feed settings\n\t *\n\t * @returns {Promise} resolves to news feed settings\n\t */\n\tprivate async loadNewsFeedSettings(): Promise<INewsFeed[] | undefined> {\n\t\tthis.oNewsPanel = this._getPanel() as NewsPanel;\n\t\tconst sFeedKey = this.oNewsPanel.getCustomFeedKey();\n\t\tconst newsType = this.oNewsPanel?.getNewsType();\n\t\tconst showDefaultNewsFeed = newsType === NewsType.Default;\n\n\t\tconst customFileName = this.oNewsPanel.getProperty(\"customFileName\") as string;\n\t\tif (this.isCSVFileFormat(customFileName) || showDefaultNewsFeed) {\n\t\t\tthis.oCustNewsSwitchContainer.setVisible(false);\n\t\t}\n\n\t\tconst oPersonalizer = await this.getPersonalization();\n\t\tconst oPersData = await oPersonalizer.read();\n\t\tconst aPersNewsFeed = (showDefaultNewsFeed ? oPersData?.[\"defaultNewsFeed\"] : oPersData?.[\"favNewsFeed\"]) as IFavNewsFeed;\n\t\tconst showAllPreparationRequired = aPersNewsFeed?.showAllPreparationRequired ?? !aPersNewsFeed;\n\n\t\tlet aNewsFeed: INewsFeed[];\n\t\tif (showDefaultNewsFeed) {\n\t\t\tthis._resetActionButton.setVisible(true);\n\t\t\tthis._resetActionButton.setEnabled(!!(aPersNewsFeed?.items?.length > 0));\n\t\t\taNewsFeed = await this.oNewsPanel.getDefaultNewsData();\n\t\t\treturn this._handleDefaultNewsFeed(aNewsFeed, aPersNewsFeed);\n\t\t} else {\n\t\t\tthis._resetActionButton.setVisible(false);\n\t\t\taNewsFeed = await this.oNewsPanel.getCustomOrDefaultNewsFeed(showDefaultNewsFeed ? \"\" : sFeedKey, false);\n\t\t\treturn this._handleCustomNewsFeed(aNewsFeed, aPersNewsFeed, showAllPreparationRequired);\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {INewsFeed[]} aNewsFeed\n\t * @param {IFavNewsFeed} aPersNewsFeed\n\t * @returns {INewsFeed[] | undefined}\n\t * @private\n\t * @description Handles the default news feed settings by setting the header text, title, and items.\n\t * It maps the news feed items to set their selected and disabled states based on the personalisation data.\n\t * If no news feed is provided, it returns undefined.\n\t */\n\tprivate _handleDefaultNewsFeed(aNewsFeed: INewsFeed[], aPersNewsFeed: IFavNewsFeed): INewsFeed[] | undefined {\n\t\tthis.headerText.setText(\n\t\t\tthis._i18nBundle.getText(\"defaultNewsSettingsText\") + \"\\n\" + this._i18nBundle.getText(\"defaultNewsSettingsSubText\")\n\t\t);\n\t\tthis.title.setVisible(false);\n\t\tthis.newsListVBox.setVisible(false);\n\t\tthis.oShowSwitch.setState(false);\n\n\t\tconst mandatoryNewsFeed = this.oNewsPanel.getMandatoryDefaultNewsFeed();\n\t\tthis.deselectedDefaultFeeds = aPersNewsFeed?.items || [];\n\n\t\tif (!aNewsFeed || aNewsFeed.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\taNewsFeed = aNewsFeed.map((oNewsFeed: INewsFeed) => {\n\t\t\t// if group_id not available in deselectedDefaultFeeds, then mark it as selected\n\t\t\tconst isDeselected = oNewsFeed.group_id ? this.deselectedDefaultFeeds.includes(oNewsFeed.group_id) : false;\n\t\t\toNewsFeed.selected = !aPersNewsFeed ? true : !isDeselected;\n\t\t\t// if group_id is available in mandatoryNewsFeed, then mark it as disabled, user cannot hide mandatory feeds\n\t\t\tif (mandatoryNewsFeed.includes(oNewsFeed.group_id ?? \"\")) {\n\t\t\t\toNewsFeed.selected = true;\n\t\t\t\toNewsFeed.disabled = true;\n\t\t\t}\n\n\t\t\treturn oNewsFeed;\n\t\t});\n\n\t\tthis.groupTable.setVisible(true);\n\t\tthis.setColumnListItems(aNewsFeed);\n\n\t\treturn aNewsFeed;\n\t}\n\n\t/**\n\t * This method populates the column list items in the group table for the default news feed settings.\n\t * @param aItems Array of news feed items\n\t * @private\n\t */\n\tprivate setColumnListItems(aItems: INewsFeed[]) {\n\t\tthis.groupTable.destroyItems();\n\t\t//add column list item, title and article count\n\t\t(aItems || []).forEach((oItem: INewsFeed, i: number) => {\n\t\t\tconst colListItem = new ColumnListItem({\n\t\t\t\tid: `${this.getId()}--idNewsGroupColListItem--${i}`,\n\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\ttype: \"Active\",\n\t\t\t\tcells: [\n\t\t\t\t\tnew CheckBox({\n\t\t\t\t\t\tid: `${this.getId()}--idNewsGroupCheckBox--${i}`,\n\t\t\t\t\t\tselected: oItem.selected as boolean,\n\t\t\t\t\t\tenabled: !oItem.disabled,\n\t\t\t\t\t\tselect: () => {\n\t\t\t\t\t\t\tvoid this.saveNewsFeedSettings();\n\t\t\t\t\t\t}\n\t\t\t\t\t}),\n\t\t\t\t\tnew Text({ text: oItem.title }),\n\t\t\t\t\tnew Text({ text: String(oItem._group_to_article?.length ?? 0) })\n\t\t\t\t]\n\t\t\t});\n\n\t\t\t// if showDefault is true, add group_id as custom data to the item\n\t\t\tcolListItem.addCustomData(new CustomData({ key: \"newsGroupId\", value: oItem.group_id }));\n\t\t\tthis.groupTable.addItem(colListItem);\n\t\t});\n\t}\n\t/**\n\t * @param {INewsFeed[]} aNewsFeed\n\t * @param aPersNewsFeed\n\t * @param showAllPreparationRequired\n\t * @returns {INewsFeed[] | undefined}\n\t * @private\n\t * This method is responsible for managing the custom news feed settings in the News Settings Panel.\n\t * It updates the header text and title, checks if the news feed is available, and maps the news feed items to set their selected state.\n\t * If the news feed is not available or empty, it returns undefined.\n\t * It also sets the state of the show switch based on the `showAllPreparationRequired` parameter.\n\t */\n\tprivate _handleCustomNewsFeed(\n\t\taNewsFeed: INewsFeed[],\n\t\taPersNewsFeed: IFavNewsFeed,\n\t\tshowAllPreparationRequired: boolean\n\t): INewsFeed[] | undefined {\n\t\tthis.groupTable.setVisible(false);\n\t\tthis.headerText.setText(this._i18nBundle.getText(\"newsFeedSettingsText\"));\n\t\tthis.title.setText(this._i18nBundle.getText(\"newsFeedSettingsHeading\"));\n\t\tthis.title.setVisible(true);\n\t\tthis.newsListVBox.setVisible(true);\n\n\t\tif (!aNewsFeed || aNewsFeed.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst favFeedTitles: string[] = aPersNewsFeed?.items || aNewsFeed;\n\t\taNewsFeed = aNewsFeed.map((oNewsFeed: INewsFeed) => {\n\t\t\tconst isFavorite = favFeedTitles.includes(oNewsFeed.title);\n\t\t\toNewsFeed.selected = !aPersNewsFeed ? true : isFavorite;\n\t\t\treturn oNewsFeed;\n\t\t});\n\n\t\tthis.aFavNewsFeed = aNewsFeed;\n\t\tthis.setCustomNewsItems(this.aFavNewsFeed);\n\t\tthis.oShowSwitch.setState(!!showAllPreparationRequired);\n\t\treturn aNewsFeed;\n\t}\n\n\t/**\n\t * Resets the default manage news' news settings to default by clearing\n\t * the personalization data and updating the news panel.\n\t * @private\n\t * @returns {Promise<INewsFeed[] | undefined>} A promise that resolves to the updated news feed items or undefined.\n\t */\n\tprivate async resetDefaultNewsSettings() {\n\t\tconst personalizer = await this.getPersonalization();\n\t\tconst personalizationData = (await personalizer.read()) || {};\n\t\tpersonalizationData.defaultNewsFeed = { items: [] };\n\t\tawait personalizer.write(personalizationData);\n\t\tawait this.oNewsPanel.setCustomNewsFeed(\"\");\n\t\tlet aNewsFeed = await this.oNewsPanel.getDefaultNewsData();\n\t\tthis._resetActionButton.setEnabled(false);\n\t\treturn this._handleDefaultNewsFeed(aNewsFeed, personalizationData.defaultNewsFeed);\n\t}\n\n\t/**\n\t * Checks if the News Settings Panel is supported based on the properties of the News Panel.\n\t *\n\t * @returns {Promise<boolean>} A promise that resolves to true if the News Settings Panel is supported, otherwise false.\n\t */\n\tpublic async isSupported(): Promise<boolean> {\n\t\tconst newsPanel = this._getPanel() as NewsPanel;\n\t\tif (!newsPanel || !(newsPanel?.getParent() as NewsAndPagesContainer).getProperty(\"newsFeedVisibility\")) {\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\n\t\treturn Promise.resolve(\n\t\t\t(newsPanel.getNewsType() === NewsType.Custom || newsPanel.getNewsType() === NewsType.Default) &&\n\t\t\t\t!newsPanel.isNoUpdatesNewsFeed()\n\t\t);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,7 +21,7 @@ import Control from "sap/ui/core/Control";
|
|
|
21
21
|
import CustomData from "sap/ui/core/CustomData";
|
|
22
22
|
import BaseSettingsPanel from "./BaseSettingsPanel";
|
|
23
23
|
import { NewsType } from "./library";
|
|
24
|
-
import NewsAndPagesContainer from "./
|
|
24
|
+
import NewsAndPagesContainer from "./NewsContainer";
|
|
25
25
|
import NewsPanel, { INewsFeed } from "./NewsPanel";
|
|
26
26
|
import { getInvisibleText } from "./utils/Accessibility";
|
|
27
27
|
import { SETTINGS_PANELS_KEYS } from "./utils/Constants";
|
|
@@ -79,7 +79,7 @@ export default class NewsSettingsPanel extends BaseSettingsPanel {
|
|
|
79
79
|
id: `${this.getId()}-newsResetBtn`,
|
|
80
80
|
visible: false,
|
|
81
81
|
enabled: false,
|
|
82
|
-
text: this._i18nBundle.getText("
|
|
82
|
+
text: this._i18nBundle.getText("resetButton"),
|
|
83
83
|
press: () => this.resetDefaultNewsSettings()
|
|
84
84
|
});
|
|
85
85
|
// Add button to actionButtons aggregation
|
|
@@ -231,7 +231,7 @@ export default class NewsSettingsPanel extends BaseSettingsPanel {
|
|
|
231
231
|
visible: false
|
|
232
232
|
}).addStyleClass("sapUiTinyMarginBegin");
|
|
233
233
|
const placeHolderCol = new Column(this.getId() + "--idNewsGroupPlaceHolder", {
|
|
234
|
-
width: "
|
|
234
|
+
width: "15%"
|
|
235
235
|
});
|
|
236
236
|
|
|
237
237
|
//title column
|
|
@@ -239,13 +239,13 @@ export default class NewsSettingsPanel extends BaseSettingsPanel {
|
|
|
239
239
|
header: new Label(this.getId() + "--idNewsGroupTitleLbl", {
|
|
240
240
|
text: this._i18nBundle.getText("defaultNewsSettingsHeading")
|
|
241
241
|
}),
|
|
242
|
-
width: "
|
|
242
|
+
width: "45%"
|
|
243
243
|
});
|
|
244
244
|
const articleCount = new Column(this.getId() + "--idNewsGroupCount", {
|
|
245
245
|
header: new Label(this.getId() + "--idNewsGroupCountLbl", {
|
|
246
246
|
text: this._i18nBundle.getText("articleCount")
|
|
247
247
|
}),
|
|
248
|
-
width: "
|
|
248
|
+
width: "40%"
|
|
249
249
|
});
|
|
250
250
|
this.groupTable.addColumn(placeHolderCol);
|
|
251
251
|
this.groupTable.addColumn(titleCol);
|
|
@@ -102,7 +102,7 @@ declare module "sap/cux/home/PagePanel" {
|
|
|
102
102
|
* @private
|
|
103
103
|
*/
|
|
104
104
|
private getPlaceholderPageTiles;
|
|
105
|
-
attachResizeHandler(
|
|
105
|
+
attachResizeHandler(containerWidth: number, pagesContentWrapper: FlexBox): void;
|
|
106
106
|
getUserAvailablePages(): Promise<IPage[]>;
|
|
107
107
|
private calculatePagesPerRow;
|
|
108
108
|
private _getInnerControls;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PagePanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/PagePanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,wBAAwB,CAAC;IAOxC,OAAO,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;IAU1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAGtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IACzE,OAAO,aAAa,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"PagePanel.d.ts","sourceRoot":"../../../../..","sources":["src/sap/cux/home/PagePanel.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,wBAAwB,CAAC;IAOxC,OAAO,OAAO,EAAE,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;IAU1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;IAGtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;IACzE,OAAO,aAAa,MAAM,4BAA4B,CAAC;IAKvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;IACpF,OAAO,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;IAWlE,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;KAsBd,CAAC;IAEF,MAAM,kBAAkB,IAAI,CAAC;IAC7B,MAAM,YAAY,IAAI,CAAC;IACvB,MAAM,WAAW,IAAI,CAAC;IAEtB;;;;;;;;;;;;OAYG;IACH,MAAM,aAAc,SAAQ,OAAO;oBACtB,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB;oBACxC,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB;QAKpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAKvC;QACF,MAAM,CAAC,QAAQ;;UAEb;KACF;IAED;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAAa;QACnD,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAkBvC;QACF,OAAO,CAAC,gBAAgB,CAAiB;QACzC,OAAO,CAAC,YAAY,CAAQ;QAC5B,OAAO,CAAC,YAAY,CAA2B;QAC/C,OAAO,CAAC,mBAAmB,CAAe;QAC1C,OAAO,CAAC,SAAS,CAAW;QAC5B,OAAO,CAAC,cAAc,CAAiB;QACvC,OAAO,CAAC,UAAU,CAAsB;QACxC,OAAO,CAAC,kBAAkB,CAAQ;QAClC,OAAO,CAAC,WAAW,CAAU;QAC7B,OAAO,CAAC,aAAa,CAAsB;QAC3C,OAAO,CAAC,SAAS,CAAY;QAE7B;;;;;WAKG;oBACgB,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,sBAAsB;QAIjE,IAAI;QAqDJ,OAAO,CAAC,WAAW;QAKN,OAAO,CAAC,WAAW,GAAE,OAAe;QAYjD;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;QAKxB;;;WAGG;QACH,OAAO,CAAC,uBAAuB;QAiBxB,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAG,IAAI;QA6CzE,qBAAqB;QAIlC,OAAO,CAAC,oBAAoB;QAqC5B,OAAO,CAAC,iBAAiB;QAqEzB,OAAO,CAAC,mBAAmB;QAQ3B,OAAO,CAAC,oBAAoB;QAkB5B,OAAO,CAAC,iBAAiB;QAiBzB,OAAO,CAAC,kBAAkB;gBAaZ,cAAc;gBAkBd,eAAe;QAe7B;;;;;;;;WAQG;QACH,OAAO,CAAC,eAAe;QASvB;;;;;;;WAOG;gBACW,qBAAqB;QAc5B,0BAA0B,CAAC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC;QAI7E,yBAAyB,CAAC,gBAAgB,EAAE,KAAK,CAAC,yBAAyB,CAAC;QAInF,OAAO,CAAC,uBAAuB;QAK/B;;;;;WAKG;QACI,cAAc,IAAI,OAAO;KAGhC;CAEA"}
|
|
@@ -246,25 +246,21 @@ sap.ui.define(["sap/m/Button", "sap/m/FlexBox", "sap/m/GenericTile", "sap/m/Illu
|
|
|
246
246
|
});
|
|
247
247
|
return placeholderTiles;
|
|
248
248
|
},
|
|
249
|
-
attachResizeHandler: function _attachResizeHandler(
|
|
249
|
+
attachResizeHandler: function _attachResizeHandler(containerWidth, pagesContentWrapper) {
|
|
250
250
|
try {
|
|
251
251
|
const favPagesCount = this.aFavPages?.length,
|
|
252
252
|
deviceType = this.getDeviceType();
|
|
253
|
-
|
|
254
|
-
if ((deviceType === DeviceType.Desktop || deviceType === DeviceType.LargeDesktop || deviceType === DeviceType.XLargeDesktop) && isNewsTileVisible) {
|
|
255
|
-
domRefClientWidth = containerWidth / 2;
|
|
256
|
-
}
|
|
257
|
-
if (!domRefClientWidth) {
|
|
253
|
+
if (!containerWidth) {
|
|
258
254
|
return;
|
|
259
255
|
}
|
|
260
256
|
let tileWidth,
|
|
261
257
|
hBoxWidth,
|
|
262
258
|
finalTilesWidth,
|
|
263
|
-
wrapperWidth =
|
|
259
|
+
wrapperWidth = containerWidth / 16; // Divide by 16 to convert to rem,
|
|
264
260
|
const gap = deviceType === DeviceType.Mobile ? 0.5 : 1;
|
|
265
261
|
pagesContentWrapper.setWidth("100%");
|
|
266
262
|
if (favPagesCount > 0) {
|
|
267
|
-
const pagesPerRow = this.calculatePagesPerRow(favPagesCount
|
|
263
|
+
const pagesPerRow = this.calculatePagesPerRow(favPagesCount);
|
|
268
264
|
if (pagesPerRow) {
|
|
269
265
|
const maxTileWidth = tileSizes[deviceType].maxWidth;
|
|
270
266
|
let minTileWidth = tileSizes[deviceType].minWidth;
|
|
@@ -299,11 +295,23 @@ sap.ui.define(["sap/m/Button", "sap/m/FlexBox", "sap/m/GenericTile", "sap/m/Illu
|
|
|
299
295
|
return Promise.reject(e);
|
|
300
296
|
}
|
|
301
297
|
},
|
|
302
|
-
calculatePagesPerRow: function _calculatePagesPerRow(favPagesCount
|
|
298
|
+
calculatePagesPerRow: function _calculatePagesPerRow(favPagesCount) {
|
|
299
|
+
const parentContainer = this.getParent();
|
|
300
|
+
const layout = parentContainer._getLayout();
|
|
301
|
+
const layoutItems = layout.getItems();
|
|
302
|
+
|
|
303
|
+
//loop through layout items and check if any two items have same composite id and same custom style class and are visible
|
|
304
|
+
const isSideBySideLayoutActive = layoutItems.some(item => {
|
|
305
|
+
const compositeId = item.getProperty("compositeId");
|
|
306
|
+
if (item.getVisible() && item.getId() !== parentContainer.getId() && item.hasStyleClass(`${compositeId}`) && compositeId === parentContainer.getProperty("compositeId")) {
|
|
307
|
+
return true;
|
|
308
|
+
}
|
|
309
|
+
return false;
|
|
310
|
+
});
|
|
303
311
|
let pagesPerRow = 0;
|
|
304
312
|
const deviceType = this.getDeviceType();
|
|
305
313
|
if (deviceType === DeviceType.Desktop || deviceType === DeviceType.LargeDesktop || deviceType === DeviceType.XLargeDesktop) {
|
|
306
|
-
if (
|
|
314
|
+
if (isSideBySideLayoutActive) {
|
|
307
315
|
// halves the tiles in 2 rows
|
|
308
316
|
pagesPerRow = Math.ceil(favPagesCount >= maxTileCOunt ? maxRowCount : favPagesCount / 2);
|
|
309
317
|
} else {
|