@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":"DecisionDialog.js","names":["sap","ui","define","Log","MessageBox","sap_m_library","BaseObject","Element","Fragment","sap_ui_core_library","JSONModel","ODataModel","ResourceModel","___DataFormatUtils","___TaskUtils","_catch","body","recover","result","e","then","ButtonType","ValueState","toTaskPriorityText","TaskPriority","ReasonRequired","decideButtonNature","decisionOption","Nature","toUpperCase","Accept","Reject","Neutral","Default","getActionButton","i18nBundle","task","baseUrl","text","DecisionText","type","pressHandler","DecisionDialog","decisionDialogMethod","bind","getIconFrameBadge","priority","iconBadge","VERY_HIGH","HIGH","getIconFrameBadgeValueState","Error","None","extend","constructor","_constructor","refreshView","BaseObject.prototype.constructor.call","handleReasonOptionChange","_handleReasonOptionChange","event","comboBox","getSource","comboBoxValue","getValue","selectedItem","getSelectedItem","confirmationDialogPromise","confirmationDialog","comboBoxRequired","confirmationDialogModel","getData","dialogSettings","reasonOptionsSettings","required","setTooltip","setValueState","getBeginButton","setEnabled","_toggleSubmitButtonState","catch","error","message","String","dialogData","noteRequired","noteMandatory","noteFilled","getElementById","trim","length","comboBoxFilled","noteFlag","comboBoxFlag","setProperty","readReasonOptions","_readReasonOptions","origin","instance","decisionKey","onSuccess","onError","sPath","oUrlParams","SAP__Origin","InstanceID","DecisionKey","fnSuccess","oData","results","fnError","oError","dataServiceModel","read","urlParameters","success","groupId","loadReasonOptions","_loadReasonOptions","_this","metaModel","getMetaModel","Promise","resolve","loaded","getODataFunctionImport","reject","reasonOptions","show","Required","Optional","openDecisionDialog","_openDecisionDialog","submitButtonEnabled","load","name","controller","confirmationDialogFragment","i18nModel","bundle","priorityText","addStyleClass","Priority","setModel","open","confirmActionHandler","_confirmActionHandler","getModel","getProperty","reasonOptionSelectedItem","reasonCode","getKey","note","showNote","handleCancel","_handleCancel","_bClosedViaButton","close","cancelActionHandler","refresh","handleAfterClose","_handleAfterClose","destroy","createODataRequest","_createODataRequest","path","urlParams","settings","data","response","info","getText","details","parameters","responseText","fireRequestFailed","create","sendAction","_sendAction","importName","decision","reasonOptionCode","Comments","ReasonCode","setBusy","JSON","parse","value","showDecisionDialog","_showDecisionDialog","_this2","TaskTitle","title","decisionDialogSettings","CommentMandatory","question","badgeIcon","badgeValueState","confirmButtonLabel","showFeedbackMessage","textAreaLabel","reasonOptionKey","_temp","metadataLoaded","reasonOptionsLoadedPromise","noneText","unshift","Name","Code","dialogUtils","getTaskActions","multiSelectDecisionResults","actions","displayedTypes","Set","multiSelectDecisionOptions","TaskDefinitionID","has","push","add","action"],"sources":["DecisionDialog.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport ComboBox from \"sap/m/ComboBox\";\nimport Dialog from \"sap/m/Dialog\";\nimport MessageBox from \"sap/m/MessageBox\";\nimport Text from \"sap/m/Text\";\nimport TextArea from \"sap/m/TextArea\";\nimport { ButtonType } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport Control from \"sap/ui/core/Control\";\nimport Element from \"sap/ui/core/Element\";\nimport Fragment from \"sap/ui/core/Fragment\";\nimport { ValueState } from \"sap/ui/core/library\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport ODataModel from \"sap/ui/model/odata/v2/ODataModel\";\nimport ResourceModel from \"sap/ui/model/resource/ResourceModel\";\nimport { Task } from \"../TaskPanel\";\nimport { Response } from \"../ToDoPanel\";\nimport { toTaskPriorityText } from \"./DataFormatUtils\";\nimport { TaskPriority } from \"./TaskUtils\";\n\nenum ReasonRequired {\n\tRequired = \"REQUIRED\",\n\tOptional = \"OPTIONAL\"\n}\n\nexport interface DecisionOption {\n\tSAP__Origin: string;\n\tInstanceID: string;\n\tNature: ButtonType;\n\tDecisionKey: string;\n\tCommentMandatory: boolean;\n\tDecisionText: string;\n\tReasonRequired: ReasonRequired;\n}\n\ninterface ReasonOption {\n\t[key: string]: string;\n}\n\ninterface ReasonOptionSettings {\n\tshow: boolean;\n\trequired: boolean;\n\treasonOptions?: ReasonOption[];\n}\n\ninterface DecisionDialogSettings {\n\tbadgeIcon: string;\n\tbadgeValueState: string;\n\tshowNote: boolean;\n\tnoteMandatory: boolean;\n\tquestion: string;\n\ttitle: string;\n\tconfirmButtonLabel: string;\n\ttextAreaLabel: string;\n\tpriorityText: string;\n\tshowFeedbackMessage: boolean;\n\treasonOptionsSettings: ReasonOptionSettings;\n\tconfirmActionHandler: (note: string, reasonCode: string) => void;\n\tcancelActionHandler: () => void;\n}\n\ninterface IDecisionDialog extends Dialog {\n\t_bClosedViaButton: boolean;\n}\n\ninterface DialogSettings {\n\tdialogSettings: DecisionDialogSettings;\n\tsubmitButtonEnabled: boolean;\n}\n\ninterface ODataError {\n\tresponse: {\n\t\tbody: string;\n\t};\n\tresponseText: string;\n\terror: {\n\t\tmessage: {\n\t\t\tvalue: string;\n\t\t};\n\t};\n}\n\ninterface MultiSelectDecisionResult {\n\t[key: string]: DecisionOption[];\n}\n\nexport interface ActionButton {\n\ttype: ButtonType;\n\ttext: string;\n\tpressHandler: (refresh: Refresh) => Promise<void> | void;\n}\n\ninterface Refresh {\n\t(forceRefresh: boolean): void;\n}\n\nconst decideButtonNature = (decisionOption: DecisionOption): ButtonType => {\n\tswitch (decisionOption.Nature?.toUpperCase()) {\n\t\tcase \"POSITIVE\":\n\t\t\treturn ButtonType.Accept;\n\t\tcase \"NEGATIVE\":\n\t\t\treturn ButtonType.Reject;\n\t\tcase \"NEUTRAL\":\n\t\t\treturn ButtonType.Neutral;\n\t\tdefault:\n\t\t\treturn ButtonType.Default;\n\t}\n};\n\nconst getActionButton = (decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string): ActionButton => {\n\treturn {\n\t\ttext: decisionOption.DecisionText,\n\t\ttype: decideButtonNature(decisionOption) || ButtonType.Default,\n\t\tpressHandler: DecisionDialog.decisionDialogMethod.bind(null, decisionOption, i18nBundle, task, baseUrl)\n\t};\n};\n\n/**\n * Gets the icon frame badge based on the task priority.\n *\n * This method returns a specific badge string for tasks with high or very high priority.\n * For tasks with lower priorities, it returns an empty string.\n *\n * @param {TaskPriority} priority - The priority level of the task.\n * @returns {string} The badge string for high priority tasks, or an empty string for others.\n */\nexport function getIconFrameBadge(priority: TaskPriority): string {\n\tlet iconBadge = \"\";\n\tif (priority === TaskPriority.VERY_HIGH || priority === TaskPriority.HIGH) {\n\t\ticonBadge = \"sap-icon://high-priority\";\n\t}\n\n\treturn iconBadge;\n}\n\n/**\n * Converts a priority string to a Priority enum value.\n * If the priority string is not recognized, it returns the default value \"None\".\n *\n * @param {TaskPriority} priority - The priority string to convert.\n * @returns {ValueState} The corresponding Priority enum value.\n */\nexport function getIconFrameBadgeValueState(priority: TaskPriority): ValueState {\n\treturn priority === TaskPriority.VERY_HIGH || priority === TaskPriority.HIGH ? ValueState.Error : ValueState.None;\n}\n\n/**\n *\n * Helper class for Decision Dialog handling.\n *\n * @extends BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.utils.DecisionDialog\n */\nexport default class DecisionDialog extends BaseObject {\n\tprivate decisionOption: DecisionOption;\n\tprivate i18nBundle: ResourceBundle;\n\tprivate refreshView: Refresh;\n\tprivate task: Task;\n\tprivate confirmationDialogPromise!: Promise<IDecisionDialog>;\n\tprivate confirmationDialogModel!: JSONModel;\n\tprivate dataServiceModel!: ODataModel;\n\tprivate baseUrl: string;\n\n\tconstructor(decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string, refreshView: Refresh) {\n\t\tsuper();\n\t\tthis.decisionOption = decisionOption;\n\t\tthis.i18nBundle = i18nBundle;\n\t\tthis.baseUrl = baseUrl;\n\t\tthis.refreshView = refreshView;\n\t\tthis.task = task;\n\t}\n\n\t/**\n\t * Handles the change event of the reason option ComboBox.\n\t *\n\t * @private\n\t * @param {Event} event - The event object.\n\t * @returns {void}\n\t */\n\tpublic handleReasonOptionChange(event: Event): void {\n\t\tconst comboBox = event.getSource<ComboBox>();\n\t\tconst comboBoxValue = comboBox.getValue();\n\t\tconst selectedItem = comboBox.getSelectedItem();\n\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst comboBoxRequired = (this.confirmationDialogModel.getData() as DialogSettings).dialogSettings.reasonOptionsSettings\n\t\t\t\t\t.required;\n\t\t\t\t// Set the tooltip useful when the currently selected item's text is truncated\n\t\t\t\tcomboBox.setTooltip(comboBoxValue);\n\t\t\t\tcomboBox.setValueState(selectedItem === null ? ValueState.Error : ValueState.None);\n\n\t\t\t\t// Special case where if reason options is optional and all\n\t\t\t\t// the text is deleted value state should be none (corner case)\n\t\t\t\tif (!comboBoxRequired && comboBoxValue === \"\") {\n\t\t\t\t\tcomboBox.setValueState(ValueState.None);\n\t\t\t\t}\n\n\t\t\t\t// Special case where if value in combo box gets partially deleted by the user\n\t\t\t\t// there is no selection yet button is not disabled\n\t\t\t\tif (!comboBoxRequired && comboBoxValue !== \"\" && selectedItem === null) {\n\t\t\t\t\tconfirmationDialog.getBeginButton().setEnabled(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Update the submit button state (disabled / enabled)\n\t\t\t\tthis._toggleSubmitButtonState();\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Toggles the state of the submit button based on the dialog settings.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic _toggleSubmitButtonState(): void {\n\t\tconst dialogData = this.confirmationDialogModel.getData() as DialogSettings;\n\t\tconst noteRequired = dialogData.dialogSettings.noteMandatory;\n\n\t\tconst noteFilled = (Element.getElementById(\"confirmDialogTextarea\") as TextArea).getValue().trim().length > 0;\n\t\tconst comboBoxRequired = dialogData.dialogSettings.reasonOptionsSettings.required;\n\n\t\tconst comboBoxFilled = (Element.getElementById(\"reasonOptionsSelect\") as ComboBox).getSelectedItem() !== null;\n\t\tconst noteFlag = (noteRequired && noteFilled) || !noteRequired;\n\t\tconst comboBoxFlag = (comboBoxRequired && comboBoxFilled) || !comboBoxRequired;\n\n\t\tthis.confirmationDialogModel.setProperty(\"/submitButtonEnabled\", noteFlag && comboBoxFlag);\n\t}\n\n\t/**\n\t * Reads reason options from the backend.\n\t *\n\t * @private\n\t * @param {string} origin - The SAP origin.\n\t * @param {string} instance - The instance ID.\n\t * @param {string} decisionKey - The decision key.\n\t * @param {Function} onSuccess - The success callback function.\n\t * @param {Function} onError - The error callback function.\n\t * @returns {void}\n\t */\n\tprivate readReasonOptions(\n\t\torigin: string,\n\t\tinstance: string,\n\t\tdecisionKey: string,\n\t\tonSuccess: (arg: ReasonOption[]) => void,\n\t\tonError: (arg: unknown) => void\n\t): void {\n\t\tconst sPath = \"/ReasonOptions\";\n\t\tconst oUrlParams = {\n\t\t\tSAP__Origin: `'${origin}'`,\n\t\t\tInstanceID: `'${instance}'`,\n\t\t\tDecisionKey: `'${decisionKey}'`\n\t\t};\n\t\tconst fnSuccess = (oData: Response) => {\n\t\t\tif (oData && oData.results) {\n\t\t\t\tif (onSuccess) {\n\t\t\t\t\tonSuccess(oData.results as ReasonOption[]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tconst fnError = (oError: unknown) => {\n\t\t\tif (onError) {\n\t\t\t\tonError(oError);\n\t\t\t}\n\t\t};\n\n\t\tthis.dataServiceModel.read(sPath, {\n\t\t\turlParameters: oUrlParams,\n\t\t\tsuccess: fnSuccess,\n\t\t\terror: fnError,\n\t\t\tgroupId: \"reasonOptions\"\n\t\t});\n\t}\n\n\t/**\n\t * Load the reason options which are part of this decision option.\n\t *\n\t * @private\n\t * @returns {Promise<ReasonOptionSettings | null>} - containing resolved array of reason options\n\t */\n\tprivate async loadReasonOptions(): Promise<ReasonOptionSettings | null> {\n\t\tconst metaModel = this.dataServiceModel.getMetaModel();\n\t\tawait metaModel.loaded();\n\n\t\tif (metaModel.getODataFunctionImport(\"ReasonOptions\")) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.readReasonOptions(\n\t\t\t\t\tthis.decisionOption.SAP__Origin,\n\t\t\t\t\tthis.decisionOption.InstanceID,\n\t\t\t\t\tthis.decisionOption.DecisionKey,\n\t\t\t\t\t(reasonOptions: ReasonOption[]) => {\n\t\t\t\t\t\tconst reasonOptionsSettings = {\n\t\t\t\t\t\t\tshow:\n\t\t\t\t\t\t\t\t(this.decisionOption.ReasonRequired === ReasonRequired.Required ||\n\t\t\t\t\t\t\t\t\tthis.decisionOption.ReasonRequired === ReasonRequired.Optional) &&\n\t\t\t\t\t\t\t\treasonOptions.length > 0,\n\t\t\t\t\t\t\trequired: this.decisionOption.ReasonRequired === ReasonRequired.Required,\n\t\t\t\t\t\t\treasonOptions: reasonOptions\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tresolve(reasonOptionsSettings);\n\t\t\t\t\t},\n\t\t\t\t\t(oError) => {\n\t\t\t\t\t\treject(oError as Error);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Open the decision dialog for the inbox task selected.\n\t *\n\t * @private\n\t * @param {DecisionDialogSettings} dialogSettings - contains the settings for the decision dialog\n\t */\n\tprivate openDecisionDialog(dialogSettings: DecisionDialogSettings) {\n\t\tthis.confirmationDialogModel = new JSONModel({\n\t\t\tsubmitButtonEnabled: !dialogSettings?.noteMandatory && !dialogSettings?.reasonOptionsSettings?.required,\n\t\t\tdialogSettings\n\t\t});\n\n\t\tthis.confirmationDialogPromise = Fragment.load({\n\t\t\ttype: \"XML\",\n\t\t\tname: \"sap.cux.home.utils.fragment.showDecisionDialog\",\n\t\t\tcontroller: this\n\t\t})\n\t\t\t.then((confirmationDialogFragment: Control | Control[]) => {\n\t\t\t\tconst confirmationDialog = confirmationDialogFragment as IDecisionDialog;\n\t\t\t\tconst i18nModel = new ResourceModel({ bundle: this.i18nBundle });\n\t\t\t\tconst priorityText = Element.getElementById(\"task-priority-text\") as Text;\n\t\t\t\tpriorityText.addStyleClass(this.task.Priority);\n\n\t\t\t\tconfirmationDialog.setModel(this.confirmationDialogModel);\n\t\t\t\tconfirmationDialog.setModel(i18nModel, \"i18n\");\n\t\t\t\tconfirmationDialog.open();\n\t\t\t\treturn confirmationDialog;\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t}) as Promise<IDecisionDialog>;\n\t}\n\n\t/**\n\t * Submit handler for the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic confirmActionHandler(): void {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\tconst reasonOptionsSettings = dialogSettings.reasonOptionsSettings;\n\n\t\t\t\t// Get the reason option value from the combo box\n\t\t\t\tconst reasonOptionSelectedItem = reasonOptionsSettings.show\n\t\t\t\t\t? (Element.getElementById(\"reasonOptionsSelect\") as ComboBox)?.getSelectedItem()\n\t\t\t\t\t: null;\n\t\t\t\tconst reasonCode = (\n\t\t\t\t\treasonOptionSelectedItem !== null && reasonOptionSelectedItem?.getKey() !== \"defaultSelectedKey\"\n\t\t\t\t\t\t? reasonOptionSelectedItem.getKey()\n\t\t\t\t\t\t: null\n\t\t\t\t) as string;\n\n\t\t\t\t// Get the note value from the text area\n\t\t\t\tconst note = (\n\t\t\t\t\tdialogSettings.showNote ? (Element.getElementById(\"confirmDialogTextarea\") as TextArea)?.getValue() : null\n\t\t\t\t) as string;\n\t\t\t\tdialogSettings.confirmActionHandler(note, reasonCode);\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Handler for cancel action in the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic handleCancel() {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\tconfirmationDialog._bClosedViaButton = true;\n\t\t\t\tconfirmationDialog.close();\n\t\t\t\tdialogSettings.cancelActionHandler();\n\n\t\t\t\tif (this.confirmationDialogModel.getProperty(\"/dialogSettings/showFeedbackMessage\")) {\n\t\t\t\t\tthis.dataServiceModel.refresh();\n\t\t\t\t\tthis.refreshView(true);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * After close dialog handler in the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic handleAfterClose() {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tif (confirmationDialog._bClosedViaButton) {\n\t\t\t\t\t// dialog is closed via button\n\t\t\t\t\tconfirmationDialog._bClosedViaButton = false;\n\t\t\t\t} else {\n\t\t\t\t\t// dialog is closed by other means (e.g. pressing Escape)\n\t\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\t\tdialogSettings.cancelActionHandler();\n\t\t\t\t}\n\t\t\t\tconfirmationDialog.destroy();\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Creates an OData request with the specified parameters.\n\t *\n\t * @private\n\t * @param {string} path - The path of the OData request.\n\t * @param {Record<string, string>} urlParams - The URL parameters of the request.\n\t * @param {Function} fnSuccess - The success callback function.\n\t * @param {Function} fnError - The error callback function.\n\t * @returns {void}\n\t */\n\tprivate createODataRequest(\n\t\tpath: string,\n\t\turlParams: Record<string, string>,\n\t\tfnSuccess: (data: unknown, response: unknown) => void,\n\t\tfnError: (error: ODataError) => void\n\t): void {\n\t\tconst settings = {\n\t\t\tsuccess: (data: unknown, response: unknown) => {\n\t\t\t\tLog.info(\"successful action\");\n\t\t\t\tfnSuccess?.(data, response);\n\t\t\t},\n\t\t\terror: (error: ODataError) => {\n\t\t\t\tconst message = this.i18nBundle.getText(\"DataManager.HTTPRequestFailed\");\n\t\t\t\tconst details = error.response ? error.response.body : null;\n\t\t\t\tconst parameters = {\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tresponseText: details as string\n\t\t\t\t};\n\t\t\t\tthis.dataServiceModel.fireRequestFailed(parameters);\n\t\t\t\tfnError(error);\n\t\t\t},\n\t\t\turlParameters: urlParams\n\t\t};\n\n\t\tthis.dataServiceModel.create(path, {}, settings);\n\t}\n\n\t/**\n\t * Sends an action to the backend.\n\t *\n\t * @private\n\t * @param {string} importName - The name of the function import or action.\n\t * @param {DecisionOption} decision - The decision option.\n\t * @param {string} note - The note to be included with the action.\n\t * @param {string} reasonOptionCode - The reason option code.\n\t * @param {Task} task - The task associated with the action.\n\t * @returns {void}\n\t */\n\tprivate sendAction(importName: string, decision: DecisionOption, note: string, reasonOptionCode: string, task: Task): void {\n\t\tconst urlParams: Record<string, string> = {\n\t\t\tSAP__Origin: `'${task.SAP__Origin}'`,\n\t\t\tInstanceID: `'${task.InstanceID}'`\n\t\t};\n\n\t\tif (decision.DecisionKey) {\n\t\t\turlParams.DecisionKey = `'${decision.DecisionKey}'`;\n\t\t}\n\n\t\tif (note?.length > 0) {\n\t\t\turlParams.Comments = `'${note}'`;\n\t\t}\n\n\t\tif (reasonOptionCode) {\n\t\t\turlParams.ReasonCode = `'${reasonOptionCode}'`;\n\t\t}\n\n\t\tconst onSuccess = () => {\n\t\t\tthis.confirmationDialogPromise\n\t\t\t\t.then((confirmationDialog) => {\n\t\t\t\t\tconfirmationDialog.setBusy(false);\n\t\t\t\t\tthis.confirmationDialogModel.setProperty(\"/dialogSettings/showFeedbackMessage\", true);\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t\t});\n\t\t};\n\n\t\tconst onError = (error: ODataError) => {\n\t\t\tif (error.responseText) {\n\t\t\t\tconst oError = JSON.parse(error.responseText) as ODataError;\n\t\t\t\tMessageBox.error(oError?.error?.message?.value);\n\t\t\t}\n\t\t\tthis.handleCancel();\n\t\t};\n\n\t\tthis.createODataRequest(`/${importName}`, urlParams, onSuccess, onError);\n\t}\n\n\t/**\n\t * Shows the decision dialog.\n\t *\n\t * @private\n\t * @returns {Promise<void>}\n\t */\n\tprivate async showDecisionDialog(): Promise<void> {\n\t\tthis.dataServiceModel = this.dataServiceModel || new ODataModel(this.baseUrl);\n\t\tconst { TaskTitle: title, Priority } = this.task;\n\t\tconst decisionDialogSettings: DecisionDialogSettings = {\n\t\t\tnoteMandatory: this.decisionOption.CommentMandatory,\n\t\t\tquestion: this.i18nBundle.getText(\"XMSG_DECISION_QUESTION\", [this.decisionOption.DecisionText]) as string,\n\t\t\ttitle,\n\t\t\tbadgeIcon: getIconFrameBadge(Priority),\n\t\t\tbadgeValueState: getIconFrameBadgeValueState(Priority),\n\t\t\tpriorityText: this.i18nBundle.getText(toTaskPriorityText(Priority)) as string,\n\t\t\tconfirmButtonLabel: this.i18nBundle.getText(\"XBUT_SUBMIT\") as string,\n\t\t\tshowNote: true,\n\t\t\tshowFeedbackMessage: false,\n\t\t\treasonOptionsSettings: {\n\t\t\t\tshow: false,\n\t\t\t\trequired: false\n\t\t\t},\n\t\t\ttextAreaLabel: this.i18nBundle.getText(\"XFLD_TextArea_Decision\") as string,\n\t\t\tconfirmActionHandler: (note, reasonOptionKey) => {\n\t\t\t\tthis.sendAction(\"Decision\", this.decisionOption, note, reasonOptionKey, this.task);\n\t\t\t},\n\t\t\tcancelActionHandler: () => {}\n\t\t};\n\n\t\ttry {\n\t\t\tawait this.dataServiceModel.metadataLoaded();\n\t\t\tconst reasonOptionsLoadedPromise =\n\t\t\t\tthis.decisionOption?.ReasonRequired === ReasonRequired.Required ||\n\t\t\t\tthis.decisionOption?.ReasonRequired === ReasonRequired.Optional\n\t\t\t\t\t? this.loadReasonOptions()\n\t\t\t\t\t: null;\n\n\t\t\t// reason options won't be loaded\n\t\t\tif (!reasonOptionsLoadedPromise) {\n\t\t\t\tthis.openDecisionDialog(decisionDialogSettings);\n\t\t\t} else {\n\t\t\t\t// based on reasonOptionsLoadedPromise, reason options will be loaded\n\t\t\t\treasonOptionsLoadedPromise\n\t\t\t\t\t.then((reasonOptionsSettings: ReasonOptionSettings | null) => {\n\t\t\t\t\t\tif (reasonOptionsSettings !== null) {\n\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings = reasonOptionsSettings;\n\n\t\t\t\t\t\t\t// In case of optional reason option combo box, a (None) option is created as to have a default selection\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings?.reasonOptions &&\n\t\t\t\t\t\t\t\t!decisionDialogSettings.reasonOptionsSettings?.required\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst noneText = `(${this.i18nBundle.getText(\"XSEL_DECISION_REASON_NONE_OPTION\")})`;\n\t\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings.reasonOptions.unshift({\n\t\t\t\t\t\t\t\t\tName: noneText,\n\t\t\t\t\t\t\t\t\tCode: \"defaultSelectedKey\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.openDecisionDialog(decisionDialogSettings);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tLog.error(\"Could not load the reason options properly\");\n\t\t\t\t\t});\n\t\t\t}\n\t\t} catch {\n\t\t\tLog.error(\"Could not load metadata model for inbox\");\n\t\t}\n\t}\n\n\t/**\n\t * Initiates the decisionDialog\n\t *\n\t * @static\n\t * @param {DecisionOption} decisionOption - Decision Option\n\t * @param {ResourceModel} i18nBundle - The resource bundle for internationalization.\n\t * @param {Task} task - Task Instance\n\t * @param {Refresh} refresh - Refresh function\n\t */\n\tstatic decisionDialogMethod(decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string, refresh: Refresh) {\n\t\tconst dialogUtils = new DecisionDialog(decisionOption, i18nBundle, task, baseUrl, refresh);\n\t\treturn dialogUtils.showDecisionDialog();\n\t}\n\n\t/**\n\t * Retrieves task actions based on the task and multi-select decision results.\n\t *\n\t * @static\n\t * @param {Task} task - The task for which actions are retrieved.\n\t * @param {string} baseUrl - The base URL.\n\t * @param {MultiSelectDecisionResult} multiSelectDecisionResults - The multi-select decision results.\n\t * @param {ResourceBundle} i18nBundle - The resource bundle for internationalization.\n\t * @returns {ActionButton[]} An array of action buttons.\n\t */\n\tstatic getTaskActions(\n\t\ttask: Task,\n\t\tbaseUrl: string,\n\t\tmultiSelectDecisionResults: MultiSelectDecisionResult,\n\t\ti18nBundle: ResourceBundle\n\t): ActionButton[] {\n\t\tconst actions: ActionButton[] = [];\n\t\tconst displayedTypes = new Set<string>();\n\t\tconst multiSelectDecisionOptions = multiSelectDecisionResults[task.SAP__Origin + task.TaskDefinitionID];\n\n\t\tif (multiSelectDecisionOptions) {\n\t\t\tfor (const decisionOption of multiSelectDecisionOptions) {\n\t\t\t\tif (!displayedTypes.has(decisionOption.Nature) || !decisionOption.Nature) {\n\t\t\t\t\tactions.push(getActionButton(decisionOption, i18nBundle, task, baseUrl));\n\t\t\t\t\tdisplayedTypes.add(decisionOption.Nature);\n\t\t\t\t} else {\n\t\t\t\t\tconst action = getActionButton(decisionOption, i18nBundle, task, baseUrl);\n\t\t\t\t\taction.type = ButtonType.Default;\n\t\t\t\t\tactions.push(action);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DecisionDialog.js","names":["sap","ui","define","Log","MessageBox","sap_m_library","BaseObject","Element","Fragment","sap_ui_core_library","JSONModel","ODataModel","ResourceModel","___DataFormatUtils","___TaskUtils","_catch","body","recover","result","e","then","ButtonType","ValueState","toTaskPriorityText","TaskPriority","ReasonRequired","decideButtonNature","decisionOption","Nature","toUpperCase","Accept","Reject","Neutral","Default","getActionButton","i18nBundle","task","baseUrl","text","DecisionText","type","pressHandler","DecisionDialog","decisionDialogMethod","bind","getIconFrameBadge","priority","iconBadge","VERY_HIGH","HIGH","getIconFrameBadgeValueState","Error","None","extend","constructor","_constructor","refreshView","BaseObject.prototype.constructor.call","handleReasonOptionChange","_handleReasonOptionChange","event","comboBox","getSource","comboBoxValue","getValue","selectedItem","getSelectedItem","confirmationDialogPromise","confirmationDialog","comboBoxRequired","confirmationDialogModel","getData","dialogSettings","reasonOptionsSettings","required","setTooltip","setValueState","getBeginButton","setEnabled","_toggleSubmitButtonState","catch","error","message","String","dialogData","noteRequired","noteMandatory","noteFilled","getElementById","trim","length","comboBoxFilled","noteFlag","comboBoxFlag","setProperty","readReasonOptions","_readReasonOptions","origin","instance","decisionKey","onSuccess","onError","sPath","oUrlParams","SAP__Origin","InstanceID","DecisionKey","fnSuccess","oData","results","fnError","oError","dataServiceModel","read","urlParameters","success","groupId","loadReasonOptions","_loadReasonOptions","_this","metaModel","getMetaModel","Promise","resolve","loaded","getODataFunctionImport","reject","reasonOptions","show","Required","Optional","openDecisionDialog","_openDecisionDialog","submitButtonEnabled","load","name","controller","confirmationDialogFragment","i18nModel","bundle","priorityText","addStyleClass","Priority","setModel","open","confirmActionHandler","_confirmActionHandler","getModel","getProperty","reasonOptionSelectedItem","reasonCode","getKey","note","showNote","handleCancel","_handleCancel","_bClosedViaButton","close","cancelActionHandler","refresh","handleAfterClose","_handleAfterClose","destroy","createODataRequest","_createODataRequest","path","urlParams","settings","data","response","info","getText","details","parameters","responseText","fireRequestFailed","create","sendAction","_sendAction","importName","decision","reasonOptionCode","Comments","ReasonCode","setBusy","JSON","parse","value","showDecisionDialog","_showDecisionDialog","_this2","TaskTitle","title","decisionDialogSettings","CommentMandatory","question","badgeIcon","badgeValueState","confirmButtonLabel","showFeedbackMessage","textAreaLabel","reasonOptionKey","_temp","metadataLoaded","reasonOptionsLoadedPromise","noneText","unshift","Name","Code","dialogUtils","getTaskActions","multiSelectDecisionResults","actions","displayedTypes","Set","multiSelectDecisionOptions","TaskDefinitionID","has","push","add","action"],"sources":["DecisionDialog.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Log from \"sap/base/Log\";\nimport ResourceBundle from \"sap/base/i18n/ResourceBundle\";\nimport ComboBox from \"sap/m/ComboBox\";\nimport Dialog from \"sap/m/Dialog\";\nimport MessageBox from \"sap/m/MessageBox\";\nimport Text from \"sap/m/Text\";\nimport TextArea from \"sap/m/TextArea\";\nimport { ButtonType } from \"sap/m/library\";\nimport Event from \"sap/ui/base/Event\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport Control from \"sap/ui/core/Control\";\nimport Element from \"sap/ui/core/Element\";\nimport Fragment from \"sap/ui/core/Fragment\";\nimport { ValueState } from \"sap/ui/core/library\";\nimport JSONModel from \"sap/ui/model/json/JSONModel\";\nimport ODataModel from \"sap/ui/model/odata/v2/ODataModel\";\nimport ResourceModel from \"sap/ui/model/resource/ResourceModel\";\nimport { Task } from \"../TaskPanel\";\nimport { Response } from \"../ToDoPanel\";\nimport { toTaskPriorityText } from \"./DataFormatUtils\";\nimport { TaskPriority } from \"./TaskUtils\";\n\nenum ReasonRequired {\n\tRequired = \"REQUIRED\",\n\tOptional = \"OPTIONAL\"\n}\n\nexport interface DecisionOption {\n\tSAP__Origin: string;\n\tInstanceID: string;\n\tNature: ButtonType;\n\tDecisionKey: string;\n\tCommentMandatory: boolean;\n\tDecisionText: string;\n\tReasonRequired: ReasonRequired;\n}\n\ninterface ReasonOption {\n\t[key: string]: string;\n}\n\ninterface ReasonOptionSettings {\n\tshow: boolean;\n\trequired: boolean;\n\treasonOptions?: ReasonOption[];\n}\n\ninterface DecisionDialogSettings {\n\tbadgeIcon: string;\n\tbadgeValueState: string;\n\tshowNote: boolean;\n\tnoteMandatory: boolean;\n\tquestion: string;\n\ttitle: string;\n\tconfirmButtonLabel: string;\n\ttextAreaLabel: string;\n\tpriorityText: string;\n\tshowFeedbackMessage: boolean;\n\treasonOptionsSettings: ReasonOptionSettings;\n\tconfirmActionHandler: (note: string, reasonCode: string) => void;\n\tcancelActionHandler: () => void;\n}\n\ninterface IDecisionDialog extends Dialog {\n\t_bClosedViaButton: boolean;\n}\n\ninterface DialogSettings {\n\tdialogSettings: DecisionDialogSettings;\n\tsubmitButtonEnabled: boolean;\n}\n\ninterface ODataError {\n\tresponse: {\n\t\tbody: string;\n\t};\n\tresponseText: string;\n\terror: {\n\t\tmessage: {\n\t\t\tvalue: string;\n\t\t};\n\t};\n}\n\ninterface MultiSelectDecisionResult {\n\t[key: string]: DecisionOption[];\n}\n\nexport interface ActionButton {\n\ttype: ButtonType;\n\ttext: string;\n\tpressHandler: (refresh: Refresh) => Promise<void> | void;\n}\n\ninterface Refresh {\n\t(forceRefresh: boolean): void;\n}\n\nconst decideButtonNature = (decisionOption: DecisionOption): ButtonType => {\n\tswitch (decisionOption.Nature?.toUpperCase()) {\n\t\tcase \"POSITIVE\":\n\t\t\treturn ButtonType.Accept;\n\t\tcase \"NEGATIVE\":\n\t\t\treturn ButtonType.Reject;\n\t\tcase \"NEUTRAL\":\n\t\t\treturn ButtonType.Neutral;\n\t\tdefault:\n\t\t\treturn ButtonType.Default;\n\t}\n};\n\nconst getActionButton = (decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string): ActionButton => {\n\treturn {\n\t\ttext: decisionOption.DecisionText,\n\t\ttype: decideButtonNature(decisionOption) || ButtonType.Default,\n\t\tpressHandler: DecisionDialog.decisionDialogMethod.bind(null, decisionOption, i18nBundle, task, baseUrl)\n\t};\n};\n\n/**\n * Gets the icon frame badge based on the task priority.\n *\n * This method returns a specific badge string for tasks with high or very high priority.\n * For tasks with lower priorities, it returns an empty string.\n *\n * @param {TaskPriority} priority - The priority level of the task.\n * @returns {string} The badge string for high priority tasks, or an empty string for others.\n */\nexport function getIconFrameBadge(priority: TaskPriority): string {\n\tlet iconBadge = \"\";\n\tif (priority === TaskPriority.VERY_HIGH || priority === TaskPriority.HIGH) {\n\t\ticonBadge = \"sap-icon://high-priority\";\n\t}\n\n\treturn iconBadge;\n}\n\n/**\n * Converts a priority string to a Priority enum value.\n * If the priority string is not recognized, it returns the default value \"None\".\n *\n * @param {TaskPriority} priority - The priority string to convert.\n * @returns {ValueState} The corresponding Priority enum value.\n */\nexport function getIconFrameBadgeValueState(priority: TaskPriority): ValueState {\n\treturn priority === TaskPriority.VERY_HIGH || priority === TaskPriority.HIGH ? ValueState.Error : ValueState.None;\n}\n\n/**\n *\n * Helper class for Decision Dialog handling.\n *\n * @extends BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121\n * @private\n *\n * @alias sap.cux.home.utils.DecisionDialog\n */\nexport default class DecisionDialog extends BaseObject {\n\tprivate decisionOption: DecisionOption;\n\tprivate i18nBundle: ResourceBundle;\n\tprivate refreshView: Refresh;\n\tprivate task: Task;\n\tprivate confirmationDialogPromise!: Promise<IDecisionDialog>;\n\tprivate confirmationDialogModel!: JSONModel;\n\tprivate dataServiceModel!: ODataModel;\n\tprivate baseUrl: string;\n\n\tconstructor(decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string, refreshView: Refresh) {\n\t\tsuper();\n\t\tthis.decisionOption = decisionOption;\n\t\tthis.i18nBundle = i18nBundle;\n\t\tthis.baseUrl = baseUrl;\n\t\tthis.refreshView = refreshView;\n\t\tthis.task = task;\n\t}\n\n\t/**\n\t * Handles the change event of the reason option ComboBox.\n\t *\n\t * @private\n\t * @param {Event} event - The event object.\n\t * @returns {void}\n\t */\n\tpublic handleReasonOptionChange(event: Event): void {\n\t\tconst comboBox = event.getSource<ComboBox>();\n\t\tconst comboBoxValue = comboBox.getValue();\n\t\tconst selectedItem = comboBox.getSelectedItem();\n\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst comboBoxRequired = (this.confirmationDialogModel.getData() as DialogSettings).dialogSettings.reasonOptionsSettings\n\t\t\t\t\t.required;\n\t\t\t\t// Set the tooltip useful when the currently selected item's text is truncated\n\t\t\t\tcomboBox.setTooltip(comboBoxValue);\n\t\t\t\tcomboBox.setValueState(selectedItem === null ? ValueState.Error : ValueState.None);\n\n\t\t\t\t// Special case where if reason options is optional and all\n\t\t\t\t// the text is deleted value state should be none (corner case)\n\t\t\t\tif (!comboBoxRequired && comboBoxValue === \"\") {\n\t\t\t\t\tcomboBox.setValueState(ValueState.None);\n\t\t\t\t}\n\n\t\t\t\t// Special case where if value in combo box gets partially deleted by the user\n\t\t\t\t// there is no selection yet button is not disabled\n\t\t\t\tif (!comboBoxRequired && comboBoxValue !== \"\" && selectedItem === null) {\n\t\t\t\t\tconfirmationDialog.getBeginButton().setEnabled(false);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Update the submit button state (disabled / enabled)\n\t\t\t\tthis._toggleSubmitButtonState();\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Toggles the state of the submit button based on the dialog settings.\n\t *\n\t * @private\n\t * @returns {void}\n\t */\n\tpublic _toggleSubmitButtonState(): void {\n\t\tconst dialogData = this.confirmationDialogModel.getData() as DialogSettings;\n\t\tconst noteRequired = dialogData.dialogSettings.noteMandatory;\n\n\t\tconst noteFilled = (Element.getElementById(\"confirmDialogTextarea\") as TextArea).getValue().trim().length > 0;\n\t\tconst comboBoxRequired = dialogData.dialogSettings.reasonOptionsSettings.required;\n\n\t\tconst comboBoxFilled = (Element.getElementById(\"reasonOptionsSelect\") as ComboBox).getSelectedItem() !== null;\n\t\tconst noteFlag = (noteRequired && noteFilled) || !noteRequired;\n\t\tconst comboBoxFlag = (comboBoxRequired && comboBoxFilled) || !comboBoxRequired;\n\n\t\tthis.confirmationDialogModel.setProperty(\"/submitButtonEnabled\", noteFlag && comboBoxFlag);\n\t}\n\n\t/**\n\t * Reads reason options from the backend.\n\t *\n\t * @private\n\t * @param {string} origin - The SAP origin.\n\t * @param {string} instance - The instance ID.\n\t * @param {string} decisionKey - The decision key.\n\t * @param {Function} onSuccess - The success callback function.\n\t * @param {Function} onError - The error callback function.\n\t * @returns {void}\n\t */\n\tprivate readReasonOptions(\n\t\torigin: string,\n\t\tinstance: string,\n\t\tdecisionKey: string,\n\t\tonSuccess: (arg: ReasonOption[]) => void,\n\t\tonError: (arg: unknown) => void\n\t): void {\n\t\tconst sPath = \"/ReasonOptions\";\n\t\tconst oUrlParams = {\n\t\t\tSAP__Origin: `'${origin}'`,\n\t\t\tInstanceID: `'${instance}'`,\n\t\t\tDecisionKey: `'${decisionKey}'`\n\t\t};\n\t\tconst fnSuccess = (oData: Response) => {\n\t\t\tif (oData && oData.results) {\n\t\t\t\tif (onSuccess) {\n\t\t\t\t\tonSuccess(oData.results as ReasonOption[]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tconst fnError = (oError: unknown) => {\n\t\t\tif (onError) {\n\t\t\t\tonError(oError);\n\t\t\t}\n\t\t};\n\n\t\tthis.dataServiceModel.read(sPath, {\n\t\t\turlParameters: oUrlParams,\n\t\t\tsuccess: fnSuccess,\n\t\t\terror: fnError,\n\t\t\tgroupId: \"reasonOptions\"\n\t\t});\n\t}\n\n\t/**\n\t * Load the reason options which are part of this decision option.\n\t *\n\t * @private\n\t * @returns {Promise<ReasonOptionSettings | null>} - containing resolved array of reason options\n\t */\n\tprivate async loadReasonOptions(): Promise<ReasonOptionSettings | null> {\n\t\tconst metaModel = this.dataServiceModel.getMetaModel();\n\t\tawait metaModel.loaded();\n\n\t\tif (metaModel.getODataFunctionImport(\"ReasonOptions\")) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tthis.readReasonOptions(\n\t\t\t\t\tthis.decisionOption.SAP__Origin,\n\t\t\t\t\tthis.decisionOption.InstanceID,\n\t\t\t\t\tthis.decisionOption.DecisionKey,\n\t\t\t\t\t(reasonOptions: ReasonOption[]) => {\n\t\t\t\t\t\tconst reasonOptionsSettings = {\n\t\t\t\t\t\t\tshow:\n\t\t\t\t\t\t\t\t(this.decisionOption.ReasonRequired === ReasonRequired.Required ||\n\t\t\t\t\t\t\t\t\tthis.decisionOption.ReasonRequired === ReasonRequired.Optional) &&\n\t\t\t\t\t\t\t\treasonOptions.length > 0,\n\t\t\t\t\t\t\trequired: this.decisionOption.ReasonRequired === ReasonRequired.Required,\n\t\t\t\t\t\t\treasonOptions: reasonOptions\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tresolve(reasonOptionsSettings);\n\t\t\t\t\t},\n\t\t\t\t\t(oError) => {\n\t\t\t\t\t\treject(oError as Error);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Open the decision dialog for the inbox task selected.\n\t *\n\t * @private\n\t * @param {DecisionDialogSettings} dialogSettings - contains the settings for the decision dialog\n\t */\n\tprivate openDecisionDialog(dialogSettings: DecisionDialogSettings) {\n\t\tthis.confirmationDialogModel = new JSONModel({\n\t\t\tsubmitButtonEnabled: !dialogSettings?.noteMandatory && !dialogSettings?.reasonOptionsSettings?.required,\n\t\t\tdialogSettings\n\t\t});\n\n\t\tthis.confirmationDialogPromise = Fragment.load({\n\t\t\ttype: \"XML\",\n\t\t\tname: \"sap.cux.home.utils.fragment.showDecisionDialog\",\n\t\t\tcontroller: this\n\t\t})\n\t\t\t.then((confirmationDialogFragment: Control | Control[]) => {\n\t\t\t\tconst confirmationDialog = confirmationDialogFragment as IDecisionDialog;\n\t\t\t\tconst i18nModel = new ResourceModel({ bundle: this.i18nBundle });\n\t\t\t\tconst priorityText = Element.getElementById(\"task-priority-text\") as Text;\n\t\t\t\tpriorityText.addStyleClass(this.task.Priority);\n\n\t\t\t\tconfirmationDialog.setModel(this.confirmationDialogModel);\n\t\t\t\tconfirmationDialog.setModel(i18nModel, \"i18n\");\n\t\t\t\tconfirmationDialog.open();\n\t\t\t\treturn confirmationDialog;\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t}) as Promise<IDecisionDialog>;\n\t}\n\n\t/**\n\t * Submit handler for the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic confirmActionHandler(): void {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\tconst reasonOptionsSettings = dialogSettings.reasonOptionsSettings;\n\n\t\t\t\t// Get the reason option value from the combo box\n\t\t\t\tconst reasonOptionSelectedItem = reasonOptionsSettings.show\n\t\t\t\t\t? (Element.getElementById(\"reasonOptionsSelect\") as ComboBox)?.getSelectedItem()\n\t\t\t\t\t: null;\n\t\t\t\tconst reasonCode = (\n\t\t\t\t\treasonOptionSelectedItem !== null && reasonOptionSelectedItem?.getKey() !== \"defaultSelectedKey\"\n\t\t\t\t\t\t? reasonOptionSelectedItem.getKey()\n\t\t\t\t\t\t: null\n\t\t\t\t) as string;\n\n\t\t\t\t// Get the note value from the text area\n\t\t\t\tconst note = (\n\t\t\t\t\tdialogSettings.showNote ? (Element.getElementById(\"confirmDialogTextarea\") as TextArea)?.getValue() : null\n\t\t\t\t) as string;\n\t\t\t\tdialogSettings.confirmActionHandler(note, reasonCode);\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Handler for cancel action in the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic handleCancel() {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\tconfirmationDialog._bClosedViaButton = true;\n\t\t\t\tconfirmationDialog.close();\n\t\t\t\tdialogSettings.cancelActionHandler();\n\n\t\t\t\tif (this.confirmationDialogModel.getProperty(\"/dialogSettings/showFeedbackMessage\")) {\n\t\t\t\t\tthis.dataServiceModel.refresh();\n\t\t\t\t\tthis.refreshView(true);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * After close dialog handler in the decision dialog\n\t *\n\t * @private\n\t */\n\tpublic handleAfterClose() {\n\t\tthis.confirmationDialogPromise\n\t\t\t.then((confirmationDialog) => {\n\t\t\t\tif (confirmationDialog._bClosedViaButton) {\n\t\t\t\t\t// dialog is closed via button\n\t\t\t\t\tconfirmationDialog._bClosedViaButton = false;\n\t\t\t\t} else {\n\t\t\t\t\t// dialog is closed by other means (e.g. pressing Escape)\n\t\t\t\t\tconst dialogSettings = (confirmationDialog.getModel()?.getProperty(\"/\") as DialogSettings).dialogSettings;\n\t\t\t\t\tdialogSettings.cancelActionHandler();\n\t\t\t\t}\n\t\t\t\tconfirmationDialog.destroy();\n\t\t\t})\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t});\n\t}\n\n\t/**\n\t * Creates an OData request with the specified parameters.\n\t *\n\t * @private\n\t * @param {string} path - The path of the OData request.\n\t * @param {Record<string, string>} urlParams - The URL parameters of the request.\n\t * @param {Function} fnSuccess - The success callback function.\n\t * @param {Function} fnError - The error callback function.\n\t * @returns {void}\n\t */\n\tprivate createODataRequest(\n\t\tpath: string,\n\t\turlParams: Record<string, string>,\n\t\tfnSuccess: (data: unknown, response: unknown) => void,\n\t\tfnError: (error: ODataError) => void\n\t): void {\n\t\tconst settings = {\n\t\t\tsuccess: (data: unknown, response: unknown) => {\n\t\t\t\tLog.info(\"successful action\");\n\t\t\t\tfnSuccess?.(data, response);\n\t\t\t},\n\t\t\terror: (error: ODataError) => {\n\t\t\t\tconst message = this.i18nBundle.getText(\"DataManager.HTTPRequestFailed\");\n\t\t\t\tconst details = error.response ? error.response.body : null;\n\t\t\t\tconst parameters = {\n\t\t\t\t\tmessage: message,\n\t\t\t\t\tresponseText: details as string\n\t\t\t\t};\n\t\t\t\tthis.dataServiceModel.fireRequestFailed(parameters);\n\t\t\t\tfnError(error);\n\t\t\t},\n\t\t\turlParameters: urlParams\n\t\t};\n\n\t\tthis.dataServiceModel.create(path, {}, settings);\n\t}\n\n\t/**\n\t * Sends an action to the backend.\n\t *\n\t * @private\n\t * @param {string} importName - The name of the function import or action.\n\t * @param {DecisionOption} decision - The decision option.\n\t * @param {string} note - The note to be included with the action.\n\t * @param {string} reasonOptionCode - The reason option code.\n\t * @param {Task} task - The task associated with the action.\n\t * @returns {void}\n\t */\n\tprivate sendAction(importName: string, decision: DecisionOption, note: string, reasonOptionCode: string, task: Task): void {\n\t\tconst urlParams: Record<string, string> = {\n\t\t\tSAP__Origin: `'${task.SAP__Origin}'`,\n\t\t\tInstanceID: `'${task.InstanceID}'`\n\t\t};\n\n\t\tif (decision.DecisionKey) {\n\t\t\turlParams.DecisionKey = `'${decision.DecisionKey}'`;\n\t\t}\n\n\t\tif (note?.length > 0) {\n\t\t\turlParams.Comments = `'${note}'`;\n\t\t}\n\n\t\tif (reasonOptionCode) {\n\t\t\turlParams.ReasonCode = `'${reasonOptionCode}'`;\n\t\t}\n\n\t\tconst onSuccess = () => {\n\t\t\tthis.confirmationDialogPromise\n\t\t\t\t.then((confirmationDialog) => {\n\t\t\t\t\tconfirmationDialog.setBusy(false);\n\t\t\t\t\tthis.confirmationDialogModel.setProperty(\"/dialogSettings/showFeedbackMessage\", true);\n\t\t\t\t})\n\t\t\t\t.catch((error: unknown) => {\n\t\t\t\t\tLog.error(error instanceof Error ? error.message : String(error));\n\t\t\t\t});\n\t\t};\n\n\t\tconst onError = (error: ODataError) => {\n\t\t\tif (error.responseText) {\n\t\t\t\tconst oError = JSON.parse(error.responseText) as ODataError;\n\t\t\t\tMessageBox.error(oError?.error?.message?.value);\n\t\t\t}\n\t\t\tthis.handleCancel();\n\t\t};\n\n\t\tthis.createODataRequest(`/${importName}`, urlParams, onSuccess, onError);\n\t}\n\n\t/**\n\t * Shows the decision dialog.\n\t *\n\t * @private\n\t * @returns {Promise<void>}\n\t */\n\tprivate async showDecisionDialog(): Promise<void> {\n\t\tthis.dataServiceModel = this.dataServiceModel || new ODataModel(this.baseUrl);\n\t\tconst { TaskTitle: title, Priority } = this.task;\n\t\tconst decisionDialogSettings: DecisionDialogSettings = {\n\t\t\tnoteMandatory: this.decisionOption.CommentMandatory,\n\t\t\tquestion: this.i18nBundle.getText(\"XMSG_DECISION_QUESTION\", [this.decisionOption.DecisionText]) as string,\n\t\t\ttitle,\n\t\t\tbadgeIcon: getIconFrameBadge(Priority),\n\t\t\tbadgeValueState: getIconFrameBadgeValueState(Priority),\n\t\t\tpriorityText: this.i18nBundle.getText(toTaskPriorityText(Priority)) as string,\n\t\t\tconfirmButtonLabel: this.i18nBundle.getText(\"XBUT_SUBMIT\") as string,\n\t\t\tshowNote: true,\n\t\t\tshowFeedbackMessage: false,\n\t\t\treasonOptionsSettings: {\n\t\t\t\tshow: false,\n\t\t\t\trequired: false\n\t\t\t},\n\t\t\ttextAreaLabel: this.i18nBundle.getText(\"XFLD_TextArea_Decision\") as string,\n\t\t\tconfirmActionHandler: (note, reasonOptionKey) => {\n\t\t\t\tthis.sendAction(\"Decision\", this.decisionOption, note, reasonOptionKey, this.task);\n\t\t\t},\n\t\t\tcancelActionHandler: () => {}\n\t\t};\n\n\t\ttry {\n\t\t\tawait this.dataServiceModel.metadataLoaded();\n\t\t\tconst reasonOptionsLoadedPromise =\n\t\t\t\tthis.decisionOption?.ReasonRequired === ReasonRequired.Required ||\n\t\t\t\tthis.decisionOption?.ReasonRequired === ReasonRequired.Optional\n\t\t\t\t\t? this.loadReasonOptions()\n\t\t\t\t\t: null;\n\n\t\t\t// reason options won't be loaded\n\t\t\tif (!reasonOptionsLoadedPromise) {\n\t\t\t\tthis.openDecisionDialog(decisionDialogSettings);\n\t\t\t} else {\n\t\t\t\t// based on reasonOptionsLoadedPromise, reason options will be loaded\n\t\t\t\treasonOptionsLoadedPromise\n\t\t\t\t\t.then((reasonOptionsSettings: ReasonOptionSettings | null) => {\n\t\t\t\t\t\tif (reasonOptionsSettings !== null) {\n\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings = reasonOptionsSettings;\n\n\t\t\t\t\t\t\t// In case of optional reason option combo box, a (None) option is created as to have a default selection\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings?.reasonOptions &&\n\t\t\t\t\t\t\t\t!decisionDialogSettings.reasonOptionsSettings?.required\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst noneText = `(${this.i18nBundle.getText(\"XSEL_DECISION_REASON_NONE_OPTION\")})`;\n\t\t\t\t\t\t\t\tdecisionDialogSettings.reasonOptionsSettings.reasonOptions.unshift({\n\t\t\t\t\t\t\t\t\tName: noneText,\n\t\t\t\t\t\t\t\t\tCode: \"defaultSelectedKey\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.openDecisionDialog(decisionDialogSettings);\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {\n\t\t\t\t\t\tLog.error(\"Could not load the reason options properly\");\n\t\t\t\t\t});\n\t\t\t}\n\t\t} catch {\n\t\t\tLog.error(\"Could not load metadata model for inbox\");\n\t\t}\n\t}\n\n\t/**\n\t * Initiates the decisionDialog\n\t *\n\t * @static\n\t * @param {DecisionOption} decisionOption - Decision Option\n\t * @param {ResourceModel} i18nBundle - The resource bundle for internationalization.\n\t * @param {Task} task - Task Instance\n\t * @param {Refresh} refresh - Refresh function\n\t */\n\tstatic decisionDialogMethod(decisionOption: DecisionOption, i18nBundle: ResourceBundle, task: Task, baseUrl: string, refresh: Refresh) {\n\t\tconst dialogUtils = new DecisionDialog(decisionOption, i18nBundle, task, baseUrl, refresh);\n\t\treturn dialogUtils.showDecisionDialog();\n\t}\n\n\t/**\n\t * Retrieves task actions based on the task and multi-select decision results.\n\t *\n\t * @static\n\t * @param {Task} task - The task for which actions are retrieved.\n\t * @param {string} baseUrl - The base URL.\n\t * @param {MultiSelectDecisionResult} multiSelectDecisionResults - The multi-select decision results.\n\t * @param {ResourceBundle} i18nBundle - The resource bundle for internationalization.\n\t * @returns {ActionButton[]} An array of action buttons.\n\t */\n\tstatic getTaskActions(\n\t\ttask: Task,\n\t\tbaseUrl: string,\n\t\tmultiSelectDecisionResults: MultiSelectDecisionResult,\n\t\ti18nBundle: ResourceBundle\n\t): ActionButton[] {\n\t\tconst actions: ActionButton[] = [];\n\t\tconst displayedTypes = new Set<string>();\n\t\tconst multiSelectDecisionOptions = multiSelectDecisionResults[task.SAP__Origin + task.TaskDefinitionID];\n\n\t\tif (multiSelectDecisionOptions) {\n\t\t\tfor (const decisionOption of multiSelectDecisionOptions) {\n\t\t\t\tif (!displayedTypes.has(decisionOption.Nature) || !decisionOption.Nature) {\n\t\t\t\t\tactions.push(getActionButton(decisionOption, i18nBundle, task, baseUrl));\n\t\t\t\t\tdisplayedTypes.add(decisionOption.Nature);\n\t\t\t\t} else {\n\t\t\t\t\tconst action = getActionButton(decisionOption, i18nBundle, task, baseUrl);\n\t\t\t\t\taction.type = ButtonType.Default;\n\t\t\t\t\tactions.push(action);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn actions;\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 Log from "sap/base/Log";
@@ -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/ui/Device"], function (Device) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"Device.js","names":["sap","ui","define","Device","DeviceWidth","Mobile","Tablet","Desktop","LargeDesktop","DeviceType","calculateDeviceType","width","resize","system","phone","XLargeDesktop","fetchElementProperties","domRef","properties","oProperties","forEach","property","parseFloat","window","getComputedStyle","getPropertyValue","calculateCardWidth","cardLayoutConfig","gap","skipDeviceCheck","peekWidth","totalCards","Math","max","minWidth","min","containerWidth","maxWidth","mainCardWidth","cardCountToUse","totalGap","twoCardWidth","possibleCardCount","cardWidth","__exports","__esModule"],"sources":["Device.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Device from \"sap/ui/Device\";\n\ninterface CardLayoutConfig {\n\tgap: number;\n\tcontainerWidth: number;\n\ttotalCards: number;\n\tminWidth: number;\n\tmaxWidth: number;\n\tskipDeviceCheck?: boolean;\n}\n\n/** Device widths in px */\nconst DeviceWidth = {\n\tMobile: 600,\n\tTablet: 1024,\n\tDesktop: 1135,\n\tLargeDesktop: 1920\n};\n\nexport enum DeviceType {\n\tMobile = \"Mobile\",\n\tTablet = \"Tablet\",\n\tDesktop = \"Desktop\",\n\tLargeDesktop = \"LargeDesktop\",\n\tXLargeDesktop = \"XLargeDesktop\"\n}\n\n/**\n * Calculates the device type based on the given width.\n *\n * @param {number} [width=Device.resize.width] - The width of the device. Defaults to the current device width.\n * @returns {DeviceType} - The calculated device type.\n */\nexport function calculateDeviceType(width: number = Device.resize.width): DeviceType {\n\tif (width < DeviceWidth.Mobile || Device.system.phone) {\n\t\treturn DeviceType.Mobile;\n\t} else if (width < DeviceWidth.Tablet) {\n\t\treturn DeviceType.Tablet;\n\t} else if (width < DeviceWidth.Desktop) {\n\t\treturn DeviceType.Desktop;\n\t} else if (width < DeviceWidth.LargeDesktop) {\n\t\treturn DeviceType.LargeDesktop;\n\t} else {\n\t\treturn DeviceType.XLargeDesktop;\n\t}\n}\n\n/**\n * Fetches the specified CSS properties of a given DOM element and returns them as a record.\n *\n * @param {Element} domRef - The DOM element from which to fetch the properties.\n * @param {string[]} properties - An array of property names to fetch.\n * @returns {Record<string, number>} - A record where the keys are property names and the values are the corresponding property values as numbers.\n */\nexport function fetchElementProperties(domRef: Element, properties: string[]): Record<string, number> {\n\tconst oProperties: Record<string, number> = {};\n\tproperties.forEach((property) => {\n\t\toProperties[property] = parseFloat(window.getComputedStyle(domRef).getPropertyValue(property));\n\t});\n\n\treturn oProperties;\n}\n\n/**\n * Calculates the card width based on the available width and certain constraints.\n *\n * @param {CardLayoutConfig} cardLayoutConfig - Card layout configuration containing container width, no. of cards, min and max width.\n * @returns {number} The calculated card width within specified constraints.\n */\nexport function calculateCardWidth(cardLayoutConfig: CardLayoutConfig): number {\n\tconst gap = cardLayoutConfig.gap;\n\n\tif (calculateDeviceType() === DeviceType.Mobile && !cardLayoutConfig.skipDeviceCheck) {\n\t\tconst peekWidth = 76;\n\t\tif (cardLayoutConfig.totalCards === 1) {\n\t\t\t// Single card: full width, constrained\n\t\t\treturn Math.max(cardLayoutConfig.minWidth, Math.min(cardLayoutConfig.containerWidth, cardLayoutConfig.maxWidth));\n\t\t} else {\n\t\t\t// Calculate width of the first card, reserving space for the peek of the second\n\t\t\tconst mainCardWidth = cardLayoutConfig.containerWidth - peekWidth;\n\t\t\t// Clamp to min/max width\n\t\t\treturn Math.max(cardLayoutConfig.minWidth, Math.min(mainCardWidth, cardLayoutConfig.maxWidth));\n\t\t}\n\t}\n\n\tlet cardCountToUse: number;\n\n\t// Tablet mode: width between 600 and 1023\n\tif (calculateDeviceType() === DeviceType.Tablet && cardLayoutConfig.totalCards > 1 && !cardLayoutConfig.skipDeviceCheck) {\n\t\tconst totalGap = gap; // gap between 2 cards\n\t\tconst twoCardWidth = (cardLayoutConfig.containerWidth - totalGap) / 2;\n\n\t\tif (twoCardWidth >= cardLayoutConfig.minWidth && twoCardWidth <= cardLayoutConfig.maxWidth) {\n\t\t\tcardCountToUse = 2;\n\t\t} else {\n\t\t\tcardCountToUse = 1;\n\t\t}\n\t} else {\n\t\t// Step 1: How many cards *can* fit based on minWidth\n\t\tlet possibleCardCount = 1;\n\t\twhile (cardLayoutConfig.containerWidth / possibleCardCount >= cardLayoutConfig.minWidth + gap) {\n\t\t\tpossibleCardCount++;\n\t\t}\n\t\tpossibleCardCount--; // Last valid value\n\t\t// Step 2: If we have fewer cards than we *can* fit, stretch them\n\t\tcardCountToUse = cardLayoutConfig.skipDeviceCheck\n\t\t\t? Math.min(possibleCardCount, cardLayoutConfig.totalCards)\n\t\t\t: Math.max(Math.min(possibleCardCount, cardLayoutConfig.totalCards), Math.min(cardLayoutConfig.totalCards, 3));\n\t}\n\tif (cardCountToUse <= 0) return cardLayoutConfig.minWidth;\n\tconst totalGap = (cardCountToUse - 1) * gap;\n\tconst cardWidth = (cardLayoutConfig.containerWidth - totalGap) / cardCountToUse;\n\treturn Math.min(Math.max(cardWidth, cardLayoutConfig.minWidth), cardLayoutConfig.maxWidth);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Device.js","names":["sap","ui","define","Device","DeviceWidth","Mobile","Tablet","Desktop","LargeDesktop","DeviceType","calculateDeviceType","width","resize","system","phone","XLargeDesktop","fetchElementProperties","domRef","properties","oProperties","forEach","property","parseFloat","window","getComputedStyle","getPropertyValue","calculateCardWidth","cardLayoutConfig","gap","skipDeviceCheck","peekWidth","totalCards","Math","max","minWidth","min","containerWidth","maxWidth","mainCardWidth","cardCountToUse","totalGap","twoCardWidth","possibleCardCount","cardWidth","__exports","__esModule"],"sources":["Device.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Device from \"sap/ui/Device\";\n\ninterface CardLayoutConfig {\n\tgap: number;\n\tcontainerWidth: number;\n\ttotalCards: number;\n\tminWidth: number;\n\tmaxWidth: number;\n\tskipDeviceCheck?: boolean;\n}\n\n/** Device widths in px */\nconst DeviceWidth = {\n\tMobile: 600,\n\tTablet: 1024,\n\tDesktop: 1135,\n\tLargeDesktop: 1920\n};\n\nexport enum DeviceType {\n\tMobile = \"Mobile\",\n\tTablet = \"Tablet\",\n\tDesktop = \"Desktop\",\n\tLargeDesktop = \"LargeDesktop\",\n\tXLargeDesktop = \"XLargeDesktop\"\n}\n\n/**\n * Calculates the device type based on the given width.\n *\n * @param {number} [width=Device.resize.width] - The width of the device. Defaults to the current device width.\n * @returns {DeviceType} - The calculated device type.\n */\nexport function calculateDeviceType(width: number = Device.resize.width): DeviceType {\n\tif (width < DeviceWidth.Mobile || Device.system.phone) {\n\t\treturn DeviceType.Mobile;\n\t} else if (width < DeviceWidth.Tablet) {\n\t\treturn DeviceType.Tablet;\n\t} else if (width < DeviceWidth.Desktop) {\n\t\treturn DeviceType.Desktop;\n\t} else if (width < DeviceWidth.LargeDesktop) {\n\t\treturn DeviceType.LargeDesktop;\n\t} else {\n\t\treturn DeviceType.XLargeDesktop;\n\t}\n}\n\n/**\n * Fetches the specified CSS properties of a given DOM element and returns them as a record.\n *\n * @param {Element} domRef - The DOM element from which to fetch the properties.\n * @param {string[]} properties - An array of property names to fetch.\n * @returns {Record<string, number>} - A record where the keys are property names and the values are the corresponding property values as numbers.\n */\nexport function fetchElementProperties(domRef: Element, properties: string[]): Record<string, number> {\n\tconst oProperties: Record<string, number> = {};\n\tproperties.forEach((property) => {\n\t\toProperties[property] = parseFloat(window.getComputedStyle(domRef).getPropertyValue(property));\n\t});\n\n\treturn oProperties;\n}\n\n/**\n * Calculates the card width based on the available width and certain constraints.\n *\n * @param {CardLayoutConfig} cardLayoutConfig - Card layout configuration containing container width, no. of cards, min and max width.\n * @returns {number} The calculated card width within specified constraints.\n */\nexport function calculateCardWidth(cardLayoutConfig: CardLayoutConfig): number {\n\tconst gap = cardLayoutConfig.gap;\n\n\tif (calculateDeviceType() === DeviceType.Mobile && !cardLayoutConfig.skipDeviceCheck) {\n\t\tconst peekWidth = 76;\n\t\tif (cardLayoutConfig.totalCards === 1) {\n\t\t\t// Single card: full width, constrained\n\t\t\treturn Math.max(cardLayoutConfig.minWidth, Math.min(cardLayoutConfig.containerWidth, cardLayoutConfig.maxWidth));\n\t\t} else {\n\t\t\t// Calculate width of the first card, reserving space for the peek of the second\n\t\t\tconst mainCardWidth = cardLayoutConfig.containerWidth - peekWidth;\n\t\t\t// Clamp to min/max width\n\t\t\treturn Math.max(cardLayoutConfig.minWidth, Math.min(mainCardWidth, cardLayoutConfig.maxWidth));\n\t\t}\n\t}\n\n\tlet cardCountToUse: number;\n\n\t// Tablet mode: width between 600 and 1023\n\tif (calculateDeviceType() === DeviceType.Tablet && cardLayoutConfig.totalCards > 1 && !cardLayoutConfig.skipDeviceCheck) {\n\t\tconst totalGap = gap; // gap between 2 cards\n\t\tconst twoCardWidth = (cardLayoutConfig.containerWidth - totalGap) / 2;\n\n\t\tif (twoCardWidth >= cardLayoutConfig.minWidth && twoCardWidth <= cardLayoutConfig.maxWidth) {\n\t\t\tcardCountToUse = 2;\n\t\t} else {\n\t\t\tcardCountToUse = 1;\n\t\t}\n\t} else {\n\t\t// Step 1: How many cards *can* fit based on minWidth\n\t\tlet possibleCardCount = 1;\n\t\twhile (cardLayoutConfig.containerWidth / possibleCardCount >= cardLayoutConfig.minWidth + gap) {\n\t\t\tpossibleCardCount++;\n\t\t}\n\t\tpossibleCardCount--; // Last valid value\n\t\t// Step 2: If we have fewer cards than we *can* fit, stretch them\n\t\tcardCountToUse = cardLayoutConfig.skipDeviceCheck\n\t\t\t? Math.min(possibleCardCount, cardLayoutConfig.totalCards)\n\t\t\t: Math.max(Math.min(possibleCardCount, cardLayoutConfig.totalCards), Math.min(cardLayoutConfig.totalCards, 3));\n\t}\n\tif (cardCountToUse <= 0) return cardLayoutConfig.minWidth;\n\tconst totalGap = (cardCountToUse - 1) * gap;\n\tconst cardWidth = (cardLayoutConfig.containerWidth - totalGap) / cardCountToUse;\n\treturn Math.min(Math.max(cardWidth, cardLayoutConfig.minWidth), cardLayoutConfig.maxWidth);\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 Device from "sap/ui/Device";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/utils/DragDropUtils" {
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 GridContainer from "sap/f/GridContainer";
7
7
  import FlexBox from "sap/m/FlexBox";
@@ -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/f/GridContainer", "sap/m/FlexBox", "sap/m/Table", "sap/ui/base/Event", "sap/ui/core/Element", "sap/ui/core/library"], function (GridContainer, FlexBox, Table, Event, Element, sap_ui_core_library) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"DragDropUtils.js","names":["sap","ui","define","GridContainer","FlexBox","Table","Event","Element","sap_ui_core_library","attachKeyboardHandler","event","disablenavigation","callback","draggedControl","closestTo","target","firstElementChild","container","getParent","isMetaKey","metaKey","ctrlKey","items","getItems","currentIndex","findIndex","item","document","activeElement","getDomRef","setTabIndexForItems","map","includes","key","Promise","resolve","preventDefault","stopPropagation","currentItemIndex","indexOfItem","reverseItems","reverse","index","_areItemsInSameRow","_getClosestElementYIndex","data","length","droppedControl","_temp3","_temp2","focusDraggedItem","dragDropEvent","dropPosition","dnd","RelativeDropPosition","Before","After","_temp","then","e","reject","item1","item2","getBoundingClientRect","top","dropItemIndex","draggedItemDomRef","aWrapperItemsDomRef","$","children","each","iIndex","oWrapperItem","classList","contains","push","setAttribute","focus","keyCode","fnElementPositionX","element","x","fnElementPositionY","y","minIndex","minDistance","Number","MAX_SAFE_INTEGER","forEach","currentDist","Math","sqrt","pow","isAllowed","aItems","tabIndex","__exports","__esModule"],"sources":["DragDropUtils.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport GridContainer from \"sap/f/GridContainer\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport Table from \"sap/m/Table\";\nimport Event from \"sap/ui/base/Event\";\nimport Control from \"sap/ui/core/Control\";\nimport Element from \"sap/ui/core/Element\";\nimport { dnd } from \"sap/ui/core/library\";\n\n/**\n * Handles keyboard events for navigation and drag and drop functionality.\n * @param {KeyboardEvent} event - The keyboard event object.\n * @param {boolean} disablenavigation - Whether navigation is allowed.\n * @param {Function} callback - The callback function to execute when a drag and drop event occurs.\n * @returns {Promise<void>} A Promise that resolves when the handling is complete.\n */\n\nexport async function attachKeyboardHandler(\n\tevent: KeyboardEvent,\n\tdisablenavigation: boolean,\n\tcallback?: (dragDropEvent: Event) => Promise<void> | void\n) {\n\tconst draggedControl = Element.closestTo((event.target as HTMLElement).firstElementChild as HTMLElement) as Control;\n\tconst container = draggedControl.getParent() as GridContainer | FlexBox;\n\tconst isMetaKey = event.metaKey || event.ctrlKey;\n\tconst items = container.getItems();\n\tconst currentIndex = items.findIndex((item) => document.activeElement === item.getDomRef());\n\tsetTabIndexForItems(\n\t\titems.map((item) => item.getDomRef() as HTMLElement),\n\t\tcurrentIndex\n\t);\n\n\tif (\n\t\t!draggedControl ||\n\t\t!container ||\n\t\t!(disablenavigation && [\"ArrowRight\", \"ArrowLeft\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key))\n\t) {\n\t\treturn;\n\t}\n\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\n\tlet currentItemIndex = container.indexOfItem(draggedControl);\n\tconst reverseItems = [...items].reverse();\n\tconst getDomRef = (index: number): HTMLElement | null => items[index]?.getDomRef() as HTMLElement | null;\n\tswitch (event.key) {\n\t\tcase \"ArrowRight\":\n\t\t\tif (_areItemsInSameRow(getDomRef(currentItemIndex), getDomRef(currentItemIndex + 1))) {\n\t\t\t\tcurrentItemIndex++;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"ArrowLeft\":\n\t\t\tif (_areItemsInSameRow(getDomRef(currentItemIndex), getDomRef(currentItemIndex - 1))) {\n\t\t\t\tcurrentItemIndex--;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"ArrowUp\":\n\t\tcase \"ArrowDown\":\n\t\t\tcurrentItemIndex = _getClosestElementYIndex(container, currentItemIndex, event.key);\n\t\t\tbreak;\n\t\tcase \"Home\":\n\t\t\tcurrentItemIndex = draggedControl.data(\"groupId\")\n\t\t\t\t? items.findIndex((item) => item.data(\"groupId\"))\n\t\t\t\t: items.findIndex((item) => !item.data(\"groupId\"));\n\t\t\tbreak;\n\t\tcase \"End\":\n\t\t\tcurrentItemIndex =\n\t\t\t\titems.length -\n\t\t\t\t1 -\n\t\t\t\t(draggedControl.data(\"groupId\")\n\t\t\t\t\t? reverseItems.findIndex((item) => item.data(\"groupId\"))\n\t\t\t\t\t: reverseItems.findIndex((item) => !item.data(\"groupId\")));\n\t\t\tbreak;\n\t}\n\tconst droppedControl = currentItemIndex > -1 && currentItemIndex < items.length ? items[currentItemIndex] : null;\n\tif (draggedControl && droppedControl) {\n\t\tconst dragDropEvent = new Event(\"keyboardDragDropEvent\", container, {\n\t\t\tdraggedControl,\n\t\t\tdroppedControl,\n\t\t\tdropPosition: [\"ArrowLeft\", \"ArrowUp\", \"Home\"].includes(event.key)\n\t\t\t\t? dnd.RelativeDropPosition.Before\n\t\t\t\t: dnd.RelativeDropPosition.After\n\t\t});\n\t\tsetTabIndexForItems(\n\t\t\titems.map((item) => item.getDomRef() as HTMLElement),\n\t\t\tcurrentItemIndex\n\t\t);\n\t\tif (callback && isMetaKey) {\n\t\t\tawait callback(dragDropEvent);\n\t\t}\n\t\tfocusDraggedItem(container, currentItemIndex);\n\t}\n}\n\n/**\n * Checks if two items are in the same row based on their top positions.\n *\n * @private\n * @param {HTMLElement | null} item1 - The first item's DOM reference.\n * @param {HTMLElement | null} item2 - The second item's DOM reference.\n * @returns {boolean} True if both items are in the same row, otherwise false.\n */\nfunction _areItemsInSameRow(item1: HTMLElement | null, item2: HTMLElement | null): boolean {\n\tif (!item1 || !item2) {\n\t\treturn false;\n\t}\n\treturn item1.getBoundingClientRect().top === item2.getBoundingClientRect().top;\n}\n\n/**\n * Gathers all DOM elements representing individual tiles in the grid container\n * that have the \"sapFGridContainerItemWrapper\" class, stores them in an array,\n * and then focuses the DOM element corresponding to the card that was just moved\n * during a drag-and-drop operation by setting its \"tabindex\" to \"0\" for\n * accessibility and navigation purposes.\n * @param {GridContainer | FlexBox} container - The container containing the items.\n * @param {number} dropItemIndex - The index of the item to focus after drag-and-drop.\n */\nexport const focusDraggedItem = (container: GridContainer | HeaderContainer | FlexBox | Table, dropItemIndex: number): void => {\n\tlet draggedItemDomRef: HTMLElement | null = null;\n\tif (container instanceof GridContainer) {\n\t\tconst aWrapperItemsDomRef: HTMLElement[] = [];\n\t\tcontainer\n\t\t\t.$(\"listUl\")\n\t\t\t.children()\n\t\t\t.each(function (iIndex, oWrapperItem) {\n\t\t\t\tif (oWrapperItem.classList.contains(\"sapFGridContainerItemWrapper\")) {\n\t\t\t\t\taWrapperItemsDomRef.push(oWrapperItem);\n\t\t\t\t}\n\t\t\t});\n\t\tdraggedItemDomRef = aWrapperItemsDomRef[dropItemIndex];\n\t} else if (container instanceof FlexBox || container instanceof Table) {\n\t\tdraggedItemDomRef = container.getItems()[dropItemIndex].getDomRef() as HTMLElement;\n\t}\n\tif (draggedItemDomRef) {\n\t\tdraggedItemDomRef.setAttribute(\"tabindex\", \"0\");\n\t\tdraggedItemDomRef.focus();\n\t}\n};\n\n/**\n * Gets the index of the closest element in the Y direction within a grid container.\n * @param {GridContainer | FlexBox} container - The container (either GridContainer or FlexBox).\n * @param {number} currentIndex - The index of the current element.\n * @param {string} keyCode - The key code representing the direction (ArrowUp or ArrowDown).\n * @returns {number} The index of the closest element in the Y direction.\n */\n\nconst _getClosestElementYIndex = (container: GridContainer | FlexBox, currentIndex: number, keyCode: string) => {\n\tconst fnElementPositionX = function (element: HTMLElement) {\n\t\treturn element.getBoundingClientRect().x;\n\t};\n\n\tconst fnElementPositionY = function (element: HTMLElement) {\n\t\treturn element.getBoundingClientRect().y;\n\t};\n\n\tlet minIndex = currentIndex;\n\tlet minDistance = Number.MAX_SAFE_INTEGER;\n\tconst items = container.getItems().map((item) => item.getDomRef()) as HTMLElement[];\n\titems.forEach(function (item, index) {\n\t\tconst currentDist = Math.sqrt(\n\t\t\tMath.pow(fnElementPositionX(items[currentIndex]) - fnElementPositionX(item), 2) +\n\t\t\t\tMath.pow(fnElementPositionY(items[currentIndex]) - fnElementPositionY(item), 2)\n\t\t);\n\t\tconst isAllowed = (keyCode === \"ArrowDown\" && index > currentIndex) || (keyCode === \"ArrowUp\" && index < currentIndex);\n\t\tif (isAllowed && currentDist < minDistance && fnElementPositionY(item) !== fnElementPositionY(items[currentIndex])) {\n\t\t\tminDistance = currentDist;\n\t\t\tminIndex = index;\n\t\t}\n\t});\n\treturn minIndex;\n};\n\nconst setTabIndexForItems = (aItems: HTMLElement[], currentIndex: number) => {\n\taItems.forEach((x, index) => {\n\t\tx.tabIndex = index === currentIndex ? 0 : -1;\n\t});\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DragDropUtils.js","names":["sap","ui","define","GridContainer","FlexBox","Table","Event","Element","sap_ui_core_library","attachKeyboardHandler","event","disablenavigation","callback","draggedControl","closestTo","target","firstElementChild","container","getParent","isMetaKey","metaKey","ctrlKey","items","getItems","currentIndex","findIndex","item","document","activeElement","getDomRef","setTabIndexForItems","map","includes","key","Promise","resolve","preventDefault","stopPropagation","currentItemIndex","indexOfItem","reverseItems","reverse","index","_areItemsInSameRow","_getClosestElementYIndex","data","length","droppedControl","_temp3","_temp2","focusDraggedItem","dragDropEvent","dropPosition","dnd","RelativeDropPosition","Before","After","_temp","then","e","reject","item1","item2","getBoundingClientRect","top","dropItemIndex","draggedItemDomRef","aWrapperItemsDomRef","$","children","each","iIndex","oWrapperItem","classList","contains","push","setAttribute","focus","keyCode","fnElementPositionX","element","x","fnElementPositionY","y","minIndex","minDistance","Number","MAX_SAFE_INTEGER","forEach","currentDist","Math","sqrt","pow","isAllowed","aItems","tabIndex","__exports","__esModule"],"sources":["DragDropUtils.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport GridContainer from \"sap/f/GridContainer\";\nimport FlexBox from \"sap/m/FlexBox\";\nimport HeaderContainer from \"sap/m/HeaderContainer\";\nimport Table from \"sap/m/Table\";\nimport Event from \"sap/ui/base/Event\";\nimport Control from \"sap/ui/core/Control\";\nimport Element from \"sap/ui/core/Element\";\nimport { dnd } from \"sap/ui/core/library\";\n\n/**\n * Handles keyboard events for navigation and drag and drop functionality.\n * @param {KeyboardEvent} event - The keyboard event object.\n * @param {boolean} disablenavigation - Whether navigation is allowed.\n * @param {Function} callback - The callback function to execute when a drag and drop event occurs.\n * @returns {Promise<void>} A Promise that resolves when the handling is complete.\n */\n\nexport async function attachKeyboardHandler(\n\tevent: KeyboardEvent,\n\tdisablenavigation: boolean,\n\tcallback?: (dragDropEvent: Event) => Promise<void> | void\n) {\n\tconst draggedControl = Element.closestTo((event.target as HTMLElement).firstElementChild as HTMLElement) as Control;\n\tconst container = draggedControl.getParent() as GridContainer | FlexBox;\n\tconst isMetaKey = event.metaKey || event.ctrlKey;\n\tconst items = container.getItems();\n\tconst currentIndex = items.findIndex((item) => document.activeElement === item.getDomRef());\n\tsetTabIndexForItems(\n\t\titems.map((item) => item.getDomRef() as HTMLElement),\n\t\tcurrentIndex\n\t);\n\n\tif (\n\t\t!draggedControl ||\n\t\t!container ||\n\t\t!(disablenavigation && [\"ArrowRight\", \"ArrowLeft\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"].includes(event.key))\n\t) {\n\t\treturn;\n\t}\n\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\n\tlet currentItemIndex = container.indexOfItem(draggedControl);\n\tconst reverseItems = [...items].reverse();\n\tconst getDomRef = (index: number): HTMLElement | null => items[index]?.getDomRef() as HTMLElement | null;\n\tswitch (event.key) {\n\t\tcase \"ArrowRight\":\n\t\t\tif (_areItemsInSameRow(getDomRef(currentItemIndex), getDomRef(currentItemIndex + 1))) {\n\t\t\t\tcurrentItemIndex++;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"ArrowLeft\":\n\t\t\tif (_areItemsInSameRow(getDomRef(currentItemIndex), getDomRef(currentItemIndex - 1))) {\n\t\t\t\tcurrentItemIndex--;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase \"ArrowUp\":\n\t\tcase \"ArrowDown\":\n\t\t\tcurrentItemIndex = _getClosestElementYIndex(container, currentItemIndex, event.key);\n\t\t\tbreak;\n\t\tcase \"Home\":\n\t\t\tcurrentItemIndex = draggedControl.data(\"groupId\")\n\t\t\t\t? items.findIndex((item) => item.data(\"groupId\"))\n\t\t\t\t: items.findIndex((item) => !item.data(\"groupId\"));\n\t\t\tbreak;\n\t\tcase \"End\":\n\t\t\tcurrentItemIndex =\n\t\t\t\titems.length -\n\t\t\t\t1 -\n\t\t\t\t(draggedControl.data(\"groupId\")\n\t\t\t\t\t? reverseItems.findIndex((item) => item.data(\"groupId\"))\n\t\t\t\t\t: reverseItems.findIndex((item) => !item.data(\"groupId\")));\n\t\t\tbreak;\n\t}\n\tconst droppedControl = currentItemIndex > -1 && currentItemIndex < items.length ? items[currentItemIndex] : null;\n\tif (draggedControl && droppedControl) {\n\t\tconst dragDropEvent = new Event(\"keyboardDragDropEvent\", container, {\n\t\t\tdraggedControl,\n\t\t\tdroppedControl,\n\t\t\tdropPosition: [\"ArrowLeft\", \"ArrowUp\", \"Home\"].includes(event.key)\n\t\t\t\t? dnd.RelativeDropPosition.Before\n\t\t\t\t: dnd.RelativeDropPosition.After\n\t\t});\n\t\tsetTabIndexForItems(\n\t\t\titems.map((item) => item.getDomRef() as HTMLElement),\n\t\t\tcurrentItemIndex\n\t\t);\n\t\tif (callback && isMetaKey) {\n\t\t\tawait callback(dragDropEvent);\n\t\t}\n\t\tfocusDraggedItem(container, currentItemIndex);\n\t}\n}\n\n/**\n * Checks if two items are in the same row based on their top positions.\n *\n * @private\n * @param {HTMLElement | null} item1 - The first item's DOM reference.\n * @param {HTMLElement | null} item2 - The second item's DOM reference.\n * @returns {boolean} True if both items are in the same row, otherwise false.\n */\nfunction _areItemsInSameRow(item1: HTMLElement | null, item2: HTMLElement | null): boolean {\n\tif (!item1 || !item2) {\n\t\treturn false;\n\t}\n\treturn item1.getBoundingClientRect().top === item2.getBoundingClientRect().top;\n}\n\n/**\n * Gathers all DOM elements representing individual tiles in the grid container\n * that have the \"sapFGridContainerItemWrapper\" class, stores them in an array,\n * and then focuses the DOM element corresponding to the card that was just moved\n * during a drag-and-drop operation by setting its \"tabindex\" to \"0\" for\n * accessibility and navigation purposes.\n * @param {GridContainer | FlexBox} container - The container containing the items.\n * @param {number} dropItemIndex - The index of the item to focus after drag-and-drop.\n */\nexport const focusDraggedItem = (container: GridContainer | HeaderContainer | FlexBox | Table, dropItemIndex: number): void => {\n\tlet draggedItemDomRef: HTMLElement | null = null;\n\tif (container instanceof GridContainer) {\n\t\tconst aWrapperItemsDomRef: HTMLElement[] = [];\n\t\tcontainer\n\t\t\t.$(\"listUl\")\n\t\t\t.children()\n\t\t\t.each(function (iIndex, oWrapperItem) {\n\t\t\t\tif (oWrapperItem.classList.contains(\"sapFGridContainerItemWrapper\")) {\n\t\t\t\t\taWrapperItemsDomRef.push(oWrapperItem);\n\t\t\t\t}\n\t\t\t});\n\t\tdraggedItemDomRef = aWrapperItemsDomRef[dropItemIndex];\n\t} else if (container instanceof FlexBox || container instanceof Table) {\n\t\tdraggedItemDomRef = container.getItems()[dropItemIndex].getDomRef() as HTMLElement;\n\t}\n\tif (draggedItemDomRef) {\n\t\tdraggedItemDomRef.setAttribute(\"tabindex\", \"0\");\n\t\tdraggedItemDomRef.focus();\n\t}\n};\n\n/**\n * Gets the index of the closest element in the Y direction within a grid container.\n * @param {GridContainer | FlexBox} container - The container (either GridContainer or FlexBox).\n * @param {number} currentIndex - The index of the current element.\n * @param {string} keyCode - The key code representing the direction (ArrowUp or ArrowDown).\n * @returns {number} The index of the closest element in the Y direction.\n */\n\nconst _getClosestElementYIndex = (container: GridContainer | FlexBox, currentIndex: number, keyCode: string) => {\n\tconst fnElementPositionX = function (element: HTMLElement) {\n\t\treturn element.getBoundingClientRect().x;\n\t};\n\n\tconst fnElementPositionY = function (element: HTMLElement) {\n\t\treturn element.getBoundingClientRect().y;\n\t};\n\n\tlet minIndex = currentIndex;\n\tlet minDistance = Number.MAX_SAFE_INTEGER;\n\tconst items = container.getItems().map((item) => item.getDomRef()) as HTMLElement[];\n\titems.forEach(function (item, index) {\n\t\tconst currentDist = Math.sqrt(\n\t\t\tMath.pow(fnElementPositionX(items[currentIndex]) - fnElementPositionX(item), 2) +\n\t\t\t\tMath.pow(fnElementPositionY(items[currentIndex]) - fnElementPositionY(item), 2)\n\t\t);\n\t\tconst isAllowed = (keyCode === \"ArrowDown\" && index > currentIndex) || (keyCode === \"ArrowUp\" && index < currentIndex);\n\t\tif (isAllowed && currentDist < minDistance && fnElementPositionY(item) !== fnElementPositionY(items[currentIndex])) {\n\t\t\tminDistance = currentDist;\n\t\t\tminIndex = index;\n\t\t}\n\t});\n\treturn minIndex;\n};\n\nconst setTabIndexForItems = (aItems: HTMLElement[], currentIndex: number) => {\n\taItems.forEach((x, index) => {\n\t\tx.tabIndex = index === currentIndex ? 0 : -1;\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 GridContainer from "sap/f/GridContainer";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/utils/FESRUtil" {
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 Control from "sap/ui/core/Control";
7
7
  import UI5Element from "sap/ui/core/Element";
@@ -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/ui/performance/trace/FESRHelper", "sap/ushell/api/performance/Extension"], function (FESRHelper, Extension) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"FESRUtil.js","names":["sap","ui","define","FESRHelper","Extension","FESR_EVENTS","FESRNavigationSource","oExtensionInstance","addFESRNavigationSource","source","addNavigationSource","addFESRId","control","fesrId","data","getFESRId","addFESRSemanticStepName","element","eventName","stepName","setSemanticStepname","__exports","__esModule"],"sources":["FESRUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\n\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport FESRHelper from \"sap/ui/performance/trace/FESRHelper\";\nimport Extension from \"sap/ushell/api/performance/Extension\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\n}\n\n/**\n * Enum for FESR (Frontend Subrecord) navigation source identifiers.\n * Used to track the source of navigation events for performance monitoring.\n */\nexport enum FESRNavigationSource {\n\t/** Situation-based navigation source */\n\tSituation = \"situ\",\n\t/** Task-based navigation source */\n\tTask = \"task\",\n\t/** Page navigation source */\n\tPage = \"page\",\n\t/** App Finder navigation source */\n\tAppFinder = \"apFi\",\n\t/** Resume AppA ctivity navigation source */\n\tResumeAppActivity = \"reAc\",\n\t/** Frequently Used apps navigation source */\n\tFrequentlyUsed = \"frUs\",\n\t/** Recently Used apps navigation source */\n\tRecentlyUsed = \"reUs\",\n\t/** Favorite apps navigation source */\n\tFavorite = \"faAp\",\n\t/** Recommended apps navigation source */\n\tRecommended = \"rcAp\",\n\t/** Insights tiles navigation source */\n\tTiles = \"tile\",\n\t/** Insights cards navigation source */\n\tCards = \"card\"\n}\n\nlet oExtensionInstance = new Extension();\n\nexport const addFESRNavigationSource = (source: FESRNavigationSource) => {\n\toExtensionInstance.addNavigationSource(source);\n};\n\nexport const addFESRId = (control: Control | UI5Element, fesrId: string) => {\n\tcontrol?.data(\"fesr-id\", fesrId);\n};\n\nexport const getFESRId = (control: Control | UI5Element) => {\n\treturn control.data(\"fesr-id\") as string;\n};\n\nexport const addFESRSemanticStepName = (element: UI5Element, eventName: string, stepName: string) => {\n\tif (stepName) {\n\t\tFESRHelper.setSemanticStepname(element, eventName, stepName);\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,4FAAAC,UAAA,EAAAC,SAAA;EAAA;;EAAA,IAUYC,WAAW,0BAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAA,OAAXA,WAAW;EAAA,EAAXA,WAAW;EAMvB;AACA;AACA;AACA;EAHA,IAIYC,oBAAoB,0BAApBA,oBAAoB;IAC/B;IADWA,oBAAoB;IAG/B;IAHWA,oBAAoB;IAK/B;IALWA,oBAAoB;IAO/B;IAPWA,oBAAoB;IAS/B;IATWA,oBAAoB;IAW/B;IAXWA,oBAAoB;IAa/B;IAbWA,oBAAoB;IAe/B;IAfWA,oBAAoB;IAiB/B;IAjBWA,oBAAoB;IAmB/B;IAnBWA,oBAAoB;IAqB/B;IArBWA,oBAAoB;IAAA,OAApBA,oBAAoB;EAAA,EAApBA,oBAAoB;EAyBhC,IAAIC,kBAAkB,GAAG,IAAIH,SAAS,CAAC,CAAC;EAEjC,MAAMI,uBAAuB,GAAIC,MAA4B,IAAK;IACxEF,kBAAkB,CAACG,mBAAmB,CAACD,MAAM,CAAC;EAC/C,CAAC;EAEM,MAAME,SAAS,GAAGA,CAACC,OAA6B,EAAEC,MAAc,KAAK;IAC3ED,OAAO,EAAEE,IAAI,CAAC,SAAS,EAAED,MAAM,CAAC;EACjC,CAAC;EAEM,MAAME,SAAS,GAAIH,OAA6B,IAAK;IAC3D,OAAOA,OAAO,CAACE,IAAI,CAAC,SAAS,CAAC;EAC/B,CAAC;EAEM,MAAME,uBAAuB,GAAGA,CAACC,OAAmB,EAAEC,SAAiB,EAAEC,QAAgB,KAAK;IACpG,IAAIA,QAAQ,EAAE;MACbhB,UAAU,CAACiB,mBAAmB,CAACH,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC7D;EACD,CAAC;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAhB,WAAA,GAAAA,WAAA;EAAAgB,SAAA,CAAAf,oBAAA,GAAAA,oBAAA;EAAAe,SAAA,CAAAb,uBAAA,GAAAA,uBAAA;EAAAa,SAAA,CAAAV,SAAA,GAAAA,SAAA;EAAAU,SAAA,CAAAN,SAAA,GAAAA,SAAA;EAAAM,SAAA,CAAAL,uBAAA,GAAAA,uBAAA;EAAA,OAAAK,SAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"FESRUtil.js","names":["sap","ui","define","FESRHelper","Extension","FESR_EVENTS","FESRNavigationSource","oExtensionInstance","addFESRNavigationSource","source","addNavigationSource","addFESRId","control","fesrId","data","getFESRId","addFESRSemanticStepName","element","eventName","stepName","setSemanticStepname","__exports","__esModule"],"sources":["FESRUtil.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\n\nimport Control from \"sap/ui/core/Control\";\nimport UI5Element from \"sap/ui/core/Element\";\nimport FESRHelper from \"sap/ui/performance/trace/FESRHelper\";\nimport Extension from \"sap/ushell/api/performance/Extension\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\n}\n\n/**\n * Enum for FESR (Frontend Subrecord) navigation source identifiers.\n * Used to track the source of navigation events for performance monitoring.\n */\nexport enum FESRNavigationSource {\n\t/** Situation-based navigation source */\n\tSituation = \"situ\",\n\t/** Task-based navigation source */\n\tTask = \"task\",\n\t/** Page navigation source */\n\tPage = \"page\",\n\t/** App Finder navigation source */\n\tAppFinder = \"apFi\",\n\t/** Resume AppA ctivity navigation source */\n\tResumeAppActivity = \"reAc\",\n\t/** Frequently Used apps navigation source */\n\tFrequentlyUsed = \"frUs\",\n\t/** Recently Used apps navigation source */\n\tRecentlyUsed = \"reUs\",\n\t/** Favorite apps navigation source */\n\tFavorite = \"faAp\",\n\t/** Recommended apps navigation source */\n\tRecommended = \"rcAp\",\n\t/** Insights tiles navigation source */\n\tTiles = \"tile\",\n\t/** Insights cards navigation source */\n\tCards = \"card\"\n}\n\nlet oExtensionInstance = new Extension();\n\nexport const addFESRNavigationSource = (source: FESRNavigationSource) => {\n\toExtensionInstance.addNavigationSource(source);\n};\n\nexport const addFESRId = (control: Control | UI5Element, fesrId: string) => {\n\tcontrol?.data(\"fesr-id\", fesrId);\n};\n\nexport const getFESRId = (control: Control | UI5Element) => {\n\treturn control.data(\"fesr-id\") as string;\n};\n\nexport const addFESRSemanticStepName = (element: UI5Element, eventName: string, stepName: string) => {\n\tif (stepName) {\n\t\tFESRHelper.setSemanticStepname(element, eventName, stepName);\n\t}\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,4FAAAC,UAAA,EAAAC,SAAA;EAAA;;EAAA,IAUYC,WAAW,0BAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAA,OAAXA,WAAW;EAAA,EAAXA,WAAW;EAMvB;AACA;AACA;AACA;EAHA,IAIYC,oBAAoB,0BAApBA,oBAAoB;IAC/B;IADWA,oBAAoB;IAG/B;IAHWA,oBAAoB;IAK/B;IALWA,oBAAoB;IAO/B;IAPWA,oBAAoB;IAS/B;IATWA,oBAAoB;IAW/B;IAXWA,oBAAoB;IAa/B;IAbWA,oBAAoB;IAe/B;IAfWA,oBAAoB;IAiB/B;IAjBWA,oBAAoB;IAmB/B;IAnBWA,oBAAoB;IAqB/B;IArBWA,oBAAoB;IAAA,OAApBA,oBAAoB;EAAA,EAApBA,oBAAoB;EAyBhC,IAAIC,kBAAkB,GAAG,IAAIH,SAAS,CAAC,CAAC;EAEjC,MAAMI,uBAAuB,GAAIC,MAA4B,IAAK;IACxEF,kBAAkB,CAACG,mBAAmB,CAACD,MAAM,CAAC;EAC/C,CAAC;EAEM,MAAME,SAAS,GAAGA,CAACC,OAA6B,EAAEC,MAAc,KAAK;IAC3ED,OAAO,EAAEE,IAAI,CAAC,SAAS,EAAED,MAAM,CAAC;EACjC,CAAC;EAEM,MAAME,SAAS,GAAIH,OAA6B,IAAK;IAC3D,OAAOA,OAAO,CAACE,IAAI,CAAC,SAAS,CAAC;EAC/B,CAAC;EAEM,MAAME,uBAAuB,GAAGA,CAACC,OAAmB,EAAEC,SAAiB,EAAEC,QAAgB,KAAK;IACpG,IAAIA,QAAQ,EAAE;MACbhB,UAAU,CAACiB,mBAAmB,CAACH,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC7D;EACD,CAAC;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAhB,WAAA,GAAAA,WAAA;EAAAgB,SAAA,CAAAf,oBAAA,GAAAA,oBAAA;EAAAe,SAAA,CAAAb,uBAAA,GAAAA,uBAAA;EAAAa,SAAA,CAAAV,SAAA,GAAAA,SAAA;EAAAU,SAAA,CAAAN,SAAA,GAAAA,SAAA;EAAAM,SAAA,CAAAL,uBAAA,GAAAA,uBAAA;EAAA,OAAAK,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 Control from "sap/ui/core/Control";
@@ -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/base/Log", "sap/ushell/Container", "./Constants", "./HttpHelper"], function (Log, Container, ___Constants, __HttpHelper) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureUtils.js","names":["sap","ui","define","Log","Container","___Constants","__HttpHelper","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","FEATURE_TOGGLE_SRVC_URL","FEATURE_TOGGLES","HttpHelper","featureToggles","Map","isFeatureEnabled","key","_temp2","get","has","Promise","resolve","_temp","unavailableToggles","Object","values","filter","toggle","getFeatureToggles","_getFeatureToggles","forEach","set","enabled","error","message","reject","keys","filterExpression","join","GetJSON","_HttpHelper$GetJSON","value","map","some","ToggleId","State","toUpperCase","isNavigationSupportedForFeature","featureToggle","intent","isFeatureToggleEnabled","getServiceAsync","navigationService","isNavigationSupported","supported","warning","Error","String","__exports"],"sources":["FeatureUtils.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport Container from \"sap/ushell/Container\";\nimport Navigation, { Target } from \"sap/ushell/services/Navigation\";\nimport { FEATURE_TOGGLE_SRVC_URL, FEATURE_TOGGLES } from \"./Constants\";\nimport HttpHelper from \"./HttpHelper\";\n\ninterface FeatureToggle {\n\tkey: FEATURE_TOGGLES;\n\tenabled: boolean;\n}\n\ninterface FeatureToggleResponse {\n\tvalue: {\n\t\tToggleId: FEATURE_TOGGLES;\n\t\tState: string;\n\t}[];\n}\n\nconst featureToggles = new Map<FEATURE_TOGGLES, boolean>();\n\n/**\n * Utility to check if a feature toggle is enabled.\n *\n * @param key The key of the feature toggle to check.\n * @returns Promise resolving to `true` if the feature toggle is enabled, `false` otherwise.\n */\nexport const isFeatureEnabled = async (key: FEATURE_TOGGLES): Promise<boolean> => {\n\tif (featureToggles.has(key)) {\n\t\treturn featureToggles.get(key)!;\n\t}\n\n\ttry {\n\t\tconst unavailableToggles = Object.values(FEATURE_TOGGLES).filter((toggle) => !featureToggles.has(toggle));\n\t\t(await getFeatureToggles(unavailableToggles)).forEach((toggle) => featureToggles.set(toggle.key, toggle.enabled));\n\t} catch (error) {\n\t\tLog.error(\"Error fetching feature toggles\", (error as Error).message);\n\t\tfeatureToggles.set(key, false);\n\t}\n\n\treturn featureToggles.get(key) || false;\n};\n\n/**\n * Utility to fetch feature toggles from the server.\n *\n * @param keys An array of feature toggle keys to fetch.\n * @returns Promise resolving to an array of feature toggles.\n */\nconst getFeatureToggles = async (keys: FEATURE_TOGGLES[]): Promise<FeatureToggle[]> => {\n\tconst filterExpression = `?$filter=(ToggleId eq '${keys.join(\"' or ToggleId eq '\")}')`;\n\tconst { value = [] } = (await HttpHelper.GetJSON(FEATURE_TOGGLE_SRVC_URL + filterExpression)) as FeatureToggleResponse;\n\n\treturn keys.map((key) => ({\n\t\tkey,\n\t\tenabled: value.some((toggle) => toggle.ToggleId === key && toggle.State.toUpperCase() === \"X\")\n\t}));\n};\n\n/**\n * Utility to check if a navigation target is supported when a feature toggle is enabled.\n *\n * @param featureToggleCheck A promise that resolves to true if the feature is enabled.\n * @param semanticObject Semantic object to be checked for navigation support.\n * @param action Action name for the semantic object.\n * @returns Promise resolving to `true` if navigation is supported and feature is enabled.\n */\nexport const isNavigationSupportedForFeature = async (featureToggle: FEATURE_TOGGLES, intent: Target): Promise<boolean> => {\n\ttry {\n\t\tconst isFeatureToggleEnabled = await isFeatureEnabled(featureToggle);\n\t\tif (!isFeatureToggleEnabled) {\n\t\t\treturn false;\n\t\t}\n\t\tconst navigationService = await Container.getServiceAsync<Navigation>(\"Navigation\");\n\t\tconst [{ supported }] = await navigationService.isNavigationSupported([intent]);\n\n\t\treturn supported || false;\n\t} catch (error) {\n\t\tLog.warning(error instanceof Error ? error.message : String(error));\n\t\treturn false;\n\t}\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"FeatureUtils.js","names":["sap","ui","define","Log","Container","___Constants","__HttpHelper","_interopRequireDefault","obj","__esModule","default","_catch","body","recover","result","e","then","FEATURE_TOGGLE_SRVC_URL","FEATURE_TOGGLES","HttpHelper","featureToggles","Map","isFeatureEnabled","key","_temp2","get","has","Promise","resolve","_temp","unavailableToggles","Object","values","filter","toggle","getFeatureToggles","_getFeatureToggles","forEach","set","enabled","error","message","reject","keys","filterExpression","join","GetJSON","_HttpHelper$GetJSON","value","map","some","ToggleId","State","toUpperCase","isNavigationSupportedForFeature","featureToggle","intent","isFeatureToggleEnabled","getServiceAsync","navigationService","isNavigationSupported","supported","warning","Error","String","__exports"],"sources":["FeatureUtils.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport Container from \"sap/ushell/Container\";\nimport Navigation, { Target } from \"sap/ushell/services/Navigation\";\nimport { FEATURE_TOGGLE_SRVC_URL, FEATURE_TOGGLES } from \"./Constants\";\nimport HttpHelper from \"./HttpHelper\";\n\ninterface FeatureToggle {\n\tkey: FEATURE_TOGGLES;\n\tenabled: boolean;\n}\n\ninterface FeatureToggleResponse {\n\tvalue: {\n\t\tToggleId: FEATURE_TOGGLES;\n\t\tState: string;\n\t}[];\n}\n\nconst featureToggles = new Map<FEATURE_TOGGLES, boolean>();\n\n/**\n * Utility to check if a feature toggle is enabled.\n *\n * @param key The key of the feature toggle to check.\n * @returns Promise resolving to `true` if the feature toggle is enabled, `false` otherwise.\n */\nexport const isFeatureEnabled = async (key: FEATURE_TOGGLES): Promise<boolean> => {\n\tif (featureToggles.has(key)) {\n\t\treturn featureToggles.get(key)!;\n\t}\n\n\ttry {\n\t\tconst unavailableToggles = Object.values(FEATURE_TOGGLES).filter((toggle) => !featureToggles.has(toggle));\n\t\t(await getFeatureToggles(unavailableToggles)).forEach((toggle) => featureToggles.set(toggle.key, toggle.enabled));\n\t} catch (error) {\n\t\tLog.error(\"Error fetching feature toggles\", (error as Error).message);\n\t\tfeatureToggles.set(key, false);\n\t}\n\n\treturn featureToggles.get(key) || false;\n};\n\n/**\n * Utility to fetch feature toggles from the server.\n *\n * @param keys An array of feature toggle keys to fetch.\n * @returns Promise resolving to an array of feature toggles.\n */\nconst getFeatureToggles = async (keys: FEATURE_TOGGLES[]): Promise<FeatureToggle[]> => {\n\tconst filterExpression = `?$filter=(ToggleId eq '${keys.join(\"' or ToggleId eq '\")}')`;\n\tconst { value = [] } = (await HttpHelper.GetJSON(FEATURE_TOGGLE_SRVC_URL + filterExpression)) as FeatureToggleResponse;\n\n\treturn keys.map((key) => ({\n\t\tkey,\n\t\tenabled: value.some((toggle) => toggle.ToggleId === key && toggle.State.toUpperCase() === \"X\")\n\t}));\n};\n\n/**\n * Utility to check if a navigation target is supported when a feature toggle is enabled.\n *\n * @param featureToggleCheck A promise that resolves to true if the feature is enabled.\n * @param semanticObject Semantic object to be checked for navigation support.\n * @param action Action name for the semantic object.\n * @returns Promise resolving to `true` if navigation is supported and feature is enabled.\n */\nexport const isNavigationSupportedForFeature = async (featureToggle: FEATURE_TOGGLES, intent: Target): Promise<boolean> => {\n\ttry {\n\t\tconst isFeatureToggleEnabled = await isFeatureEnabled(featureToggle);\n\t\tif (!isFeatureToggleEnabled) {\n\t\t\treturn false;\n\t\t}\n\t\tconst navigationService = await Container.getServiceAsync<Navigation>(\"Navigation\");\n\t\tconst [{ supported }] = await navigationService.isNavigationSupported([intent]);\n\n\t\treturn supported || false;\n\t} catch (error) {\n\t\tLog.warning(error instanceof Error ? error.message : String(error));\n\t\treturn false;\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
  import Log from "sap/base/Log";
6
6
  import Container from "sap/ushell/Container";
@@ -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/base/Log", "sap/ui/base/Object", "./Constants"], function (Log, BaseObject, ___Constants) {
6
6
  "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"HttpHelper.js","names":["sap","ui","define","Log","BaseObject","___Constants","_catch","body","recover","result","e","then","REPO_BASE_URL","HttpHelper","constructor","fetchCSRFToken","fetch","method","headers","response","token","get","ok","Error","catch","error","message","Post","url","payload","csrfToken","JSON","stringify","json","GetJSON","GetMultipleRequests","urls","Promise","resolve","all","map","includes","_response$json","text","reject"],"sources":["HttpHelper.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2025 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport { REPO_BASE_URL } from \"./Constants\";\n\n/**\n *\n * @class Provides the HttpHelper Class used for Get and Post Calls.\n *\n * @extends sap.ui.BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n * @private\n *\n * @alias sap.cux.home.utils.HttpHelper\n */\n\nexport default class HttpHelper extends BaseObject {\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Fetches the CSRF Token\n\t * @returns {Promise<string | void>} Promise that resolves with the CSRF Token\n\t */\n\tprivate static fetchCSRFToken(): Promise<string | void> {\n\t\treturn fetch(REPO_BASE_URL, {\n\t\t\tmethod: \"HEAD\",\n\t\t\theaders: {\n\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\n\t\t\t}\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst token = response.headers.get(\"X-CSRF-Token\");\n\t\t\t\tif (response.ok && token) {\n\t\t\t\t\treturn token;\n\t\t\t\t}\n\t\t\t\tthrow new Error(\"Cannot fetch X-CSRF-Token.\");\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\n\t/**\n\t * Post Method\n\t * @param {string} url - The URL to post to\n\t * @param {object} payload - The payload to post\n\t * @returns {Promise<unknown>} Promise that resolves with the response\n\t */\n\tpublic static Post(url: string, payload: object): Promise<unknown> {\n\t\treturn HttpHelper.fetchCSRFToken()\n\t\t\t.then((csrfToken) => {\n\t\t\t\treturn fetch(url, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-CSRF-Token\": csrfToken as string,\n\t\t\t\t\t\t\"content-type\": \"application/json\"\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(payload)\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\n\t/**\n\t * Get Method for JSON Data\n\t * @param {string} url - The URL to get from\n\t * @returns {Promise<unknown>} Promise that resolves with the JSON data response\n\t */\n\tpublic static GetJSON(url: string): Promise<unknown> {\n\t\treturn fetch(url)\n\t\t\t.then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\t/**\n\t * Get Method for Multiple Requests\n\t *\n\t * @param {string[]} urls - An array of URLs to get from\n\t * @returns {Promise<(string | object)[]>} Promise that resolves with the responses from the URLs\n\t */\n\tpublic static async GetMultipleRequests(urls: string[] = []): Promise<(string | object)[]> {\n\t\ttry {\n\t\t\tconst results = await Promise.all(\n\t\t\t\turls.map(async (url) => {\n\t\t\t\t\tconst response = await fetch(url);\n\t\t\t\t\tif (response.headers.get(\"Content-Type\")?.includes(\"application/json\")) {\n\t\t\t\t\t\treturn (await response.json()) as object;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn await response.text();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\n\t\t\treturn results;\n\t\t} catch (error: unknown) {\n\t\t\tLog.error((error as Error)?.message);\n\t\t\treturn [];\n\t\t}\n\t}\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"HttpHelper.js","names":["sap","ui","define","Log","BaseObject","___Constants","_catch","body","recover","result","e","then","REPO_BASE_URL","HttpHelper","constructor","fetchCSRFToken","fetch","method","headers","response","token","get","ok","Error","catch","error","message","Post","url","payload","csrfToken","JSON","stringify","json","GetJSON","GetMultipleRequests","urls","Promise","resolve","all","map","includes","_response$json","text","reject"],"sources":["HttpHelper.ts"],"sourcesContent":["/*!\n * SAP UI development toolkit for HTML5 (SAPUI5)\n * * (c) Copyright 2009-2026 SAP SE. All rights reserved\n */\nimport Log from \"sap/base/Log\";\nimport BaseObject from \"sap/ui/base/Object\";\nimport { REPO_BASE_URL } from \"./Constants\";\n\n/**\n *\n * @class Provides the HttpHelper Class used for Get and Post Calls.\n *\n * @extends sap.ui.BaseObject\n *\n * @author SAP SE\n * @version 0.0.1\n * @since 1.121.0\n * @private\n *\n * @alias sap.cux.home.utils.HttpHelper\n */\n\nexport default class HttpHelper extends BaseObject {\n\tprivate constructor() {\n\t\tsuper();\n\t}\n\n\t/**\n\t * Fetches the CSRF Token\n\t * @returns {Promise<string | void>} Promise that resolves with the CSRF Token\n\t */\n\tprivate static fetchCSRFToken(): Promise<string | void> {\n\t\treturn fetch(REPO_BASE_URL, {\n\t\t\tmethod: \"HEAD\",\n\t\t\theaders: {\n\t\t\t\t\"X-CSRF-Token\": \"Fetch\"\n\t\t\t}\n\t\t})\n\t\t\t.then((response) => {\n\t\t\t\tconst token = response.headers.get(\"X-CSRF-Token\");\n\t\t\t\tif (response.ok && token) {\n\t\t\t\t\treturn token;\n\t\t\t\t}\n\t\t\t\tthrow new Error(\"Cannot fetch X-CSRF-Token.\");\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\n\t/**\n\t * Post Method\n\t * @param {string} url - The URL to post to\n\t * @param {object} payload - The payload to post\n\t * @returns {Promise<unknown>} Promise that resolves with the response\n\t */\n\tpublic static Post(url: string, payload: object): Promise<unknown> {\n\t\treturn HttpHelper.fetchCSRFToken()\n\t\t\t.then((csrfToken) => {\n\t\t\t\treturn fetch(url, {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t\"X-CSRF-Token\": csrfToken as string,\n\t\t\t\t\t\t\"content-type\": \"application/json\"\n\t\t\t\t\t},\n\t\t\t\t\tbody: JSON.stringify(payload)\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\n\t/**\n\t * Get Method for JSON Data\n\t * @param {string} url - The URL to get from\n\t * @returns {Promise<unknown>} Promise that resolves with the JSON data response\n\t */\n\tpublic static GetJSON(url: string): Promise<unknown> {\n\t\treturn fetch(url)\n\t\t\t.then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t})\n\t\t\t.catch((error: Error) => {\n\t\t\t\tLog.error(error.message);\n\t\t\t});\n\t}\n\t/**\n\t * Get Method for Multiple Requests\n\t *\n\t * @param {string[]} urls - An array of URLs to get from\n\t * @returns {Promise<(string | object)[]>} Promise that resolves with the responses from the URLs\n\t */\n\tpublic static async GetMultipleRequests(urls: string[] = []): Promise<(string | object)[]> {\n\t\ttry {\n\t\t\tconst results = await Promise.all(\n\t\t\t\turls.map(async (url) => {\n\t\t\t\t\tconst response = await fetch(url);\n\t\t\t\t\tif (response.headers.get(\"Content-Type\")?.includes(\"application/json\")) {\n\t\t\t\t\t\treturn (await response.json()) as object;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn await response.text();\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t);\n\n\t\t\treturn results;\n\t\t} catch (error: unknown) {\n\t\t\tLog.error((error as Error)?.message);\n\t\t\treturn [];\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
  import Log from "sap/base/Log";
6
6
  import BaseObject from "sap/ui/base/Object";
@@ -1,7 +1,7 @@
1
1
  declare module "sap/cux/home/utils/IconList" {
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
  const ICONS: Icons;
7
7
  type IconCollection = {
@@ -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([], function () {
6
6
  "use strict";