@sapui5/sap.cux.home 1.142.0 → 1.143.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) 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/App.d.ts.map +1 -1
  9. package/src/sap/cux/home/App.js +3 -0
  10. package/src/sap/cux/home/App.js.map +1 -1
  11. package/src/sap/cux/home/App.ts +3 -0
  12. package/src/sap/cux/home/AppsAdditionPanel.d.ts +74 -34
  13. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  14. package/src/sap/cux/home/AppsAdditionPanel.js +344 -146
  15. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.ts +367 -149
  17. package/src/sap/cux/home/AppsContainer.js +2 -1
  18. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  19. package/src/sap/cux/home/AppsContainer.ts +2 -2
  20. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  21. package/src/sap/cux/home/BaseContainer.js +9 -1
  22. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  23. package/src/sap/cux/home/BaseContainer.ts +6 -2
  24. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  25. package/src/sap/cux/home/BaseContainerRenderer.js +6 -0
  26. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  27. package/src/sap/cux/home/BaseContainerRenderer.ts +6 -0
  28. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  29. package/src/sap/cux/home/BaseNewsPanel.ts +2 -2
  30. package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
  31. package/src/sap/cux/home/BasePanel.js +3 -2
  32. package/src/sap/cux/home/BasePanel.js.map +1 -1
  33. package/src/sap/cux/home/BasePanel.ts +2 -1
  34. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  35. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  36. package/src/sap/cux/home/CardsContainer.js +207 -0
  37. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  38. package/src/sap/cux/home/CardsContainer.ts +202 -0
  39. package/src/sap/cux/home/CardsPanel.d.ts +25 -59
  40. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  41. package/src/sap/cux/home/CardsPanel.js +157 -155
  42. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  43. package/src/sap/cux/home/CardsPanel.ts +152 -175
  44. package/src/sap/cux/home/ContentAdditionDialog.d.ts +2 -0
  45. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  46. package/src/sap/cux/home/ContentAdditionDialog.js +12 -6
  47. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  48. package/src/sap/cux/home/ContentAdditionDialog.ts +13 -5
  49. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  50. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  51. package/src/sap/cux/home/ErrorPanel.gen.d.ts +31 -0
  52. package/src/sap/cux/home/ErrorPanel.js +11 -16
  53. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  54. package/src/sap/cux/home/ErrorPanel.ts +7 -19
  55. package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
  56. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  57. package/src/sap/cux/home/FavAppPanel.js +296 -301
  58. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  59. package/src/sap/cux/home/FavAppPanel.ts +18 -14
  60. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
  61. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  62. package/src/sap/cux/home/InsightsAdditionPanel.js +10 -9
  63. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  64. package/src/sap/cux/home/InsightsAdditionPanel.ts +9 -8
  65. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +1 -1
  66. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  67. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +3 -3
  68. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  69. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  70. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +252 -39
  71. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  72. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
  73. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  74. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +11 -10
  75. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  76. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +12 -10
  77. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +2 -2
  78. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  79. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +7 -7
  80. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  81. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +2 -2
  82. package/src/sap/cux/home/Layout.d.ts +3 -1
  83. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  84. package/src/sap/cux/home/Layout.js +45 -8
  85. package/src/sap/cux/home/Layout.js.map +1 -1
  86. package/src/sap/cux/home/Layout.ts +55 -8
  87. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  88. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  89. package/src/sap/cux/home/LayoutSettingsPanel.js +341 -56
  90. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  91. package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
  92. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
  93. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  94. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +3 -3
  95. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +26 -113
  96. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  97. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +29 -118
  98. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  99. package/src/sap/cux/home/NewsGroup.ts +1 -1
  100. package/src/sap/cux/home/NewsPanel.js +2 -2
  101. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  102. package/src/sap/cux/home/NewsPanel.ts +3 -3
  103. package/src/sap/cux/home/NewsSettingsPanel.js +3 -3
  104. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  105. package/src/sap/cux/home/NewsSettingsPanel.ts +4 -4
  106. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  107. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  108. package/src/sap/cux/home/PagePanel.js +18 -10
  109. package/src/sap/cux/home/PagePanel.js.map +1 -1
  110. package/src/sap/cux/home/PagePanel.ts +25 -15
  111. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  112. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  113. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  114. package/src/sap/cux/home/PagesContainer.js +333 -0
  115. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  116. package/src/sap/cux/home/PagesContainer.ts +179 -0
  117. package/src/sap/cux/home/SettingsDialog.d.ts +7 -0
  118. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  119. package/src/sap/cux/home/SettingsDialog.js +18 -10
  120. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  121. package/src/sap/cux/home/SettingsDialog.ts +20 -13
  122. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  123. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  124. package/src/sap/cux/home/SpaceInsightsPanel.js +66 -132
  125. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  126. package/src/sap/cux/home/SpaceInsightsPanel.ts +69 -151
  127. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  128. package/src/sap/cux/home/TaskPanel.js +14 -12
  129. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  130. package/src/sap/cux/home/TaskPanel.ts +17 -15
  131. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  132. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  133. package/src/sap/cux/home/TilesContainer.js +218 -0
  134. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  135. package/src/sap/cux/home/TilesContainer.ts +216 -0
  136. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  137. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  138. package/src/sap/cux/home/TilesPanel.js +184 -165
  139. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  140. package/src/sap/cux/home/TilesPanel.ts +160 -154
  141. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  142. package/src/sap/cux/home/ToDoPanel.js +30 -58
  143. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  144. package/src/sap/cux/home/ToDoPanel.ts +29 -28
  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 +33 -13
  175. package/src/sap/cux/home/i18n/messagebundle_ar.properties +8 -4
  176. package/src/sap/cux/home/i18n/messagebundle_bg.properties +8 -4
  177. package/src/sap/cux/home/i18n/messagebundle_ca.properties +8 -4
  178. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +8 -4
  179. package/src/sap/cux/home/i18n/messagebundle_cs.properties +8 -4
  180. package/src/sap/cux/home/i18n/messagebundle_cy.properties +8 -4
  181. package/src/sap/cux/home/i18n/messagebundle_da.properties +8 -4
  182. package/src/sap/cux/home/i18n/messagebundle_de.properties +8 -4
  183. package/src/sap/cux/home/i18n/messagebundle_el.properties +8 -4
  184. package/src/sap/cux/home/i18n/messagebundle_en.properties +9 -5
  185. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +8 -4
  186. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +14 -6
  187. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +14 -6
  188. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +8 -4
  189. package/src/sap/cux/home/i18n/messagebundle_es.properties +8 -4
  190. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +8 -4
  191. package/src/sap/cux/home/i18n/messagebundle_et.properties +8 -4
  192. package/src/sap/cux/home/i18n/messagebundle_fi.properties +8 -4
  193. package/src/sap/cux/home/i18n/messagebundle_fr.properties +8 -4
  194. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +8 -4
  195. package/src/sap/cux/home/i18n/messagebundle_hi.properties +8 -4
  196. package/src/sap/cux/home/i18n/messagebundle_hr.properties +8 -4
  197. package/src/sap/cux/home/i18n/messagebundle_hu.properties +8 -4
  198. package/src/sap/cux/home/i18n/messagebundle_id.properties +8 -4
  199. package/src/sap/cux/home/i18n/messagebundle_it.properties +10 -6
  200. package/src/sap/cux/home/i18n/messagebundle_iw.properties +8 -4
  201. package/src/sap/cux/home/i18n/messagebundle_ja.properties +8 -4
  202. package/src/sap/cux/home/i18n/messagebundle_kk.properties +8 -4
  203. package/src/sap/cux/home/i18n/messagebundle_ko.properties +8 -4
  204. package/src/sap/cux/home/i18n/messagebundle_lt.properties +8 -4
  205. package/src/sap/cux/home/i18n/messagebundle_lv.properties +8 -4
  206. package/src/sap/cux/home/i18n/messagebundle_mk.properties +8 -4
  207. package/src/sap/cux/home/i18n/messagebundle_ms.properties +8 -4
  208. package/src/sap/cux/home/i18n/messagebundle_nl.properties +8 -4
  209. package/src/sap/cux/home/i18n/messagebundle_no.properties +8 -4
  210. package/src/sap/cux/home/i18n/messagebundle_pl.properties +8 -4
  211. package/src/sap/cux/home/i18n/messagebundle_pt.properties +8 -4
  212. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +8 -4
  213. package/src/sap/cux/home/i18n/messagebundle_ro.properties +8 -4
  214. package/src/sap/cux/home/i18n/messagebundle_ru.properties +8 -4
  215. package/src/sap/cux/home/i18n/messagebundle_sh.properties +8 -4
  216. package/src/sap/cux/home/i18n/messagebundle_sk.properties +8 -4
  217. package/src/sap/cux/home/i18n/messagebundle_sl.properties +8 -4
  218. package/src/sap/cux/home/i18n/messagebundle_sr.properties +8 -4
  219. package/src/sap/cux/home/i18n/messagebundle_sv.properties +8 -4
  220. package/src/sap/cux/home/i18n/messagebundle_th.properties +8 -4
  221. package/src/sap/cux/home/i18n/messagebundle_tr.properties +8 -4
  222. package/src/sap/cux/home/i18n/messagebundle_uk.properties +8 -4
  223. package/src/sap/cux/home/i18n/messagebundle_vi.properties +8 -4
  224. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +8 -4
  225. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +8 -4
  226. package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -0
  227. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  228. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  229. package/src/sap/cux/home/interface/AppsInterface.ts +1 -0
  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/AppManager.d.ts.map +1 -1
  251. package/src/sap/cux/home/utils/AppManager.js +2 -1
  252. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  253. package/src/sap/cux/home/utils/AppManager.ts +2 -2
  254. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  255. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  256. package/src/sap/cux/home/utils/PerformanceUtils.js +4 -2
  257. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  258. package/src/sap/cux/home/utils/PerformanceUtils.ts +4 -2
  259. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +155 -151
  260. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  261. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  262. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +3 -77
  263. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  264. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +1 -75
  265. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  266. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  267. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  268. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  269. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  270. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  271. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  272. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +3 -23
  273. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  274. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +1 -21
  275. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  276. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  277. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  278. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  279. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  280. package/ui5.yaml +1 -0
  281. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  282. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  283. package/src/sap/cux/home/InsightsContainer.js +0 -459
  284. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  285. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  286. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  287. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  288. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  289. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  290. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  291. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  292. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  293. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
3
  * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
4
  */
5
- sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/ExpandableText", "sap/m/FlexBox", "sap/m/GenericTile", "sap/m/HBox", "sap/m/Label", "sap/m/library", "sap/m/MessageToast", "sap/m/Text", "sap/m/VBox", "sap/ui/core/Fragment", "sap/ui/core/library", "sap/ui/model/ChangeReason", "sap/ui/model/json/JSONModel", "sap/ui/model/resource/ResourceModel", "sap/ui/model/Sorter", "sap/ushell/Container", "./AppsContainer", "./BaseSettingsPanel", "./FavAppPanel", "./InsightsContainer", "./utils/AppManager", "./utils/Constants", "./utils/DataFormatUtils", "./utils/FeatureUtils", "./utils/FESRUtil", "./utils/PXFeedback"], function (Localization, Log, Button, CustomListItem, ExpandableText, FlexBox, GenericTile, HBox, Label, sap_m_library, MessageToast, Text, VBox, Fragment, sap_ui_core_library, ChangeReason, JSONModel, ResourceModel, Sorter, Container, __AppsContainer, __BaseSettingsPanel, __FavAppPanel, __InsightsContainer, __AppManager, ___utils_Constants, ___utils_DataFormatUtils, ___utils_FeatureUtils, ___utils_FESRUtil, ___utils_PXFeedback) {
5
+ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sap/m/CustomListItem", "sap/m/ExpandableText", "sap/m/FlexBox", "sap/m/FlexItemData", "sap/m/GenericTile", "sap/m/HBox", "sap/m/Label", "sap/m/library", "sap/m/MessageToast", "sap/m/ObjectStatus", "sap/m/SegmentedButton", "sap/m/SegmentedButtonItem", "sap/m/Switch", "sap/m/Title", "sap/m/VBox", "sap/ui/core/Fragment", "sap/ui/core/library", "sap/ui/model/ChangeReason", "sap/ui/model/json/JSONModel", "sap/ui/model/resource/ResourceModel", "sap/ui/model/Sorter", "sap/ushell/Container", "./AppsContainer", "./BaseSettingsPanel", "./FavAppPanel", "./TilesContainer", "./TilesPanel", "./utils/AppManager", "./utils/Constants", "./utils/DataFormatUtils", "./utils/FeatureUtils", "./utils/FESRUtil", "./utils/PXFeedback"], function (Localization, Log, Button, CustomListItem, ExpandableText, FlexBox, FlexItemData, GenericTile, HBox, Label, sap_m_library, MessageToast, ObjectStatus, SegmentedButton, SegmentedButtonItem, Switch, Title, VBox, Fragment, sap_ui_core_library, ChangeReason, JSONModel, ResourceModel, Sorter, Container, __AppsContainer, __BaseSettingsPanel, __FavAppPanel, __TilesContainer, ___TilesPanel, __AppManager, ___utils_Constants, ___utils_DataFormatUtils, ___utils_FeatureUtils, ___utils_FESRUtil, ___utils_PXFeedback) {
6
6
  "use strict";
7
7
 
8
8
  function _interopRequireDefault(obj) {
@@ -31,7 +31,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
31
31
  }
32
32
  return finalizer(false, result);
33
33
  }
34
- const URLHelper = sap_m_library["URLHelper"];
34
+ const FlexAlignItems = sap_m_library["FlexAlignItems"];
35
35
  const _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator")) : "@@iterator";
36
36
  function _settle(pact, state, value) {
37
37
  if (!pact.s) {
@@ -126,7 +126,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
126
126
  _cycle();
127
127
  return pact;
128
128
  }
129
- const ValueState = sap_ui_core_library["ValueState"];
129
+ const FlexDirection = sap_m_library["FlexDirection"];
130
130
  function _forOf(target, body, check) {
131
131
  if (typeof target[_iteratorSymbol] === "function") {
132
132
  var iterator = target[_iteratorSymbol](),
@@ -187,17 +187,25 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
187
187
  return body(values[i]);
188
188
  }, check);
189
189
  }
190
+ const FlexJustifyContent = sap_m_library["FlexJustifyContent"];
191
+ const FlexRendertype = sap_m_library["FlexRendertype"];
192
+ const URLHelper = sap_m_library["URLHelper"];
193
+ const TitleLevel = sap_ui_core_library["TitleLevel"];
194
+ const ValueState = sap_ui_core_library["ValueState"];
190
195
  const AppsContainer = _interopRequireDefault(__AppsContainer);
191
196
  const BaseSettingsPanel = _interopRequireDefault(__BaseSettingsPanel);
192
197
  const FavAppPanel = _interopRequireDefault(__FavAppPanel);
193
- const InsightsContainer = _interopRequireDefault(__InsightsContainer);
198
+ const TilesContainer = _interopRequireDefault(__TilesContainer);
199
+ const DisplayFormat = ___TilesPanel["DisplayFormat"];
194
200
  const AppManager = _interopRequireDefault(__AppManager);
201
+ const _isSmartBusinessTile = __AppManager["_isSmartBusinessTile"];
195
202
  const AI_APP_FINDER_API = ___utils_Constants["AI_APP_FINDER_API"];
196
203
  const AI_APP_FINDER_BASE_URL = ___utils_Constants["AI_APP_FINDER_BASE_URL"];
197
204
  const CONTENT_ADDITION_PANEL_TYPES = ___utils_Constants["CONTENT_ADDITION_PANEL_TYPES"];
198
205
  const DEFAULT_APP_ICON = ___utils_Constants["DEFAULT_APP_ICON"];
199
206
  const FEATURE_TOGGLES = ___utils_Constants["FEATURE_TOGGLES"];
200
207
  const FESR_IDS = ___utils_Constants["FESR_IDS"];
208
+ const MYHOME_PAGE_ID = ___utils_Constants["MYHOME_PAGE_ID"];
201
209
  const MYINSIGHT_SECTION_ID = ___utils_Constants["MYINSIGHT_SECTION_ID"];
202
210
  const recycleId = ___utils_DataFormatUtils["recycleId"];
203
211
  const isNavigationSupportedForFeature = ___utils_FeatureUtils["isNavigationSupportedForFeature"];
@@ -207,7 +215,8 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
207
215
  const Constants = {
208
216
  DeprecatedInfoText: "deprecated",
209
217
  MinQueryLength: 2,
210
- MaxDescriptionLength: 2000
218
+ MaxQueryLength: 2000,
219
+ MaxDescriptionLength: 300
211
220
  };
212
221
  var SearchStatus = /*#__PURE__*/function (SearchStatus) {
213
222
  SearchStatus["Idle"] = "idle";
@@ -222,6 +231,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
222
231
  }(ErrorType || {});
223
232
  var TileType = /*#__PURE__*/function (TileType) {
224
233
  TileType["Static"] = "STATIC";
234
+ TileType["Dynamic"] = "DYNAMIC";
225
235
  return TileType;
226
236
  }(TileType || {});
227
237
  /**
@@ -320,7 +330,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
320
330
  _this.vizInstantiationService = _Container$getService;
321
331
  //load ui fragment
322
332
  return Promise.resolve(Fragment.load({
323
- id: `${_this.getId()}-content`,
333
+ id: recycleId(`${_this.getId()}-content`),
324
334
  name: "sap.cux.home.utils.fragment.appsAdditionContent",
325
335
  controller: _this
326
336
  })).then(function (_Fragment$load) {
@@ -368,13 +378,12 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
368
378
  path: "/suggestedApps",
369
379
  factory: _this._generateListItem.bind(_this),
370
380
  sorter: new Sorter({
371
- path: "status",
381
+ path: "",
372
382
  comparator: (firstApp, secondApp) => {
373
- const getPriority = statusArray => {
374
- if (statusArray.length === 0) return 0; // Empty array has highest priority
375
-
376
- const hasAlreadyAdded = statusArray.includes(_this._i18nBundle.getText("alreadyAddedApp"));
377
- const hasDeprecated = statusArray.includes(_this._i18nBundle.getText("deprecatedApp"));
383
+ const getPriority = app => {
384
+ const hasAlreadyAdded = app.isStaticApp ? app.addedToApps : app.addedToInsights;
385
+ const hasDeprecated = app.isDeprecated;
386
+ if (!hasAlreadyAdded && !hasDeprecated) return 0; // Neither status - highest priority
378
387
  if (hasAlreadyAdded && hasDeprecated) return 3; // Both statuses - lowest priority
379
388
  if (hasAlreadyAdded) return 1; // Only "Already Added"
380
389
  if (hasDeprecated) return 2; // Only "Deprecated"
@@ -409,22 +418,28 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
409
418
  * @returns {CustomListItem} The generated list item control.
410
419
  */
411
420
  _generateListItem: function _generateListItem(id, context) {
412
- const isStaticApp = context.getProperty("isStaticApp");
413
421
  const langTag = Localization.getLanguageTag();
414
422
  const currentLanguage = langTag.language.toLowerCase();
415
423
  const isEnglishLanguage = currentLanguage.startsWith("en");
416
424
  const listItem = new CustomListItem(id, {
417
- selected: context.getProperty("addedToHomePage"),
425
+ //when toggled b/w app and tile view, the selection should update according to whether the app is already added to selected section
426
+ selected: {
427
+ path: "selectedView",
428
+ formatter: () => {
429
+ const isAppAlreadyAdded = this.isAppAlreadyAdded(context);
430
+ //bind associated checkbox to disable it when the app is already added
431
+ listItem.getMultiSelectControl(true).setEnabled(!isAppAlreadyAdded);
432
+ // if app is already added or if user has selected the app, mark it as selected
433
+ return isAppAlreadyAdded || this.userSelectedApps.has(listItem);
434
+ }
435
+ },
418
436
  content: [new FlexBox(recycleId(`${id}-result-container`), {
419
- renderType: "Bare",
420
- direction: isEnglishLanguage && isStaticApp ? "Column" : "Row",
421
- alignItems: isEnglishLanguage && isStaticApp ? "Start" : "Center",
422
- items: [this._getAppPreviewContainer(id, context), this._getAppDetailsContainer(id, context, isEnglishLanguage)]
437
+ renderType: FlexRendertype.Bare,
438
+ direction: FlexDirection.Row,
439
+ gap: "1rem",
440
+ items: [this._getAppDetailsContainer(id, context, isEnglishLanguage), this._getAppPreviewContainer(id, context)]
423
441
  }).addStyleClass("sapUiSmallMargin")]
424
442
  });
425
-
426
- //bind associated checkbox to disable it when the app is already added to home page
427
- listItem.getMultiSelectControl(true).setEnabled(!context.getProperty("addedToHomePage"));
428
443
  return listItem;
429
444
  },
430
445
  /**
@@ -437,33 +452,60 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
437
452
  */
438
453
  _getAppPreviewContainer: function _getAppPreviewContainer(id, context) {
439
454
  const container = new HBox(recycleId(`${id}-suggestedAppContainer`), {
440
- renderType: "Bare"
455
+ renderType: FlexRendertype.Bare,
456
+ width: "19rem",
457
+ layoutData: new FlexItemData({
458
+ growFactor: 0,
459
+ shrinkFactor: 0,
460
+ alignSelf: FlexAlignItems.Center
461
+ }),
462
+ justifyContent: FlexJustifyContent.Center
441
463
  });
442
- if (context.getProperty("isStaticApp")) {
443
- // create generic tile for static app
444
- container.addItem(new GenericTile(recycleId(`${id}-staticApp`), {
445
- mode: "IconMode",
446
- frameType: "TwoByHalf",
447
- width: "19rem",
448
- header: context.getProperty("title"),
449
- subheader: context.getProperty("subTitle"),
450
- tileIcon: context.getProperty("icon") || DEFAULT_APP_ICON,
451
- visible: context.getProperty("isStaticApp"),
452
- url: context.getProperty("url"),
453
- press: event => {
454
- this._persistDialog(this.getParent());
455
- URLHelper.redirect(event.getSource()?.getUrl(), false);
456
- }
457
- }).addStyleClass("suggestedTile"));
458
- } else {
459
- // create custom visualization for other apps
464
+ container.addItem(new GenericTile(recycleId(`${id}-staticApp`), {
465
+ mode: "IconMode",
466
+ frameType: "TwoByHalf",
467
+ width: "19rem",
468
+ header: context.getProperty("title"),
469
+ subheader: context.getProperty("subTitle"),
470
+ tileIcon: context.getProperty("icon") || DEFAULT_APP_ICON,
471
+ visible: "{= ${selectedView} === 'STATIC' || ${isStaticApp} }",
472
+ url: context.getProperty("url"),
473
+ press: event => {
474
+ this._persistDialog(this.getParent());
475
+ URLHelper.redirect(event.getSource()?.getUrl(), false);
476
+ }
477
+ }).addStyleClass("suggestedTile"));
478
+ if (!context.getProperty("isStaticApp")) {
460
479
  const vizData = context.getProperty("vizData");
461
- const instance = this.vizInstantiationService.instantiateVisualization(vizData);
462
- instance?.setActive(true);
463
- instance?.attachPress(() => this._persistDialog(this.getParent()));
464
- container.addItem(instance);
480
+ const supportedDisplayFormatVizs = [{
481
+ ...vizData,
482
+ displayFormatHint: DisplayFormat.Standard
483
+ }];
484
+ if (this.isWideTileSupported(context)) {
485
+ supportedDisplayFormatVizs.push({
486
+ ...vizData,
487
+ displayFormatHint: DisplayFormat.StandardWide
488
+ });
489
+ }
490
+ supportedDisplayFormatVizs.forEach(vizData => {
491
+ // instantiate visualization for dynamic app
492
+ const vizInstance = this.vizInstantiationService.instantiateVisualization(vizData);
493
+ vizInstance?.setActive(true);
494
+ vizInstance?.setProperty("sizeBehavior", "Small", true);
495
+ vizInstance?.attachPress(() => this._persistDialog(this.getParent()));
496
+ vizInstance.bindProperty("visible", {
497
+ parts: ["selectedDisplayFormat", "selectedView"],
498
+ formatter: (selectedDisplayFormat, selectedView) => {
499
+ if (selectedView && selectedView === TileType.Static) {
500
+ return false;
501
+ }
502
+ return vizData.displayFormatHint === DisplayFormat.StandardWide ? selectedDisplayFormat === DisplayFormat.StandardWide : selectedDisplayFormat !== DisplayFormat.StandardWide;
503
+ }
504
+ });
505
+ container.addItem(vizInstance);
506
+ });
465
507
  }
466
- return container;
508
+ return container.addStyleClass("suggestedAppPreviewContainer");
467
509
  },
468
510
  /**
469
511
  * Creates a details container for the suggested app.
@@ -477,23 +519,52 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
477
519
  _getAppDetailsContainer: function _getAppDetailsContainer(id, context, isEnglishLanguage) {
478
520
  let description = isEnglishLanguage ? context.getProperty("description") : this._i18nBundle.getText("NoDescriptionAvailable");
479
521
  return new VBox(recycleId(`${id}-app-details-container`), {
480
- renderType: "Bare",
522
+ renderType: FlexRendertype.Bare,
481
523
  gap: "0.5rem",
482
- items: [new ExpandableText(recycleId(`${id}-description`), {
524
+ layoutData: new FlexItemData({
525
+ growFactor: 1
526
+ }),
527
+ items: [new HBox(recycleId(`${id}-title-container`), {
528
+ gap: "1rem",
529
+ alignItems: FlexAlignItems.Center,
530
+ renderType: FlexRendertype.Bare,
531
+ items: [new Title(recycleId(`${id}-app-title`), {
532
+ text: context.getProperty("title"),
533
+ titleStyle: TitleLevel.H6
534
+ }), new ObjectStatus(recycleId(`${id}-deprecatedApp`), {
535
+ text: this._i18nBundle.getText("deprecatedApp"),
536
+ icon: "sap-icon://alert",
537
+ state: ValueState.Warning,
538
+ visible: context.getProperty("isDeprecated")
539
+ })]
540
+ }), new ExpandableText(recycleId(`${id}-description`), {
483
541
  text: description,
484
542
  maxCharacters: Constants.MaxDescriptionLength
543
+ }),
544
+ // app actions container
545
+ new HBox(recycleId(`${id}-app-actions-container`), {
546
+ renderType: FlexRendertype.Bare,
547
+ gap: "1.5rem",
548
+ visible: !context.getProperty("isStaticApp"),
549
+ items: [this.getAppViewTypeAction(id), this.getDisplayFormatAction(id, context)]
485
550
  }), new HBox(recycleId(`${id}-app-status-container`), {
486
- renderType: "Bare",
487
- visible: context.getProperty("status").length > 0,
551
+ renderType: FlexRendertype.Bare,
552
+ visible: {
553
+ parts: ["selectedView"],
554
+ formatter: () => {
555
+ return this.isAppAlreadyAdded(context);
556
+ }
557
+ },
488
558
  items: [new Label(recycleId(`${id}-appStatusLabel`), {
489
559
  text: this._i18nBundle.getText("appStatus"),
490
560
  showColon: true
491
- }), new HBox(recycleId(`${id}-app-status-texts`), {
492
- renderType: "Bare",
493
- items: this._generateStatusTexts(id, context.getProperty("status"))
494
- }).addStyleClass("sapUiTinyMarginBegin statusTextsContainer")]
495
- })]
496
- }).addStyleClass(isEnglishLanguage && context.getProperty("isStaticApp") ? "sapUiSmallMarginTop" : "sapUiSmallMarginBegin");
561
+ }), new ObjectStatus(recycleId(`${id}-alreadyAddedStatus`), {
562
+ text: "{= (${isStaticApp} || ${selectedView} === 'STATIC') ? ${i18n>alreadyAddedApp} : ${i18n>alreadyAddedTile} }",
563
+ icon: "sap-icon://sys-enter-2",
564
+ state: "Success"
565
+ }).addStyleClass("sapUiTinyMarginBegin")]
566
+ }).addStyleClass("sapUiTinyMarginTop")]
567
+ });
497
568
  },
498
569
  /**
499
570
  * Checks if the Apps Addition Panel is supported. Internally, it checks if the
@@ -572,14 +643,15 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
572
643
  return [`<svg height="167" fill="none">
573
644
  ${loadingShimmer}
574
645
  <rect x="16" y="75" width="16" height="16" rx="4" fill="var(--sapContent_Placeholderloading_Background)"/>
575
- <rect x="48" y="16" width="37%" height="70" rx="16" fill="url(#loadingShimmer)"/>
576
- <rect x="48" y="102" width="93%" height="48" rx="4" fill="url(#loadingShimmer)"/>
646
+ <rect x="48" y="54" width="59%" height="48" rx="4" fill="url(#loadingShimmer)"/>
647
+ <rect x="48" y="110" width="13%" height="16" rx="4" fill="url(#loadingShimmer)"/>
648
+ <rect x="600" y="40" width="303" height="70" rx="16" fill="url(#loadingShimmer)"/>
577
649
  </svg>`, `<svg height="180" fill="none">
578
650
  ${loadingShimmer}
579
651
  <rect x="16" y="82" width="16" height="16" rx="4" fill="var(--sapContent_Placeholderloading_Background)"/>
580
- <rect x="48" y="16" width="148" height="148" rx="16" fill="url(#loadingShimmer)"/>
581
- <rect x="212" y="54" width="75%" height="48" rx="4" fill="url(#loadingShimmer)"/>
582
- <rect x="212" y="110" width="13%" height="16" rx="4" fill="url(#loadingShimmer)"/>
652
+ <rect x="48" y="54" width="58%" height="48" rx="4" fill="url(#loadingShimmer)"/>
653
+ <rect x="48" y="110" width="13%" height="16" rx="4" fill="url(#loadingShimmer)"/>
654
+ <rect x="675" y="16" width="148" height="148" rx="16" fill="url(#loadingShimmer)"/>
583
655
  </svg>`];
584
656
  },
585
657
  /**
@@ -607,6 +679,20 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
607
679
  });
608
680
  this.userSelectedApps?.clear();
609
681
  },
682
+ setIllustrationSize: function _setIllustrationSize() {
683
+ const containerDom = Fragment.byId(`${this.getId()}-content`, "container")?.getDomRef();
684
+ if (containerDom) {
685
+ const clientHeight = containerDom.clientHeight;
686
+ const illustratedMessage = Fragment.byId(`${this.getId()}-content`, "beforeSearch");
687
+ if (clientHeight <= 500) {
688
+ illustratedMessage.setIllustrationSize("ExtraSmall");
689
+ } else if (500 < clientHeight && clientHeight < 650) {
690
+ illustratedMessage.setIllustrationSize("Small");
691
+ } else {
692
+ illustratedMessage.setIllustrationSize("Medium");
693
+ }
694
+ }
695
+ },
610
696
  /**
611
697
  * Handles the "Go" button press event for searching suggested apps.
612
698
  *
@@ -630,7 +716,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
630
716
  return Promise.resolve(_this3.appManagerInstance.fetchFavVizs(true, true)).then(function (favoriteApps) {
631
717
  return Promise.resolve(_this3.appManagerInstance.fetchInsightApps(true, _this3._i18nBundle.getText("insights"))).then(function (insightsApps) {
632
718
  // generate suggested apps
633
- const apps = _this3._generateApps(rawApps, allVisualizations, [...favoriteApps, ...insightsApps]);
719
+ const apps = _this3._generateApps(rawApps, allVisualizations, favoriteApps, insightsApps);
634
720
  return Promise.resolve(_this3._filterUnsupportedApps(apps)).then(function (suggestedApps) {
635
721
  if (suggestedApps.length === 0 && !_this3.model.getProperty("/hasError")) {
636
722
  _this3._handleError("", suggestedApps.length);
@@ -694,13 +780,16 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
694
780
  * @private
695
781
  * @param {RawAppData[]} rawApps - The raw app data to process.
696
782
  * @param {IVisualization[]} allVisualizations - All available visualizations.
697
- * @param {ICustomVisualization[]} homePageVisualizations - Visualizations available in homepage.
783
+ * @param {ICustomVisualization[]} favoriteApps - Favorite apps available in homepage.
784
+ * @param {ICustomVisualization[]} insightsApps - Insights apps available in homepage.
698
785
  * @returns {SuggestedApp[]} The list of suggested apps.
699
786
  */
700
- _generateApps: function _generateApps(rawApps, allVisualizations, homePageVisualizations) {
787
+ _generateApps: function _generateApps(rawApps, allVisualizations, favoriteApps, insightsApps) {
701
788
  return rawApps.map(app => {
702
789
  const vizData = allVisualizations.find(viz => viz.vizId === app.chipID);
703
- const addedToHomePage = homePageVisualizations.some(viz => viz.visualization?.vizId === app.chipID);
790
+ const addedToApps = favoriteApps.some(viz => viz.visualization?.vizId === app.chipID);
791
+ const addedToInsights = insightsApps.some(viz => viz.visualization?.vizId === app.chipID);
792
+ const tileConfig = this.parseTileConfiguration(app.configuration);
704
793
  return {
705
794
  title: app.title,
706
795
  chipID: app.chipID,
@@ -708,10 +797,12 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
708
797
  description: app.appDescription,
709
798
  icon: app.iconUrl,
710
799
  vizData,
711
- addedToHomePage,
800
+ addedToApps,
801
+ addedToInsights,
712
802
  isStaticApp: app.tileType === TileType.Static,
713
- status: this.getAppStatusTexts(app.configuration, addedToHomePage),
714
- url: vizData?.targetURL || ""
803
+ url: vizData?.targetURL || "",
804
+ isDeprecated: (tileConfig?.display_info_text || "").toLowerCase() === Constants.DeprecatedInfoText,
805
+ selectedView: app.tileType === TileType.Static ? TileType.Static : TileType.Dynamic
715
806
  };
716
807
  });
717
808
  },
@@ -724,7 +815,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
724
815
  */
725
816
  isValidQuery: function _isValidQuery(query = "") {
726
817
  query = query?.trim();
727
- return query.length >= Constants.MinQueryLength && query.length <= Constants.MaxDescriptionLength;
818
+ return query.length >= Constants.MinQueryLength && query.length <= Constants.MaxQueryLength;
728
819
  },
729
820
  /**
730
821
  * Fetches all available visualizations for the user.
@@ -831,64 +922,6 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
831
922
  return Promise.reject(e);
832
923
  }
833
924
  },
834
- /**
835
- * Retrieves status texts for an app based on its configuration and homepage status.
836
- *
837
- * @private
838
- * @param {string} configuration - The app's configuration string.
839
- * @param {boolean} addedToHomePage - Indicates if the app is already added to the homepage.
840
- * @returns {string[]} An array of status texts for the app.
841
- */
842
- getAppStatusTexts: function _getAppStatusTexts(configuration, addedToHomePage) {
843
- let statusTexts = [];
844
- if (configuration) {
845
- try {
846
- const parsedConfig = JSON.parse(configuration);
847
- const tileConfig = JSON.parse(parsedConfig?.tileConfiguration);
848
- const infoText = (tileConfig?.display_info_text || "").toLowerCase();
849
- if (infoText === Constants.DeprecatedInfoText) {
850
- statusTexts.push(this._i18nBundle.getText("deprecatedApp"));
851
- }
852
- } catch (error) {
853
- Log.warning(error.message);
854
- }
855
- }
856
- if (addedToHomePage) {
857
- statusTexts.push(this._i18nBundle.getText("alreadyAddedApp"));
858
- }
859
- return statusTexts;
860
- },
861
- /**
862
- * Generates status text controls for the provided status texts.
863
- *
864
- * @private
865
- * @param {string} id - The id of the list item.
866
- * @param {string[]} stausTexts - The list of status texts.
867
- * @returns {Text[]} An array of Text controls with applied styles.
868
- */
869
- _generateStatusTexts: function _generateStatusTexts(id, stausTexts) {
870
- return stausTexts.map((status, index) => {
871
- return new Text(recycleId(`${id}-statusText-${index}`), {
872
- text: status
873
- }).addStyleClass(this.applyStatusClass(status));
874
- });
875
- },
876
- /**
877
- * Applies a CSS class to the status text based on its type.
878
- *
879
- * @private
880
- * @param {string} status - The status text to classify.
881
- * @returns {string} The CSS class for the status text.
882
- */
883
- applyStatusClass: function _applyStatusClass(status) {
884
- if (status === this._i18nBundle.getText("alreadyAddedApp")) {
885
- return "addedAppStatusText";
886
- } else if (status === this._i18nBundle.getText("deprecatedApp")) {
887
- return "deprecatedAppStatusText";
888
- } else {
889
- return "";
890
- }
891
- },
892
925
  /**
893
926
  * Handles the "Add Apps" button press event to add selected apps to favorites.
894
927
  *
@@ -898,9 +931,9 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
898
931
  onPressAddApps: function _onPressAddApps() {
899
932
  try {
900
933
  const _this6 = this;
901
- function _temp13() {
902
- function _temp11() {
903
- function _temp1() {
934
+ function _temp14() {
935
+ function _temp12() {
936
+ function _temp10() {
904
937
  _this6.getParent()?.close();
905
938
  if (userSelectedApps.length > 1) {
906
939
  MessageToast.show(_this6._i18nBundle.getText("contentAddedToMyhome"));
@@ -912,31 +945,42 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
912
945
  }
913
946
  _this6.resetPanel();
914
947
  }
915
- const _temp0 = function () {
948
+ const _temp1 = function () {
916
949
  if (dynamicAppsPresent) {
917
950
  return Promise.resolve(_this6.refreshInsightsApps()).then(function () {});
918
951
  }
919
952
  }();
920
- return _temp0 && _temp0.then ? _temp0.then(_temp1) : _temp1(_temp0);
953
+ return _temp1 && _temp1.then ? _temp1.then(_temp10) : _temp10(_temp1);
921
954
  }
922
- const _temp10 = function () {
955
+ const _temp11 = function () {
923
956
  if (staticAppsPresent) {
924
957
  return Promise.resolve(_this6.refreshFavoriteApps()).then(function () {});
925
958
  }
926
959
  }();
927
- return _temp10 && _temp10.then ? _temp10.then(_temp11) : _temp11(_temp10);
960
+ return _temp11 && _temp11.then ? _temp11.then(_temp12) : _temp12(_temp11);
928
961
  }
929
962
  triggerPXIntegration("addAppsButton");
930
963
  const userSelectedApps = _this6.model.getProperty("/userSelectedApps");
931
964
  let staticAppsPresent = false;
932
965
  let dynamicAppsPresent = false;
933
- const _temp12 = _forOf(userSelectedApps, function (app) {
934
- const isStaticApp = app.getBindingContext()?.getProperty("isStaticApp");
966
+ const _temp13 = _forOf(userSelectedApps, function (app) {
967
+ const isStaticApp = app.getBindingContext()?.getProperty("isStaticApp") || app.getBindingContext()?.getProperty("selectedView") === TileType.Static;
968
+ const displayFormatHint = app.getBindingContext()?.getProperty("vizData")?.displayFormatHint;
969
+ const selectedDisplayFormat = app.getBindingContext()?.getProperty("selectedDisplayFormat");
935
970
  if (isStaticApp) staticAppsPresent = true;else dynamicAppsPresent = true;
936
971
  const vizId = app.getBindingContext()?.getProperty("chipID");
937
- return Promise.resolve(_this6.appManagerInstance.addVisualization(vizId, isStaticApp ? undefined : MYINSIGHT_SECTION_ID)).then(function () {});
972
+ return Promise.resolve(_this6.appManagerInstance.addVisualization(vizId, isStaticApp ? undefined : MYINSIGHT_SECTION_ID)).then(function () {
973
+ const _temp0 = function () {
974
+ if (!isStaticApp && selectedDisplayFormat && displayFormatHint !== selectedDisplayFormat) {
975
+ // TODO: Check if addVisualization method in SpaceContent service can expose 'displayFormat' parameter to avoid this extra call
976
+ // since the internal Pages service method already supports it
977
+ return Promise.resolve(_this6.updateDisplayFormat(vizId, selectedDisplayFormat)).then(function () {});
978
+ }
979
+ }();
980
+ if (_temp0 && _temp0.then) return _temp0.then(function () {});
981
+ }); // for dynamic app, if display format is changed, update it
938
982
  });
939
- return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp13) : _temp13(_temp12));
983
+ return Promise.resolve(_temp13 && _temp13.then ? _temp13.then(_temp14) : _temp14(_temp13));
940
984
  } catch (e) {
941
985
  return Promise.reject(e);
942
986
  }
@@ -983,16 +1027,16 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
983
1027
  }
984
1028
  },
985
1029
  /**
986
- * Retrieves the InsightsContainer instance from the parent layout.
1030
+ * Retrieves the TilesContainer instance from the parent layout.
987
1031
  *
988
1032
  * @private
989
- * @returns {InsightsContainer | undefined} The AppsContainer instance or undefined if not found.
1033
+ * @returns {TilesContainer | undefined} The AppsContainer instance or undefined if not found.
990
1034
  */
991
- getInsightsContainer: function _getInsightsContainer() {
992
- return this.getLayout()?.getItems().find(container => container instanceof InsightsContainer);
1035
+ getTilesContainer: function _getTilesContainer() {
1036
+ return this.getLayout()?.getItems().find(container => container instanceof TilesContainer);
993
1037
  },
994
1038
  /**
995
- * Refreshes the Insights tiles panel in the InsightsContainer.
1039
+ * Refreshes the Insights tiles panel in the TilesContainer.
996
1040
  *
997
1041
  * @private
998
1042
  * @async
@@ -1000,7 +1044,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
1000
1044
  refreshInsightsApps: function _refreshInsightsApps() {
1001
1045
  try {
1002
1046
  const _this8 = this;
1003
- return Promise.resolve(_this8.getInsightsContainer()?.refreshData("tiles")).then(function () {});
1047
+ return Promise.resolve(_this8.getTilesContainer()?.refreshData("tiles")).then(function () {});
1004
1048
  } catch (e) {
1005
1049
  return Promise.reject(e);
1006
1050
  }
@@ -1016,8 +1060,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
1016
1060
  const selected = event.getParameter("selected");
1017
1061
  if (!selected) this.userSelectedApps.delete(listItem);else {
1018
1062
  const context = listItem.getBindingContext();
1019
- const addedToHomePage = context?.getProperty("addedToHomePage");
1020
- if (!addedToHomePage) this.userSelectedApps.add(listItem);
1063
+ if (context && !this.isAppAlreadyAdded(context)) this.userSelectedApps.add(listItem);
1021
1064
  }
1022
1065
  this.model.setProperty("/userSelectedApps", Array.from(this.userSelectedApps));
1023
1066
  },
@@ -1062,7 +1105,7 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
1062
1105
  if (query.length !== 0 && query.length < Constants.MinQueryLength) {
1063
1106
  textArea.setValueState(ValueState.Information);
1064
1107
  textArea.setValueStateText(this._i18nBundle.getText("minLengthRequired"));
1065
- } else if (query.length > Constants.MaxDescriptionLength) {
1108
+ } else if (query.length > Constants.MaxQueryLength) {
1066
1109
  textArea.setValueState(ValueState.Warning);
1067
1110
  textArea.setValueStateText(this._i18nBundle.getText("maxLengthExceeded"));
1068
1111
  } else {
@@ -1104,6 +1147,161 @@ sap.ui.define(["sap/base/i18n/Localization", "sap/base/Log", "sap/m/Button", "sa
1104
1147
  MessageToast.show(this._i18nBundle.getText("feedBackSent"), {
1105
1148
  width: "20em"
1106
1149
  });
1150
+ },
1151
+ /**
1152
+ * Creates the action to change view type (App / Tile) for suggested app.
1153
+ *
1154
+ * @private
1155
+ * @param {string} id - The unique ID for the container.
1156
+ * @returns {HBox} The app view action container.
1157
+ */
1158
+ getAppViewTypeAction: function _getAppViewTypeAction(id) {
1159
+ const appViewToggleButton = new SegmentedButton(recycleId(`${id}-app-addAs-segmentedBtn`), {
1160
+ selectedKey: "{selectedView}",
1161
+ items: [new SegmentedButtonItem(recycleId(`${id}-addAs-app`), {
1162
+ key: TileType.Static,
1163
+ text: this._i18nBundle.getText("addAsApp")
1164
+ }), new SegmentedButtonItem(recycleId(`${id}-addAs-tile`), {
1165
+ key: TileType.Dynamic,
1166
+ text: this._i18nBundle.getText("addAsTile")
1167
+ })]
1168
+ }).addStyleClass("sapUiTinyMarginBegin");
1169
+ const appViewLabel = new Label(recycleId(`${id}-addAsLabel`), {
1170
+ text: this._i18nBundle.getText("addAs"),
1171
+ showColon: true
1172
+ });
1173
+ try {
1174
+ appViewToggleButton.setProperty("contentMode", "ContentFit");
1175
+ appViewLabel.setWidth("100%");
1176
+ } catch (error) {
1177
+ Log.error(error instanceof Error ? error.message : error);
1178
+ }
1179
+ return new HBox(recycleId(`${id}-app-addAs-container`), {
1180
+ renderType: FlexRendertype.Bare,
1181
+ alignItems: FlexAlignItems.Center,
1182
+ items: [appViewLabel, appViewToggleButton]
1183
+ });
1184
+ },
1185
+ /**
1186
+ * Creates the action to change display format (standard / wide) for suggested tile.
1187
+ *
1188
+ * @private
1189
+ * @param {string} id - The unique ID for the container.
1190
+ * @param {Context} context - The binding context for the app.
1191
+ * @returns {HBox} The display format action container.
1192
+ */
1193
+ getDisplayFormatAction: function _getDisplayFormatAction(id, context) {
1194
+ return new HBox(recycleId(`${id}-app-displayFormatSwitch-container`), {
1195
+ renderType: FlexRendertype.Bare,
1196
+ alignItems: FlexAlignItems.Center,
1197
+ visible: {
1198
+ parts: ["selectedView"],
1199
+ formatter: selectedView => {
1200
+ return selectedView !== TileType.Static && this.isWideTileSupported(context);
1201
+ }
1202
+ },
1203
+ items: [new Label(recycleId(`${id}-displayFormatSwitchLabel`), {
1204
+ text: this._i18nBundle.getText("wide"),
1205
+ showColon: true
1206
+ }), new Switch({
1207
+ id: `${id}-displayFormatSwitch`,
1208
+ state: context.getProperty("vizData")?.displayFormatHint !== DisplayFormat.Standard,
1209
+ customTextOn: " ",
1210
+ customTextOff: " ",
1211
+ change: event => this.toggleDisplayFormat(event, context)
1212
+ }).addStyleClass("sapUiTinyMarginBegin")]
1213
+ });
1214
+ },
1215
+ /**
1216
+ * Checks if the visualization supports wide tile conversion.
1217
+ *
1218
+ * @private
1219
+ * @param {Context} context - The binding context for the app.
1220
+ * @returns {boolean} True if wide display format is supported, false otherwise.
1221
+ */
1222
+ isWideTileSupported: function _isWideTileSupported(context) {
1223
+ const vizData = context.getProperty("vizData");
1224
+ const supportedDisplayFormats = vizData?.supportedDisplayFormats || [];
1225
+ return vizData && (vizData.indicatorDataSource || _isSmartBusinessTile(vizData)) && supportedDisplayFormats.includes(DisplayFormat.Standard) && supportedDisplayFormats.includes(DisplayFormat.StandardWide);
1226
+ },
1227
+ /**
1228
+ * Handler to switch between standard and wide format for tile.
1229
+ *
1230
+ * @private
1231
+ * @param {Switch$ChangeEvent} event - The switch change event.
1232
+ * @param {Context} context - The binding context for the app being modified.
1233
+ * @returns {void}
1234
+ */
1235
+ toggleDisplayFormat: function _toggleDisplayFormat(event, context) {
1236
+ const switchToWideTile = event.getParameter("state");
1237
+ const displayFormatHint = switchToWideTile ? DisplayFormat.StandardWide : DisplayFormat.Standard;
1238
+ const path = context.getPath();
1239
+ this.model.setProperty(`${path}/selectedDisplayFormat`, displayFormatHint);
1240
+ },
1241
+ /**
1242
+ * Updates the display format of a visualization in the insights section.
1243
+ *
1244
+ * @private
1245
+ * @param {string} vizId - Id of the visualization for which display format has to be updated.
1246
+ * @param {DisplayFormat} displayFormatHint - The new display format to apply.
1247
+ * @returns {Promise<void>} A promise that resolves when the display format is updated.
1248
+ */
1249
+ updateDisplayFormat: function _updateDisplayFormat(vizId, displayFormatHint) {
1250
+ try {
1251
+ const _this9 = this;
1252
+ return Promise.resolve(_this9.appManagerInstance.fetchInsightApps(true, _this9._i18nBundle.getText("insights"))).then(function (insightsApps) {
1253
+ const viz = insightsApps.find(insightApp => insightApp.visualization?.vizId === vizId);
1254
+ const _temp15 = function () {
1255
+ if (viz) {
1256
+ const updateConfig = {
1257
+ pageId: MYHOME_PAGE_ID,
1258
+ sourceSectionIndex: viz.persConfig?.sectionIndex,
1259
+ sourceVisualizationIndex: viz.persConfig?.visualizationIndex,
1260
+ oVisualizationData: {
1261
+ displayFormatHint
1262
+ }
1263
+ };
1264
+ return Promise.resolve(_this9.appManagerInstance.updateVisualizations(updateConfig)).then(function () {});
1265
+ }
1266
+ }();
1267
+ if (_temp15 && _temp15.then) return _temp15.then(function () {});
1268
+ });
1269
+ } catch (e) {
1270
+ return Promise.reject(e);
1271
+ }
1272
+ },
1273
+ /**
1274
+ * Determines if an app is already added to the appropriate section based on its type and selected view.
1275
+ * For static apps or apps with Static view selected, checks if added to favorites apps section.
1276
+ * For dynamic apps with Dynamic view selected, checks if added to insights section.
1277
+ *
1278
+ * @private
1279
+ * @param {Context} context - The binding context for the app to check.
1280
+ * @returns {boolean} True if the app is already added to the corresponding section, false otherwise.
1281
+ */
1282
+ isAppAlreadyAdded: function _isAppAlreadyAdded(context) {
1283
+ const isStaticApp = context.getProperty("isStaticApp");
1284
+ const selectedAppView = context.getProperty("selectedView");
1285
+ return isStaticApp || selectedAppView === TileType.Static ? context.getProperty("addedToApps") : context.getProperty("addedToInsights");
1286
+ },
1287
+ /**
1288
+ * Parses the tile configuration string from raw app configuration.
1289
+ *
1290
+ * @private
1291
+ * @param {string} configuration - The raw app configuration string containing tile settings.
1292
+ * @returns {TileConfig | null} The parsed tile configuration object or null if parsing fails.
1293
+ */
1294
+ parseTileConfiguration: function _parseTileConfiguration(configuration) {
1295
+ if (configuration) {
1296
+ try {
1297
+ const parsedConfig = JSON.parse(configuration);
1298
+ const tileConfig = JSON.parse(parsedConfig?.tileConfiguration);
1299
+ return tileConfig;
1300
+ } catch (error) {
1301
+ Log.warning(error.message);
1302
+ }
1303
+ }
1304
+ return null;
1107
1305
  }
1108
1306
  });
1109
1307
  return AppsAdditionPanel;