@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.
Files changed (294) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +4 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +3 -2
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.js +6 -5
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  7. package/src/sap/cux/home/AdvancedSettingsPanel.ts +6 -5
  8. package/src/sap/cux/home/AppsAdditionPanel.d.ts +47 -34
  9. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  10. package/src/sap/cux/home/AppsAdditionPanel.js +333 -237
  11. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  12. package/src/sap/cux/home/AppsAdditionPanel.ts +344 -230
  13. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsContainer.js +3 -2
  15. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  16. package/src/sap/cux/home/AppsContainer.ts +3 -2
  17. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  18. package/src/sap/cux/home/BaseAppPanel.js +6 -1
  19. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  20. package/src/sap/cux/home/BaseAppPanel.ts +6 -1
  21. package/src/sap/cux/home/BaseContainer.d.ts +1 -1
  22. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  23. package/src/sap/cux/home/BaseContainer.js +10 -2
  24. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  25. package/src/sap/cux/home/BaseContainer.ts +7 -3
  26. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  27. package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
  28. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  29. package/src/sap/cux/home/BaseContainerRenderer.ts +6 -0
  30. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  31. package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
  32. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  33. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  34. package/src/sap/cux/home/CardsContainer.js +207 -0
  35. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  36. package/src/sap/cux/home/CardsContainer.ts +202 -0
  37. package/src/sap/cux/home/CardsPanel.d.ts +43 -62
  38. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  39. package/src/sap/cux/home/CardsPanel.js +345 -285
  40. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  41. package/src/sap/cux/home/CardsPanel.ts +211 -200
  42. package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
  43. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  44. package/src/sap/cux/home/ContentAdditionDialog.js +12 -6
  45. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  46. package/src/sap/cux/home/ContentAdditionDialog.ts +13 -5
  47. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  48. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  49. package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
  50. package/src/sap/cux/home/ErrorPanel.js +11 -16
  51. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  52. package/src/sap/cux/home/ErrorPanel.ts +7 -19
  53. package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
  54. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  55. package/src/sap/cux/home/FavAppPanel.js +296 -301
  56. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  57. package/src/sap/cux/home/FavAppPanel.ts +14 -10
  58. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +11 -4
  59. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  60. package/src/sap/cux/home/InsightsAdditionPanel.js +20 -8
  61. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  62. package/src/sap/cux/home/InsightsAdditionPanel.ts +20 -7
  63. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
  64. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
  65. package/src/sap/cux/home/InsightsCardsSettingsPanel.js +15 -0
  66. package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
  67. package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +11 -0
  68. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
  69. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  70. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +1 -1
  71. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  72. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  73. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
  74. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  75. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +287 -57
  76. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  77. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
  78. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  79. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
  80. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
  81. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  82. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
  83. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  84. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
  85. package/src/sap/cux/home/Layout.d.ts +3 -1
  86. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  87. package/src/sap/cux/home/Layout.js +49 -8
  88. package/src/sap/cux/home/Layout.js.map +1 -1
  89. package/src/sap/cux/home/Layout.ts +59 -8
  90. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  91. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  92. package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
  93. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  94. package/src/sap/cux/home/LayoutSettingsPanel.ts +379 -63
  95. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
  96. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  97. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
  98. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
  99. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  100. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +29 -118
  101. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  102. package/src/sap/cux/home/NewsGroup.ts +1 -1
  103. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  104. package/src/sap/cux/home/NewsPanel.js +12 -14
  105. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  106. package/src/sap/cux/home/NewsPanel.ts +13 -16
  107. package/src/sap/cux/home/NewsSettingsPanel.js +4 -4
  108. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  109. package/src/sap/cux/home/NewsSettingsPanel.ts +5 -5
  110. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  111. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  112. package/src/sap/cux/home/PagePanel.js +18 -10
  113. package/src/sap/cux/home/PagePanel.js.map +1 -1
  114. package/src/sap/cux/home/PagePanel.ts +25 -15
  115. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  116. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  117. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  118. package/src/sap/cux/home/PagesContainer.js +333 -0
  119. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  120. package/src/sap/cux/home/PagesContainer.ts +179 -0
  121. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  122. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  123. package/src/sap/cux/home/SpaceInsightsPanel.js +66 -132
  124. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  125. package/src/sap/cux/home/SpaceInsightsPanel.ts +69 -151
  126. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  127. package/src/sap/cux/home/TaskPanel.js +16 -1
  128. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  129. package/src/sap/cux/home/TaskPanel.ts +15 -1
  130. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  131. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  132. package/src/sap/cux/home/TilesContainer.js +218 -0
  133. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  134. package/src/sap/cux/home/TilesContainer.ts +216 -0
  135. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  136. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  137. package/src/sap/cux/home/TilesPanel.js +184 -165
  138. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  139. package/src/sap/cux/home/TilesPanel.ts +160 -154
  140. package/src/sap/cux/home/ToDoPanel.d.ts +1 -0
  141. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  142. package/src/sap/cux/home/ToDoPanel.js +38 -63
  143. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  144. package/src/sap/cux/home/ToDoPanel.ts +32 -31
  145. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +2 -2
  146. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  147. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +1 -1
  148. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  149. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +4 -4
  150. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +2 -2
  151. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  152. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +1 -1
  153. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  154. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +4 -4
  155. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +2 -2
  156. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  157. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +1 -1
  158. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  159. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +3 -3
  160. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +2 -2
  161. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  162. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +4 -4
  163. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  164. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +5 -5
  165. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  166. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +30 -3
  167. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  168. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +23 -1
  169. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  170. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  171. package/src/sap/cux/home/flexibility/Layout.flexibility.js +78 -2
  172. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  173. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +81 -1
  174. package/src/sap/cux/home/i18n/messagebundle.properties +26 -12
  175. package/src/sap/cux/home/i18n/messagebundle_ar.properties +18 -2
  176. package/src/sap/cux/home/i18n/messagebundle_bg.properties +18 -2
  177. package/src/sap/cux/home/i18n/messagebundle_ca.properties +18 -2
  178. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +18 -2
  179. package/src/sap/cux/home/i18n/messagebundle_cs.properties +18 -2
  180. package/src/sap/cux/home/i18n/messagebundle_cy.properties +18 -2
  181. package/src/sap/cux/home/i18n/messagebundle_da.properties +18 -2
  182. package/src/sap/cux/home/i18n/messagebundle_de.properties +18 -2
  183. package/src/sap/cux/home/i18n/messagebundle_el.properties +18 -2
  184. package/src/sap/cux/home/i18n/messagebundle_en.properties +19 -3
  185. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +18 -2
  186. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +21 -5
  187. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +21 -5
  188. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +18 -2
  189. package/src/sap/cux/home/i18n/messagebundle_es.properties +19 -2
  190. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +18 -2
  191. package/src/sap/cux/home/i18n/messagebundle_et.properties +18 -2
  192. package/src/sap/cux/home/i18n/messagebundle_fi.properties +18 -2
  193. package/src/sap/cux/home/i18n/messagebundle_fr.properties +18 -2
  194. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +18 -2
  195. package/src/sap/cux/home/i18n/messagebundle_hi.properties +18 -2
  196. package/src/sap/cux/home/i18n/messagebundle_hr.properties +18 -2
  197. package/src/sap/cux/home/i18n/messagebundle_hu.properties +18 -2
  198. package/src/sap/cux/home/i18n/messagebundle_id.properties +18 -2
  199. package/src/sap/cux/home/i18n/messagebundle_it.properties +23 -7
  200. package/src/sap/cux/home/i18n/messagebundle_iw.properties +18 -2
  201. package/src/sap/cux/home/i18n/messagebundle_ja.properties +18 -2
  202. package/src/sap/cux/home/i18n/messagebundle_kk.properties +18 -2
  203. package/src/sap/cux/home/i18n/messagebundle_ko.properties +18 -2
  204. package/src/sap/cux/home/i18n/messagebundle_lt.properties +18 -2
  205. package/src/sap/cux/home/i18n/messagebundle_lv.properties +18 -2
  206. package/src/sap/cux/home/i18n/messagebundle_mk.properties +18 -2
  207. package/src/sap/cux/home/i18n/messagebundle_ms.properties +18 -2
  208. package/src/sap/cux/home/i18n/messagebundle_nl.properties +18 -2
  209. package/src/sap/cux/home/i18n/messagebundle_no.properties +18 -2
  210. package/src/sap/cux/home/i18n/messagebundle_pl.properties +18 -2
  211. package/src/sap/cux/home/i18n/messagebundle_pt.properties +18 -2
  212. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +18 -2
  213. package/src/sap/cux/home/i18n/messagebundle_ro.properties +18 -2
  214. package/src/sap/cux/home/i18n/messagebundle_ru.properties +18 -2
  215. package/src/sap/cux/home/i18n/messagebundle_sh.properties +18 -2
  216. package/src/sap/cux/home/i18n/messagebundle_sk.properties +18 -2
  217. package/src/sap/cux/home/i18n/messagebundle_sl.properties +18 -2
  218. package/src/sap/cux/home/i18n/messagebundle_sr.properties +18 -2
  219. package/src/sap/cux/home/i18n/messagebundle_sv.properties +18 -2
  220. package/src/sap/cux/home/i18n/messagebundle_th.properties +18 -2
  221. package/src/sap/cux/home/i18n/messagebundle_tr.properties +18 -2
  222. package/src/sap/cux/home/i18n/messagebundle_uk.properties +20 -4
  223. package/src/sap/cux/home/i18n/messagebundle_vi.properties +18 -2
  224. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +18 -2
  225. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +18 -2
  226. package/src/sap/cux/home/interface/CardsInterface.d.ts +6 -0
  227. package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
  228. package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
  229. package/src/sap/cux/home/interface/CardsInterface.ts +6 -1
  230. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +27 -4
  231. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  232. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  233. package/src/sap/cux/home/interface/KeyUserInterface.ts +23 -4
  234. package/src/sap/cux/home/interface/LayoutInterface.d.ts +7 -0
  235. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  236. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  237. package/src/sap/cux/home/interface/LayoutInterface.ts +7 -0
  238. package/src/sap/cux/home/library.d.ts.map +1 -1
  239. package/src/sap/cux/home/library.js +7 -4
  240. package/src/sap/cux/home/library.js.map +1 -1
  241. package/src/sap/cux/home/library.ts +10 -5
  242. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  243. package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
  244. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +0 -45
  245. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  246. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  247. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  248. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  249. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  250. package/src/sap/cux/home/utils/BatchHelper.d.ts +1 -0
  251. package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
  252. package/src/sap/cux/home/utils/BatchHelper.js +7 -2
  253. package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
  254. package/src/sap/cux/home/utils/BatchHelper.ts +8 -1
  255. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  256. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  257. package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
  258. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  259. package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
  260. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +150 -151
  261. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  262. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  263. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
  264. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  265. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
  266. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  267. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  268. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  269. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  270. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  271. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  272. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  273. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
  274. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  275. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
  276. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  277. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  278. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  279. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  280. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  281. package/ui5.yaml +1 -0
  282. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  283. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  284. package/src/sap/cux/home/InsightsContainer.js +0 -459
  285. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  286. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  287. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  288. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  289. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  290. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  291. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  292. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  293. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  294. 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 "./NewsAndPagesContainer";
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
- let sUrl: string = this.getUrl();
326
- let showCustom = this.getProperty("type") === NewsType.Custom;
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 === sUrl) {
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(sUrl);
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(sUrl);
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(showDefault);
351
+ await this.setPersDataNewsFeed(this.getProperty("type") === NewsType.Default);
355
352
  }
356
- if (showDefault) {
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 (sUrl && showRssAtom) {
357
+ } else if (this.getUrl() && this.getProperty("type") === NewsType.NewsUrl) {
361
358
  //rss feed scenario
362
- this.oNewsModel = await this.initializeXmlModel(sUrl);
359
+ this.oNewsModel = await this.initializeXmlModel(this.getUrl());
363
360
  this.oNewsTile.setModel(this.oNewsModel);
364
361
  this.oManageMenuItem.setVisible(false);
365
- } else if (showCustom) {
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 ?? (await this.getDefaultNewsData());
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("resetDefaultButton"),
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: "8%"
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: "50%"
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: "42%"
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 "./NewsAndPagesContainer";
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("resetDefaultButton"),
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: "8%"
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: "50%"
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: "42%"
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(isNewsTileVisible: boolean, containerWidth: number, pagesContentWrapper: FlexBox): void;
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;IAIvD,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,iBAAiB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,GAAG,IAAI;QAqDrG,qBAAqB;QAIlC,OAAO,CAAC,oBAAoB;QAoB5B,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"}
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(isNewsTileVisible, containerWidth, pagesContentWrapper) {
249
+ attachResizeHandler: function _attachResizeHandler(containerWidth, pagesContentWrapper) {
250
250
  try {
251
251
  const favPagesCount = this.aFavPages?.length,
252
252
  deviceType = this.getDeviceType();
253
- let domRefClientWidth = containerWidth;
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 = domRefClientWidth / 16; // Divide by 16 to convert to rem,
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, isNewsTileVisible);
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, isNewsFeedVisible) {
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 (isNewsFeedVisible) {
314
+ if (isSideBySideLayoutActive) {
307
315
  // halves the tiles in 2 rows
308
316
  pagesPerRow = Math.ceil(favPagesCount >= maxTileCOunt ? maxRowCount : favPagesCount / 2);
309
317
  } else {