@sapui5/sap.cux.home 1.142.0 → 1.142.2

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 (528) 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.gen.d.ts +1 -1
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js +7 -6
  7. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  8. package/src/sap/cux/home/AdvancedSettingsPanel.ts +7 -6
  9. package/src/sap/cux/home/App.d.ts.map +1 -1
  10. package/src/sap/cux/home/App.gen.d.ts +1 -1
  11. package/src/sap/cux/home/App.js +6 -3
  12. package/src/sap/cux/home/App.js.map +1 -1
  13. package/src/sap/cux/home/App.ts +6 -3
  14. package/src/sap/cux/home/AppsAdditionPanel.d.ts +47 -34
  15. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  16. package/src/sap/cux/home/AppsAdditionPanel.js +334 -238
  17. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  18. package/src/sap/cux/home/AppsAdditionPanel.ts +345 -231
  19. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  20. package/src/sap/cux/home/AppsContainer.gen.d.ts +1 -1
  21. package/src/sap/cux/home/AppsContainer.js +4 -3
  22. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  23. package/src/sap/cux/home/AppsContainer.ts +4 -3
  24. package/src/sap/cux/home/BaseApp.gen.d.ts +1 -1
  25. package/src/sap/cux/home/BaseApp.js +1 -1
  26. package/src/sap/cux/home/BaseApp.js.map +1 -1
  27. package/src/sap/cux/home/BaseApp.ts +1 -1
  28. package/src/sap/cux/home/BaseAppPanel.d.ts +9 -0
  29. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  30. package/src/sap/cux/home/BaseAppPanel.gen.d.ts +1 -1
  31. package/src/sap/cux/home/BaseAppPanel.js +21 -2
  32. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  33. package/src/sap/cux/home/BaseAppPanel.ts +23 -2
  34. package/src/sap/cux/home/BaseAppPersPanel.d.ts +1 -1
  35. package/src/sap/cux/home/BaseAppPersPanel.gen.d.ts +1 -1
  36. package/src/sap/cux/home/BaseAppPersPanel.js +1 -1
  37. package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
  38. package/src/sap/cux/home/BaseAppPersPanel.ts +1 -1
  39. package/src/sap/cux/home/BaseContainer.d.ts +2 -2
  40. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  41. package/src/sap/cux/home/BaseContainer.gen.d.ts +1 -1
  42. package/src/sap/cux/home/BaseContainer.js +11 -3
  43. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  44. package/src/sap/cux/home/BaseContainer.ts +8 -4
  45. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  46. package/src/sap/cux/home/BaseContainerRenderer.js +7 -1
  47. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  48. package/src/sap/cux/home/BaseContainerRenderer.ts +7 -1
  49. package/src/sap/cux/home/BaseLayout.d.ts +1 -1
  50. package/src/sap/cux/home/BaseLayout.gen.d.ts +1 -1
  51. package/src/sap/cux/home/BaseLayout.js +1 -1
  52. package/src/sap/cux/home/BaseLayout.js.map +1 -1
  53. package/src/sap/cux/home/BaseLayout.ts +1 -1
  54. package/src/sap/cux/home/BaseLayoutRenderer.js +1 -1
  55. package/src/sap/cux/home/BaseLayoutRenderer.js.map +1 -1
  56. package/src/sap/cux/home/BaseLayoutRenderer.ts +1 -1
  57. package/src/sap/cux/home/BaseNewsItem.d.ts +1 -1
  58. package/src/sap/cux/home/BaseNewsItem.gen.d.ts +1 -1
  59. package/src/sap/cux/home/BaseNewsItem.js +1 -1
  60. package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
  61. package/src/sap/cux/home/BaseNewsItem.ts +1 -1
  62. package/src/sap/cux/home/BaseNewsPanel.gen.d.ts +1 -1
  63. package/src/sap/cux/home/BaseNewsPanel.js +1 -1
  64. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  65. package/src/sap/cux/home/BaseNewsPanel.ts +3 -3
  66. package/src/sap/cux/home/BasePagePanel.d.ts +1 -1
  67. package/src/sap/cux/home/BasePagePanel.gen.d.ts +1 -1
  68. package/src/sap/cux/home/BasePagePanel.js +1 -1
  69. package/src/sap/cux/home/BasePagePanel.js.map +1 -1
  70. package/src/sap/cux/home/BasePagePanel.ts +1 -1
  71. package/src/sap/cux/home/BasePanel.d.ts +1 -1
  72. package/src/sap/cux/home/BasePanel.gen.d.ts +1 -1
  73. package/src/sap/cux/home/BasePanel.js +1 -1
  74. package/src/sap/cux/home/BasePanel.js.map +1 -1
  75. package/src/sap/cux/home/BasePanel.ts +1 -1
  76. package/src/sap/cux/home/BaseSettingsDialog.d.ts +1 -1
  77. package/src/sap/cux/home/BaseSettingsDialog.gen.d.ts +1 -1
  78. package/src/sap/cux/home/BaseSettingsDialog.js +1 -1
  79. package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
  80. package/src/sap/cux/home/BaseSettingsDialog.ts +1 -1
  81. package/src/sap/cux/home/BaseSettingsPanel.d.ts +1 -1
  82. package/src/sap/cux/home/BaseSettingsPanel.gen.d.ts +1 -1
  83. package/src/sap/cux/home/BaseSettingsPanel.js +1 -1
  84. package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
  85. package/src/sap/cux/home/BaseSettingsPanel.ts +1 -1
  86. package/src/sap/cux/home/CardsContainer.d.ts +108 -0
  87. package/src/sap/cux/home/CardsContainer.d.ts.map +1 -0
  88. package/src/sap/cux/home/CardsContainer.js +207 -0
  89. package/src/sap/cux/home/CardsContainer.js.map +1 -0
  90. package/src/sap/cux/home/CardsContainer.ts +202 -0
  91. package/src/sap/cux/home/CardsPanel.d.ts +43 -62
  92. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  93. package/src/sap/cux/home/CardsPanel.gen.d.ts +1 -1
  94. package/src/sap/cux/home/CardsPanel.js +346 -286
  95. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  96. package/src/sap/cux/home/CardsPanel.ts +212 -201
  97. package/src/sap/cux/home/ContentAdditionDialog.d.ts +3 -1
  98. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  99. package/src/sap/cux/home/ContentAdditionDialog.js +13 -7
  100. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  101. package/src/sap/cux/home/ContentAdditionDialog.ts +14 -6
  102. package/src/sap/cux/home/CustomFlexBox.gen.d.ts +1 -1
  103. package/src/sap/cux/home/ErrorPanel.d.ts +0 -5
  104. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  105. package/src/sap/cux/home/ErrorPanel.gen.d.ts +32 -1
  106. package/src/sap/cux/home/ErrorPanel.js +12 -17
  107. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  108. package/src/sap/cux/home/ErrorPanel.ts +8 -20
  109. package/src/sap/cux/home/FavAppPanel.d.ts +1 -2
  110. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  111. package/src/sap/cux/home/FavAppPanel.js +297 -302
  112. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  113. package/src/sap/cux/home/FavAppPanel.ts +15 -11
  114. package/src/sap/cux/home/FrequentAppPanel.js +1 -1
  115. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  116. package/src/sap/cux/home/FrequentAppPanel.ts +1 -1
  117. package/src/sap/cux/home/Group.d.ts +1 -1
  118. package/src/sap/cux/home/Group.gen.d.ts +1 -1
  119. package/src/sap/cux/home/Group.js +1 -1
  120. package/src/sap/cux/home/Group.js.map +1 -1
  121. package/src/sap/cux/home/Group.ts +1 -1
  122. package/src/sap/cux/home/IToDoPanel.d.ts +1 -1
  123. package/src/sap/cux/home/IToDoPanel.js +1 -1
  124. package/src/sap/cux/home/IToDoPanel.js.map +1 -1
  125. package/src/sap/cux/home/IToDoPanel.ts +1 -1
  126. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +4 -4
  127. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  128. package/src/sap/cux/home/InsightsAdditionPanel.js +9 -9
  129. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  130. package/src/sap/cux/home/InsightsAdditionPanel.ts +8 -8
  131. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +8 -0
  132. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
  133. package/src/sap/cux/home/InsightsCardsSettingsPanel.js +16 -1
  134. package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
  135. package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +12 -1
  136. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +2 -2
  137. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  138. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +2 -2
  139. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +3 -0
  140. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  141. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +253 -40
  142. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  143. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +288 -58
  144. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  145. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +12 -11
  146. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  147. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +13 -11
  148. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +3 -3
  149. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  150. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +8 -8
  151. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +1 -1
  152. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  153. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +3 -3
  154. package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +1 -1
  155. package/src/sap/cux/home/KeyUserSettingsDialog.js +1 -1
  156. package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
  157. package/src/sap/cux/home/KeyUserSettingsDialog.ts +1 -1
  158. package/src/sap/cux/home/Layout.d.ts +4 -2
  159. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  160. package/src/sap/cux/home/Layout.js +50 -9
  161. package/src/sap/cux/home/Layout.js.map +1 -1
  162. package/src/sap/cux/home/Layout.ts +60 -9
  163. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +10 -0
  164. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  165. package/src/sap/cux/home/LayoutSettingsPanel.js +342 -57
  166. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  167. package/src/sap/cux/home/LayoutSettingsPanel.ts +380 -64
  168. package/src/sap/cux/home/MenuItem.d.ts +1 -1
  169. package/src/sap/cux/home/MenuItem.gen.d.ts +1 -1
  170. package/src/sap/cux/home/MenuItem.js +1 -1
  171. package/src/sap/cux/home/MenuItem.js.map +1 -1
  172. package/src/sap/cux/home/MenuItem.ts +1 -1
  173. package/src/sap/cux/home/{NewsAndPagesContainer.d.ts → NewsContainer.d.ts} +13 -14
  174. package/src/sap/cux/home/NewsContainer.d.ts.map +1 -0
  175. package/src/sap/cux/home/{NewsAndPagesContainer.gen.d.ts → NewsContainer.gen.d.ts} +4 -4
  176. package/src/sap/cux/home/{NewsAndPagesContainer.js → NewsContainer.js} +27 -114
  177. package/src/sap/cux/home/NewsContainer.js.map +1 -0
  178. package/src/sap/cux/home/{NewsAndPagesContainer.ts → NewsContainer.ts} +30 -119
  179. package/src/sap/cux/home/NewsGroup.gen.d.ts +1 -1
  180. package/src/sap/cux/home/NewsGroup.js +1 -1
  181. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  182. package/src/sap/cux/home/NewsGroup.ts +2 -2
  183. package/src/sap/cux/home/NewsItem.gen.d.ts +1 -1
  184. package/src/sap/cux/home/NewsItem.js +1 -1
  185. package/src/sap/cux/home/NewsItem.js.map +1 -1
  186. package/src/sap/cux/home/NewsItem.ts +1 -1
  187. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  188. package/src/sap/cux/home/NewsPanel.gen.d.ts +1 -1
  189. package/src/sap/cux/home/NewsPanel.js +13 -15
  190. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  191. package/src/sap/cux/home/NewsPanel.ts +14 -17
  192. package/src/sap/cux/home/NewsSettingsPanel.js +5 -5
  193. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  194. package/src/sap/cux/home/NewsSettingsPanel.ts +6 -6
  195. package/src/sap/cux/home/NoDataContainer.js +1 -1
  196. package/src/sap/cux/home/NoDataContainer.js.map +1 -1
  197. package/src/sap/cux/home/NoDataContainer.ts +1 -1
  198. package/src/sap/cux/home/Page.d.ts +1 -1
  199. package/src/sap/cux/home/Page.gen.d.ts +1 -1
  200. package/src/sap/cux/home/Page.js +1 -1
  201. package/src/sap/cux/home/Page.js.map +1 -1
  202. package/src/sap/cux/home/Page.ts +1 -1
  203. package/src/sap/cux/home/PagePanel.d.ts +1 -1
  204. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  205. package/src/sap/cux/home/PagePanel.js +19 -11
  206. package/src/sap/cux/home/PagePanel.js.map +1 -1
  207. package/src/sap/cux/home/PagePanel.ts +26 -16
  208. package/src/sap/cux/home/PageSettingsPanel.js +1 -1
  209. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  210. package/src/sap/cux/home/PageSettingsPanel.ts +1 -1
  211. package/src/sap/cux/home/PagesContainer.d.ts +72 -0
  212. package/src/sap/cux/home/PagesContainer.d.ts.map +1 -0
  213. package/src/sap/cux/home/PagesContainer.gen.d.ts +78 -0
  214. package/src/sap/cux/home/PagesContainer.js +333 -0
  215. package/src/sap/cux/home/PagesContainer.js.map +1 -0
  216. package/src/sap/cux/home/PagesContainer.ts +179 -0
  217. package/src/sap/cux/home/RecentAppPanel.d.ts +18 -0
  218. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  219. package/src/sap/cux/home/RecentAppPanel.js +30 -1
  220. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  221. package/src/sap/cux/home/RecentAppPanel.ts +33 -2
  222. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  223. package/src/sap/cux/home/RecommendedAppPanel.js +6 -5
  224. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  225. package/src/sap/cux/home/RecommendedAppPanel.ts +5 -4
  226. package/src/sap/cux/home/SettingsDialog.d.ts +8 -1
  227. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  228. package/src/sap/cux/home/SettingsDialog.js +185 -15
  229. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  230. package/src/sap/cux/home/SettingsDialog.ts +15 -5
  231. package/src/sap/cux/home/SideBySideIconTabFilter.d.ts +1 -1
  232. package/src/sap/cux/home/SideBySideIconTabFilter.gen.d.ts +1 -1
  233. package/src/sap/cux/home/SideBySideIconTabFilter.js +1 -1
  234. package/src/sap/cux/home/SideBySideIconTabFilter.js.map +1 -1
  235. package/src/sap/cux/home/SideBySideIconTabFilter.ts +1 -1
  236. package/src/sap/cux/home/SituationPanel.js +1 -1
  237. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  238. package/src/sap/cux/home/SituationPanel.ts +1 -1
  239. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +8 -60
  240. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -1
  241. package/src/sap/cux/home/SpaceInsightsPanel.gen.d.ts +1 -1
  242. package/src/sap/cux/home/SpaceInsightsPanel.js +67 -133
  243. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -1
  244. package/src/sap/cux/home/SpaceInsightsPanel.ts +70 -152
  245. package/src/sap/cux/home/SpacePanel.gen.d.ts +1 -1
  246. package/src/sap/cux/home/SpacePanel.js +1 -1
  247. package/src/sap/cux/home/SpacePanel.js.map +1 -1
  248. package/src/sap/cux/home/SpacePanel.ts +1 -1
  249. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  250. package/src/sap/cux/home/TaskPanel.gen.d.ts +1 -1
  251. package/src/sap/cux/home/TaskPanel.js +17 -2
  252. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  253. package/src/sap/cux/home/TaskPanel.ts +16 -2
  254. package/src/sap/cux/home/TilesContainer.d.ts +111 -0
  255. package/src/sap/cux/home/TilesContainer.d.ts.map +1 -0
  256. package/src/sap/cux/home/TilesContainer.js +218 -0
  257. package/src/sap/cux/home/TilesContainer.js.map +1 -0
  258. package/src/sap/cux/home/TilesContainer.ts +216 -0
  259. package/src/sap/cux/home/TilesPanel.d.ts +22 -52
  260. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  261. package/src/sap/cux/home/TilesPanel.gen.d.ts +1 -1
  262. package/src/sap/cux/home/TilesPanel.js +185 -166
  263. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  264. package/src/sap/cux/home/TilesPanel.ts +161 -155
  265. package/src/sap/cux/home/ToDoPanel.d.ts +1 -0
  266. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  267. package/src/sap/cux/home/ToDoPanel.gen.d.ts +1 -1
  268. package/src/sap/cux/home/ToDoPanel.js +39 -64
  269. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  270. package/src/sap/cux/home/ToDoPanel.ts +33 -32
  271. package/src/sap/cux/home/ToDosContainer.js +1 -1
  272. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  273. package/src/sap/cux/home/ToDosContainer.ts +1 -1
  274. package/src/sap/cux/home/changeHandler/LayoutHandler.js +1 -1
  275. package/src/sap/cux/home/changeHandler/LayoutHandler.js.map +1 -1
  276. package/src/sap/cux/home/changeHandler/LayoutHandler.ts +1 -1
  277. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts +3 -3
  278. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.d.ts.map +1 -1
  279. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js +2 -2
  280. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.js.map +1 -1
  281. package/src/sap/cux/home/changeHandler/NewsFeedVisibilityChange.ts +5 -5
  282. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts +3 -3
  283. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.d.ts.map +1 -1
  284. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js +2 -2
  285. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.js.map +1 -1
  286. package/src/sap/cux/home/changeHandler/SetNewsFeedUrl.ts +5 -5
  287. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts +3 -3
  288. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.d.ts.map +1 -1
  289. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js +2 -2
  290. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.js.map +1 -1
  291. package/src/sap/cux/home/changeHandler/SpacePageColorHandler.ts +4 -4
  292. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts +3 -3
  293. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.d.ts.map +1 -1
  294. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js +5 -5
  295. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.js.map +1 -1
  296. package/src/sap/cux/home/changeHandler/SpacePageIconHandler.ts +6 -6
  297. package/src/sap/cux/home/designtime/Layout.designtime.js +1 -1
  298. package/src/sap/cux/home/designtime/Layout.designtime.js.map +1 -1
  299. package/src/sap/cux/home/designtime/Layout.designtime.ts +1 -1
  300. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.d.ts.map +1 -1
  301. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js +31 -4
  302. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.js.map +1 -1
  303. package/src/sap/cux/home/flexibility/BaseContainer.flexibility.ts +24 -2
  304. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts +29 -19
  305. package/src/sap/cux/home/flexibility/Layout.flexibility.d.ts.map +1 -1
  306. package/src/sap/cux/home/flexibility/Layout.flexibility.js +79 -3
  307. package/src/sap/cux/home/flexibility/Layout.flexibility.js.map +1 -1
  308. package/src/sap/cux/home/flexibility/Layout.flexibility.ts +82 -2
  309. package/src/sap/cux/home/i18n/messagebundle.properties +27 -13
  310. package/src/sap/cux/home/i18n/messagebundle_ar.properties +20 -4
  311. package/src/sap/cux/home/i18n/messagebundle_bg.properties +20 -8
  312. package/src/sap/cux/home/i18n/messagebundle_ca.properties +21 -9
  313. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +26 -14
  314. package/src/sap/cux/home/i18n/messagebundle_cs.properties +20 -8
  315. package/src/sap/cux/home/i18n/messagebundle_cy.properties +20 -8
  316. package/src/sap/cux/home/i18n/messagebundle_da.properties +20 -8
  317. package/src/sap/cux/home/i18n/messagebundle_de.properties +22 -10
  318. package/src/sap/cux/home/i18n/messagebundle_el.properties +20 -8
  319. package/src/sap/cux/home/i18n/messagebundle_en.properties +20 -8
  320. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +20 -8
  321. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +20 -8
  322. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +20 -8
  323. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +20 -8
  324. package/src/sap/cux/home/i18n/messagebundle_es.properties +21 -8
  325. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +20 -8
  326. package/src/sap/cux/home/i18n/messagebundle_et.properties +20 -8
  327. package/src/sap/cux/home/i18n/messagebundle_fi.properties +20 -8
  328. package/src/sap/cux/home/i18n/messagebundle_fr.properties +20 -8
  329. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +20 -8
  330. package/src/sap/cux/home/i18n/messagebundle_hi.properties +20 -8
  331. package/src/sap/cux/home/i18n/messagebundle_hr.properties +20 -8
  332. package/src/sap/cux/home/i18n/messagebundle_hu.properties +20 -8
  333. package/src/sap/cux/home/i18n/messagebundle_id.properties +33 -21
  334. package/src/sap/cux/home/i18n/messagebundle_it.properties +25 -13
  335. package/src/sap/cux/home/i18n/messagebundle_iw.properties +20 -8
  336. package/src/sap/cux/home/i18n/messagebundle_ja.properties +20 -8
  337. package/src/sap/cux/home/i18n/messagebundle_kk.properties +20 -8
  338. package/src/sap/cux/home/i18n/messagebundle_ko.properties +20 -8
  339. package/src/sap/cux/home/i18n/messagebundle_lt.properties +20 -8
  340. package/src/sap/cux/home/i18n/messagebundle_lv.properties +20 -8
  341. package/src/sap/cux/home/i18n/messagebundle_mk.properties +20 -8
  342. package/src/sap/cux/home/i18n/messagebundle_ms.properties +20 -8
  343. package/src/sap/cux/home/i18n/messagebundle_nl.properties +20 -8
  344. package/src/sap/cux/home/i18n/messagebundle_no.properties +20 -8
  345. package/src/sap/cux/home/i18n/messagebundle_pl.properties +20 -8
  346. package/src/sap/cux/home/i18n/messagebundle_pt.properties +20 -8
  347. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +20 -8
  348. package/src/sap/cux/home/i18n/messagebundle_ro.properties +20 -8
  349. package/src/sap/cux/home/i18n/messagebundle_ru.properties +20 -8
  350. package/src/sap/cux/home/i18n/messagebundle_sh.properties +26 -14
  351. package/src/sap/cux/home/i18n/messagebundle_sk.properties +20 -8
  352. package/src/sap/cux/home/i18n/messagebundle_sl.properties +21 -9
  353. package/src/sap/cux/home/i18n/messagebundle_sr.properties +26 -14
  354. package/src/sap/cux/home/i18n/messagebundle_sv.properties +20 -8
  355. package/src/sap/cux/home/i18n/messagebundle_th.properties +20 -8
  356. package/src/sap/cux/home/i18n/messagebundle_tr.properties +20 -8
  357. package/src/sap/cux/home/i18n/messagebundle_uk.properties +24 -12
  358. package/src/sap/cux/home/i18n/messagebundle_vi.properties +20 -8
  359. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +20 -8
  360. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +20 -8
  361. package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -1
  362. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  363. package/src/sap/cux/home/interface/AppsInterface.ts +1 -1
  364. package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -1
  365. package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
  366. package/src/sap/cux/home/interface/CardsInterface.js +1 -1
  367. package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
  368. package/src/sap/cux/home/interface/CardsInterface.ts +1 -2
  369. package/src/sap/cux/home/interface/KeyUserInterface.d.ts +28 -5
  370. package/src/sap/cux/home/interface/KeyUserInterface.d.ts.map +1 -1
  371. package/src/sap/cux/home/interface/KeyUserInterface.js.map +1 -1
  372. package/src/sap/cux/home/interface/KeyUserInterface.ts +24 -5
  373. package/src/sap/cux/home/interface/LayoutInterface.d.ts +8 -1
  374. package/src/sap/cux/home/interface/LayoutInterface.d.ts.map +1 -1
  375. package/src/sap/cux/home/interface/LayoutInterface.js.map +1 -1
  376. package/src/sap/cux/home/interface/LayoutInterface.ts +8 -1
  377. package/src/sap/cux/home/interface/PageSpaceInterface.d.ts +1 -1
  378. package/src/sap/cux/home/interface/PageSpaceInterface.js.map +1 -1
  379. package/src/sap/cux/home/interface/PageSpaceInterface.ts +1 -1
  380. package/src/sap/cux/home/library.d.ts.map +1 -1
  381. package/src/sap/cux/home/library.js +8 -5
  382. package/src/sap/cux/home/library.js.map +1 -1
  383. package/src/sap/cux/home/library.ts +11 -6
  384. package/src/sap/cux/home/themes/base/BaseContainer.less +36 -0
  385. package/src/sap/cux/home/themes/base/BaseLayout.less +11 -0
  386. package/src/sap/cux/home/themes/base/{InsightsContainer.less → CardsContainer.less} +0 -45
  387. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +10 -18
  388. package/src/sap/cux/home/themes/base/PlaceHolder.less +1 -1
  389. package/src/sap/cux/home/themes/base/SettingsDialog.less +4 -0
  390. package/src/sap/cux/home/themes/base/TilesContainer.less +65 -0
  391. package/src/sap/cux/home/themes/base/library.source.less +2 -1
  392. package/src/sap/cux/home/utils/Accessibility.d.ts +1 -1
  393. package/src/sap/cux/home/utils/Accessibility.js +1 -1
  394. package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
  395. package/src/sap/cux/home/utils/Accessibility.ts +1 -1
  396. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +1 -1
  397. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +1 -1
  398. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
  399. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +1 -1
  400. package/src/sap/cux/home/utils/AppManager.js +1 -1
  401. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  402. package/src/sap/cux/home/utils/AppManager.ts +1 -1
  403. package/src/sap/cux/home/utils/BatchHelper.d.ts +2 -1
  404. package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
  405. package/src/sap/cux/home/utils/BatchHelper.js +8 -3
  406. package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
  407. package/src/sap/cux/home/utils/BatchHelper.ts +9 -2
  408. package/src/sap/cux/home/utils/ColorUtils.d.ts +1 -1
  409. package/src/sap/cux/home/utils/ColorUtils.js +1 -1
  410. package/src/sap/cux/home/utils/ColorUtils.js.map +1 -1
  411. package/src/sap/cux/home/utils/ColorUtils.ts +1 -1
  412. package/src/sap/cux/home/utils/CommonUtils.js +1 -1
  413. package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
  414. package/src/sap/cux/home/utils/CommonUtils.ts +1 -1
  415. package/src/sap/cux/home/utils/Constants.js +1 -1
  416. package/src/sap/cux/home/utils/Constants.js.map +1 -1
  417. package/src/sap/cux/home/utils/Constants.ts +1 -1
  418. package/src/sap/cux/home/utils/DataFormatUtils.d.ts +1 -1
  419. package/src/sap/cux/home/utils/DataFormatUtils.js +1 -1
  420. package/src/sap/cux/home/utils/DataFormatUtils.js.map +1 -1
  421. package/src/sap/cux/home/utils/DataFormatUtils.ts +1 -1
  422. package/src/sap/cux/home/utils/DecisionDialog.js +1 -1
  423. package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
  424. package/src/sap/cux/home/utils/DecisionDialog.ts +1 -1
  425. package/src/sap/cux/home/utils/Device.js +1 -1
  426. package/src/sap/cux/home/utils/Device.js.map +1 -1
  427. package/src/sap/cux/home/utils/Device.ts +1 -1
  428. package/src/sap/cux/home/utils/DragDropUtils.d.ts +1 -1
  429. package/src/sap/cux/home/utils/DragDropUtils.js +1 -1
  430. package/src/sap/cux/home/utils/DragDropUtils.js.map +1 -1
  431. package/src/sap/cux/home/utils/DragDropUtils.ts +1 -1
  432. package/src/sap/cux/home/utils/FESRUtil.d.ts +1 -1
  433. package/src/sap/cux/home/utils/FESRUtil.js +1 -1
  434. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  435. package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
  436. package/src/sap/cux/home/utils/FeatureUtils.js +1 -1
  437. package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
  438. package/src/sap/cux/home/utils/FeatureUtils.ts +1 -1
  439. package/src/sap/cux/home/utils/HttpHelper.js +1 -1
  440. package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
  441. package/src/sap/cux/home/utils/HttpHelper.ts +1 -1
  442. package/src/sap/cux/home/utils/IconList.d.ts +1 -1
  443. package/src/sap/cux/home/utils/IconList.js +1 -1
  444. package/src/sap/cux/home/utils/IconList.js.map +1 -1
  445. package/src/sap/cux/home/utils/IconList.ts +1 -1
  446. package/src/sap/cux/home/utils/InsightsUtils.d.ts +1 -1
  447. package/src/sap/cux/home/utils/InsightsUtils.js +1 -1
  448. package/src/sap/cux/home/utils/InsightsUtils.js.map +1 -1
  449. package/src/sap/cux/home/utils/InsightsUtils.ts +1 -1
  450. package/src/sap/cux/home/utils/PXFeedback.js +1 -1
  451. package/src/sap/cux/home/utils/PXFeedback.js.map +1 -1
  452. package/src/sap/cux/home/utils/PXFeedback.ts +1 -1
  453. package/src/sap/cux/home/utils/PageManager.js +1 -1
  454. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  455. package/src/sap/cux/home/utils/PageManager.ts +1 -1
  456. package/src/sap/cux/home/utils/PagesIconsConstants.d.ts +1 -1
  457. package/src/sap/cux/home/utils/PagesIconsConstants.js +1 -1
  458. package/src/sap/cux/home/utils/PagesIconsConstants.js.map +1 -1
  459. package/src/sap/cux/home/utils/PagesIconsConstants.ts +1 -1
  460. package/src/sap/cux/home/utils/PerformanceUtils.d.ts +4 -2
  461. package/src/sap/cux/home/utils/PerformanceUtils.d.ts.map +1 -1
  462. package/src/sap/cux/home/utils/PerformanceUtils.js +5 -3
  463. package/src/sap/cux/home/utils/PerformanceUtils.js.map +1 -1
  464. package/src/sap/cux/home/utils/PerformanceUtils.ts +5 -3
  465. package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +1 -1
  466. package/src/sap/cux/home/utils/PersonalisationUtils.js +1 -1
  467. package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
  468. package/src/sap/cux/home/utils/PersonalisationUtils.ts +1 -1
  469. package/src/sap/cux/home/utils/RecommendedCardUtil.js +1 -1
  470. package/src/sap/cux/home/utils/RecommendedCardUtil.js.map +1 -1
  471. package/src/sap/cux/home/utils/RecommendedCardUtil.ts +1 -1
  472. package/src/sap/cux/home/utils/SituationUtils.js +1 -1
  473. package/src/sap/cux/home/utils/SituationUtils.js.map +1 -1
  474. package/src/sap/cux/home/utils/SituationUtils.ts +1 -1
  475. package/src/sap/cux/home/utils/TaskUtils.js +1 -1
  476. package/src/sap/cux/home/utils/TaskUtils.js.map +1 -1
  477. package/src/sap/cux/home/utils/TaskUtils.ts +1 -1
  478. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +1 -1
  479. package/src/sap/cux/home/utils/UshellPersonalizer.js +1 -1
  480. package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
  481. package/src/sap/cux/home/utils/UshellPersonalizer.ts +1 -1
  482. package/src/sap/cux/home/utils/extension/CardExtension.js +1 -1
  483. package/src/sap/cux/home/utils/extension/CardExtension.js.map +1 -1
  484. package/src/sap/cux/home/utils/extension/CardExtension.ts +1 -1
  485. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +151 -152
  486. package/src/sap/cux/home/utils/fragment/showDecisionDialog.fragment.xml +1 -1
  487. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts +1 -1
  488. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js +1 -1
  489. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -1
  490. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.ts +1 -1
  491. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts +8 -0
  492. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.d.ts.map +1 -0
  493. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.js → CardsPlaceholder.js} +4 -78
  494. package/src/sap/cux/home/utils/placeholder/CardsPlaceholder.js.map +1 -0
  495. package/src/sap/cux/home/utils/placeholder/{InsightsPlaceholder.ts → CardsPlaceholder.ts} +2 -76
  496. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts +8 -0
  497. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.d.ts.map +1 -0
  498. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js +44 -0
  499. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.js.map +1 -0
  500. package/src/sap/cux/home/utils/placeholder/NewsPlaceholder.ts +34 -0
  501. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts +8 -0
  502. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.d.ts.map +1 -0
  503. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.js → PagesPlaceholder.js} +4 -24
  504. package/src/sap/cux/home/utils/placeholder/PagesPlaceholder.js.map +1 -0
  505. package/src/sap/cux/home/utils/placeholder/{NewsAndPagesPlaceholder.ts → PagesPlaceholder.ts} +2 -22
  506. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts +8 -0
  507. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.d.ts.map +1 -0
  508. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js +95 -0
  509. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.js.map +1 -0
  510. package/src/sap/cux/home/utils/placeholder/TilesPlaceholder.ts +85 -0
  511. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts +1 -1
  512. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js +1 -1
  513. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -1
  514. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.ts +1 -1
  515. package/ui5.yaml +1 -0
  516. package/src/sap/cux/home/InsightsContainer.d.ts +0 -205
  517. package/src/sap/cux/home/InsightsContainer.d.ts.map +0 -1
  518. package/src/sap/cux/home/InsightsContainer.js +0 -459
  519. package/src/sap/cux/home/InsightsContainer.js.map +0 -1
  520. package/src/sap/cux/home/InsightsContainer.ts +0 -489
  521. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +0 -1
  522. package/src/sap/cux/home/NewsAndPagesContainer.js.map +0 -1
  523. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +0 -8
  524. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +0 -1
  525. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +0 -1
  526. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts +0 -8
  527. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +0 -1
  528. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayout.js","names":["sap","ui","define","Log","deepEqual","sap_m_library","Page","UI5Element","Lib","HashChanger","S4MyHome","__BaseLayoutRenderer","__BasePanel","___library","___utils_Device","_interopRequireDefault","obj","__esModule","default","PageBackgroundDesign","BaseLayoutRenderer","BasePanel","OrientationType","DeviceType","calculateDeviceType","BaseLayout","extend","renderer","metadata","library","properties","enableSettings","type","group","visibility","enableFullScreen","expanded","defaultValue","settingsDialogPersisted","contentAdditionDialogPersisted","showHeader","showFooter","busy","backgroundDesign","Transparent","persContainerId","defaultAggregation","aggregations","items","singularName","multiple","settingsDialog","keyUserSettingsDialog","contentAdditionDialog","fullScreenContainer","events","onCollapse","constructor","_constructor","id","settings","Page.prototype.constructor.call","init","_init","Page.prototype.init.call","_settingsPanels","_elementConfigs","Map","_i18nBundle","getResourceBundleFor","_slideDurationInSeconds","_fullScreenContainer","getId","setAggregation","onBeforeRendering","_onBeforeRendering","event","Page.prototype.onBeforeRendering.call","_toggleHeaderVisibility","_attachRouteMatched","attachRouteMatched","openPersistedDialogs","bind","getProperty","document","body","style","setProperty","_openPersistedDialogs","getParameter","selectedKey","getAggregation","openSettingsDialog","openContentAdditionDialog","customHeader","getCustomHeader","getVisible","getHeaderContent","length","onAfterRendering","_onAfterRendering","_layoutLoaded","setTimeout","_hashChanger","_loadFullScreenFromHash","getHash","appIntent","split","window","addEventListener","currentHash","location","hash","substring","includes","getContent","_getContent","getItems","_getURLParams","queryString","indexOf","URLSearchParams","hashChanged","URLParams","expandedElementName","get","expandedElement","isTargetContainerVisible","targetContainer","isPhone","Mobile","_currentExpandedElement","fullScreenName","_toggleFullScreenForElement","has","getElementById","classList","add","updatedHash","_removeURLParam","replaceHash","toggleFullScreen","sourceElements","values","next","value","_openSettingsDialog","context","open","_openContentAdditionDialog","setSettingsDialog","_setSettingsDialog","settingsPanels","getPanels","forEach","settingsPanel","_addSettingsPanel","override","push","_getSettingsPanels","_extractElementConfig","element","sourceElement","isPanelElement","getParent","isPanelInSideBySideLayout","SideBySide","Set","index","indexOfItem","key","getKey","registerFullScreenElement","_registerFullScreenElement","elementConfig","set","deregisterFullScreenElement","_deregisterFullScreenElement","delete","updateFullScreenElement","_updateFullScreenElement","updatedConfig","newConfiguration","_addURLParam","toString","_toggleFullScreen","allowToggle","_checkToggleRequirements","panelIndex","indexOfAggregation","isContainerInSideBySideLayout","_detachResizeHandler","_placeClonedElement","toggle","_toggleFullScreenButtonText","_previousExpandedElement","isTargetContainerDifferent","_adjustPreviousExpandedElementIfRequired","_modifyContainer","setHash","_focusFullScreenButton","fireEvent","_domSnapshot","remove","insertItem","_toggleInnerPanelVisibility","_resetScrollPosition","_attachResizeHandler","warning","_getFullScreenContainer","removeAllContent","_sourceElementClone","addContent","currentFullScreenName","firstSourceElement","_scrollPosition","getAssociation","focus","sectionRef","_getSectionRef","undefined","scrollTop","indexOfVisiblePanel","panel","setVisible","control","isPanel","parentContainer","updateText","fullScreenButton","_getFullScreenButton","getText","fullScreenMenuItem","_getFullScreenMenuItem","_updateContainerHeader","sectionIndex","getDomRef","childNodes","targetElement","cloneNode","isSideBySideLayout","_getInnerControl","sourceElementDomRef","targetDomRef","innerHTML","append","_getCurrentExpandedElementName","_getCurrentExpandedElement","isExpandInHash"],"sources":["BaseLayout.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport { Event } from \"jquery\";\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport Log from \"sap/base/Log\";\nimport deepEqual from \"sap/base/util/deepEqual\";\nimport Bar from \"sap/m/Bar\";\nimport Button from \"sap/m/Button\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport { PageBackgroundDesign } from \"sap/m/library\";\nimport Page from \"sap/m/Page\";\nimport UI5Event from \"sap/ui/base/Event\";\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element, { MetadataOptions } from \"sap/ui/core/Element\";\nimport Lib from \"sap/ui/core/Lib\";\nimport HashChanger from \"sap/ui/core/routing/HashChanger\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport BaseContainer from \"./BaseContainer\";\nimport { $BaseLayoutSettings } from \"./BaseLayout\";\nimport BaseLayoutRenderer from \"./BaseLayoutRenderer\";\nimport BasePanel from \"./BasePanel\";\nimport BaseSettingsDialog from \"./BaseSettingsDialog\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport ContentAdditionDialog from \"./ContentAdditionDialog\";\nimport { OrientationType } from \"./library\";\nimport MenuItem from \"./MenuItem\";\nimport { DeviceType, calculateDeviceType } from \"./utils/Device\";\n\ninterface FullScreenElementConfig {\n\tkey?: string;\n\tindex: number;\n\tfullScreenName?: string;\n\tsourceElements: Set<BaseContainer | BasePanel>;\n\ttargetContainer: BaseContainer;\n}\n\n/**\n *\n * Abstract base class for My Home layout.\n *\n * @extends Page\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseLayout\n */\nexport default abstract class BaseLayout extends Page {\n\tprotected _i18nBundle!: ResourceBundle;\n\tprivate _settingsPanels!: BaseSettingsPanel[];\n\tprivate _domSnapshot!: Node;\n\tprivate _sourceElementClone!: Node | Element;\n\tprivate _scrollPosition!: number;\n\tprivate _fullScreenContainer!: Page;\n\tprivate _slideDurationInSeconds!: number;\n\tprivate _layoutLoaded!: boolean;\n\tprivate _hashChanger!: HashChanger;\n\tprivate _currentExpandedElement!: FullScreenElementConfig | undefined;\n\tprivate _previousExpandedElement!: FullScreenElementConfig | undefined;\n\tprivate _elementConfigs!: Map<string, FullScreenElementConfig>;\n\tprivate _attachRouteMatched!: boolean;\n\n\tconstructor(id?: string | $BaseLayoutSettings);\n\tconstructor(id?: string, settings?: $BaseLayoutSettings);\n\t/**\n\t * Constructor for a new Base Layout.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BaseLayoutSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Indicates whether home settings are enabled for this control.\n\t\t\t */\n\t\t\tenableSettings: { type: \"boolean\", group: \"Misc\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether full screen is enabled for this control.\n\t\t\t */\n\t\t\tenableFullScreen: { type: \"boolean\", group: \"Misc\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the layout is expanded.\n\t\t\t */\n\t\t\texpanded: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the settings dialog state is persisted for this control.\n\t\t\t */\n\t\t\tsettingsDialogPersisted: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the content addition dialog state is persisted for this control.\n\t\t\t */\n\t\t\tcontentAdditionDialogPersisted: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether the layout shall have a header.\n\t\t\t */\n\t\t\tshowHeader: { type: \"boolean\", group: \"Appearance\", defaultValue: true, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether this layout shall have a footer.\n\t\t\t */\n\t\t\tshowFooter: { type: \"boolean\", group: \"Appearance\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether the layout is currently in busy state.\n\t\t\t */\n\t\t\tbusy: { type: \"boolean\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * This property is used to set the background color of a page.\n\t\t\t */\n\t\t\tbackgroundDesign: {\n\t\t\t\ttype: \"sap.m.PageBackgroundDesign\",\n\t\t\t\tgroup: \"Appearance\",\n\t\t\t\tdefaultValue: PageBackgroundDesign.Transparent,\n\t\t\t\tvisibility: \"hidden\"\n\t\t\t},\n\t\t\t/**\n\t\t\t * Container ID for Ushell Personalisation.\n\t\t\t * This property holds the ID of the personalization container.\n\t\t\t * It is used to store and retrieve personalized settings for the control.\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t * @public\n\t\t\t */\n\t\t\tpersContainerId: { type: \"string\", defaultValue: \"\", visibility: \"public\" }\n\t\t},\n\t\tdefaultAggregation: \"items\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * The items aggregation which should be of type BaseContainer\n\t\t\t */\n\t\t\titems: { type: \"sap.cux.home.BaseContainer\", singularName: \"item\", multiple: true },\n\t\t\t/**\n\t\t\t * The settings dialog aggregation which controls settings for my home controls.\n\t\t\t * It should be of type BaseSettingsDialog.\n\t\t\t * If Not provided, a default settings dialog will be created from sap.cux.home.SettingsDialog.\n\t\t\t * In case of only custom settings panels, the settings dialog should be created and set manually from sap.cux.home.SettingsDialog.\n\t\t\t */\n\t\t\tsettingsDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"settingsDialog\",\n\t\t\t\tmultiple: false\n\t\t\t},\n\t\t\t/**\n\t\t\t * The Key User Settings dialog aggregation which controls key user settings for my home.\n\t\t\t * It should be of type BaseSettingsDialog.\n\t\t\t * If Not provided, a default settings dialog will be created from sap.cux.home.KeyUserSettingsDialog.\n\t\t\t * In case of only custom settings panels, the settings dialog should be created and set manually from sap.cux.home.KeyUserSettingsDialog.\n\t\t\t */\n\t\t\tkeyUserSettingsDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"keyUserSettingsDialog\",\n\t\t\t\tmultiple: false\n\t\t\t},\n\t\t\t/**\n\t\t\t * The content addition dialog aggregation which controls content addition for MyHome.\n\t\t\t */\n\t\t\tcontentAdditionDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"contentAdditionDialog\",\n\t\t\t\tmultiple: false,\n\t\t\t\tvisibility: \"hidden\"\n\t\t\t},\n\t\t\t/**\n\t\t\t * The full screen container to display registered full-screen elements\n\t\t\t */\n\t\t\tfullScreenContainer: { type: \"sap.m.Page\", singularName: \"fullScreenContainer\", multiple: false, visibility: \"hidden\" }\n\t\t},\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired after the layout is collapsed.\n\t\t\t */\n\t\t\tonCollapse: {}\n\t\t}\n\t};\n\n\tstatic renderer: typeof BaseLayoutRenderer = BaseLayoutRenderer;\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis._settingsPanels = [];\n\t\tthis._elementConfigs = new Map();\n\t\tthis._i18nBundle = Lib.getResourceBundleFor(\"sap.cux.home.i18n\") as ResourceBundle;\n\n\t\t//setup full-screen container\n\t\tthis._slideDurationInSeconds = 1;\n\t\tthis._fullScreenContainer = new Page(`${this.getId()}-fullScreen-container`, {\n\t\t\tbackgroundDesign: \"Transparent\",\n\t\t\tshowHeader: false\n\t\t});\n\t\tthis.setAggregation(\"fullScreenContainer\", this._fullScreenContainer);\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering(event: Event): void {\n\t\tsuper.onBeforeRendering(event);\n\n\t\tthis._toggleHeaderVisibility();\n\n\t\t//open persisted dialogs, if any\n\t\tif (!this._attachRouteMatched) {\n\t\t\tS4MyHome.attachRouteMatched({}, this.openPersistedDialogs.bind(this));\n\t\t\tthis._attachRouteMatched = true;\n\t\t}\n\n\t\t//update full-screen slide animation duration, if enabled\n\t\tif (this.getProperty(\"enableFullScreen\")) {\n\t\t\tdocument.body.style.setProperty(\"--sapUiSlideDuration\", `${this._slideDurationInSeconds}s`);\n\t\t}\n\t}\n\n\t/**\n\t * Opens persisted dialogs (settings or content addition) if their persisted properties are set.\n\t *\n\t * @private\n\t * @param {UI5Event<{ isMyHomeRoute: boolean }>} event - The route matched event containing route info.\n\t */\n\tprivate openPersistedDialogs(event: UI5Event<{ isMyHomeRoute: boolean }>) {\n\t\tif (event.getParameter(\"isMyHomeRoute\")) {\n\t\t\t//open settings dialog if persisted\n\t\t\tif (this.getProperty(\"settingsDialogPersisted\")) {\n\t\t\t\tconst selectedKey = (this.getAggregation(\"settingsDialog\") as BaseSettingsDialog)?.getProperty(\"selectedKey\") as string;\n\t\t\t\tthis.openSettingsDialog(selectedKey);\n\n\t\t\t\t//reset property\n\t\t\t\tthis.setProperty(\"settingsDialogPersisted\", false, true);\n\t\t\t}\n\n\t\t\t//open content addition dialog if persisted\n\t\t\tif (this.getProperty(\"contentAdditionDialogPersisted\")) {\n\t\t\t\tconst selectedKey = (this.getAggregation(\"contentAdditionDialog\") as BaseSettingsDialog)?.getProperty(\n\t\t\t\t\t\"selectedKey\"\n\t\t\t\t) as string;\n\t\t\t\tthis.openContentAdditionDialog(selectedKey);\n\n\t\t\t\t//reset property\n\t\t\t\tthis.setProperty(\"contentAdditionDialogPersisted\", false, true);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the visibility of the header based on the presence of a custom header or header content.\n\t * @private\n\t */\n\tprivate _toggleHeaderVisibility(): void {\n\t\tconst customHeader = this.getCustomHeader() as Bar;\n\t\tconst showHeader = customHeader?.getVisible() || this.getHeaderContent().length > 0;\n\t\tthis.setProperty(\"showHeader\", showHeader, true);\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method.\n\t *\n\t * @private\n\t */\n\tpublic onAfterRendering(): void {\n\t\t//expand element on load if expanded through URL param\n\t\tif (this.getProperty(\"enableFullScreen\")) {\n\t\t\tif (!this._layoutLoaded) {\n\t\t\t\tthis._layoutLoaded = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis._hashChanger = new HashChanger();\n\t\t\t\t\tthis._loadFullScreenFromHash(this._hashChanger.getHash() || \"\");\n\t\t\t\t\tconst [appIntent] = this._hashChanger.getHash().split(\"?\");\n\n\t\t\t\t\t//attach hash change event for toggling full screen\n\t\t\t\t\twindow.addEventListener?.(\"hashchange\", () => {\n\t\t\t\t\t\tconst currentHash = window.location.hash.substring(1);\n\t\t\t\t\t\t//toggle full screen only if hash is changed from within the app\n\t\t\t\t\t\tif (currentHash.includes?.(appIntent)) {\n\t\t\t\t\t\t\tthis._loadFullScreenFromHash(currentHash, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the content of the BaseLayout.\n\t * Overridden to return the items aggregation during inner page rendering.\n\t *\n\t * @private\n\t * @override\n\t * @returns An array of Control objects representing the content.\n\t */\n\tpublic getContent(): Control[] {\n\t\treturn this.getItems();\n\t}\n\n\t/**\n\t * Extracts URL search parameters from a given hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The hash string containing the URL parameters.\n\t * @returns {URLSearchParams} An instance of URLSearchParams containing the parsed parameters.\n\t */\n\tprivate _getURLParams(hash: string): URLSearchParams {\n\t\tconst queryString = hash?.includes(\"?\") ? hash.substring(hash.indexOf(\"?\") + 1) : \"\";\n\t\treturn new URLSearchParams(queryString);\n\t}\n\n\t/**\n\t * Loads full screen mode from URL hash if enabled.\n\t *\n\t * @private\n\t * @param {string} hash - The URL hash string.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed.\n\t */\n\tprivate _loadFullScreenFromHash(hash: string, hashChanged: boolean = false): void {\n\t\tconst enableFullScreen = this.getProperty(\"enableFullScreen\") as boolean;\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tconst expandedElementName = URLParams.get(\"expanded\") || \"\";\n\t\tconst expandedElement = this._elementConfigs.get(expandedElementName);\n\t\tconst isTargetContainerVisible = expandedElement?.targetContainer.getVisible() || false;\n\t\tconst isPhone = calculateDeviceType() === DeviceType.Mobile;\n\n\t\tif (enableFullScreen && expandedElement && !isPhone && isTargetContainerVisible) {\n\t\t\tif (this._currentExpandedElement && this._currentExpandedElement.fullScreenName !== expandedElementName) {\n\t\t\t\t//expand element and prevent slide if hash element is found and another element is currently expanded\n\t\t\t\tthis._toggleFullScreenForElement(expandedElement, hashChanged);\n\t\t\t} else if (!this._currentExpandedElement) {\n\t\t\t\t//expand element if hash element is found and no element is currently expanded\n\t\t\t\tthis._toggleFullScreenForElement(expandedElement);\n\t\t\t} else if (URLParams.has(\"expanded\")) {\n\t\t\t\t//retain the slide transition in case of hash switch\n\t\t\t\tdocument.getElementById(`${this.getId()}-layout-container`)?.classList.add(\"slide\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._currentExpandedElement) {\n\t\t\t\t//collapse expanded element if hash element not found\n\t\t\t\tthis._toggleFullScreenForElement(this._currentExpandedElement);\n\t\t\t} else {\n\t\t\t\t//reset hash if no expanded element found\n\t\t\t\tif (URLParams.has(\"expanded\")) {\n\t\t\t\t\tconst updatedHash = this._removeURLParam(hash, \"expanded\");\n\t\t\t\t\tthis._hashChanger?.replaceHash(updatedHash, \"Backwards\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggles full screen mode for the specified element.\n\t *\n\t * @private\n\t * @param {FullScreenElementConfig} expandedElement - The configuration of the element to be expanded.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed, affecting the toggle behavior.\n\t */\n\tprivate _toggleFullScreenForElement(expandedElement: FullScreenElementConfig, hashChanged: boolean = false): void {\n\t\tsetTimeout(() => this.toggleFullScreen(expandedElement.sourceElements.values().next().value!, hashChanged));\n\t}\n\n\t/**\n\t * Opens the settings dialog and navigate to the panel\n\t * specified by the selected key.\n\t *\n\t * @private\n\t * @param {string} selectedKey The key of the panel to navigate to\n\t */\n\tpublic openSettingsDialog(selectedKey: string = \"\", context: object = {}): void {\n\t\tconst settingsDialog = this.getAggregation(\"settingsDialog\") as BaseSettingsDialog;\n\t\tsettingsDialog?.setProperty(\"selectedKey\", selectedKey);\n\t\tsettingsDialog?.setProperty(\"context\", context);\n\t\tsettingsDialog?.open();\n\t}\n\n\t/**\n\t * Opens the content addition dialog and opens the selected panel.\n\t *\n\t * @param {string} [selectedKey=\"\"] - The key to be set for the content addition dialog. Defaults to an empty string.\n\t */\n\tpublic openContentAdditionDialog(selectedKey: string = \"\"): void {\n\t\tconst contentAdditionDialog = this.getAggregation(\"contentAdditionDialog\") as ContentAdditionDialog;\n\t\tcontentAdditionDialog?.setProperty(\"selectedKey\", selectedKey);\n\t\tcontentAdditionDialog?.open();\n\t}\n\n\t/**\n\t * Sets SettingsDialog aggregation.\n\t * Overridden to update cached settings panels.\n\t *\n\t * @public\n\t * @override\n\t * @returns {BaseSettingsDialog} the dialog for chaining\n\t */\n\tpublic setSettingsDialog(settingsDialog: BaseSettingsDialog): this {\n\t\tconst enableSettings = this.getProperty(\"enableSettings\") as boolean;\n\t\tif (enableSettings) {\n\t\t\tconst settingsPanels = settingsDialog?.getPanels();\n\t\t\tsettingsPanels?.forEach((settingsPanel: BaseSettingsPanel) => {\n\t\t\t\tthis._addSettingsPanel(settingsPanel);\n\t\t\t});\n\t\t}\n\t\tthis.setAggregation(\"settingsDialog\", settingsDialog);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds a settings panel to the list of settings panels associated\n\t * with the layout's settings dialog.\n\t *\n\t * @param {BaseSettingsPanel} settingsPanel - The settings panel to be added.\n\t * @private\n\t */\n\tpublic _addSettingsPanel(settingsPanel: BaseSettingsPanel | BaseSettingsPanel[] | undefined, override?: boolean): void {\n\t\tif (settingsPanel) {\n\t\t\tif (override) {\n\t\t\t\tthis._settingsPanels = settingsPanel as BaseSettingsPanel[];\n\t\t\t} else {\n\t\t\t\tthis._settingsPanels.push(settingsPanel as BaseSettingsPanel);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds a settings panel to the list of settings panels associated\n\t * with the layout's settings dialog.\n\t *\n\t * @param {BaseSettingsPanel} settingsPanel - The settings panel to be added.\n\t * @private\n\t */\n\tpublic _getSettingsPanels(): BaseSettingsPanel[] {\n\t\treturn this._settingsPanels;\n\t}\n\n\t/**\n\t * Extracts the configuration necessary for handling full-screen functionality of an element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which to extract the full-screen configuration.\n\t * @returns {FullScreenElementConfig} Full screen element configuration.\n\t */\n\tprivate _extractElementConfig(element: BaseContainer | BasePanel): FullScreenElementConfig {\n\t\tconst sourceElement = element;\n\t\tconst isPanelElement = sourceElement instanceof BasePanel;\n\t\tconst targetContainer = isPanelElement ? (sourceElement.getParent() as BaseContainer) : sourceElement;\n\t\tconst isPanelInSideBySideLayout = isPanelElement && targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst fullScreenName = (isPanelInSideBySideLayout ? targetContainer : sourceElement).getProperty(\"fullScreenName\") as string;\n\t\tconst sourceElements = new Set<BaseContainer | BasePanel>().add(sourceElement);\n\n\t\treturn {\n\t\t\tfullScreenName,\n\t\t\tsourceElements,\n\t\t\ttargetContainer,\n\t\t\tindex: this.indexOfItem(targetContainer),\n\t\t\tkey: isPanelElement ? sourceElement.getKey() : \"\"\n\t\t};\n\t}\n\n\t/**\n\t * Configures an element for full-screen functionality by extracting and storing its configuration.\n\t * Only stores the configuration if a full-screen name is provided and layout is not currently expanded.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to configure for full-screen.\n\t */\n\tpublic registerFullScreenElement(element: BaseContainer | BasePanel): void {\n\t\tconst elementConfig = this._extractElementConfig(element);\n\t\tconst { fullScreenName } = elementConfig;\n\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tif (this._elementConfigs.get(fullScreenName)) {\n\t\t\t\tconst sourceElements = (\n\t\t\t\t\tthis._elementConfigs.get(fullScreenName)?.sourceElements || new Set<BaseContainer | BasePanel>()\n\t\t\t\t).add(element);\n\t\t\t\tthis._elementConfigs.set(fullScreenName, { ...elementConfig, sourceElements } as FullScreenElementConfig);\n\t\t\t} else {\n\t\t\t\tthis._elementConfigs.set(fullScreenName, elementConfig);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Removes an element's full-screen configuration based on its full-screen name.\n\t * Only removes the configuration if a full-screen name is provided and layout is not currently expanded.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to remove from full-screen configuration.\n\t */\n\tpublic deregisterFullScreenElement(element: BaseContainer | BasePanel): void {\n\t\tconst { fullScreenName } = this._extractElementConfig(element);\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tthis._elementConfigs.delete(fullScreenName);\n\t\t}\n\t}\n\n\t/**\n\t * Updates the full screen configuration for the specified element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which the full screen configuration is to be updated.\n\t * @param {Partial<FullScreenElementConfig>} [updatedConfig] - An optional partial configuration to update the element's full screen configuration.\n\t *\n\t * @returns {void}\n\t */\n\tpublic updateFullScreenElement(element: BaseContainer | BasePanel, updatedConfig?: Partial<FullScreenElementConfig>): void {\n\t\tconst elementConfig = this._extractElementConfig(element);\n\t\tconst { fullScreenName } = elementConfig;\n\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tconst newConfiguration = { ...this._elementConfigs.get(fullScreenName), ...updatedConfig } as FullScreenElementConfig;\n\t\t\tthis._elementConfigs.set(fullScreenName, newConfiguration);\n\t\t}\n\t}\n\n\t/**\n\t * Adds or updates a URL parameter in the given hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The original hash string.\n\t * @param {string} key - The parameter key to add or update.\n\t * @param {string} value - The value for the parameter.\n\t * @returns {string} The updated hash string with the new or updated parameter.\n\t */\n\tprivate _addURLParam(hash: string, key: string, value: string): string {\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tURLParams.set(key, value);\n\t\treturn `${hash.split(\"?\")[0]}?${URLParams.toString()}`;\n\t}\n\n\t/**\n\t * Removes a specified parameter from the URL hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The original hash string.\n\t * @param {string} key - The parameter key to remove.\n\t * @returns {string} The updated hash string without the specified parameter.\n\t */\n\tprivate _removeURLParam(hash: string, key: string): string {\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tURLParams.delete(key);\n\t\treturn URLParams.toString() ? `${hash.split(\"?\")[0]}?${URLParams.toString()}` : hash.split(\"?\")[0];\n\t}\n\n\t/**\n\t * Toggles the full-screen state of a given element, handling layout adjustments, visibility, and scroll position.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to toggle full-screen state for.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed.\n\t */\n\tpublic toggleFullScreen(element: BaseContainer | BasePanel, hashChanged: boolean = false): void {\n\t\tconst isPanelInSideBySideLayout =\n\t\t\telement instanceof BasePanel && element.getParent()?.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst fullScreenName = (isPanelInSideBySideLayout ? element.getParent() : element)?.getProperty(\"fullScreenName\") as string;\n\t\tconst elementConfig = this._elementConfigs.get(fullScreenName);\n\t\tconst allowToggle = hashChanged || this._checkToggleRequirements(elementConfig as FullScreenElementConfig);\n\n\t\tif (elementConfig && allowToggle) {\n\t\t\tconst { targetContainer } = elementConfig;\n\t\t\tconst currentHash = this._hashChanger?.getHash() || \"\";\n\t\t\tconst panelIndex = targetContainer.indexOfAggregation(\"content\", element);\n\t\t\tconst isContainerInSideBySideLayout = targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\t\tlet expanded = this.getProperty(\"expanded\") as boolean;\n\t\t\t// detach resize handler\n\t\t\ttargetContainer._detachResizeHandler();\n\t\t\tif (!hashChanged) {\n\t\t\t\t//update expanded state\n\t\t\t\tthis.setProperty(\"expanded\", !this.getProperty(\"expanded\"), true);\n\t\t\t\texpanded = this.getProperty(\"expanded\") as boolean;\n\n\t\t\t\t//place cloned element in full screen container\n\t\t\t\tthis._placeClonedElement(targetContainer, expanded, panelIndex);\n\n\t\t\t\t//perform slide transition\n\t\t\t\tdocument.getElementById(`${this.getId()}-layout-container`)?.classList.toggle(\"slide\", expanded);\n\t\t\t}\n\n\t\t\t//toggle full-screen button text for the element\n\t\t\tthis._toggleFullScreenButtonText(element, expanded);\n\n\t\t\t// store the current and previous expanded element\n\t\t\tif (expanded) {\n\t\t\t\tthis._previousExpandedElement = this._currentExpandedElement;\n\t\t\t\tthis._currentExpandedElement = elementConfig;\n\t\t\t} else {\n\t\t\t\tdelete this._currentExpandedElement;\n\t\t\t}\n\n\t\t\t//add or remove actual element at the end of slide transition\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tif (expanded) {\n\t\t\t\t\t\t// in case of horizontal or vertical layout, set expanded element's key as selected key\n\t\t\t\t\t\tif (!isContainerInSideBySideLayout) {\n\t\t\t\t\t\t\ttargetContainer.setProperty(\"selectedKey\", element.getProperty(\"key\"));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//adjust currently expanded element if present\n\t\t\t\t\t\tconst isTargetContainerDifferent = !deepEqual(this._previousExpandedElement?.targetContainer, targetContainer);\n\t\t\t\t\t\tthis._adjustPreviousExpandedElementIfRequired(isTargetContainerDifferent);\n\n\t\t\t\t\t\tthis._modifyContainer(targetContainer, panelIndex);\n\n\t\t\t\t\t\t//adjust hash\n\t\t\t\t\t\tthis._currentExpandedElement = elementConfig;\n\t\t\t\t\t\tconst updatedHash = this._addURLParam(currentHash, \"expanded\", fullScreenName);\n\t\t\t\t\t\tthis._hashChanger?.setHash(updatedHash);\n\n\t\t\t\t\t\tthis._focusFullScreenButton(element);\n\n\t\t\t\t\t\t//fire onExpand event\n\t\t\t\t\t\telement.fireEvent(\"onExpand\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//delete stored dom snapshot\n\t\t\t\t\t\t(this._domSnapshot as Element)?.remove();\n\n\t\t\t\t\t\tthis.insertItem(targetContainer, elementConfig.index);\n\n\t\t\t\t\t\t//show all other panels in the container, if not in side-by-side layout\n\t\t\t\t\t\tif (!isContainerInSideBySideLayout) {\n\t\t\t\t\t\t\tthis._toggleInnerPanelVisibility(targetContainer, true);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//adjust hash\n\t\t\t\t\t\tdelete this._currentExpandedElement;\n\t\t\t\t\t\tconst updatedHash = this._removeURLParam(currentHash, \"expanded\");\n\t\t\t\t\t\tthis._hashChanger?.setHash(updatedHash);\n\n\t\t\t\t\t\t//reset scroll position on collapse\n\t\t\t\t\t\tthis._resetScrollPosition(element);\n\n\t\t\t\t\t\t//fire onCollapse event\n\t\t\t\t\t\tthis.fireEvent(\"onCollapse\");\n\t\t\t\t\t}\n\t\t\t\t\t// attach resize handler\n\t\t\t\t\ttargetContainer._attachResizeHandler();\n\t\t\t\t},\n\t\t\t\thashChanged ? 0 : this._slideDurationInSeconds * 1000\n\t\t\t);\n\t\t} else {\n\t\t\tLog.warning(`Element with ID: ${element?.getId()} not registered for full screen`);\n\t\t}\n\t}\n\n\t/**\n\t * Place actual element in the full screen container and hide all other panels in the container, if not in side-by-side layout\n\t *\n\t * @private\n\t * @param {BaseContainer} targetContainer - Container that is to be displayed in full-screen mode\n\t * @param {number} panelIndex - Index of the panel to remain visible if not in side-by-side layout.\n\t */\n\tprivate _modifyContainer(targetContainer: BaseContainer, panelIndex: number) {\n\t\t//adjust currently expanded element if present\n\t\tconst isContainerInSideBySideLayout = targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst isTargetContainerDifferent = !deepEqual(this._previousExpandedElement?.targetContainer, targetContainer);\n\t\tif (!this._previousExpandedElement || isTargetContainerDifferent) {\n\t\t\tthis._getFullScreenContainer().removeAllContent();\n\t\t\t(this._sourceElementClone as Element)?.remove();\n\t\t\tthis._getFullScreenContainer().addContent(targetContainer as Control);\n\t\t}\n\n\t\t//hide all other panels in the container, if not in side-by-side layout\n\t\tif (!isContainerInSideBySideLayout) {\n\t\t\tthis._toggleInnerPanelVisibility(targetContainer, false, panelIndex);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the toggle requirements are met for the given element configuration.\n\t *\n\t * @private\n\t * @param {FullScreenElementConfig} elementConfig - The configuration of the element to check.\n\t * @returns {boolean} `true` if toggling is allowed, otherwise `false`.\n\t */\n\tprivate _checkToggleRequirements(elementConfig: FullScreenElementConfig): boolean {\n\t\tconst expanded = this.getProperty(\"expanded\") as boolean;\n\t\tlet allowToggle = true;\n\n\t\tif (expanded) {\n\t\t\t// if expanded, allow toggling only if the provided element and expanded element are the same\n\t\t\tconst currentFullScreenName = elementConfig?.fullScreenName;\n\t\t\tallowToggle = this._currentExpandedElement?.fullScreenName === currentFullScreenName;\n\t\t}\n\n\t\treturn allowToggle;\n\t}\n\n\t/**\n\t * Adjusts the current expanded element if required based on the new target container.\n\t *\n\t * @private\n\t * @param {boolean} isTargetContainerDifferent - Indicates whether the target container is different from the current expanded element's container.\n\t */\n\tprivate _adjustPreviousExpandedElementIfRequired(isTargetContainerDifferent: boolean) {\n\t\tif (this._previousExpandedElement) {\n\t\t\tconst firstSourceElement = this._previousExpandedElement.sourceElements.values().next().value!;\n\n\t\t\t//update full-screen button text for the current expanded element to collapsed state\n\t\t\tthis._toggleFullScreenButtonText(firstSourceElement, false);\n\n\t\t\tif (isTargetContainerDifferent) {\n\t\t\t\t//if expanded through hash change, place the current expanded element back in the layout\n\t\t\t\tthis.insertItem(this._previousExpandedElement.targetContainer, this._previousExpandedElement.index);\n\n\t\t\t\t//reset scroll position on expansion throuh hash change\n\t\t\t\tthis._scrollPosition = 0;\n\n\t\t\t\t//show all other panels in the container, if not in side-by-side layout\n\t\t\t\tif (this._previousExpandedElement.targetContainer.getProperty(\"orientation\") !== OrientationType.SideBySide) {\n\t\t\t\t\tthis._toggleInnerPanelVisibility(this._previousExpandedElement.targetContainer, true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Resets the scroll position to that of the collapsed element in the original container.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which to reset the scroll position.\n\t */\n\tprivate _resetScrollPosition(element: BaseContainer | BasePanel) {\n\t\t//reset scroll position\n\t\tsetTimeout(() => {\n\t\t\tUI5Element.getElementById(`${element.getAssociation(\"fullScreenButton\", null) as string}-btn`)?.focus();\n\t\t\tconst sectionRef = this._getSectionRef(this);\n\t\t\tif (sectionRef !== undefined) {\n\t\t\t\tsectionRef.scrollTop = this._scrollPosition;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggles visibility of inner panels, except one specified by index.\n\t * Applicable only for panels not in SideSide layout.\n\t *\n\t * @private\n\t * @param {BaseContainer} element - Container with inner panels.\n\t * @param {boolean} visibility - Desired visibility state for panels.\n\t * @param {number} [indexOfVisiblePanel] - Index of panel to exclude from toggle.\n\t */\n\tprivate _toggleInnerPanelVisibility(element: BaseContainer, visibility: boolean, indexOfVisiblePanel?: number): void {\n\t\telement.getContent()?.forEach((panel, index) => {\n\t\t\tpanel.setVisible(index === indexOfVisiblePanel ? !visibility : visibility);\n\t\t});\n\t}\n\n\t/**\n\t * Updates the full-screen button text for a control (or all controls in a side-by-side layout) based on expanded state.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to update or the parent of controls to update.\n\t * @param {boolean} expanded - Indicates if the text should reflect an expanded or collapsed state.\n\t */\n\tprivate _toggleFullScreenButtonText(control: BaseContainer | BasePanel, expanded: boolean): void {\n\t\tconst isPanel = control instanceof BasePanel;\n\t\tconst parentContainer = (isPanel ? control.getParent() : control) as BaseContainer;\n\t\tconst isPanelInSideBySideLayout = isPanel && parentContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\n\t\t//update full-screen button text\n\t\tconst updateText = (control: BaseContainer | BasePanel) => {\n\t\t\tconst fullScreenButton = this._getFullScreenButton(control);\n\t\t\tfullScreenButton.setProperty(\"text\", this._i18nBundle.getText(expanded ? \"collapse\" : \"expand\"), true);\n\t\t\tconst fullScreenMenuItem = this._getFullScreenMenuItem(control);\n\t\t\tfullScreenMenuItem.setProperty(\"title\", this._i18nBundle.getText(expanded ? \"collapse\" : \"expand\"), true);\n\t\t};\n\n\t\tif (isPanelInSideBySideLayout) {\n\t\t\tparentContainer.getContent()?.forEach(updateText);\n\t\t} else {\n\t\t\tupdateText(control);\n\t\t}\n\n\t\t//update container header elements\n\t\tparentContainer._updateContainerHeader(isPanelInSideBySideLayout ? parentContainer : control);\n\t}\n\n\t/**\n\t * Sets focus on the full-screen button associated with an element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element whose full-screen button should be focused.\n\t */\n\tprivate _focusFullScreenButton(element: BaseContainer | BasePanel): void {\n\t\tsetTimeout(() => {\n\t\t\tUI5Element.getElementById(`${element.getAssociation(\"fullScreenButton\", null) as string}-btn`)?.focus();\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves the full-screen button associated with a control.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to find the full-screen button for.\n\t * @returns {Button} The full-screen button associated with the control.\n\t */\n\tprivate _getFullScreenButton(control: BaseContainer | BasePanel): Button {\n\t\treturn UI5Element.getElementById(control.getAssociation(\"fullScreenButton\", null) as string) as Button;\n\t}\n\n\t/**\n\t * Retrieves the Full screen menu item associated with a control.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to find the full-screen button for.\n\t * @returns {MenuItem} The \"Show More\" menu item associated with the control.\n\t */\n\tprivate _getFullScreenMenuItem(control: BaseContainer | BasePanel): MenuItem {\n\t\treturn UI5Element.getElementById(control.getAssociation(\"fullScreenMenuItem\", null) as string) as MenuItem;\n\t}\n\n\t/**\n\t * Retrieves the full-screen container from the current aggregation.\n\t *\n\t * @private\n\t * @returns {Page} The Page instance used as the full-screen container.\n\t */\n\tpublic _getFullScreenContainer(): Page {\n\t\treturn this.getAggregation(\"fullScreenContainer\") as Page;\n\t}\n\n\t/**\n\t * Gets the first child node of a control's DOM reference.\n\t *\n\t * @private\n\t * @param {Control} element - The control to get the child node for.\n\t * @returns {Node | Element} The first child node of the control's DOM reference.\n\t */\n\tprivate _getSectionRef<T extends Node | Element = Element>(element: Control): T | undefined {\n\t\tconst sectionIndex = this.getProperty(\"showHeader\") && element !== this._getFullScreenContainer() ? 1 : 0;\n\t\treturn element.getDomRef()?.childNodes[sectionIndex] as T;\n\t}\n\n\t/**\n\t * Clones and places an element into a target container for full-screen transitions.\n\t *\n\t * @private\n\t * @param {BaseContainer} targetElement - Element to clone or containing the element to clone.\n\t * @param {boolean} expanded - True to expand (clone and place), false to collapse (restore from snapshot).\n\t * @param {number} panelIndex - Index of the panel to clone if not in side-by-side layout.\n\t */\n\tprivate _placeClonedElement(targetElement: BaseContainer, expanded: boolean, panelIndex: number) {\n\t\t//store scroll position and DOM snapshot\n\t\tthis._scrollPosition = (expanded ? this._getSectionRef(this)?.scrollTop : this._scrollPosition) as number;\n\n\t\t//create a snapshot of the homepage in collapsed mode for use in transition back from full screen.\n\t\t//the dom ref had to be cloned twice following rendering issues in the Insights Tiles section.\n\t\tthis._domSnapshot = (expanded ? this.getDomRef()?.cloneNode(true).cloneNode(true) : this._domSnapshot) as Node;\n\n\t\tconst isSideBySideLayout = targetElement.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst sourceElement = isSideBySideLayout\n\t\t\t? targetElement\n\t\t\t: (targetElement._getInnerControl() as FlexBox)?.getItems()[panelIndex] || targetElement;\n\t\tconst sourceElementDomRef = sourceElement.getDomRef() || targetElement.getDomRef();\n\t\tthis._sourceElementClone = expanded ? (sourceElementDomRef?.cloneNode(true) as Node) : this._sourceElementClone;\n\t\tconst targetDomRef = expanded ? this._getSectionRef(this._getFullScreenContainer()) : this.getDomRef();\n\t\tif (targetDomRef) {\n\t\t\tsetTimeout(() => {\n\t\t\t\ttargetDomRef.innerHTML = \"\";\n\t\t\t\ttargetDomRef.append(expanded ? this._sourceElementClone : this._domSnapshot);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the name of the currently expanded element, if any.\n\t *\n\t * @private\n\t * @returns {string | undefined} - The full screen name of the currently expanded element, if any.\n\t */\n\tpublic _getCurrentExpandedElementName(): string | undefined {\n\t\treturn this._getCurrentExpandedElement()?.fullScreenName;\n\t}\n\n\t/**\n\t * Retrieves the currently expanded element config, if any\n\t *\n\t * @private\n\t * @returns {FullScreenElementConfig | undefined} - The full screen name of the currently expanded element, if any.\n\t */\n\tpublic _getCurrentExpandedElement(): FullScreenElementConfig | undefined {\n\t\tconst isExpandInHash = this._getURLParams(this._hashChanger?.getHash() || \"\").has(\"expanded\");\n\t\tif (isExpandInHash) {\n\t\t\treturn this._currentExpandedElement;\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseLayout.js","names":["sap","ui","define","Log","deepEqual","sap_m_library","Page","UI5Element","Lib","HashChanger","S4MyHome","__BaseLayoutRenderer","__BasePanel","___library","___utils_Device","_interopRequireDefault","obj","__esModule","default","PageBackgroundDesign","BaseLayoutRenderer","BasePanel","OrientationType","DeviceType","calculateDeviceType","BaseLayout","extend","renderer","metadata","library","properties","enableSettings","type","group","visibility","enableFullScreen","expanded","defaultValue","settingsDialogPersisted","contentAdditionDialogPersisted","showHeader","showFooter","busy","backgroundDesign","Transparent","persContainerId","defaultAggregation","aggregations","items","singularName","multiple","settingsDialog","keyUserSettingsDialog","contentAdditionDialog","fullScreenContainer","events","onCollapse","constructor","_constructor","id","settings","Page.prototype.constructor.call","init","_init","Page.prototype.init.call","_settingsPanels","_elementConfigs","Map","_i18nBundle","getResourceBundleFor","_slideDurationInSeconds","_fullScreenContainer","getId","setAggregation","onBeforeRendering","_onBeforeRendering","event","Page.prototype.onBeforeRendering.call","_toggleHeaderVisibility","_attachRouteMatched","attachRouteMatched","openPersistedDialogs","bind","getProperty","document","body","style","setProperty","_openPersistedDialogs","getParameter","selectedKey","getAggregation","openSettingsDialog","openContentAdditionDialog","customHeader","getCustomHeader","getVisible","getHeaderContent","length","onAfterRendering","_onAfterRendering","_layoutLoaded","setTimeout","_hashChanger","_loadFullScreenFromHash","getHash","appIntent","split","window","addEventListener","currentHash","location","hash","substring","includes","getContent","_getContent","getItems","_getURLParams","queryString","indexOf","URLSearchParams","hashChanged","URLParams","expandedElementName","get","expandedElement","isTargetContainerVisible","targetContainer","isPhone","Mobile","_currentExpandedElement","fullScreenName","_toggleFullScreenForElement","has","getElementById","classList","add","updatedHash","_removeURLParam","replaceHash","toggleFullScreen","sourceElements","values","next","value","_openSettingsDialog","context","open","_openContentAdditionDialog","setSettingsDialog","_setSettingsDialog","settingsPanels","getPanels","forEach","settingsPanel","_addSettingsPanel","override","push","_getSettingsPanels","_extractElementConfig","element","sourceElement","isPanelElement","getParent","isPanelInSideBySideLayout","SideBySide","Set","index","indexOfItem","key","getKey","registerFullScreenElement","_registerFullScreenElement","elementConfig","set","deregisterFullScreenElement","_deregisterFullScreenElement","delete","updateFullScreenElement","_updateFullScreenElement","updatedConfig","newConfiguration","_addURLParam","toString","_toggleFullScreen","allowToggle","_checkToggleRequirements","panelIndex","indexOfAggregation","isContainerInSideBySideLayout","_detachResizeHandler","_placeClonedElement","toggle","_toggleFullScreenButtonText","_previousExpandedElement","isTargetContainerDifferent","_adjustPreviousExpandedElementIfRequired","_modifyContainer","setHash","_focusFullScreenButton","fireEvent","_domSnapshot","remove","insertItem","_toggleInnerPanelVisibility","_resetScrollPosition","_attachResizeHandler","warning","_getFullScreenContainer","removeAllContent","_sourceElementClone","addContent","currentFullScreenName","firstSourceElement","_scrollPosition","getAssociation","focus","sectionRef","_getSectionRef","undefined","scrollTop","indexOfVisiblePanel","panel","setVisible","control","isPanel","parentContainer","updateText","fullScreenButton","_getFullScreenButton","getText","fullScreenMenuItem","_getFullScreenMenuItem","_updateContainerHeader","sectionIndex","getDomRef","childNodes","targetElement","cloneNode","isSideBySideLayout","_getInnerControl","sourceElementDomRef","targetDomRef","innerHTML","append","_getCurrentExpandedElementName","_getCurrentExpandedElement","isExpandInHash"],"sources":["BaseLayout.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport { Event } from \"jquery\";\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport Log from \"sap/base/Log\";\nimport deepEqual from \"sap/base/util/deepEqual\";\nimport Bar from \"sap/m/Bar\";\nimport Button from \"sap/m/Button\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport { PageBackgroundDesign } from \"sap/m/library\";\nimport Page from \"sap/m/Page\";\nimport UI5Event from \"sap/ui/base/Event\";\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element, { MetadataOptions } from \"sap/ui/core/Element\";\nimport Lib from \"sap/ui/core/Lib\";\nimport HashChanger from \"sap/ui/core/routing/HashChanger\";\nimport S4MyHome from \"sap/ushell/api/S4MyHome\";\nimport BaseContainer from \"./BaseContainer\";\nimport { $BaseLayoutSettings } from \"./BaseLayout\";\nimport BaseLayoutRenderer from \"./BaseLayoutRenderer\";\nimport BasePanel from \"./BasePanel\";\nimport BaseSettingsDialog from \"./BaseSettingsDialog\";\nimport BaseSettingsPanel from \"./BaseSettingsPanel\";\nimport ContentAdditionDialog from \"./ContentAdditionDialog\";\nimport { OrientationType } from \"./library\";\nimport MenuItem from \"./MenuItem\";\nimport { DeviceType, calculateDeviceType } from \"./utils/Device\";\n\ninterface FullScreenElementConfig {\n\tkey?: string;\n\tindex: number;\n\tfullScreenName?: string;\n\tsourceElements: Set<BaseContainer | BasePanel>;\n\ttargetContainer: BaseContainer;\n}\n\n/**\n *\n * Abstract base class for My Home layout.\n *\n * @extends Page\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseLayout\n */\nexport default abstract class BaseLayout extends Page {\n\tprotected _i18nBundle!: ResourceBundle;\n\tprivate _settingsPanels!: BaseSettingsPanel[];\n\tprivate _domSnapshot!: Node;\n\tprivate _sourceElementClone!: Node | Element;\n\tprivate _scrollPosition!: number;\n\tprivate _fullScreenContainer!: Page;\n\tprivate _slideDurationInSeconds!: number;\n\tprivate _layoutLoaded!: boolean;\n\tprivate _hashChanger!: HashChanger;\n\tprivate _currentExpandedElement!: FullScreenElementConfig | undefined;\n\tprivate _previousExpandedElement!: FullScreenElementConfig | undefined;\n\tprivate _elementConfigs!: Map<string, FullScreenElementConfig>;\n\tprivate _attachRouteMatched!: boolean;\n\n\tconstructor(id?: string | $BaseLayoutSettings);\n\tconstructor(id?: string, settings?: $BaseLayoutSettings);\n\t/**\n\t * Constructor for a new Base Layout.\n\t *\n\t * @param {string} [id] ID for the new control, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new control\n\t */\n\tpublic constructor(id?: string, settings?: $BaseLayoutSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Indicates whether home settings are enabled for this control.\n\t\t\t */\n\t\t\tenableSettings: { type: \"boolean\", group: \"Misc\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether full screen is enabled for this control.\n\t\t\t */\n\t\t\tenableFullScreen: { type: \"boolean\", group: \"Misc\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the layout is expanded.\n\t\t\t */\n\t\t\texpanded: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the settings dialog state is persisted for this control.\n\t\t\t */\n\t\t\tsettingsDialogPersisted: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Indicates whether the content addition dialog state is persisted for this control.\n\t\t\t */\n\t\t\tcontentAdditionDialogPersisted: { type: \"boolean\", group: \"Misc\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether the layout shall have a header.\n\t\t\t */\n\t\t\tshowHeader: { type: \"boolean\", group: \"Appearance\", defaultValue: true, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether this layout shall have a footer.\n\t\t\t */\n\t\t\tshowFooter: { type: \"boolean\", group: \"Appearance\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Whether the layout is currently in busy state.\n\t\t\t */\n\t\t\tbusy: { type: \"boolean\", defaultValue: false, visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * This property is used to set the background color of a page.\n\t\t\t */\n\t\t\tbackgroundDesign: {\n\t\t\t\ttype: \"sap.m.PageBackgroundDesign\",\n\t\t\t\tgroup: \"Appearance\",\n\t\t\t\tdefaultValue: PageBackgroundDesign.Transparent,\n\t\t\t\tvisibility: \"hidden\"\n\t\t\t},\n\t\t\t/**\n\t\t\t * Container ID for Ushell Personalisation.\n\t\t\t * This property holds the ID of the personalization container.\n\t\t\t * It is used to store and retrieve personalized settings for the control.\n\t\t\t *\n\t\t\t * @type {string}\n\t\t\t * @public\n\t\t\t */\n\t\t\tpersContainerId: { type: \"string\", defaultValue: \"\", visibility: \"public\" }\n\t\t},\n\t\tdefaultAggregation: \"items\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * The items aggregation which should be of type BaseContainer\n\t\t\t */\n\t\t\titems: { type: \"sap.cux.home.BaseContainer\", singularName: \"item\", multiple: true },\n\t\t\t/**\n\t\t\t * The settings dialog aggregation which controls settings for my home controls.\n\t\t\t * It should be of type BaseSettingsDialog.\n\t\t\t * If Not provided, a default settings dialog will be created from sap.cux.home.SettingsDialog.\n\t\t\t * In case of only custom settings panels, the settings dialog should be created and set manually from sap.cux.home.SettingsDialog.\n\t\t\t */\n\t\t\tsettingsDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"settingsDialog\",\n\t\t\t\tmultiple: false\n\t\t\t},\n\t\t\t/**\n\t\t\t * The Key User Settings dialog aggregation which controls key user settings for my home.\n\t\t\t * It should be of type BaseSettingsDialog.\n\t\t\t * If Not provided, a default settings dialog will be created from sap.cux.home.KeyUserSettingsDialog.\n\t\t\t * In case of only custom settings panels, the settings dialog should be created and set manually from sap.cux.home.KeyUserSettingsDialog.\n\t\t\t */\n\t\t\tkeyUserSettingsDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"keyUserSettingsDialog\",\n\t\t\t\tmultiple: false\n\t\t\t},\n\t\t\t/**\n\t\t\t * The content addition dialog aggregation which controls content addition for MyHome.\n\t\t\t */\n\t\t\tcontentAdditionDialog: {\n\t\t\t\ttype: \"sap.cux.home.BaseSettingsDialog\",\n\t\t\t\tsingularName: \"contentAdditionDialog\",\n\t\t\t\tmultiple: false,\n\t\t\t\tvisibility: \"hidden\"\n\t\t\t},\n\t\t\t/**\n\t\t\t * The full screen container to display registered full-screen elements\n\t\t\t */\n\t\t\tfullScreenContainer: { type: \"sap.m.Page\", singularName: \"fullScreenContainer\", multiple: false, visibility: \"hidden\" }\n\t\t},\n\t\tevents: {\n\t\t\t/**\n\t\t\t * Event is fired after the layout is collapsed.\n\t\t\t */\n\t\t\tonCollapse: {}\n\t\t}\n\t};\n\n\tstatic renderer: typeof BaseLayoutRenderer = BaseLayoutRenderer;\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis._settingsPanels = [];\n\t\tthis._elementConfigs = new Map();\n\t\tthis._i18nBundle = Lib.getResourceBundleFor(\"sap.cux.home.i18n\") as ResourceBundle;\n\n\t\t//setup full-screen container\n\t\tthis._slideDurationInSeconds = 1;\n\t\tthis._fullScreenContainer = new Page(`${this.getId()}-fullScreen-container`, {\n\t\t\tbackgroundDesign: \"Transparent\",\n\t\t\tshowHeader: false\n\t\t});\n\t\tthis.setAggregation(\"fullScreenContainer\", this._fullScreenContainer);\n\t}\n\n\t/**\n\t * onBeforeRendering lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic onBeforeRendering(event: Event): void {\n\t\tsuper.onBeforeRendering(event);\n\n\t\tthis._toggleHeaderVisibility();\n\n\t\t//open persisted dialogs, if any\n\t\tif (!this._attachRouteMatched) {\n\t\t\tS4MyHome.attachRouteMatched({}, this.openPersistedDialogs.bind(this));\n\t\t\tthis._attachRouteMatched = true;\n\t\t}\n\n\t\t//update full-screen slide animation duration, if enabled\n\t\tif (this.getProperty(\"enableFullScreen\")) {\n\t\t\tdocument.body.style.setProperty(\"--sapUiSlideDuration\", `${this._slideDurationInSeconds}s`);\n\t\t}\n\t}\n\n\t/**\n\t * Opens persisted dialogs (settings or content addition) if their persisted properties are set.\n\t *\n\t * @private\n\t * @param {UI5Event<{ isMyHomeRoute: boolean }>} event - The route matched event containing route info.\n\t */\n\tprivate openPersistedDialogs(event: UI5Event<{ isMyHomeRoute: boolean }>) {\n\t\tif (event.getParameter(\"isMyHomeRoute\")) {\n\t\t\t//open settings dialog if persisted\n\t\t\tif (this.getProperty(\"settingsDialogPersisted\")) {\n\t\t\t\tconst selectedKey = (this.getAggregation(\"settingsDialog\") as BaseSettingsDialog)?.getProperty(\"selectedKey\") as string;\n\t\t\t\tthis.openSettingsDialog(selectedKey);\n\n\t\t\t\t//reset property\n\t\t\t\tthis.setProperty(\"settingsDialogPersisted\", false, true);\n\t\t\t}\n\n\t\t\t//open content addition dialog if persisted\n\t\t\tif (this.getProperty(\"contentAdditionDialogPersisted\")) {\n\t\t\t\tconst selectedKey = (this.getAggregation(\"contentAdditionDialog\") as BaseSettingsDialog)?.getProperty(\n\t\t\t\t\t\"selectedKey\"\n\t\t\t\t) as string;\n\t\t\t\tthis.openContentAdditionDialog(selectedKey);\n\n\t\t\t\t//reset property\n\t\t\t\tthis.setProperty(\"contentAdditionDialogPersisted\", false, true);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggles the visibility of the header based on the presence of a custom header or header content.\n\t * @private\n\t */\n\tprivate _toggleHeaderVisibility(): void {\n\t\tconst customHeader = this.getCustomHeader() as Bar;\n\t\tconst showHeader = customHeader?.getVisible() || this.getHeaderContent().length > 0;\n\t\tthis.setProperty(\"showHeader\", showHeader, true);\n\t}\n\n\t/**\n\t * onAfterRendering lifecycle method.\n\t *\n\t * @private\n\t */\n\tpublic onAfterRendering(): void {\n\t\t//expand element on load if expanded through URL param\n\t\tif (this.getProperty(\"enableFullScreen\")) {\n\t\t\tif (!this._layoutLoaded) {\n\t\t\t\tthis._layoutLoaded = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis._hashChanger = new HashChanger();\n\t\t\t\t\tthis._loadFullScreenFromHash(this._hashChanger.getHash() || \"\");\n\t\t\t\t\tconst [appIntent] = this._hashChanger.getHash().split(\"?\");\n\n\t\t\t\t\t//attach hash change event for toggling full screen\n\t\t\t\t\twindow.addEventListener?.(\"hashchange\", () => {\n\t\t\t\t\t\tconst currentHash = window.location.hash.substring(1);\n\t\t\t\t\t\t//toggle full screen only if hash is changed from within the app\n\t\t\t\t\t\tif (currentHash.includes?.(appIntent)) {\n\t\t\t\t\t\t\tthis._loadFullScreenFromHash(currentHash, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the content of the BaseLayout.\n\t * Overridden to return the items aggregation during inner page rendering.\n\t *\n\t * @private\n\t * @override\n\t * @returns An array of Control objects representing the content.\n\t */\n\tpublic getContent(): Control[] {\n\t\treturn this.getItems();\n\t}\n\n\t/**\n\t * Extracts URL search parameters from a given hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The hash string containing the URL parameters.\n\t * @returns {URLSearchParams} An instance of URLSearchParams containing the parsed parameters.\n\t */\n\tprivate _getURLParams(hash: string): URLSearchParams {\n\t\tconst queryString = hash?.includes(\"?\") ? hash.substring(hash.indexOf(\"?\") + 1) : \"\";\n\t\treturn new URLSearchParams(queryString);\n\t}\n\n\t/**\n\t * Loads full screen mode from URL hash if enabled.\n\t *\n\t * @private\n\t * @param {string} hash - The URL hash string.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed.\n\t */\n\tprivate _loadFullScreenFromHash(hash: string, hashChanged: boolean = false): void {\n\t\tconst enableFullScreen = this.getProperty(\"enableFullScreen\") as boolean;\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tconst expandedElementName = URLParams.get(\"expanded\") || \"\";\n\t\tconst expandedElement = this._elementConfigs.get(expandedElementName);\n\t\tconst isTargetContainerVisible = expandedElement?.targetContainer.getVisible() || false;\n\t\tconst isPhone = calculateDeviceType() === DeviceType.Mobile;\n\n\t\tif (enableFullScreen && expandedElement && !isPhone && isTargetContainerVisible) {\n\t\t\tif (this._currentExpandedElement && this._currentExpandedElement.fullScreenName !== expandedElementName) {\n\t\t\t\t//expand element and prevent slide if hash element is found and another element is currently expanded\n\t\t\t\tthis._toggleFullScreenForElement(expandedElement, hashChanged);\n\t\t\t} else if (!this._currentExpandedElement) {\n\t\t\t\t//expand element if hash element is found and no element is currently expanded\n\t\t\t\tthis._toggleFullScreenForElement(expandedElement);\n\t\t\t} else if (URLParams.has(\"expanded\")) {\n\t\t\t\t//retain the slide transition in case of hash switch\n\t\t\t\tdocument.getElementById(`${this.getId()}-layout-container`)?.classList.add(\"slide\");\n\t\t\t}\n\t\t} else {\n\t\t\tif (this._currentExpandedElement) {\n\t\t\t\t//collapse expanded element if hash element not found\n\t\t\t\tthis._toggleFullScreenForElement(this._currentExpandedElement);\n\t\t\t} else {\n\t\t\t\t//reset hash if no expanded element found\n\t\t\t\tif (URLParams.has(\"expanded\")) {\n\t\t\t\t\tconst updatedHash = this._removeURLParam(hash, \"expanded\");\n\t\t\t\t\tthis._hashChanger?.replaceHash(updatedHash, \"Backwards\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggles full screen mode for the specified element.\n\t *\n\t * @private\n\t * @param {FullScreenElementConfig} expandedElement - The configuration of the element to be expanded.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed, affecting the toggle behavior.\n\t */\n\tprivate _toggleFullScreenForElement(expandedElement: FullScreenElementConfig, hashChanged: boolean = false): void {\n\t\tsetTimeout(() => this.toggleFullScreen(expandedElement.sourceElements.values().next().value!, hashChanged));\n\t}\n\n\t/**\n\t * Opens the settings dialog and navigate to the panel\n\t * specified by the selected key.\n\t *\n\t * @private\n\t * @param {string} selectedKey The key of the panel to navigate to\n\t */\n\tpublic openSettingsDialog(selectedKey: string = \"\", context: object = {}): void {\n\t\tconst settingsDialog = this.getAggregation(\"settingsDialog\") as BaseSettingsDialog;\n\t\tsettingsDialog?.setProperty(\"selectedKey\", selectedKey);\n\t\tsettingsDialog?.setProperty(\"context\", context);\n\t\tsettingsDialog?.open();\n\t}\n\n\t/**\n\t * Opens the content addition dialog and opens the selected panel.\n\t *\n\t * @param {string} [selectedKey=\"\"] - The key to be set for the content addition dialog. Defaults to an empty string.\n\t */\n\tpublic openContentAdditionDialog(selectedKey: string = \"\"): void {\n\t\tconst contentAdditionDialog = this.getAggregation(\"contentAdditionDialog\") as ContentAdditionDialog;\n\t\tcontentAdditionDialog?.setProperty(\"selectedKey\", selectedKey);\n\t\tcontentAdditionDialog?.open();\n\t}\n\n\t/**\n\t * Sets SettingsDialog aggregation.\n\t * Overridden to update cached settings panels.\n\t *\n\t * @public\n\t * @override\n\t * @returns {BaseSettingsDialog} the dialog for chaining\n\t */\n\tpublic setSettingsDialog(settingsDialog: BaseSettingsDialog): this {\n\t\tconst enableSettings = this.getProperty(\"enableSettings\") as boolean;\n\t\tif (enableSettings) {\n\t\t\tconst settingsPanels = settingsDialog?.getPanels();\n\t\t\tsettingsPanels?.forEach((settingsPanel: BaseSettingsPanel) => {\n\t\t\t\tthis._addSettingsPanel(settingsPanel);\n\t\t\t});\n\t\t}\n\t\tthis.setAggregation(\"settingsDialog\", settingsDialog);\n\t\treturn this;\n\t}\n\n\t/**\n\t * Adds a settings panel to the list of settings panels associated\n\t * with the layout's settings dialog.\n\t *\n\t * @param {BaseSettingsPanel} settingsPanel - The settings panel to be added.\n\t * @private\n\t */\n\tpublic _addSettingsPanel(settingsPanel: BaseSettingsPanel | BaseSettingsPanel[] | undefined, override?: boolean): void {\n\t\tif (settingsPanel) {\n\t\t\tif (override) {\n\t\t\t\tthis._settingsPanels = settingsPanel as BaseSettingsPanel[];\n\t\t\t} else {\n\t\t\t\tthis._settingsPanels.push(settingsPanel as BaseSettingsPanel);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adds a settings panel to the list of settings panels associated\n\t * with the layout's settings dialog.\n\t *\n\t * @param {BaseSettingsPanel} settingsPanel - The settings panel to be added.\n\t * @private\n\t */\n\tpublic _getSettingsPanels(): BaseSettingsPanel[] {\n\t\treturn this._settingsPanels;\n\t}\n\n\t/**\n\t * Extracts the configuration necessary for handling full-screen functionality of an element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which to extract the full-screen configuration.\n\t * @returns {FullScreenElementConfig} Full screen element configuration.\n\t */\n\tprivate _extractElementConfig(element: BaseContainer | BasePanel): FullScreenElementConfig {\n\t\tconst sourceElement = element;\n\t\tconst isPanelElement = sourceElement instanceof BasePanel;\n\t\tconst targetContainer = isPanelElement ? (sourceElement.getParent() as BaseContainer) : sourceElement;\n\t\tconst isPanelInSideBySideLayout = isPanelElement && targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst fullScreenName = (isPanelInSideBySideLayout ? targetContainer : sourceElement).getProperty(\"fullScreenName\") as string;\n\t\tconst sourceElements = new Set<BaseContainer | BasePanel>().add(sourceElement);\n\n\t\treturn {\n\t\t\tfullScreenName,\n\t\t\tsourceElements,\n\t\t\ttargetContainer,\n\t\t\tindex: this.indexOfItem(targetContainer),\n\t\t\tkey: isPanelElement ? sourceElement.getKey() : \"\"\n\t\t};\n\t}\n\n\t/**\n\t * Configures an element for full-screen functionality by extracting and storing its configuration.\n\t * Only stores the configuration if a full-screen name is provided and layout is not currently expanded.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to configure for full-screen.\n\t */\n\tpublic registerFullScreenElement(element: BaseContainer | BasePanel): void {\n\t\tconst elementConfig = this._extractElementConfig(element);\n\t\tconst { fullScreenName } = elementConfig;\n\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tif (this._elementConfigs.get(fullScreenName)) {\n\t\t\t\tconst sourceElements = (\n\t\t\t\t\tthis._elementConfigs.get(fullScreenName)?.sourceElements || new Set<BaseContainer | BasePanel>()\n\t\t\t\t).add(element);\n\t\t\t\tthis._elementConfigs.set(fullScreenName, { ...elementConfig, sourceElements } as FullScreenElementConfig);\n\t\t\t} else {\n\t\t\t\tthis._elementConfigs.set(fullScreenName, elementConfig);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Removes an element's full-screen configuration based on its full-screen name.\n\t * Only removes the configuration if a full-screen name is provided and layout is not currently expanded.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to remove from full-screen configuration.\n\t */\n\tpublic deregisterFullScreenElement(element: BaseContainer | BasePanel): void {\n\t\tconst { fullScreenName } = this._extractElementConfig(element);\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tthis._elementConfigs.delete(fullScreenName);\n\t\t}\n\t}\n\n\t/**\n\t * Updates the full screen configuration for the specified element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which the full screen configuration is to be updated.\n\t * @param {Partial<FullScreenElementConfig>} [updatedConfig] - An optional partial configuration to update the element's full screen configuration.\n\t *\n\t * @returns {void}\n\t */\n\tpublic updateFullScreenElement(element: BaseContainer | BasePanel, updatedConfig?: Partial<FullScreenElementConfig>): void {\n\t\tconst elementConfig = this._extractElementConfig(element);\n\t\tconst { fullScreenName } = elementConfig;\n\n\t\tif (fullScreenName && !this.getProperty(\"expanded\")) {\n\t\t\tconst newConfiguration = { ...this._elementConfigs.get(fullScreenName), ...updatedConfig } as FullScreenElementConfig;\n\t\t\tthis._elementConfigs.set(fullScreenName, newConfiguration);\n\t\t}\n\t}\n\n\t/**\n\t * Adds or updates a URL parameter in the given hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The original hash string.\n\t * @param {string} key - The parameter key to add or update.\n\t * @param {string} value - The value for the parameter.\n\t * @returns {string} The updated hash string with the new or updated parameter.\n\t */\n\tprivate _addURLParam(hash: string, key: string, value: string): string {\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tURLParams.set(key, value);\n\t\treturn `${hash.split(\"?\")[0]}?${URLParams.toString()}`;\n\t}\n\n\t/**\n\t * Removes a specified parameter from the URL hash string.\n\t *\n\t * @private\n\t * @param {string} hash - The original hash string.\n\t * @param {string} key - The parameter key to remove.\n\t * @returns {string} The updated hash string without the specified parameter.\n\t */\n\tprivate _removeURLParam(hash: string, key: string): string {\n\t\tconst URLParams = this._getURLParams(hash);\n\t\tURLParams.delete(key);\n\t\treturn URLParams.toString() ? `${hash.split(\"?\")[0]}?${URLParams.toString()}` : hash.split(\"?\")[0];\n\t}\n\n\t/**\n\t * Toggles the full-screen state of a given element, handling layout adjustments, visibility, and scroll position.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element to toggle full-screen state for.\n\t * @param {boolean} [hashChanged=false] - Indicates if the hash has changed.\n\t */\n\tpublic toggleFullScreen(element: BaseContainer | BasePanel, hashChanged: boolean = false): void {\n\t\tconst isPanelInSideBySideLayout =\n\t\t\telement instanceof BasePanel && element.getParent()?.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst fullScreenName = (isPanelInSideBySideLayout ? element.getParent() : element)?.getProperty(\"fullScreenName\") as string;\n\t\tconst elementConfig = this._elementConfigs.get(fullScreenName);\n\t\tconst allowToggle = hashChanged || this._checkToggleRequirements(elementConfig as FullScreenElementConfig);\n\n\t\tif (elementConfig && allowToggle) {\n\t\t\tconst { targetContainer } = elementConfig;\n\t\t\tconst currentHash = this._hashChanger?.getHash() || \"\";\n\t\t\tconst panelIndex = targetContainer.indexOfAggregation(\"content\", element);\n\t\t\tconst isContainerInSideBySideLayout = targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\t\tlet expanded = this.getProperty(\"expanded\") as boolean;\n\t\t\t// detach resize handler\n\t\t\ttargetContainer._detachResizeHandler();\n\t\t\tif (!hashChanged) {\n\t\t\t\t//update expanded state\n\t\t\t\tthis.setProperty(\"expanded\", !this.getProperty(\"expanded\"), true);\n\t\t\t\texpanded = this.getProperty(\"expanded\") as boolean;\n\n\t\t\t\t//place cloned element in full screen container\n\t\t\t\tthis._placeClonedElement(targetContainer, expanded, panelIndex);\n\n\t\t\t\t//perform slide transition\n\t\t\t\tdocument.getElementById(`${this.getId()}-layout-container`)?.classList.toggle(\"slide\", expanded);\n\t\t\t}\n\n\t\t\t//toggle full-screen button text for the element\n\t\t\tthis._toggleFullScreenButtonText(element, expanded);\n\n\t\t\t// store the current and previous expanded element\n\t\t\tif (expanded) {\n\t\t\t\tthis._previousExpandedElement = this._currentExpandedElement;\n\t\t\t\tthis._currentExpandedElement = elementConfig;\n\t\t\t} else {\n\t\t\t\tdelete this._currentExpandedElement;\n\t\t\t}\n\n\t\t\t//add or remove actual element at the end of slide transition\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tif (expanded) {\n\t\t\t\t\t\t// in case of horizontal or vertical layout, set expanded element's key as selected key\n\t\t\t\t\t\tif (!isContainerInSideBySideLayout) {\n\t\t\t\t\t\t\ttargetContainer.setProperty(\"selectedKey\", element.getProperty(\"key\"));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//adjust currently expanded element if present\n\t\t\t\t\t\tconst isTargetContainerDifferent = !deepEqual(this._previousExpandedElement?.targetContainer, targetContainer);\n\t\t\t\t\t\tthis._adjustPreviousExpandedElementIfRequired(isTargetContainerDifferent);\n\n\t\t\t\t\t\tthis._modifyContainer(targetContainer, panelIndex);\n\n\t\t\t\t\t\t//adjust hash\n\t\t\t\t\t\tthis._currentExpandedElement = elementConfig;\n\t\t\t\t\t\tconst updatedHash = this._addURLParam(currentHash, \"expanded\", fullScreenName);\n\t\t\t\t\t\tthis._hashChanger?.setHash(updatedHash);\n\n\t\t\t\t\t\tthis._focusFullScreenButton(element);\n\n\t\t\t\t\t\t//fire onExpand event\n\t\t\t\t\t\telement.fireEvent(\"onExpand\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t//delete stored dom snapshot\n\t\t\t\t\t\t(this._domSnapshot as Element)?.remove();\n\n\t\t\t\t\t\tthis.insertItem(targetContainer, elementConfig.index);\n\n\t\t\t\t\t\t//show all other panels in the container, if not in side-by-side layout\n\t\t\t\t\t\tif (!isContainerInSideBySideLayout) {\n\t\t\t\t\t\t\tthis._toggleInnerPanelVisibility(targetContainer, true);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t//adjust hash\n\t\t\t\t\t\tdelete this._currentExpandedElement;\n\t\t\t\t\t\tconst updatedHash = this._removeURLParam(currentHash, \"expanded\");\n\t\t\t\t\t\tthis._hashChanger?.setHash(updatedHash);\n\n\t\t\t\t\t\t//reset scroll position on collapse\n\t\t\t\t\t\tthis._resetScrollPosition(element);\n\n\t\t\t\t\t\t//fire onCollapse event\n\t\t\t\t\t\tthis.fireEvent(\"onCollapse\");\n\t\t\t\t\t}\n\t\t\t\t\t// attach resize handler\n\t\t\t\t\ttargetContainer._attachResizeHandler();\n\t\t\t\t},\n\t\t\t\thashChanged ? 0 : this._slideDurationInSeconds * 1000\n\t\t\t);\n\t\t} else {\n\t\t\tLog.warning(`Element with ID: ${element?.getId()} not registered for full screen`);\n\t\t}\n\t}\n\n\t/**\n\t * Place actual element in the full screen container and hide all other panels in the container, if not in side-by-side layout\n\t *\n\t * @private\n\t * @param {BaseContainer} targetContainer - Container that is to be displayed in full-screen mode\n\t * @param {number} panelIndex - Index of the panel to remain visible if not in side-by-side layout.\n\t */\n\tprivate _modifyContainer(targetContainer: BaseContainer, panelIndex: number) {\n\t\t//adjust currently expanded element if present\n\t\tconst isContainerInSideBySideLayout = targetContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst isTargetContainerDifferent = !deepEqual(this._previousExpandedElement?.targetContainer, targetContainer);\n\t\tif (!this._previousExpandedElement || isTargetContainerDifferent) {\n\t\t\tthis._getFullScreenContainer().removeAllContent();\n\t\t\t(this._sourceElementClone as Element)?.remove();\n\t\t\tthis._getFullScreenContainer().addContent(targetContainer as Control);\n\t\t}\n\n\t\t//hide all other panels in the container, if not in side-by-side layout\n\t\tif (!isContainerInSideBySideLayout) {\n\t\t\tthis._toggleInnerPanelVisibility(targetContainer, false, panelIndex);\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the toggle requirements are met for the given element configuration.\n\t *\n\t * @private\n\t * @param {FullScreenElementConfig} elementConfig - The configuration of the element to check.\n\t * @returns {boolean} `true` if toggling is allowed, otherwise `false`.\n\t */\n\tprivate _checkToggleRequirements(elementConfig: FullScreenElementConfig): boolean {\n\t\tconst expanded = this.getProperty(\"expanded\") as boolean;\n\t\tlet allowToggle = true;\n\n\t\tif (expanded) {\n\t\t\t// if expanded, allow toggling only if the provided element and expanded element are the same\n\t\t\tconst currentFullScreenName = elementConfig?.fullScreenName;\n\t\t\tallowToggle = this._currentExpandedElement?.fullScreenName === currentFullScreenName;\n\t\t}\n\n\t\treturn allowToggle;\n\t}\n\n\t/**\n\t * Adjusts the current expanded element if required based on the new target container.\n\t *\n\t * @private\n\t * @param {boolean} isTargetContainerDifferent - Indicates whether the target container is different from the current expanded element's container.\n\t */\n\tprivate _adjustPreviousExpandedElementIfRequired(isTargetContainerDifferent: boolean) {\n\t\tif (this._previousExpandedElement) {\n\t\t\tconst firstSourceElement = this._previousExpandedElement.sourceElements.values().next().value!;\n\n\t\t\t//update full-screen button text for the current expanded element to collapsed state\n\t\t\tthis._toggleFullScreenButtonText(firstSourceElement, false);\n\n\t\t\tif (isTargetContainerDifferent) {\n\t\t\t\t//if expanded through hash change, place the current expanded element back in the layout\n\t\t\t\tthis.insertItem(this._previousExpandedElement.targetContainer, this._previousExpandedElement.index);\n\n\t\t\t\t//reset scroll position on expansion throuh hash change\n\t\t\t\tthis._scrollPosition = 0;\n\n\t\t\t\t//show all other panels in the container, if not in side-by-side layout\n\t\t\t\tif (this._previousExpandedElement.targetContainer.getProperty(\"orientation\") !== OrientationType.SideBySide) {\n\t\t\t\t\tthis._toggleInnerPanelVisibility(this._previousExpandedElement.targetContainer, true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Resets the scroll position to that of the collapsed element in the original container.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element for which to reset the scroll position.\n\t */\n\tprivate _resetScrollPosition(element: BaseContainer | BasePanel) {\n\t\t//reset scroll position\n\t\tsetTimeout(() => {\n\t\t\tUI5Element.getElementById(`${element.getAssociation(\"fullScreenButton\", null) as string}-btn`)?.focus();\n\t\t\tconst sectionRef = this._getSectionRef(this);\n\t\t\tif (sectionRef !== undefined) {\n\t\t\t\tsectionRef.scrollTop = this._scrollPosition;\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Toggles visibility of inner panels, except one specified by index.\n\t * Applicable only for panels not in SideSide layout.\n\t *\n\t * @private\n\t * @param {BaseContainer} element - Container with inner panels.\n\t * @param {boolean} visibility - Desired visibility state for panels.\n\t * @param {number} [indexOfVisiblePanel] - Index of panel to exclude from toggle.\n\t */\n\tprivate _toggleInnerPanelVisibility(element: BaseContainer, visibility: boolean, indexOfVisiblePanel?: number): void {\n\t\telement.getContent()?.forEach((panel, index) => {\n\t\t\tpanel.setVisible(index === indexOfVisiblePanel ? !visibility : visibility);\n\t\t});\n\t}\n\n\t/**\n\t * Updates the full-screen button text for a control (or all controls in a side-by-side layout) based on expanded state.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to update or the parent of controls to update.\n\t * @param {boolean} expanded - Indicates if the text should reflect an expanded or collapsed state.\n\t */\n\tprivate _toggleFullScreenButtonText(control: BaseContainer | BasePanel, expanded: boolean): void {\n\t\tconst isPanel = control instanceof BasePanel;\n\t\tconst parentContainer = (isPanel ? control.getParent() : control) as BaseContainer;\n\t\tconst isPanelInSideBySideLayout = isPanel && parentContainer.getProperty(\"orientation\") === OrientationType.SideBySide;\n\n\t\t//update full-screen button text\n\t\tconst updateText = (control: BaseContainer | BasePanel) => {\n\t\t\tconst fullScreenButton = this._getFullScreenButton(control);\n\t\t\tfullScreenButton.setProperty(\"text\", this._i18nBundle.getText(expanded ? \"collapse\" : \"expand\"), true);\n\t\t\tconst fullScreenMenuItem = this._getFullScreenMenuItem(control);\n\t\t\tfullScreenMenuItem.setProperty(\"title\", this._i18nBundle.getText(expanded ? \"collapse\" : \"expand\"), true);\n\t\t};\n\n\t\tif (isPanelInSideBySideLayout) {\n\t\t\tparentContainer.getContent()?.forEach(updateText);\n\t\t} else {\n\t\t\tupdateText(control);\n\t\t}\n\n\t\t//update container header elements\n\t\tparentContainer._updateContainerHeader(isPanelInSideBySideLayout ? parentContainer : control);\n\t}\n\n\t/**\n\t * Sets focus on the full-screen button associated with an element.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} element - The element whose full-screen button should be focused.\n\t */\n\tprivate _focusFullScreenButton(element: BaseContainer | BasePanel): void {\n\t\tsetTimeout(() => {\n\t\t\tUI5Element.getElementById(`${element.getAssociation(\"fullScreenButton\", null) as string}-btn`)?.focus();\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves the full-screen button associated with a control.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to find the full-screen button for.\n\t * @returns {Button} The full-screen button associated with the control.\n\t */\n\tprivate _getFullScreenButton(control: BaseContainer | BasePanel): Button {\n\t\treturn UI5Element.getElementById(control.getAssociation(\"fullScreenButton\", null) as string) as Button;\n\t}\n\n\t/**\n\t * Retrieves the Full screen menu item associated with a control.\n\t *\n\t * @private\n\t * @param {BaseContainer | BasePanel} control - The control to find the full-screen button for.\n\t * @returns {MenuItem} The \"Show More\" menu item associated with the control.\n\t */\n\tprivate _getFullScreenMenuItem(control: BaseContainer | BasePanel): MenuItem {\n\t\treturn UI5Element.getElementById(control.getAssociation(\"fullScreenMenuItem\", null) as string) as MenuItem;\n\t}\n\n\t/**\n\t * Retrieves the full-screen container from the current aggregation.\n\t *\n\t * @private\n\t * @returns {Page} The Page instance used as the full-screen container.\n\t */\n\tpublic _getFullScreenContainer(): Page {\n\t\treturn this.getAggregation(\"fullScreenContainer\") as Page;\n\t}\n\n\t/**\n\t * Gets the first child node of a control's DOM reference.\n\t *\n\t * @private\n\t * @param {Control} element - The control to get the child node for.\n\t * @returns {Node | Element} The first child node of the control's DOM reference.\n\t */\n\tprivate _getSectionRef<T extends Node | Element = Element>(element: Control): T | undefined {\n\t\tconst sectionIndex = this.getProperty(\"showHeader\") && element !== this._getFullScreenContainer() ? 1 : 0;\n\t\treturn element.getDomRef()?.childNodes[sectionIndex] as T;\n\t}\n\n\t/**\n\t * Clones and places an element into a target container for full-screen transitions.\n\t *\n\t * @private\n\t * @param {BaseContainer} targetElement - Element to clone or containing the element to clone.\n\t * @param {boolean} expanded - True to expand (clone and place), false to collapse (restore from snapshot).\n\t * @param {number} panelIndex - Index of the panel to clone if not in side-by-side layout.\n\t */\n\tprivate _placeClonedElement(targetElement: BaseContainer, expanded: boolean, panelIndex: number) {\n\t\t//store scroll position and DOM snapshot\n\t\tthis._scrollPosition = (expanded ? this._getSectionRef(this)?.scrollTop : this._scrollPosition) as number;\n\n\t\t//create a snapshot of the homepage in collapsed mode for use in transition back from full screen.\n\t\t//the dom ref had to be cloned twice following rendering issues in the Insights Tiles section.\n\t\tthis._domSnapshot = (expanded ? this.getDomRef()?.cloneNode(true).cloneNode(true) : this._domSnapshot) as Node;\n\n\t\tconst isSideBySideLayout = targetElement.getProperty(\"orientation\") === OrientationType.SideBySide;\n\t\tconst sourceElement = isSideBySideLayout\n\t\t\t? targetElement\n\t\t\t: (targetElement._getInnerControl() as FlexBox)?.getItems()[panelIndex] || targetElement;\n\t\tconst sourceElementDomRef = sourceElement.getDomRef() || targetElement.getDomRef();\n\t\tthis._sourceElementClone = expanded ? (sourceElementDomRef?.cloneNode(true) as Node) : this._sourceElementClone;\n\t\tconst targetDomRef = expanded ? this._getSectionRef(this._getFullScreenContainer()) : this.getDomRef();\n\t\tif (targetDomRef) {\n\t\t\tsetTimeout(() => {\n\t\t\t\ttargetDomRef.innerHTML = \"\";\n\t\t\t\ttargetDomRef.append(expanded ? this._sourceElementClone : this._domSnapshot);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Retrieves the name of the currently expanded element, if any.\n\t *\n\t * @private\n\t * @returns {string | undefined} - The full screen name of the currently expanded element, if any.\n\t */\n\tpublic _getCurrentExpandedElementName(): string | undefined {\n\t\treturn this._getCurrentExpandedElement()?.fullScreenName;\n\t}\n\n\t/**\n\t * Retrieves the currently expanded element config, if any\n\t *\n\t * @private\n\t * @returns {FullScreenElementConfig | undefined} - The full screen name of the currently expanded element, if any.\n\t */\n\tpublic _getCurrentExpandedElement(): FullScreenElementConfig | undefined {\n\t\tconst isExpandInHash = this._getURLParams(this._hashChanger?.getHash() || \"\").has(\"expanded\");\n\t\tif (isExpandInHash) {\n\t\t\treturn this._currentExpandedElement;\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
 
6
6
  import { Event } from "jquery";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/m/PageRenderer"], function (PageRenderer) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"BaseLayoutRenderer.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","containerId","getId","isContainerRenderedOnce","document","getElementById","openStart","class","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\tconst containerId = `${control.getId()}-layout-container`;\n\t\tconst isContainerRenderedOnce = document.getElementById(containerId);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.openStart(\"div\", containerId).class(\"sapCuxBaseLayout\").openEnd();\n\t\t}\n\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.close(\"div\");\n\t\t}\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,mCAAAC,YAAA;EAAA;;EAAA,IAAAC,SAAA,GAUe;IACdC,UAAU,EAAE,CAAC;IAEb;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACCC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAAmB,EAAE;MACzD;AACF;AACA;AACA;AACA;AACA;MACE,MAAMC,WAAW,GAAG,GAAGD,OAAO,CAACE,KAAK,CAAC,CAAC,mBAAmB;MACzD,MAAMC,uBAAuB,GAAGC,QAAQ,CAACC,cAAc,CAACJ,WAAW,CAAC;MAEpE,IAAI,CAACE,uBAAuB,EAAE;QAC7BJ,EAAE,CAACO,SAAS,CAAC,KAAK,EAAEL,WAAW,CAAC,CAACM,KAAK,CAAC,kBAAkB,CAAC,CAACC,OAAO,CAAC,CAAC;MACrE;;MAEA;MACAb,YAAY,CAACG,MAAM,CAACC,EAAE,EAAEC,OAAO,CAAC;;MAEhC;MACAD,EAAE,CAACU,aAAa,CAACT,OAAO,CAACU,cAAc,CAAC,qBAAqB,CAAS,CAAC;MAEvE,IAAI,CAACP,uBAAuB,EAAE;QAC7BJ,EAAE,CAACY,KAAK,CAAC,KAAK,CAAC;MAChB;IACD;EACD,CAAC;EAAA,OAAAf,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"BaseLayoutRenderer.js","names":["sap","ui","define","PageRenderer","__exports","apiVersion","render","rm","control","containerId","getId","isContainerRenderedOnce","document","getElementById","openStart","class","openEnd","renderControl","getAggregation","close"],"sources":["BaseLayoutRenderer.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Page from \"sap/m/Page\";\nimport PageRenderer from \"sap/m/PageRenderer\";\nimport RenderManager from \"sap/ui/core/RenderManager\";\nimport BaseLayout from \"./BaseLayout\";\n\nexport default {\n\tapiVersion: 2,\n\n\t/**\n\t * Renders the control.\n\t *\n\t * @public\n\t * @override\n\t * @param {RenderManager} rm - The RenderManager object.\n\t * @param {BaseLayout} control - The BaseLayout control to be rendered.\n\t */\n\trender: function (rm: RenderManager, control: BaseLayout) {\n\t\t/*\n\t\t * Existing controls like NavContainer will not allow for control\n\t\t * over the duration of the transition. To overcome this limitation,\n\t\t * we render a simple div container and manage the transition from\n\t\t * one page to another using CSS.\n\t\t */\n\t\tconst containerId = `${control.getId()}-layout-container`;\n\t\tconst isContainerRenderedOnce = document.getElementById(containerId);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.openStart(\"div\", containerId).class(\"sapCuxBaseLayout\").openEnd();\n\t\t}\n\n\t\t//render main container\n\t\tPageRenderer.render(rm, control);\n\n\t\t//render full-screen container\n\t\trm.renderControl(control.getAggregation(\"fullScreenContainer\") as Page);\n\n\t\tif (!isContainerRenderedOnce) {\n\t\t\trm.close(\"div\");\n\t\t}\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,mCAAAC,YAAA;EAAA;;EAAA,IAAAC,SAAA,GAUe;IACdC,UAAU,EAAE,CAAC;IAEb;AACD;AACA;AACA;AACA;AACA;AACA;AACA;IACCC,MAAM,EAAE,SAAAA,CAAUC,EAAiB,EAAEC,OAAmB,EAAE;MACzD;AACF;AACA;AACA;AACA;AACA;MACE,MAAMC,WAAW,GAAG,GAAGD,OAAO,CAACE,KAAK,CAAC,CAAC,mBAAmB;MACzD,MAAMC,uBAAuB,GAAGC,QAAQ,CAACC,cAAc,CAACJ,WAAW,CAAC;MAEpE,IAAI,CAACE,uBAAuB,EAAE;QAC7BJ,EAAE,CAACO,SAAS,CAAC,KAAK,EAAEL,WAAW,CAAC,CAACM,KAAK,CAAC,kBAAkB,CAAC,CAACC,OAAO,CAAC,CAAC;MACrE;;MAEA;MACAb,YAAY,CAACG,MAAM,CAACC,EAAE,EAAEC,OAAO,CAAC;;MAEhC;MACAD,EAAE,CAACU,aAAa,CAACT,OAAO,CAACU,cAAc,CAAC,qBAAqB,CAAS,CAAC;MAEvE,IAAI,CAACP,uBAAuB,EAAE;QAC7BJ,EAAE,CAACY,KAAK,CAAC,KAAK,CAAC;MAChB;IACD;EACD,CAAC;EAAA,OAAAf,SAAA;AAAA","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
 
6
6
  import Page from "sap/m/Page";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/BaseNewsItem" {
2
2
  /*!
3
3
  * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
5
5
  */
6
6
  import ResourceBundle from "sap/base/i18n/ResourceBundle";
7
7
  import GenericTile from "sap/m/GenericTile";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/BaseNewsItem" {
2
2
  /*!
3
3
  * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
5
5
  */
6
6
  import { Priority } from "sap/m/library";
7
7
  import { PropertyBindingInfo } from "sap/ui/base/ManagedObject";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/m/GenericTile", "sap/m/NewsContent", "sap/m/TileContent", "sap/m/library", "sap/ui/core/Element", "sap/ui/core/Lib", "./utils/DataFormatUtils"], function (GenericTile, NewsContent, TileContent, sap_m_library, Element, Lib, ___utils_DataFormatUtils) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNewsItem.js","names":["sap","ui","define","GenericTile","NewsContent","TileContent","sap_m_library","Element","Lib","___utils_DataFormatUtils","Priority","recycleId","BaseNewsItem","extend","metadata","library","properties","imageUrl","type","group","title","subTitle","footer","priority","priorityText","constructor","_constructor","id","settings","Element.prototype.constructor.call","init","_init","Element.prototype.init.call","_i18nBundle","getResourceBundleFor","_oTile","createTile","setImageUrl","_setImageUrl","sUrl","setBackgroundImage","setProperty","setSubTitle","_setSubTitle","sText","getTileContent","getContent","setSubheader","setTitle","_setTitle","setContentText","setFooter","_setFooter","setPriority","_setPriority","setPriorityText","_setPriorityText","getTile","_getTile","_createTile","getId","mode","frameType","backgroundImage","getImageUrl","tileContent","getFooter","getPriority","None","getPriorityText","content","contentText","getTitle","subheader","getSubTitle"],"sources":["BaseNewsItem.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport NewsContent from \"sap/m/NewsContent\";\nimport TileContent from \"sap/m/TileContent\";\nimport { FrameType, Priority } from \"sap/m/library\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Element from \"sap/ui/core/Element\";\nimport Lib from \"sap/ui/core/Lib\";\nimport { $BaseNewsItemSettings } from \"./BaseNewsItem\";\nimport { recycleId } from \"./utils/DataFormatUtils\";\n\nexport interface INews {\n\turl?: string;\n\ttitle: string;\n\tdescription: string;\n\tpubDate: string;\n\timageUrl: string;\n\texpandFields?: string;\n}\n\n/**\n *\n * Base class for managing and storing News items.\n *\n * @extends sap.ui.core.Element\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseNewsItem\n */\nexport default abstract class BaseNewsItem extends Element {\n\tconstructor(idOrSettings?: string | $BaseNewsItemSettings);\n\tconstructor(id?: string, settings?: $BaseNewsItemSettings);\n\t/**\n\t * Constructor for a new Base News Item.\n\t *\n\t * @param {string} [id] ID for the new base news item, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new base news item\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsItemSettings) {\n\t\tsuper(id, settings);\n\t}\n\tprotected _oTile!: GenericTile;\n\tprotected _i18nBundle!: ResourceBundle;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * The image URL of the news.\n\t\t\t */\n\t\t\timageUrl: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Title of the news\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Subtitle of the app\n\t\t\t */\n\t\t\tsubTitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Footer of the app\n\t\t\t */\n\t\t\tfooter: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * The priority of the news item.\n\t\t\t */\n\t\t\tpriority: { type: \"sap.m.Priority\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * The priority text of the news item\n\t\t\t */\n\t\t\tpriorityText: { type: \"string\", group: \"Misc\" }\n\t\t}\n\t};\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis._i18nBundle = Lib.getResourceBundleFor(\"sap.cux.home.i18n\") as ResourceBundle;\n\t\tif (!this._oTile) {\n\t\t\tthis.createTile();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the image URL for the news item.\n\t * @param {string} sUrl - The URL of the image.\n\t */\n\tpublic setImageUrl(sUrl: string): BaseNewsItem {\n\t\tconst imageUrl = sUrl;\n\t\tthis._oTile.setBackgroundImage(imageUrl);\n\t\treturn this.setProperty(\"imageUrl\", imageUrl, true);\n\t}\n\n\t/**\n\t * Sets the subTitle of the news item.\n\t * @param {string} sText - The subTitle of the news item.\n\t */\n\tpublic setSubTitle(sText: string): BaseNewsItem {\n\t\t(this._oTile.getTileContent()[0].getContent() as NewsContent).setSubheader(sText);\n\t\treturn this.setProperty(\"subTitle\", sText, true);\n\t}\n\n\t/**\n\t * Sets the title of the news item.\n\t * @param {string} sText - The Title of the news item.\n\t */\n\tpublic setTitle(sText: string): BaseNewsItem {\n\t\t(this._oTile.getTileContent()[0].getContent() as NewsContent).setContentText(sText);\n\t\treturn this.setProperty(\"title\", sText, true);\n\t}\n\n\t/**\n\t * Sets the footer of the news item.\n\t * @param {string} sText - The footer of the news item.\n\t */\n\tpublic setFooter(sText: string): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setFooter(sText);\n\t\treturn this.setProperty(\"footer\", sText, true);\n\t}\n\n\t/**\n\t * Sets the priority of the news item.\n\t * @param {Priority} priority - The priority of the news item.\n\t */\n\tpublic setPriority(priority: Priority): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setPriority(priority);\n\t\treturn this.setProperty(\"priority\", priority, true);\n\t}\n\n\t/**\n\t * Sets the priority text of the news item.\n\t * @param {string} priorityText - The priority text of the news item.\n\t */\n\tpublic setPriorityText(priorityText: string): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setPriorityText(priorityText);\n\t\treturn this.setProperty(\"priorityText\", priorityText, true);\n\t}\n\n\t/**\n\t * Retrieves the tile control associated with the news item.\n\t * If the tile control does not exist, it is created.\n\t * @returns {sap.m.Tile} The tile control.\n\t */\n\tpublic getTile(): GenericTile {\n\t\tif (!this._oTile) {\n\t\t\tthis.createTile();\n\t\t}\n\t\treturn this._oTile;\n\t}\n\n\t/**\n\t * Creates the tile control associated with the news item.\n\t * @private\n\t */\n\tpublic createTile(): void {\n\t\tthis._oTile = new GenericTile(recycleId(`${this.getId()}-news-tile`), {\n\t\t\tmode: \"ArticleMode\",\n\t\t\tframeType: \"Stretch\" as FrameType,\n\t\t\tbackgroundImage: this.getImageUrl(),\n\t\t\ttileContent: [\n\t\t\t\tnew TileContent(recycleId(`${this.getId()}-news-tile-content`), {\n\t\t\t\t\tfooter: this.getFooter(),\n\t\t\t\t\tpriority: this.getPriority() || Priority.None,\n\t\t\t\t\tpriorityText: this.getPriorityText(),\n\t\t\t\t\tcontent: new NewsContent(recycleId(`${this.getId()}-news-content`), {\n\t\t\t\t\t\tcontentText: this.getTitle(),\n\t\t\t\t\t\tsubheader: this.getSubTitle()\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseNewsItem.js","names":["sap","ui","define","GenericTile","NewsContent","TileContent","sap_m_library","Element","Lib","___utils_DataFormatUtils","Priority","recycleId","BaseNewsItem","extend","metadata","library","properties","imageUrl","type","group","title","subTitle","footer","priority","priorityText","constructor","_constructor","id","settings","Element.prototype.constructor.call","init","_init","Element.prototype.init.call","_i18nBundle","getResourceBundleFor","_oTile","createTile","setImageUrl","_setImageUrl","sUrl","setBackgroundImage","setProperty","setSubTitle","_setSubTitle","sText","getTileContent","getContent","setSubheader","setTitle","_setTitle","setContentText","setFooter","_setFooter","setPriority","_setPriority","setPriorityText","_setPriorityText","getTile","_getTile","_createTile","getId","mode","frameType","backgroundImage","getImageUrl","tileContent","getFooter","getPriority","None","getPriorityText","content","contentText","getTitle","subheader","getSubTitle"],"sources":["BaseNewsItem.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport GenericTile from \"sap/m/GenericTile\";\nimport NewsContent from \"sap/m/NewsContent\";\nimport TileContent from \"sap/m/TileContent\";\nimport { FrameType, Priority } from \"sap/m/library\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport Element from \"sap/ui/core/Element\";\nimport Lib from \"sap/ui/core/Lib\";\nimport { $BaseNewsItemSettings } from \"./BaseNewsItem\";\nimport { recycleId } from \"./utils/DataFormatUtils\";\n\nexport interface INews {\n\turl?: string;\n\ttitle: string;\n\tdescription: string;\n\tpubDate: string;\n\timageUrl: string;\n\texpandFields?: string;\n}\n\n/**\n *\n * Base class for managing and storing News items.\n *\n * @extends sap.ui.core.Element\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseNewsItem\n */\nexport default abstract class BaseNewsItem extends Element {\n\tconstructor(idOrSettings?: string | $BaseNewsItemSettings);\n\tconstructor(id?: string, settings?: $BaseNewsItemSettings);\n\t/**\n\t * Constructor for a new Base News Item.\n\t *\n\t * @param {string} [id] ID for the new base news item, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new base news item\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsItemSettings) {\n\t\tsuper(id, settings);\n\t}\n\tprotected _oTile!: GenericTile;\n\tprotected _i18nBundle!: ResourceBundle;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * The image URL of the news.\n\t\t\t */\n\t\t\timageUrl: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Title of the news\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Subtitle of the app\n\t\t\t */\n\t\t\tsubTitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Footer of the app\n\t\t\t */\n\t\t\tfooter: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * The priority of the news item.\n\t\t\t */\n\t\t\tpriority: { type: \"sap.m.Priority\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * The priority text of the news item\n\t\t\t */\n\t\t\tpriorityText: { type: \"string\", group: \"Misc\" }\n\t\t}\n\t};\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\t\tthis._i18nBundle = Lib.getResourceBundleFor(\"sap.cux.home.i18n\") as ResourceBundle;\n\t\tif (!this._oTile) {\n\t\t\tthis.createTile();\n\t\t}\n\t}\n\n\t/**\n\t * Sets the image URL for the news item.\n\t * @param {string} sUrl - The URL of the image.\n\t */\n\tpublic setImageUrl(sUrl: string): BaseNewsItem {\n\t\tconst imageUrl = sUrl;\n\t\tthis._oTile.setBackgroundImage(imageUrl);\n\t\treturn this.setProperty(\"imageUrl\", imageUrl, true);\n\t}\n\n\t/**\n\t * Sets the subTitle of the news item.\n\t * @param {string} sText - The subTitle of the news item.\n\t */\n\tpublic setSubTitle(sText: string): BaseNewsItem {\n\t\t(this._oTile.getTileContent()[0].getContent() as NewsContent).setSubheader(sText);\n\t\treturn this.setProperty(\"subTitle\", sText, true);\n\t}\n\n\t/**\n\t * Sets the title of the news item.\n\t * @param {string} sText - The Title of the news item.\n\t */\n\tpublic setTitle(sText: string): BaseNewsItem {\n\t\t(this._oTile.getTileContent()[0].getContent() as NewsContent).setContentText(sText);\n\t\treturn this.setProperty(\"title\", sText, true);\n\t}\n\n\t/**\n\t * Sets the footer of the news item.\n\t * @param {string} sText - The footer of the news item.\n\t */\n\tpublic setFooter(sText: string): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setFooter(sText);\n\t\treturn this.setProperty(\"footer\", sText, true);\n\t}\n\n\t/**\n\t * Sets the priority of the news item.\n\t * @param {Priority} priority - The priority of the news item.\n\t */\n\tpublic setPriority(priority: Priority): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setPriority(priority);\n\t\treturn this.setProperty(\"priority\", priority, true);\n\t}\n\n\t/**\n\t * Sets the priority text of the news item.\n\t * @param {string} priorityText - The priority text of the news item.\n\t */\n\tpublic setPriorityText(priorityText: string): BaseNewsItem {\n\t\tthis._oTile.getTileContent()[0].setPriorityText(priorityText);\n\t\treturn this.setProperty(\"priorityText\", priorityText, true);\n\t}\n\n\t/**\n\t * Retrieves the tile control associated with the news item.\n\t * If the tile control does not exist, it is created.\n\t * @returns {sap.m.Tile} The tile control.\n\t */\n\tpublic getTile(): GenericTile {\n\t\tif (!this._oTile) {\n\t\t\tthis.createTile();\n\t\t}\n\t\treturn this._oTile;\n\t}\n\n\t/**\n\t * Creates the tile control associated with the news item.\n\t * @private\n\t */\n\tpublic createTile(): void {\n\t\tthis._oTile = new GenericTile(recycleId(`${this.getId()}-news-tile`), {\n\t\t\tmode: \"ArticleMode\",\n\t\t\tframeType: \"Stretch\" as FrameType,\n\t\t\tbackgroundImage: this.getImageUrl(),\n\t\t\ttileContent: [\n\t\t\t\tnew TileContent(recycleId(`${this.getId()}-news-tile-content`), {\n\t\t\t\t\tfooter: this.getFooter(),\n\t\t\t\t\tpriority: this.getPriority() || Priority.None,\n\t\t\t\t\tpriorityText: this.getPriorityText(),\n\t\t\t\t\tcontent: new NewsContent(recycleId(`${this.getId()}-news-content`), {\n\t\t\t\t\t\tcontentText: this.getTitle(),\n\t\t\t\t\t\tsubheader: this.getSubTitle()\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t]\n\t\t});\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
 
6
6
  import ResourceBundle from "sap/base/i18n/ResourceBundle";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/BaseNewsPanel" {
2
2
  /*!
3
3
  * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
5
5
  */
6
6
  import BaseNewsItem from "sap/cux/home/BaseNewsItem";
7
7
  import { AggregationBindingInfo } from "sap/ui/base/ManagedObject";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["sap/m/Button", "sap/m/FlexItemData", "sap/m/IllustratedMessage", "sap/m/IllustratedMessageSize", "sap/m/IllustratedMessageType", "sap/m/VBox", "sap/ui/layout/VerticalLayout", "./BasePanel", "./utils/Constants"], function (Button, FlexItemData, IllustratedMessage, IllustratedMessageSize, IllustratedMessageType, VBox, VerticalLayout, __BasePanel, ___utils_Constants) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"BaseNewsPanel.js","names":["sap","ui","define","Button","FlexItemData","IllustratedMessage","IllustratedMessageSize","IllustratedMessageType","VBox","VerticalLayout","__BasePanel","___utils_Constants","_interopRequireDefault","obj","__esModule","default","BasePanel","SETTINGS_PANELS_KEYS","BaseNewsPanel","extend","metadata","library","aggregations","content","multiple","singularName","visibility","newsItems","type","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call","init","_init","BasePanel.prototype.init.call","newsVerticalLayout","getId","generateErrorMessage","layoutData","order","growFactor","setWidth","newsWrapper","items","addContent","getNewsWrapper","_getNewsWrapper","_generateErrorMessage","errorCard","manageNewsButton","text","_i18nBundle","getText","tooltip","press","handleEditNews","bind","oErrorMessage","illustrationSize","Small","illustrationType","NoNotifications","title","description","additionalContent","addStyleClass","wrap","backgroundDesign","visible","height","width","setManageNewsButtonVisibility","_setManageNewsButtonVisibility","setVisible","_handleEditNews","parentContainer","getParent","_getLayout","openSettingsDialog","NEWS"],"sources":["BaseNewsPanel.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 FlexItemData from \"sap/m/FlexItemData\";\nimport IllustratedMessage from \"sap/m/IllustratedMessage\";\nimport IllustratedMessageSize from \"sap/m/IllustratedMessageSize\";\nimport IllustratedMessageType from \"sap/m/IllustratedMessageType\";\nimport VBox from \"sap/m/VBox\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport VerticalLayout from \"sap/ui/layout/VerticalLayout\";\nimport { $BaseNewsPanelSettings } from \"./BaseNewsPanel\";\nimport BasePanel from \"./BasePanel\";\nimport NewsAndPagesContainer from \"./NewsAndPagesContainer\";\nimport { SETTINGS_PANELS_KEYS } from \"./utils/Constants\";\n\n/**\n *\n * Base Panel class for managing and storing News.\n *\n * @extends sap.cux.home.BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseNewsPanel\n */\nexport default abstract class BaseNewsPanel extends BasePanel {\n\tconstructor(idOrSettings?: string | $BaseNewsPanelSettings);\n\tconstructor(id?: string, settings?: $BaseNewsPanelSettings);\n\t/**\n\t * Constructor for a new Base News Panel.\n\t *\n\t * @param {string} [id] ID for the new panel, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new panel\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tprivate errorCard!: VBox;\n\tprivate newsVerticalLayout!: VerticalLayout;\n\tprivate newsWrapper!: VBox;\n\tprivate manageNewsButton!: Button;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Holds the news aggregation\n\t\t\t */\n\t\t\tnewsItems: { type: \"sap.cux.home.BaseNewsItem\", singularName: \"newsItem\", multiple: true }\n\t\t}\n\t};\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\n\t\tthis.newsVerticalLayout = new VerticalLayout(`${this.getId()}-newsContent`, {\n\t\t\tcontent: [this.generateErrorMessage()],\n\t\t\tlayoutData: new FlexItemData({\n\t\t\t\tid: `${this.getId()}-flexItemdata`,\n\t\t\t\torder: 0,\n\t\t\t\tgrowFactor: 1\n\t\t\t})\n\t\t}).setWidth(\"100%\");\n\t\tthis.newsWrapper = new VBox(`${this.getId()}-newsContentWrapper`, { items: [this.newsVerticalLayout] });\n\t\tthis.addContent(this.newsWrapper);\n\t}\n\n\t/**\n\t * Generates app wrapper for displaying apps.\n\t * @private\n\t * @returns The generated apps wrapper.\n\t */\n\tpublic getNewsWrapper(): VerticalLayout {\n\t\treturn this.newsVerticalLayout;\n\t}\n\n\t/**\n\t * Generates the error message wrapper with illustrated message.\n\t * @private\n\t * @returns Wrapper with illustrated message.\n\t */\n\tprotected generateErrorMessage(): VBox {\n\t\tif (!this.errorCard) {\n\t\t\tthis.manageNewsButton = new Button(`${this.getId()}-idManageNewsBtn`, {\n\t\t\t\ttext: this._i18nBundle.getText(\"editLinkNews\"),\n\t\t\t\ttooltip: this._i18nBundle.getText(\"editLinkNews\"),\n\t\t\t\ttype: \"Emphasized\",\n\t\t\t\tpress: this.handleEditNews.bind(this)\n\t\t\t});\n\t\t\tconst oErrorMessage = new IllustratedMessage(`${this.getId()}-errorMessage`, {\n\t\t\t\tillustrationSize: IllustratedMessageSize.Small,\n\t\t\t\tillustrationType: IllustratedMessageType.NoNotifications,\n\t\t\t\ttitle: this._i18nBundle.getText(\"noNewsTitle\"),\n\t\t\t\tdescription: this._i18nBundle.getText(\"noNewsDescription\"),\n\t\t\t\tadditionalContent: [this.manageNewsButton]\n\t\t\t}).addStyleClass(\"customIllustratedMessage\");\n\t\t\tthis.errorCard = new VBox(`${this.getId()}-errorCard`, {\n\t\t\t\twrap: \"Wrap\",\n\t\t\t\tbackgroundDesign: \"Solid\",\n\t\t\t\titems: [oErrorMessage],\n\t\t\t\tvisible: false,\n\t\t\t\theight: \"17rem\",\n\t\t\t\twidth: \"100%\"\n\t\t\t}).addStyleClass(\"sapUiRoundedBorder noCardsBorder sapUiSmallMarginTopBottom\");\n\t\t}\n\t\treturn this.errorCard;\n\t}\n\n\t/**\n\t * Set the visibility of the manage news button.\n\t * @param visible - A boolean indicating whether the manage news should be visible or not.\n\t * @private\n\t */\n\tprotected setManageNewsButtonVisibility(visible: boolean): void {\n\t\tthis.manageNewsButton.setVisible(visible);\n\t}\n\n\t/**\n\t * Handles the edit news event.\n\t * Opens the news dialog for managing news data.\n\t * @private\n\t */\n\tprotected handleEditNews() {\n\t\tconst parentContainer = this.getParent() as NewsAndPagesContainer;\n\t\tparentContainer?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.NEWS);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BaseNewsPanel.js","names":["sap","ui","define","Button","FlexItemData","IllustratedMessage","IllustratedMessageSize","IllustratedMessageType","VBox","VerticalLayout","__BasePanel","___utils_Constants","_interopRequireDefault","obj","__esModule","default","BasePanel","SETTINGS_PANELS_KEYS","BaseNewsPanel","extend","metadata","library","aggregations","content","multiple","singularName","visibility","newsItems","type","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call","init","_init","BasePanel.prototype.init.call","newsVerticalLayout","getId","generateErrorMessage","layoutData","order","growFactor","setWidth","newsWrapper","items","addContent","getNewsWrapper","_getNewsWrapper","_generateErrorMessage","errorCard","manageNewsButton","text","_i18nBundle","getText","tooltip","press","handleEditNews","bind","oErrorMessage","illustrationSize","Small","illustrationType","NoNotifications","title","description","additionalContent","addStyleClass","wrap","backgroundDesign","visible","height","width","setManageNewsButtonVisibility","_setManageNewsButtonVisibility","setVisible","_handleEditNews","parentContainer","getParent","_getLayout","openSettingsDialog","NEWS"],"sources":["BaseNewsPanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Button from \"sap/m/Button\";\nimport FlexItemData from \"sap/m/FlexItemData\";\nimport IllustratedMessage from \"sap/m/IllustratedMessage\";\nimport IllustratedMessageSize from \"sap/m/IllustratedMessageSize\";\nimport IllustratedMessageType from \"sap/m/IllustratedMessageType\";\nimport VBox from \"sap/m/VBox\";\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport VerticalLayout from \"sap/ui/layout/VerticalLayout\";\nimport { $BaseNewsPanelSettings } from \"./BaseNewsPanel\";\nimport BasePanel from \"./BasePanel\";\nimport NewsContainer from \"./NewsContainer\";\nimport { SETTINGS_PANELS_KEYS } from \"./utils/Constants\";\n\n/**\n *\n * Base Panel class for managing and storing News.\n *\n * @extends sap.cux.home.BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BaseNewsPanel\n */\nexport default abstract class BaseNewsPanel extends BasePanel {\n\tconstructor(idOrSettings?: string | $BaseNewsPanelSettings);\n\tconstructor(id?: string, settings?: $BaseNewsPanelSettings);\n\t/**\n\t * Constructor for a new Base News Panel.\n\t *\n\t * @param {string} [id] ID for the new panel, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new panel\n\t */\n\tpublic constructor(id?: string, settings?: $BaseNewsPanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tprivate errorCard!: VBox;\n\tprivate newsVerticalLayout!: VerticalLayout;\n\tprivate newsWrapper!: VBox;\n\tprivate manageNewsButton!: Button;\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Holds the news aggregation\n\t\t\t */\n\t\t\tnewsItems: { type: \"sap.cux.home.BaseNewsItem\", singularName: \"newsItem\", multiple: true }\n\t\t}\n\t};\n\n\t/**\n\t * Init lifecycle method\n\t *\n\t * @private\n\t * @override\n\t */\n\tpublic init(): void {\n\t\tsuper.init();\n\n\t\tthis.newsVerticalLayout = new VerticalLayout(`${this.getId()}-newsContent`, {\n\t\t\tcontent: [this.generateErrorMessage()],\n\t\t\tlayoutData: new FlexItemData({\n\t\t\t\tid: `${this.getId()}-flexItemdata`,\n\t\t\t\torder: 0,\n\t\t\t\tgrowFactor: 1\n\t\t\t})\n\t\t}).setWidth(\"100%\");\n\t\tthis.newsWrapper = new VBox(`${this.getId()}-newsContentWrapper`, { items: [this.newsVerticalLayout] });\n\t\tthis.addContent(this.newsWrapper);\n\t}\n\n\t/**\n\t * Generates app wrapper for displaying apps.\n\t * @private\n\t * @returns The generated apps wrapper.\n\t */\n\tpublic getNewsWrapper(): VerticalLayout {\n\t\treturn this.newsVerticalLayout;\n\t}\n\n\t/**\n\t * Generates the error message wrapper with illustrated message.\n\t * @private\n\t * @returns Wrapper with illustrated message.\n\t */\n\tprotected generateErrorMessage(): VBox {\n\t\tif (!this.errorCard) {\n\t\t\tthis.manageNewsButton = new Button(`${this.getId()}-idManageNewsBtn`, {\n\t\t\t\ttext: this._i18nBundle.getText(\"editLinkNews\"),\n\t\t\t\ttooltip: this._i18nBundle.getText(\"editLinkNews\"),\n\t\t\t\ttype: \"Emphasized\",\n\t\t\t\tpress: this.handleEditNews.bind(this)\n\t\t\t});\n\t\t\tconst oErrorMessage = new IllustratedMessage(`${this.getId()}-errorMessage`, {\n\t\t\t\tillustrationSize: IllustratedMessageSize.Small,\n\t\t\t\tillustrationType: IllustratedMessageType.NoNotifications,\n\t\t\t\ttitle: this._i18nBundle.getText(\"noNewsTitle\"),\n\t\t\t\tdescription: this._i18nBundle.getText(\"noNewsDescription\"),\n\t\t\t\tadditionalContent: [this.manageNewsButton]\n\t\t\t}).addStyleClass(\"customIllustratedMessage\");\n\t\t\tthis.errorCard = new VBox(`${this.getId()}-errorCard`, {\n\t\t\t\twrap: \"Wrap\",\n\t\t\t\tbackgroundDesign: \"Solid\",\n\t\t\t\titems: [oErrorMessage],\n\t\t\t\tvisible: false,\n\t\t\t\theight: \"17rem\",\n\t\t\t\twidth: \"100%\"\n\t\t\t}).addStyleClass(\"sapUiRoundedBorder noCardsBorder sapUiSmallMarginTopBottom\");\n\t\t}\n\t\treturn this.errorCard;\n\t}\n\n\t/**\n\t * Set the visibility of the manage news button.\n\t * @param visible - A boolean indicating whether the manage news should be visible or not.\n\t * @private\n\t */\n\tprotected setManageNewsButtonVisibility(visible: boolean): void {\n\t\tthis.manageNewsButton.setVisible(visible);\n\t}\n\n\t/**\n\t * Handles the edit news event.\n\t * Opens the news dialog for managing news data.\n\t * @private\n\t */\n\tprotected handleEditNews() {\n\t\tconst parentContainer = this.getParent() as NewsContainer;\n\t\tparentContainer?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.NEWS);\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
 
6
6
  import Button from "sap/m/Button";
@@ -13,7 +13,7 @@ import type { MetadataOptions } from "sap/ui/core/Element";
13
13
  import VerticalLayout from "sap/ui/layout/VerticalLayout";
14
14
  import { $BaseNewsPanelSettings } from "./BaseNewsPanel";
15
15
  import BasePanel from "./BasePanel";
16
- import NewsAndPagesContainer from "./NewsAndPagesContainer";
16
+ import NewsContainer from "./NewsContainer";
17
17
  import { SETTINGS_PANELS_KEYS } from "./utils/Constants";
18
18
 
19
19
  /**
@@ -141,7 +141,7 @@ export default abstract class BaseNewsPanel extends BasePanel {
141
141
  * @private
142
142
  */
143
143
  protected handleEditNews() {
144
- const parentContainer = this.getParent() as NewsAndPagesContainer;
144
+ const parentContainer = this.getParent() as NewsContainer;
145
145
  parentContainer?._getLayout().openSettingsDialog(SETTINGS_PANELS_KEYS.NEWS);
146
146
  }
147
147
  }
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/BasePagePanel" {
2
2
  /*!
3
3
  * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
5
5
  */
6
6
  import type { MetadataOptions } from "sap/ui/core/Element";
7
7
  import { $BasePagePanelSettings } from "sap/cux/home/BasePagePanel";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/BasePagePanel" {
2
2
  /*!
3
3
  * SAP UI development toolkit for HTML5 (SAPUI5)
4
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
4
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
5
5
  */
6
6
  import Page from "sap/cux/home/Page";
7
7
  import { PropertyBindingInfo } from "sap/ui/base/ManagedObject";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAP UI development toolkit for HTML5 (SAPUI5)
3
- * * (c) Copyright 2009-2025 SAP SE. All rights reserved
3
+ * * (c) Copyright 2009-2026 SAP SE. All rights reserved
4
4
  */
5
5
  sap.ui.define(["./BasePanel"], function (__BasePanel) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"BasePagePanel.js","names":["sap","ui","define","__BasePanel","_interopRequireDefault","obj","__esModule","default","BasePanel","BasePagePanel","extend","metadata","library","properties","title","type","group","key","aggregations","content","multiple","singularName","visibility","pages","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call"],"sources":["BasePagePanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport { $BasePagePanelSettings } from \"./BasePagePanel\";\nimport BasePanel from \"./BasePanel\";\n\n/**\n *\n * Base Panel class for managing and storing Pages.\n *\n * @extends sap.cux.home.BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BasePagePanel\n */\nexport default abstract class BasePagePanel extends BasePanel {\n\tconstructor(idOrSettings?: string | $BasePagePanelSettings);\n\tconstructor(id?: string, settings?: $BasePagePanelSettings);\n\t/**\n\t * Constructor for a new Base Page Panel.\n\t *\n\t * @param {string} [id] ID for the new panel, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new panel\n\t */\n\tpublic constructor(id?: string, settings?: $BasePagePanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Title of the control.\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Unique key identifier for the control.\n\t\t\t */\n\t\t\tkey: { type: \"string\", group: \"Misc\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Collection of pages that this panel manages.\n\t\t\t */\n\t\t\tpages: { type: \"sap.cux.home.Page\", singularName: \"page\", multiple: true }\n\t\t}\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,4BAAAC,WAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAAA,MAMOG,SAAS,GAAAJ,sBAAA,CAAAD,WAAA;EAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAfA,MAgB8BM,aAAa,GAASD,SAAS,CAAAE,MAAA;IAa5CC,QAAQ,EAAoB;MAC3CC,OAAO,EAAE,cAAc;MACvBC,UAAU,EAAE;QACX;AACH;AACA;QACGC,KAAK,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,KAAK,EAAE;QAAO,CAAC;QACxC;AACH;AACA;QACGC,GAAG,EAAE;UAAEF,IAAI,EAAE,QAAQ;UAAEC,KAAK,EAAE;QAAO;MACtC,CAAC;MACDE,YAAY,EAAE;QACb;AACH;AACA;QACGC,OAAO,EAAE;UAAEC,QAAQ,EAAE,IAAI;UAAEC,YAAY,EAAE,SAAS;UAAEC,UAAU,EAAE;QAAS,CAAC;QAC1E;AACH;AACA;QACGC,KAAK,EAAE;UAAER,IAAI,EAAE,mBAAmB;UAAEM,YAAY,EAAE,MAAM;UAAED,QAAQ,EAAE;QAAK;MAC1E;IACD,CAAC;IAhCD;AACD;AACA;AACA;AACA;AACA;IACQI,WAAW,WAAAC,aAACC,EAAW,EAAEC,QAAiC,EAAE;MAClEC,oCAAA,OAAMF,EAAE,EAAEC,QAAQ;IACnB;EAAC;EAAA,OAX4BlB,aAAa;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"BasePagePanel.js","names":["sap","ui","define","__BasePanel","_interopRequireDefault","obj","__esModule","default","BasePanel","BasePagePanel","extend","metadata","library","properties","title","type","group","key","aggregations","content","multiple","singularName","visibility","pages","constructor","_constructor","id","settings","BasePanel.prototype.constructor.call"],"sources":["BasePagePanel.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\nimport type { MetadataOptions } from \"sap/ui/core/Element\";\nimport { $BasePagePanelSettings } from \"./BasePagePanel\";\nimport BasePanel from \"./BasePanel\";\n\n/**\n *\n * Base Panel class for managing and storing Pages.\n *\n * @extends sap.cux.home.BasePanel\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n *\n * @abstract\n * @private\n * @ui5-restricted ux.eng.s4producthomes1\n *\n * @alias sap.cux.home.BasePagePanel\n */\nexport default abstract class BasePagePanel extends BasePanel {\n\tconstructor(idOrSettings?: string | $BasePagePanelSettings);\n\tconstructor(id?: string, settings?: $BasePagePanelSettings);\n\t/**\n\t * Constructor for a new Base Page Panel.\n\t *\n\t * @param {string} [id] ID for the new panel, generated automatically if an ID is not provided\n\t * @param {object} [settings] Initial settings for the new panel\n\t */\n\tpublic constructor(id?: string, settings?: $BasePagePanelSettings) {\n\t\tsuper(id, settings);\n\t}\n\n\tstatic readonly metadata: MetadataOptions = {\n\t\tlibrary: \"sap.cux.home\",\n\t\tproperties: {\n\t\t\t/**\n\t\t\t * Title of the control.\n\t\t\t */\n\t\t\ttitle: { type: \"string\", group: \"Misc\" },\n\t\t\t/**\n\t\t\t * Unique key identifier for the control.\n\t\t\t */\n\t\t\tkey: { type: \"string\", group: \"Misc\" }\n\t\t},\n\t\taggregations: {\n\t\t\t/**\n\t\t\t * Specifies the content aggregation of the panel.\n\t\t\t */\n\t\t\tcontent: { multiple: true, singularName: \"content\", visibility: \"hidden\" },\n\t\t\t/**\n\t\t\t * Collection of pages that this panel manages.\n\t\t\t */\n\t\t\tpages: { type: \"sap.cux.home.Page\", singularName: \"page\", multiple: true }\n\t\t}\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,4BAAAC,WAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAAA,MAMOG,SAAS,GAAAJ,sBAAA,CAAAD,WAAA;EAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAfA,MAgB8BM,aAAa,GAASD,SAAS,CAAAE,MAAA;IAa5CC,QAAQ,EAAoB;MAC3CC,OAAO,EAAE,cAAc;MACvBC,UAAU,EAAE;QACX;AACH;AACA;QACGC,KAAK,EAAE;UAAEC,IAAI,EAAE,QAAQ;UAAEC,KAAK,EAAE;QAAO,CAAC;QACxC;AACH;AACA;QACGC,GAAG,EAAE;UAAEF,IAAI,EAAE,QAAQ;UAAEC,KAAK,EAAE;QAAO;MACtC,CAAC;MACDE,YAAY,EAAE;QACb;AACH;AACA;QACGC,OAAO,EAAE;UAAEC,QAAQ,EAAE,IAAI;UAAEC,YAAY,EAAE,SAAS;UAAEC,UAAU,EAAE;QAAS,CAAC;QAC1E;AACH;AACA;QACGC,KAAK,EAAE;UAAER,IAAI,EAAE,mBAAmB;UAAEM,YAAY,EAAE,MAAM;UAAED,QAAQ,EAAE;QAAK;MAC1E;IACD,CAAC;IAhCD;AACD;AACA;AACA;AACA;AACA;IACQI,WAAW,WAAAC,aAACC,EAAW,EAAEC,QAAiC,EAAE;MAClEC,oCAAA,OAAMF,EAAE,EAAEC,QAAQ;IACnB;EAAC;EAAA,OAX4BlB,aAAa;AAAA","ignoreList":[]}