@sapui5/sap.cux.home 1.136.3 → 1.139.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/package.json +1 -1
  2. package/src/sap/cux/home/.library +1 -1
  3. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts +0 -3
  4. package/src/sap/cux/home/AdvancedSettingsPanel.d.ts.map +1 -1
  5. package/src/sap/cux/home/AdvancedSettingsPanel.js +11 -7
  6. package/src/sap/cux/home/AdvancedSettingsPanel.js.map +1 -1
  7. package/src/sap/cux/home/AdvancedSettingsPanel.ts +13 -7
  8. package/src/sap/cux/home/App.d.ts +1 -2
  9. package/src/sap/cux/home/App.d.ts.map +1 -1
  10. package/src/sap/cux/home/App.js +7 -2
  11. package/src/sap/cux/home/App.js.map +1 -1
  12. package/src/sap/cux/home/App.ts +8 -3
  13. package/src/sap/cux/home/AppsAdditionPanel.d.ts +0 -2
  14. package/src/sap/cux/home/AppsAdditionPanel.d.ts.map +1 -1
  15. package/src/sap/cux/home/AppsAdditionPanel.js +31 -15
  16. package/src/sap/cux/home/AppsAdditionPanel.js.map +1 -1
  17. package/src/sap/cux/home/AppsAdditionPanel.ts +36 -16
  18. package/src/sap/cux/home/AppsContainer.d.ts +0 -2
  19. package/src/sap/cux/home/AppsContainer.d.ts.map +1 -1
  20. package/src/sap/cux/home/AppsContainer.js +5 -8
  21. package/src/sap/cux/home/AppsContainer.js.map +1 -1
  22. package/src/sap/cux/home/AppsContainer.ts +3 -8
  23. package/src/sap/cux/home/BaseApp.d.ts +2 -2
  24. package/src/sap/cux/home/BaseApp.d.ts.map +1 -1
  25. package/src/sap/cux/home/BaseApp.js +10 -3
  26. package/src/sap/cux/home/BaseApp.js.map +1 -1
  27. package/src/sap/cux/home/BaseApp.ts +11 -4
  28. package/src/sap/cux/home/BaseAppPanel.d.ts +0 -2
  29. package/src/sap/cux/home/BaseAppPanel.d.ts.map +1 -1
  30. package/src/sap/cux/home/BaseAppPanel.js +5 -6
  31. package/src/sap/cux/home/BaseAppPanel.js.map +1 -1
  32. package/src/sap/cux/home/BaseAppPanel.ts +3 -5
  33. package/src/sap/cux/home/BaseAppPersPanel.d.ts +0 -2
  34. package/src/sap/cux/home/BaseAppPersPanel.d.ts.map +1 -1
  35. package/src/sap/cux/home/BaseAppPersPanel.js +6 -6
  36. package/src/sap/cux/home/BaseAppPersPanel.js.map +1 -1
  37. package/src/sap/cux/home/BaseAppPersPanel.ts +9 -7
  38. package/src/sap/cux/home/BaseContainer.d.ts +0 -1
  39. package/src/sap/cux/home/BaseContainer.d.ts.map +1 -1
  40. package/src/sap/cux/home/BaseContainer.js +10 -5
  41. package/src/sap/cux/home/BaseContainer.js.map +1 -1
  42. package/src/sap/cux/home/BaseContainer.ts +10 -5
  43. package/src/sap/cux/home/BaseContainerRenderer.d.ts +4 -4
  44. package/src/sap/cux/home/BaseContainerRenderer.d.ts.map +1 -1
  45. package/src/sap/cux/home/BaseContainerRenderer.js +17 -19
  46. package/src/sap/cux/home/BaseContainerRenderer.js.map +1 -1
  47. package/src/sap/cux/home/BaseContainerRenderer.ts +21 -25
  48. package/src/sap/cux/home/BaseLayout.d.ts +0 -1
  49. package/src/sap/cux/home/BaseLayout.d.ts.map +1 -1
  50. package/src/sap/cux/home/BaseLayout.js +1 -2
  51. package/src/sap/cux/home/BaseLayout.js.map +1 -1
  52. package/src/sap/cux/home/BaseLayout.ts +1 -2
  53. package/src/sap/cux/home/BaseNewsItem.d.ts +1 -2
  54. package/src/sap/cux/home/BaseNewsItem.d.ts.map +1 -1
  55. package/src/sap/cux/home/BaseNewsItem.js +7 -2
  56. package/src/sap/cux/home/BaseNewsItem.js.map +1 -1
  57. package/src/sap/cux/home/BaseNewsItem.ts +8 -3
  58. package/src/sap/cux/home/BaseNewsPanel.d.ts +1 -2
  59. package/src/sap/cux/home/BaseNewsPanel.d.ts.map +1 -1
  60. package/src/sap/cux/home/BaseNewsPanel.js +7 -2
  61. package/src/sap/cux/home/BaseNewsPanel.js.map +1 -1
  62. package/src/sap/cux/home/BaseNewsPanel.ts +8 -3
  63. package/src/sap/cux/home/BasePagePanel.d.ts +1 -2
  64. package/src/sap/cux/home/BasePagePanel.d.ts.map +1 -1
  65. package/src/sap/cux/home/BasePagePanel.gen.d.ts +34 -0
  66. package/src/sap/cux/home/BasePagePanel.js +16 -2
  67. package/src/sap/cux/home/BasePagePanel.js.map +1 -1
  68. package/src/sap/cux/home/BasePagePanel.ts +17 -3
  69. package/src/sap/cux/home/BasePanel.d.ts +0 -1
  70. package/src/sap/cux/home/BasePanel.d.ts.map +1 -1
  71. package/src/sap/cux/home/BasePanel.js +0 -1
  72. package/src/sap/cux/home/BasePanel.js.map +1 -1
  73. package/src/sap/cux/home/BasePanel.ts +0 -1
  74. package/src/sap/cux/home/BaseSettingsDialog.d.ts +0 -1
  75. package/src/sap/cux/home/BaseSettingsDialog.d.ts.map +1 -1
  76. package/src/sap/cux/home/BaseSettingsDialog.js +0 -1
  77. package/src/sap/cux/home/BaseSettingsDialog.js.map +1 -1
  78. package/src/sap/cux/home/BaseSettingsDialog.ts +0 -1
  79. package/src/sap/cux/home/BaseSettingsPanel.d.ts +0 -1
  80. package/src/sap/cux/home/BaseSettingsPanel.d.ts.map +1 -1
  81. package/src/sap/cux/home/BaseSettingsPanel.js +2 -2
  82. package/src/sap/cux/home/BaseSettingsPanel.js.map +1 -1
  83. package/src/sap/cux/home/BaseSettingsPanel.ts +3 -2
  84. package/src/sap/cux/home/CardsPanel.d.ts +0 -1
  85. package/src/sap/cux/home/CardsPanel.d.ts.map +1 -1
  86. package/src/sap/cux/home/CardsPanel.js +3 -4
  87. package/src/sap/cux/home/CardsPanel.js.map +1 -1
  88. package/src/sap/cux/home/CardsPanel.ts +3 -7
  89. package/src/sap/cux/home/ContentAdditionDialog.d.ts +0 -3
  90. package/src/sap/cux/home/ContentAdditionDialog.d.ts.map +1 -1
  91. package/src/sap/cux/home/ContentAdditionDialog.js +4 -8
  92. package/src/sap/cux/home/ContentAdditionDialog.js.map +1 -1
  93. package/src/sap/cux/home/ContentAdditionDialog.ts +4 -8
  94. package/src/sap/cux/home/ErrorPanel.d.ts +1 -2
  95. package/src/sap/cux/home/ErrorPanel.d.ts.map +1 -1
  96. package/src/sap/cux/home/ErrorPanel.gen.d.ts +24 -0
  97. package/src/sap/cux/home/ErrorPanel.js +16 -2
  98. package/src/sap/cux/home/ErrorPanel.js.map +1 -1
  99. package/src/sap/cux/home/ErrorPanel.ts +17 -3
  100. package/src/sap/cux/home/FavAppPanel.d.ts +0 -1
  101. package/src/sap/cux/home/FavAppPanel.d.ts.map +1 -1
  102. package/src/sap/cux/home/FavAppPanel.js +15 -12
  103. package/src/sap/cux/home/FavAppPanel.js.map +1 -1
  104. package/src/sap/cux/home/FavAppPanel.ts +20 -15
  105. package/src/sap/cux/home/FrequentAppPanel.d.ts +0 -1
  106. package/src/sap/cux/home/FrequentAppPanel.d.ts.map +1 -1
  107. package/src/sap/cux/home/FrequentAppPanel.js +0 -1
  108. package/src/sap/cux/home/FrequentAppPanel.js.map +1 -1
  109. package/src/sap/cux/home/FrequentAppPanel.ts +0 -1
  110. package/src/sap/cux/home/Group.d.ts +2 -2
  111. package/src/sap/cux/home/Group.d.ts.map +1 -1
  112. package/src/sap/cux/home/Group.gen.d.ts +47 -1
  113. package/src/sap/cux/home/Group.js +30 -3
  114. package/src/sap/cux/home/Group.js.map +1 -1
  115. package/src/sap/cux/home/Group.ts +26 -6
  116. package/src/sap/cux/home/IToDoPanel.d.ts +1 -2
  117. package/src/sap/cux/home/IToDoPanel.d.ts.map +1 -1
  118. package/src/sap/cux/home/IToDoPanel.js.map +1 -1
  119. package/src/sap/cux/home/IToDoPanel.ts +1 -2
  120. package/src/sap/cux/home/InsightsAdditionPanel.d.ts +0 -4
  121. package/src/sap/cux/home/InsightsAdditionPanel.d.ts.map +1 -1
  122. package/src/sap/cux/home/InsightsAdditionPanel.js +5 -14
  123. package/src/sap/cux/home/InsightsAdditionPanel.js.map +1 -1
  124. package/src/sap/cux/home/InsightsAdditionPanel.ts +5 -16
  125. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts +0 -3
  126. package/src/sap/cux/home/InsightsCardsSettingsPanel.d.ts.map +1 -1
  127. package/src/sap/cux/home/InsightsCardsSettingsPanel.js +0 -3
  128. package/src/sap/cux/home/InsightsCardsSettingsPanel.js.map +1 -1
  129. package/src/sap/cux/home/InsightsCardsSettingsPanel.ts +0 -3
  130. package/src/sap/cux/home/InsightsContainer.d.ts +1 -2
  131. package/src/sap/cux/home/InsightsContainer.d.ts.map +1 -1
  132. package/src/sap/cux/home/InsightsContainer.js +21 -5
  133. package/src/sap/cux/home/InsightsContainer.js.map +1 -1
  134. package/src/sap/cux/home/InsightsContainer.ts +24 -5
  135. package/src/sap/cux/home/InsightsTilesSettingsPanel.d.ts +0 -3
  136. package/src/sap/cux/home/InsightsTilesSettingsPanel.d.ts.map +1 -1
  137. package/src/sap/cux/home/InsightsTilesSettingsPanel.js +5 -5
  138. package/src/sap/cux/home/InsightsTilesSettingsPanel.js.map +1 -1
  139. package/src/sap/cux/home/InsightsTilesSettingsPanel.ts +5 -5
  140. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts +0 -3
  141. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.d.ts.map +1 -1
  142. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js +0 -3
  143. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.js.map +1 -1
  144. package/src/sap/cux/home/KeyUserLayoutSettingsPanel.ts +0 -3
  145. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts +0 -3
  146. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.d.ts.map +1 -1
  147. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js +0 -3
  148. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.js.map +1 -1
  149. package/src/sap/cux/home/KeyUserNewsPagesSettingsPanel.ts +0 -3
  150. package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts +0 -3
  151. package/src/sap/cux/home/KeyUserNewsSettingsPanel.d.ts.map +1 -1
  152. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js +4 -6
  153. package/src/sap/cux/home/KeyUserNewsSettingsPanel.js.map +1 -1
  154. package/src/sap/cux/home/KeyUserNewsSettingsPanel.ts +13 -8
  155. package/src/sap/cux/home/KeyUserPagesSettingsPanel.d.ts +0 -3
  156. package/src/sap/cux/home/KeyUserPagesSettingsPanel.d.ts.map +1 -1
  157. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js +0 -3
  158. package/src/sap/cux/home/KeyUserPagesSettingsPanel.js.map +1 -1
  159. package/src/sap/cux/home/KeyUserPagesSettingsPanel.ts +0 -3
  160. package/src/sap/cux/home/KeyUserSettingsDialog.d.ts +0 -3
  161. package/src/sap/cux/home/KeyUserSettingsDialog.d.ts.map +1 -1
  162. package/src/sap/cux/home/KeyUserSettingsDialog.js +0 -3
  163. package/src/sap/cux/home/KeyUserSettingsDialog.js.map +1 -1
  164. package/src/sap/cux/home/KeyUserSettingsDialog.ts +0 -3
  165. package/src/sap/cux/home/Layout.d.ts +0 -2
  166. package/src/sap/cux/home/Layout.d.ts.map +1 -1
  167. package/src/sap/cux/home/Layout.js +0 -2
  168. package/src/sap/cux/home/Layout.js.map +1 -1
  169. package/src/sap/cux/home/Layout.ts +0 -3
  170. package/src/sap/cux/home/LayoutSettingsPanel.d.ts +0 -3
  171. package/src/sap/cux/home/LayoutSettingsPanel.d.ts.map +1 -1
  172. package/src/sap/cux/home/LayoutSettingsPanel.js +0 -3
  173. package/src/sap/cux/home/LayoutSettingsPanel.js.map +1 -1
  174. package/src/sap/cux/home/LayoutSettingsPanel.ts +0 -3
  175. package/src/sap/cux/home/MenuItem.d.ts +0 -1
  176. package/src/sap/cux/home/MenuItem.d.ts.map +1 -1
  177. package/src/sap/cux/home/MenuItem.js +0 -1
  178. package/src/sap/cux/home/MenuItem.js.map +1 -1
  179. package/src/sap/cux/home/MenuItem.ts +0 -1
  180. package/src/sap/cux/home/NewsAndPagesContainer.d.ts +12 -14
  181. package/src/sap/cux/home/NewsAndPagesContainer.d.ts.map +1 -1
  182. package/src/sap/cux/home/NewsAndPagesContainer.js +10 -12
  183. package/src/sap/cux/home/NewsAndPagesContainer.js.map +1 -1
  184. package/src/sap/cux/home/NewsAndPagesContainer.ts +20 -18
  185. package/src/sap/cux/home/NewsGroup.d.ts +0 -3
  186. package/src/sap/cux/home/NewsGroup.d.ts.map +1 -1
  187. package/src/sap/cux/home/NewsGroup.js +0 -3
  188. package/src/sap/cux/home/NewsGroup.js.map +1 -1
  189. package/src/sap/cux/home/NewsGroup.ts +0 -3
  190. package/src/sap/cux/home/NewsItem.d.ts +0 -3
  191. package/src/sap/cux/home/NewsItem.d.ts.map +1 -1
  192. package/src/sap/cux/home/NewsItem.js +0 -3
  193. package/src/sap/cux/home/NewsItem.js.map +1 -1
  194. package/src/sap/cux/home/NewsItem.ts +0 -3
  195. package/src/sap/cux/home/NewsPanel.d.ts +7 -10
  196. package/src/sap/cux/home/NewsPanel.d.ts.map +1 -1
  197. package/src/sap/cux/home/NewsPanel.js +13 -14
  198. package/src/sap/cux/home/NewsPanel.js.map +1 -1
  199. package/src/sap/cux/home/NewsPanel.ts +15 -14
  200. package/src/sap/cux/home/NewsSettingsPanel.d.ts +0 -3
  201. package/src/sap/cux/home/NewsSettingsPanel.d.ts.map +1 -1
  202. package/src/sap/cux/home/NewsSettingsPanel.js +1 -4
  203. package/src/sap/cux/home/NewsSettingsPanel.js.map +1 -1
  204. package/src/sap/cux/home/NewsSettingsPanel.ts +1 -4
  205. package/src/sap/cux/home/NoDataContainer.d.ts +0 -2
  206. package/src/sap/cux/home/NoDataContainer.d.ts.map +1 -1
  207. package/src/sap/cux/home/NoDataContainer.js +0 -1
  208. package/src/sap/cux/home/NoDataContainer.js.map +1 -1
  209. package/src/sap/cux/home/NoDataContainer.ts +0 -1
  210. package/src/sap/cux/home/Page.d.ts +0 -3
  211. package/src/sap/cux/home/Page.d.ts.map +1 -1
  212. package/src/sap/cux/home/Page.gen.d.ts +0 -12
  213. package/src/sap/cux/home/Page.js +0 -7
  214. package/src/sap/cux/home/Page.js.map +1 -1
  215. package/src/sap/cux/home/Page.ts +0 -7
  216. package/src/sap/cux/home/PagePanel.d.ts +0 -4
  217. package/src/sap/cux/home/PagePanel.d.ts.map +1 -1
  218. package/src/sap/cux/home/PagePanel.js +0 -4
  219. package/src/sap/cux/home/PagePanel.js.map +1 -1
  220. package/src/sap/cux/home/PagePanel.ts +0 -4
  221. package/src/sap/cux/home/PageSettingsPanel.d.ts +0 -3
  222. package/src/sap/cux/home/PageSettingsPanel.d.ts.map +1 -1
  223. package/src/sap/cux/home/PageSettingsPanel.js +3 -5
  224. package/src/sap/cux/home/PageSettingsPanel.js.map +1 -1
  225. package/src/sap/cux/home/PageSettingsPanel.ts +3 -5
  226. package/src/sap/cux/home/RecentAppPanel.d.ts +0 -1
  227. package/src/sap/cux/home/RecentAppPanel.d.ts.map +1 -1
  228. package/src/sap/cux/home/RecentAppPanel.js +0 -1
  229. package/src/sap/cux/home/RecentAppPanel.js.map +1 -1
  230. package/src/sap/cux/home/RecentAppPanel.ts +0 -1
  231. package/src/sap/cux/home/RecommendedAppPanel.d.ts +0 -1
  232. package/src/sap/cux/home/RecommendedAppPanel.d.ts.map +1 -1
  233. package/src/sap/cux/home/RecommendedAppPanel.js +0 -1
  234. package/src/sap/cux/home/RecommendedAppPanel.js.map +1 -1
  235. package/src/sap/cux/home/RecommendedAppPanel.ts +0 -1
  236. package/src/sap/cux/home/SettingsDialog.d.ts +0 -3
  237. package/src/sap/cux/home/SettingsDialog.d.ts.map +1 -1
  238. package/src/sap/cux/home/SettingsDialog.js +2 -4
  239. package/src/sap/cux/home/SettingsDialog.js.map +1 -1
  240. package/src/sap/cux/home/SettingsDialog.ts +2 -4
  241. package/src/sap/cux/home/SituationPanel.d.ts +0 -1
  242. package/src/sap/cux/home/SituationPanel.d.ts.map +1 -1
  243. package/src/sap/cux/home/SituationPanel.js +0 -1
  244. package/src/sap/cux/home/SituationPanel.js.map +1 -1
  245. package/src/sap/cux/home/SituationPanel.ts +0 -1
  246. package/src/sap/cux/home/SpaceInsightsPanel.d.ts +207 -0
  247. package/src/sap/cux/home/SpaceInsightsPanel.d.ts.map +1 -0
  248. package/src/sap/cux/home/SpaceInsightsPanel.gen.d.ts +200 -0
  249. package/src/sap/cux/home/SpaceInsightsPanel.js +789 -0
  250. package/src/sap/cux/home/SpaceInsightsPanel.js.map +1 -0
  251. package/src/sap/cux/home/SpaceInsightsPanel.ts +631 -0
  252. package/src/sap/cux/home/SpacePanel.d.ts +117 -0
  253. package/src/sap/cux/home/SpacePanel.d.ts.map +1 -0
  254. package/src/sap/cux/home/SpacePanel.gen.d.ts +77 -0
  255. package/src/sap/cux/home/SpacePanel.js +599 -0
  256. package/src/sap/cux/home/SpacePanel.js.map +1 -0
  257. package/src/sap/cux/home/SpacePanel.ts +461 -0
  258. package/src/sap/cux/home/TaskPanel.d.ts +0 -1
  259. package/src/sap/cux/home/TaskPanel.d.ts.map +1 -1
  260. package/src/sap/cux/home/TaskPanel.js +8 -20
  261. package/src/sap/cux/home/TaskPanel.js.map +1 -1
  262. package/src/sap/cux/home/TaskPanel.ts +9 -20
  263. package/src/sap/cux/home/TilesPanel.d.ts +0 -1
  264. package/src/sap/cux/home/TilesPanel.d.ts.map +1 -1
  265. package/src/sap/cux/home/TilesPanel.js +5 -6
  266. package/src/sap/cux/home/TilesPanel.js.map +1 -1
  267. package/src/sap/cux/home/TilesPanel.ts +5 -12
  268. package/src/sap/cux/home/ToDoPanel.d.ts +11 -1
  269. package/src/sap/cux/home/ToDoPanel.d.ts.map +1 -1
  270. package/src/sap/cux/home/ToDoPanel.js +59 -22
  271. package/src/sap/cux/home/ToDoPanel.js.map +1 -1
  272. package/src/sap/cux/home/ToDoPanel.ts +63 -22
  273. package/src/sap/cux/home/ToDosContainer.d.ts +0 -2
  274. package/src/sap/cux/home/ToDosContainer.d.ts.map +1 -1
  275. package/src/sap/cux/home/ToDosContainer.js +2 -3
  276. package/src/sap/cux/home/ToDosContainer.js.map +1 -1
  277. package/src/sap/cux/home/ToDosContainer.ts +1 -2
  278. package/src/sap/cux/home/i18n/messagebundle.properties +22 -13
  279. package/src/sap/cux/home/i18n/messagebundle_ar.properties +6 -3
  280. package/src/sap/cux/home/i18n/messagebundle_bg.properties +6 -3
  281. package/src/sap/cux/home/i18n/messagebundle_ca.properties +6 -3
  282. package/src/sap/cux/home/i18n/messagebundle_cnr.properties +6 -3
  283. package/src/sap/cux/home/i18n/messagebundle_cs.properties +6 -3
  284. package/src/sap/cux/home/i18n/messagebundle_cy.properties +6 -3
  285. package/src/sap/cux/home/i18n/messagebundle_da.properties +6 -3
  286. package/src/sap/cux/home/i18n/messagebundle_de.properties +6 -3
  287. package/src/sap/cux/home/i18n/messagebundle_el.properties +6 -3
  288. package/src/sap/cux/home/i18n/messagebundle_en.properties +6 -3
  289. package/src/sap/cux/home/i18n/messagebundle_en_GB.properties +6 -3
  290. package/src/sap/cux/home/i18n/messagebundle_en_US_sappsd.properties +65 -13
  291. package/src/sap/cux/home/i18n/messagebundle_en_US_saprigi.properties +19 -9
  292. package/src/sap/cux/home/i18n/messagebundle_en_US_saptrc.properties +57 -11
  293. package/src/sap/cux/home/i18n/messagebundle_es.properties +6 -3
  294. package/src/sap/cux/home/i18n/messagebundle_es_MX.properties +6 -3
  295. package/src/sap/cux/home/i18n/messagebundle_et.properties +6 -3
  296. package/src/sap/cux/home/i18n/messagebundle_fi.properties +6 -3
  297. package/src/sap/cux/home/i18n/messagebundle_fr.properties +6 -3
  298. package/src/sap/cux/home/i18n/messagebundle_fr_CA.properties +6 -3
  299. package/src/sap/cux/home/i18n/messagebundle_hi.properties +6 -3
  300. package/src/sap/cux/home/i18n/messagebundle_hr.properties +6 -3
  301. package/src/sap/cux/home/i18n/messagebundle_hu.properties +6 -3
  302. package/src/sap/cux/home/i18n/messagebundle_id.properties +6 -3
  303. package/src/sap/cux/home/i18n/messagebundle_it.properties +6 -3
  304. package/src/sap/cux/home/i18n/messagebundle_iw.properties +6 -3
  305. package/src/sap/cux/home/i18n/messagebundle_ja.properties +6 -3
  306. package/src/sap/cux/home/i18n/messagebundle_kk.properties +6 -3
  307. package/src/sap/cux/home/i18n/messagebundle_ko.properties +6 -3
  308. package/src/sap/cux/home/i18n/messagebundle_lt.properties +6 -3
  309. package/src/sap/cux/home/i18n/messagebundle_lv.properties +6 -3
  310. package/src/sap/cux/home/i18n/messagebundle_mk.properties +6 -3
  311. package/src/sap/cux/home/i18n/messagebundle_ms.properties +6 -3
  312. package/src/sap/cux/home/i18n/messagebundle_nl.properties +6 -3
  313. package/src/sap/cux/home/i18n/messagebundle_no.properties +6 -3
  314. package/src/sap/cux/home/i18n/messagebundle_pl.properties +6 -3
  315. package/src/sap/cux/home/i18n/messagebundle_pt.properties +6 -3
  316. package/src/sap/cux/home/i18n/messagebundle_pt_PT.properties +6 -3
  317. package/src/sap/cux/home/i18n/messagebundle_ro.properties +6 -3
  318. package/src/sap/cux/home/i18n/messagebundle_ru.properties +6 -3
  319. package/src/sap/cux/home/i18n/messagebundle_sh.properties +6 -3
  320. package/src/sap/cux/home/i18n/messagebundle_sk.properties +6 -3
  321. package/src/sap/cux/home/i18n/messagebundle_sl.properties +6 -3
  322. package/src/sap/cux/home/i18n/messagebundle_sr.properties +6 -3
  323. package/src/sap/cux/home/i18n/messagebundle_sv.properties +6 -3
  324. package/src/sap/cux/home/i18n/messagebundle_th.properties +6 -3
  325. package/src/sap/cux/home/i18n/messagebundle_tr.properties +6 -3
  326. package/src/sap/cux/home/i18n/messagebundle_uk.properties +6 -3
  327. package/src/sap/cux/home/i18n/messagebundle_vi.properties +6 -3
  328. package/src/sap/cux/home/i18n/messagebundle_zh_CN.properties +6 -3
  329. package/src/sap/cux/home/i18n/messagebundle_zh_TW.properties +6 -3
  330. package/src/sap/cux/home/interface/AppsInterface.d.ts +1 -0
  331. package/src/sap/cux/home/interface/AppsInterface.d.ts.map +1 -1
  332. package/src/sap/cux/home/interface/AppsInterface.js.map +1 -1
  333. package/src/sap/cux/home/interface/AppsInterface.ts +1 -0
  334. package/src/sap/cux/home/interface/CardsInterface.d.ts +1 -5
  335. package/src/sap/cux/home/interface/CardsInterface.d.ts.map +1 -1
  336. package/src/sap/cux/home/interface/CardsInterface.js.map +1 -1
  337. package/src/sap/cux/home/interface/CardsInterface.ts +1 -1
  338. package/src/sap/cux/home/library.d.ts +3 -4
  339. package/src/sap/cux/home/library.d.ts.map +1 -1
  340. package/src/sap/cux/home/library.js +3 -4
  341. package/src/sap/cux/home/library.js.map +1 -1
  342. package/src/sap/cux/home/library.ts +3 -4
  343. package/src/sap/cux/home/themes/base/ContentAdditionDialog.less +1 -9
  344. package/src/sap/cux/home/themes/base/InsightsContainer.less +4 -0
  345. package/src/sap/cux/home/themes/base/KeyUserSettingsDialog.less +0 -5
  346. package/src/sap/cux/home/themes/base/ToDosContainer.less +2 -1
  347. package/src/sap/cux/home/utils/Accessibility.js +2 -2
  348. package/src/sap/cux/home/utils/Accessibility.js.map +1 -1
  349. package/src/sap/cux/home/utils/Accessibility.ts +2 -2
  350. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts +0 -1
  351. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.d.ts.map +1 -1
  352. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js +0 -1
  353. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.js.map +1 -1
  354. package/src/sap/cux/home/utils/AnalyticalCardSkeleton.ts +0 -1
  355. package/src/sap/cux/home/utils/AppManager.d.ts +4 -7
  356. package/src/sap/cux/home/utils/AppManager.d.ts.map +1 -1
  357. package/src/sap/cux/home/utils/AppManager.js +12 -13
  358. package/src/sap/cux/home/utils/AppManager.js.map +1 -1
  359. package/src/sap/cux/home/utils/AppManager.ts +20 -13
  360. package/src/sap/cux/home/utils/BatchHelper.d.ts +0 -3
  361. package/src/sap/cux/home/utils/BatchHelper.d.ts.map +1 -1
  362. package/src/sap/cux/home/utils/BatchHelper.js +0 -3
  363. package/src/sap/cux/home/utils/BatchHelper.js.map +1 -1
  364. package/src/sap/cux/home/utils/BatchHelper.ts +0 -3
  365. package/src/sap/cux/home/utils/CommonUtils.d.ts +9 -0
  366. package/src/sap/cux/home/utils/CommonUtils.d.ts.map +1 -1
  367. package/src/sap/cux/home/utils/CommonUtils.js +23 -2
  368. package/src/sap/cux/home/utils/CommonUtils.js.map +1 -1
  369. package/src/sap/cux/home/utils/CommonUtils.ts +28 -1
  370. package/src/sap/cux/home/utils/Constants.d.ts +4 -5
  371. package/src/sap/cux/home/utils/Constants.d.ts.map +1 -1
  372. package/src/sap/cux/home/utils/Constants.js +5 -5
  373. package/src/sap/cux/home/utils/Constants.js.map +1 -1
  374. package/src/sap/cux/home/utils/Constants.ts +4 -5
  375. package/src/sap/cux/home/utils/DecisionDialog.d.ts +0 -3
  376. package/src/sap/cux/home/utils/DecisionDialog.d.ts.map +1 -1
  377. package/src/sap/cux/home/utils/DecisionDialog.js +0 -3
  378. package/src/sap/cux/home/utils/DecisionDialog.js.map +1 -1
  379. package/src/sap/cux/home/utils/DecisionDialog.ts +0 -3
  380. package/src/sap/cux/home/utils/FESRUtil.js +1 -1
  381. package/src/sap/cux/home/utils/FESRUtil.js.map +1 -1
  382. package/src/sap/cux/home/utils/FESRUtil.ts +1 -1
  383. package/src/sap/cux/home/utils/FeatureUtils.d.ts +20 -13
  384. package/src/sap/cux/home/utils/FeatureUtils.d.ts.map +1 -1
  385. package/src/sap/cux/home/utils/FeatureUtils.js +33 -29
  386. package/src/sap/cux/home/utils/FeatureUtils.js.map +1 -1
  387. package/src/sap/cux/home/utils/FeatureUtils.ts +38 -31
  388. package/src/sap/cux/home/utils/HttpHelper.d.ts +7 -3
  389. package/src/sap/cux/home/utils/HttpHelper.d.ts.map +1 -1
  390. package/src/sap/cux/home/utils/HttpHelper.js +43 -3
  391. package/src/sap/cux/home/utils/HttpHelper.js.map +1 -1
  392. package/src/sap/cux/home/utils/HttpHelper.ts +25 -3
  393. package/src/sap/cux/home/utils/KeyUserPersonalization.d.ts.map +1 -1
  394. package/src/sap/cux/home/utils/KeyUserPersonalization.js +32 -13
  395. package/src/sap/cux/home/utils/KeyUserPersonalization.js.map +1 -1
  396. package/src/sap/cux/home/utils/KeyUserPersonalization.ts +2 -3
  397. package/src/sap/cux/home/utils/PageManager.d.ts +0 -3
  398. package/src/sap/cux/home/utils/PageManager.d.ts.map +1 -1
  399. package/src/sap/cux/home/utils/PageManager.js +0 -3
  400. package/src/sap/cux/home/utils/PageManager.js.map +1 -1
  401. package/src/sap/cux/home/utils/PageManager.ts +0 -3
  402. package/src/sap/cux/home/utils/PersonalisationUtils.d.ts +0 -3
  403. package/src/sap/cux/home/utils/PersonalisationUtils.d.ts.map +1 -1
  404. package/src/sap/cux/home/utils/PersonalisationUtils.js +0 -3
  405. package/src/sap/cux/home/utils/PersonalisationUtils.js.map +1 -1
  406. package/src/sap/cux/home/utils/PersonalisationUtils.ts +0 -3
  407. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts +0 -3
  408. package/src/sap/cux/home/utils/UshellPersonalizer.d.ts.map +1 -1
  409. package/src/sap/cux/home/utils/UshellPersonalizer.js +0 -3
  410. package/src/sap/cux/home/utils/UshellPersonalizer.js.map +1 -1
  411. package/src/sap/cux/home/utils/UshellPersonalizer.ts +0 -3
  412. package/src/sap/cux/home/utils/fragment/appsAdditionContent.fragment.xml +20 -16
  413. package/src/sap/cux/home/{AppsContainerGenericPlaceholder.d.ts → utils/placeholder/AppsPlaceholder.d.ts} +2 -2
  414. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.d.ts.map +1 -0
  415. package/src/sap/cux/home/{AppsContainerGenericPlaceholder.js → utils/placeholder/AppsPlaceholder.js} +1 -1
  416. package/src/sap/cux/home/utils/placeholder/AppsPlaceholder.js.map +1 -0
  417. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts +8 -0
  418. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.d.ts.map +1 -0
  419. package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.js → utils/placeholder/InsightsPlaceholder.js} +1 -1
  420. package/src/sap/cux/home/utils/placeholder/InsightsPlaceholder.js.map +1 -0
  421. package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.d.ts → utils/placeholder/NewsAndPagesPlaceholder.d.ts} +3 -3
  422. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.d.ts.map +1 -0
  423. package/src/sap/cux/home/{NewsAndPagesContainerGenericPlaceholder.js → utils/placeholder/NewsAndPagesPlaceholder.js} +1 -1
  424. package/src/sap/cux/home/utils/placeholder/NewsAndPagesPlaceholder.js.map +1 -0
  425. package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.d.ts → utils/placeholder/ToDosPlaceholder.d.ts} +2 -2
  426. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.d.ts.map +1 -0
  427. package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.js → utils/placeholder/ToDosPlaceholder.js} +1 -1
  428. package/src/sap/cux/home/utils/placeholder/ToDosPlaceholder.js.map +1 -0
  429. package/src/sap/cux/home/AppsContainerGenericPlaceholder.d.ts.map +0 -1
  430. package/src/sap/cux/home/AppsContainerGenericPlaceholder.js.map +0 -1
  431. package/src/sap/cux/home/InsightsContainerGenericPlaceholder.d.ts.map +0 -1
  432. package/src/sap/cux/home/InsightsContainerGenericPlaceholder.js.map +0 -1
  433. package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts +0 -8
  434. package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.d.ts.map +0 -1
  435. package/src/sap/cux/home/NewsAndPagesContainerGenericPlaceholder.js.map +0 -1
  436. package/src/sap/cux/home/ToDosContainerGenericPlaceholder.d.ts.map +0 -1
  437. package/src/sap/cux/home/ToDosContainerGenericPlaceholder.js.map +0 -1
  438. package/src/sap/cux/home/utils/CardSkeleton.d.ts +0 -54
  439. package/src/sap/cux/home/utils/CardSkeleton.d.ts.map +0 -1
  440. package/src/sap/cux/home/utils/CardSkeleton.js +0 -61
  441. package/src/sap/cux/home/utils/CardSkeleton.js.map +0 -1
  442. package/src/sap/cux/home/utils/CardSkeleton.ts +0 -53
  443. /package/src/sap/cux/home/{AppsContainerGenericPlaceholder.ts → utils/placeholder/AppsPlaceholder.ts} +0 -0
  444. /package/src/sap/cux/home/{InsightsContainerGenericPlaceholder.ts → utils/placeholder/InsightsPlaceholder.ts} +0 -0
  445. /package/src/sap/cux/home/{NewsAndPagesContainerGenericPlaceholder.ts → utils/placeholder/NewsAndPagesPlaceholder.ts} +0 -0
  446. /package/src/sap/cux/home/{ToDosContainerGenericPlaceholder.ts → utils/placeholder/ToDosPlaceholder.ts} +0 -0
@@ -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 *\n * @internal\n * @experimental 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-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":[]}
@@ -160,9 +160,6 @@ export function getIconFrameBadgeValueState(priority: TaskPriority): ValueState
160
160
  * @author SAP SE
161
161
  * @version 0.0.1
162
162
  * @since 1.121
163
- *
164
- * @internal
165
- * @experimental Since 1.121
166
163
  * @private
167
164
  *
168
165
  * @alias sap.cux.home.utils.DecisionDialog
@@ -12,7 +12,7 @@ sap.ui.define(["sap/ui/performance/trace/FESRHelper"], function (FESRHelper) {
12
12
  return FESR_EVENTS;
13
13
  }(FESR_EVENTS || {});
14
14
  const addFESRId = (control, fesrId) => {
15
- control.data("fesr-id", fesrId);
15
+ control?.data("fesr-id", fesrId);
16
16
  };
17
17
  const getFESRId = control => {
18
18
  return control.data("fesr-id");
@@ -1 +1 @@
1
- {"version":3,"file":"FESRUtil.js","names":["sap","ui","define","FESRHelper","FESR_EVENTS","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\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\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,oDAAAC,UAAA;EAAA;;EAAA,IASYC,WAAW,0BAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAA,OAAXA,WAAW;EAAA,EAAXA,WAAW;EAMhB,MAAMC,SAAS,GAAGA,CAACC,OAA6B,EAAEC,MAAc,KAAK;IAC3ED,OAAO,CAACE,IAAI,CAAC,SAAS,EAAED,MAAM,CAAC;EAChC,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;MACbV,UAAU,CAACW,mBAAmB,CAACH,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC7D;EACD,CAAC;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAX,WAAA,GAAAA,WAAA;EAAAW,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","FESR_EVENTS","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\";\n\nexport enum FESR_EVENTS {\n\tPRESS = \"press\",\n\tCHANGE = \"change\",\n\tSELECT = \"select\"\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,oDAAAC,UAAA;EAAA;;EAAA,IASYC,WAAW,0BAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAXA,WAAW;IAAA,OAAXA,WAAW;EAAA,EAAXA,WAAW;EAMhB,MAAMC,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;MACbV,UAAU,CAACW,mBAAmB,CAACH,OAAO,EAAEC,SAAS,EAAEC,QAAQ,CAAC;IAC7D;EACD,CAAC;EAAC,IAAAE,SAAA;IAAAC,UAAA;EAAA;EAAAD,SAAA,CAAAX,WAAA,GAAAA,WAAA;EAAAW,SAAA,CAAAV,SAAA,GAAAA,SAAA;EAAAU,SAAA,CAAAN,SAAA,GAAAA,SAAA;EAAAM,SAAA,CAAAL,uBAAA,GAAAA,uBAAA;EAAA,OAAAK,SAAA;AAAA","ignoreList":[]}
@@ -14,7 +14,7 @@ export enum FESR_EVENTS {
14
14
  }
15
15
 
16
16
  export const addFESRId = (control: Control | UI5Element, fesrId: string) => {
17
- control.data("fesr-id", fesrId);
17
+ control?.data("fesr-id", fesrId);
18
18
  };
19
19
 
20
20
  export const getFESRId = (control: Control | UI5Element) => {
@@ -1,24 +1,31 @@
1
1
  declare module "sap/cux/home/utils/FeatureUtils" {
2
2
  import { Target } from "sap/ushell/services/Navigation";
3
- interface IFeatureToggles {
4
- TASK_ACTIONS: string;
3
+ import { FEATURE_TOGGLES } from "sap/cux/home/utils/Constants";
4
+ interface FeatureToggle {
5
+ key: FEATURE_TOGGLES;
6
+ enabled: boolean;
5
7
  }
8
+ interface FeatureToggleResponse {
9
+ value: {
10
+ ToggleId: FEATURE_TOGGLES;
11
+ State: string;
12
+ }[];
13
+ }
14
+ const featureToggles: Map<FEATURE_TOGGLES, boolean>;
6
15
  /**
7
- * Checks if feature is enabled or not.
16
+ * Utility to check if a feature toggle is enabled.
8
17
  *
9
- * @param {string} sToggleId - feature toggle id
10
- * @returns {boolean} - returns true if feature is enabled.
18
+ * @param key The key of the feature toggle to check.
19
+ * @returns Promise resolving to `true` if the feature toggle is enabled, `false` otherwise.
11
20
  */
12
- const isFeatureEnabled: (sToggleId: string) => Promise<boolean>;
21
+ const isFeatureEnabled: (key: FEATURE_TOGGLES) => Promise<boolean>;
13
22
  /**
14
- * Returns array of all feature toggles
23
+ * Utility to fetch feature toggles from the server.
15
24
  *
16
- * @returns {object[]} - returns array of all feature toggles.
25
+ * @param keys An array of feature toggle keys to fetch.
26
+ * @returns Promise resolving to an array of feature toggles.
17
27
  */
18
- const _getFeatureToggles: () => Promise<{
19
- ToggleId: string;
20
- State: string;
21
- }[]>;
28
+ const getFeatureToggles: (keys: FEATURE_TOGGLES[]) => Promise<FeatureToggle[]>;
22
29
  /**
23
30
  * Utility to check if a navigation target is supported when a feature toggle is enabled.
24
31
  *
@@ -27,6 +34,6 @@ declare module "sap/cux/home/utils/FeatureUtils" {
27
34
  * @param action Action name for the semantic object.
28
35
  * @returns Promise resolving to `true` if navigation is supported and feature is enabled.
29
36
  */
30
- const isNavigationSupportedForFeature: (featureToggle: string, intent: Target) => Promise<boolean>;
37
+ const isNavigationSupportedForFeature: (featureToggle: FEATURE_TOGGLES, intent: Target) => Promise<boolean>;
31
38
  }
32
39
  //# sourceMappingURL=FeatureUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureUtils.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/FeatureUtils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iCAAiC,CAAC;IAOjD,OAAmB,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;IAIpE,UAAU,eAAe;QACxB,YAAY,EAAE,MAAM,CAAC;KACrB;IAED;;;;;OAKG;IACI,MAAM,gBAAgB,GAAU,WAAW,MAAM,qBAWvD,CAAC;IAEF;;;;OAIG;IACI,MAAM,kBAAkB;kBASJ,MAAM;eAAS,MAAM;QAM/C,CAAC;IAEF;;;;;;;OAOG;IACI,MAAM,+BAA+B,GAAU,eAAe,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAc5G,CAAC;CAED"}
1
+ {"version":3,"file":"FeatureUtils.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/FeatureUtils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,iCAAiC,CAAC;IAOjD,OAAmB,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;IACpE,OAAO,EAA2B,eAAe,EAAE,MAAM,8BAA8B,CAAC;IAGxF,UAAU,aAAa;QACtB,GAAG,EAAE,eAAe,CAAC;QACrB,OAAO,EAAE,OAAO,CAAC;KACjB;IAED,UAAU,qBAAqB;QAC9B,KAAK,EAAE;YACN,QAAQ,EAAE,eAAe,CAAC;YAC1B,KAAK,EAAE,MAAM,CAAC;SACd,EAAE,CAAC;KACJ;IAED,MAAM,cAAc,+BAAsC,CAAC;IAE3D;;;;;OAKG;IACI,MAAM,gBAAgB,GAAU,KAAK,eAAe,KAAG,OAAO,CAAC,OAAO,CAc5E,CAAC;IAEF;;;;;OAKG;IACH,MAAM,iBAAiB,GAAU,MAAM,eAAe,EAAE,KAAG,OAAO,CAAC,aAAa,EAAE,CAQjF,CAAC;IAEF;;;;;;;OAOG;IACI,MAAM,+BAA+B,GAAU,eAAe,eAAe,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,OAAO,CAcrH,CAAC;CAED"}
@@ -22,49 +22,54 @@ sap.ui.define(["sap/base/Log", "sap/ushell/Container", "./Constants", "./HttpHel
22
22
  const FEATURE_TOGGLE_SRVC_URL = ___Constants["FEATURE_TOGGLE_SRVC_URL"];
23
23
  const FEATURE_TOGGLES = ___Constants["FEATURE_TOGGLES"];
24
24
  const HttpHelper = _interopRequireDefault(__HttpHelper);
25
+ const featureToggles = new Map();
26
+
25
27
  /**
26
- * Checks if feature is enabled or not.
28
+ * Utility to check if a feature toggle is enabled.
27
29
  *
28
- * @param {string} sToggleId - feature toggle id
29
- * @returns {boolean} - returns true if feature is enabled.
30
+ * @param key The key of the feature toggle to check.
31
+ * @returns Promise resolving to `true` if the feature toggle is enabled, `false` otherwise.
30
32
  */
31
- const isFeatureEnabled = function (sToggleId) {
33
+ const isFeatureEnabled = function (key) {
32
34
  try {
33
- return Promise.resolve(_catch(function () {
34
- return Promise.resolve(_getFeatureToggles()).then(function (aFeatureToggles) {
35
- const oToggle = aFeatureToggles.find(oFeatureToggle => {
36
- return oFeatureToggle.ToggleId === sToggleId;
37
- });
38
- return !oToggle || oToggle.State === "" ? false : true;
35
+ function _temp2() {
36
+ return featureToggles.get(key) || false;
37
+ }
38
+ if (featureToggles.has(key)) {
39
+ return Promise.resolve(featureToggles.get(key));
40
+ }
41
+ const _temp = _catch(function () {
42
+ const unavailableToggles = Object.values(FEATURE_TOGGLES).filter(toggle => !featureToggles.has(toggle));
43
+ return Promise.resolve(getFeatureToggles(unavailableToggles)).then(function (_getFeatureToggles) {
44
+ _getFeatureToggles.forEach(toggle => featureToggles.set(toggle.key, toggle.enabled));
39
45
  });
40
46
  }, function (error) {
41
- Log.error("Unable to load feature toggles: " + error.message);
42
- return false;
43
- }));
47
+ Log.error("Error fetching feature toggles", error.message);
48
+ featureToggles.set(key, false);
49
+ });
50
+ return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
44
51
  } catch (e) {
45
52
  return Promise.reject(e);
46
53
  }
47
54
  };
48
55
 
49
56
  /**
50
- * Returns array of all feature toggles
57
+ * Utility to fetch feature toggles from the server.
51
58
  *
52
- * @returns {object[]} - returns array of all feature toggles.
59
+ * @param keys An array of feature toggle keys to fetch.
60
+ * @returns Promise resolving to an array of feature toggles.
53
61
  */
54
- const _getFeatureToggles = function () {
62
+ const getFeatureToggles = function (keys) {
55
63
  try {
56
- let sFeatureToggleUrl = FEATURE_TOGGLE_SRVC_URL + "?$filter=";
57
- const FEATURE_TOGGLE_KEYS = Object.keys(FEATURE_TOGGLES);
58
- const toggleFilter = FEATURE_TOGGLE_KEYS.map(sToggleKey => {
59
- return "ToggleId eq '" + FEATURE_TOGGLES[sToggleKey] + "'";
60
- }).join(" or ");
61
- sFeatureToggleUrl = sFeatureToggleUrl + "(" + toggleFilter + ")";
62
- return Promise.resolve(HttpHelper.GetJSON(sFeatureToggleUrl)).then(function (_HttpHelper$GetJSON) {
63
- const oResponse = _HttpHelper$GetJSON;
64
- if (oResponse?.error) {
65
- throw new Error(oResponse.error.message);
66
- }
67
- return oResponse?.value || [];
64
+ const filterExpression = `?$filter=(ToggleId eq '${keys.join("' or ToggleId eq '")}')`;
65
+ return Promise.resolve(HttpHelper.GetJSON(FEATURE_TOGGLE_SRVC_URL + filterExpression)).then(function (_HttpHelper$GetJSON) {
66
+ const {
67
+ value = []
68
+ } = _HttpHelper$GetJSON;
69
+ return keys.map(key => ({
70
+ key,
71
+ enabled: value.some(toggle => toggle.ToggleId === key && toggle.State.toUpperCase() === "X")
72
+ }));
68
73
  });
69
74
  } catch (e) {
70
75
  return Promise.reject(e);
@@ -103,7 +108,6 @@ sap.ui.define(["sap/base/Log", "sap/ushell/Container", "./Constants", "./HttpHel
103
108
  __esModule: true
104
109
  };
105
110
  __exports.isFeatureEnabled = isFeatureEnabled;
106
- __exports._getFeatureToggles = _getFeatureToggles;
107
111
  __exports.isNavigationSupportedForFeature = isNavigationSupportedForFeature;
108
112
  return __exports;
109
113
  });
@@ -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","isFeatureEnabled","sToggleId","Promise","resolve","_getFeatureToggles","aFeatureToggles","oToggle","find","oFeatureToggle","ToggleId","State","error","message","reject","sFeatureToggleUrl","FEATURE_TOGGLE_KEYS","Object","keys","toggleFilter","map","sToggleKey","join","GetJSON","_HttpHelper$GetJSON","oResponse","Error","value","isNavigationSupportedForFeature","featureToggle","intent","isFeatureToggleEnabled","getServiceAsync","navigationService","isNavigationSupported","supported","warning","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 IFeatureToggles {\n\tTASK_ACTIONS: string;\n}\n\n/**\n * Checks if feature is enabled or not.\n *\n * @param {string} sToggleId - feature toggle id\n * @returns {boolean} - returns true if feature is enabled.\n */\nexport const isFeatureEnabled = async (sToggleId: string) => {\n\ttry {\n\t\tconst aFeatureToggles = await _getFeatureToggles();\n\t\tconst oToggle = aFeatureToggles.find((oFeatureToggle) => {\n\t\t\treturn oFeatureToggle.ToggleId === sToggleId;\n\t\t});\n\t\treturn !oToggle || oToggle.State === \"\" ? false : true;\n\t} catch (error) {\n\t\tLog.error(\"Unable to load feature toggles: \" + (error as Error).message);\n\t\treturn false;\n\t}\n};\n\n/**\n * Returns array of all feature toggles\n *\n * @returns {object[]} - returns array of all feature toggles.\n */\nexport const _getFeatureToggles = async () => {\n\tlet sFeatureToggleUrl = FEATURE_TOGGLE_SRVC_URL + \"?$filter=\";\n\tconst FEATURE_TOGGLE_KEYS = Object.keys(FEATURE_TOGGLES);\n\tconst toggleFilter = FEATURE_TOGGLE_KEYS.map((sToggleKey) => {\n\t\treturn \"ToggleId eq '\" + FEATURE_TOGGLES[sToggleKey as keyof IFeatureToggles] + \"'\";\n\t}).join(\" or \");\n\tsFeatureToggleUrl = sFeatureToggleUrl + \"(\" + toggleFilter + \")\";\n\tconst oResponse = (await HttpHelper.GetJSON(sFeatureToggleUrl)) as {\n\t\terror: { message: string };\n\t\tvalue: Array<{ ToggleId: string; State: string }>;\n\t};\n\tif (oResponse?.error) {\n\t\tthrow new Error(oResponse.error.message);\n\t}\n\treturn oResponse?.value || [];\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: string, 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-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":"AAAA;AACA;AACA;AACA;AAHAA,GAAA,CAAAC,EAAA,CAAAC,MAAA,oFAAAC,GAAA,EAAAC,SAAA,EAAAC,YAAA,EAAAC,YAAA;EAAA;;EAAA,SAAAC,uBAAAC,GAAA;IAAA,OAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,CAAAE,OAAA,mBAAAF,GAAA,CAAAE,OAAA,GAAAF,GAAA;EAAA;EAkjBO,SAAAG,OAAgBC,IAAI,EAAEC,OAAO,EAAE;IACrC,IAAI;MACH,IAAIC,MAAM,GAAGF,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC,OAAMG,CAAC,EAAE;MACV,OAAOF,OAAO,CAACE,CAAC,CAAC;IAClB;IACA,IAAID,MAAM,IAAIA,MAAM,CAACE,IAAI,EAAE;MAC1B,OAAOF,MAAM,CAACE,IAAI,CAAC,KAAK,CAAC,EAAEH,OAAO,CAAC;IACpC;IACA,OAAOC,MAAM;EACd;EAAC,MArjBQG,uBAAuB,GAAAZ,YAAA;EAAA,MAAEa,eAAe,GAAAb,YAAA;EAAA,MAC1Cc,UAAU,GAAAZ,sBAAA,CAAAD,YAAA;EAcjB,MAAMc,cAAc,GAAG,IAAIC,GAAG,CAA2B,CAAC;;EAE1D;AACA;AACA;AACA;AACA;AACA;EACO,MAAMC,gBAAgB,YAAAA,CAAUC,GAAoB;IAAA,IAAuB;MAAA,SAAAC,OAAA;QAajF,OAAOJ,cAAc,CAACK,GAAG,CAACF,GAAG,CAAC,IAAI,KAAK;MAAC;MAZxC,IAAIH,cAAc,CAACM,GAAG,CAACH,GAAG,CAAC,EAAE;QAC5B,OAAAI,OAAA,CAAAC,OAAA,CAAOR,cAAc,CAACK,GAAG,CAACF,GAAG,CAAC;MAC/B;MAAC,MAAAM,KAAA,GAAAlB,MAAA,aAEG;QACH,MAAMmB,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAACd,eAAe,CAAC,CAACe,MAAM,CAAEC,MAAM,IAAK,CAACd,cAAc,CAACM,GAAG,CAACQ,MAAM,CAAC,CAAC;QAAC,OAAAP,OAAA,CAAAC,OAAA,CACnGO,iBAAiB,CAACL,kBAAkB,CAAC,EAAAd,IAAA,WAAAoB,kBAAA;UAA5CA,kBAAA,CAA8CC,OAAO,CAAEH,MAAM,IAAKd,cAAc,CAACkB,GAAG,CAACJ,MAAM,CAACX,GAAG,EAAEW,MAAM,CAACK,OAAO,CAAC,CAAC;QAAC;MACnH,CAAC,YAAQC,KAAK,EAAE;QACfrC,GAAG,CAACqC,KAAK,CAAC,gCAAgC,EAAGA,KAAK,CAAWC,OAAO,CAAC;QACrErB,cAAc,CAACkB,GAAG,CAACf,GAAG,EAAE,KAAK,CAAC;MAC/B,CAAC;MAAA,OAAAI,OAAA,CAAAC,OAAA,CAAAC,KAAA,IAAAA,KAAA,CAAAb,IAAA,GAAAa,KAAA,CAAAb,IAAA,CAAAQ,MAAA,IAAAA,MAAA,CAAAK,KAAA;IAGF,CAAC,QAAAd,CAAA;MAAA,OAAAY,OAAA,CAAAe,MAAA,CAAA3B,CAAA;IAAA;EAAA;;EAED;AACA;AACA;AACA;AACA;AACA;EACA,MAAMoB,iBAAiB,YAAAA,CAAUQ,IAAuB;IAAA,IAA+B;MACtF,MAAMC,gBAAgB,GAAG,0BAA0BD,IAAI,CAACE,IAAI,CAAC,oBAAoB,CAAC,IAAI;MAAC,OAAAlB,OAAA,CAAAC,OAAA,CACzDT,UAAU,CAAC2B,OAAO,CAAC7B,uBAAuB,GAAG2B,gBAAgB,CAAC,EAAA5B,IAAA,WAAA+B,mBAAA;QAA5F,MAAM;UAAEC,KAAK,GAAG;QAAG,CAAC,GAAAD,mBAAkG;QAEtH,OAAOJ,IAAI,CAACM,GAAG,CAAE1B,GAAG,KAAM;UACzBA,GAAG;UACHgB,OAAO,EAAES,KAAK,CAACE,IAAI,CAAEhB,MAAM,IAAKA,MAAM,CAACiB,QAAQ,KAAK5B,GAAG,IAAIW,MAAM,CAACkB,KAAK,CAACC,WAAW,CAAC,CAAC,KAAK,GAAG;QAC9F,CAAC,CAAC,CAAC;MAAC;IACL,CAAC,QAAAtC,CAAA;MAAA,OAAAY,OAAA,CAAAe,MAAA,CAAA3B,CAAA;IAAA;EAAA;;EAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACO,MAAMuC,+BAA+B,YAAAA,CAAUC,aAA8B,EAAEC,MAAc;IAAA,IAAuB;MAAA,OAAA7B,OAAA,CAAAC,OAAA,CAAAjB,MAAA,aACtH;QAAA,OAAAgB,OAAA,CAAAC,OAAA,CACkCN,gBAAgB,CAACiC,aAAa,CAAC,EAAAvC,IAAA,WAA9DyC,sBAAsB;UAAA,OACvBA,sBAAsB,GAAA9B,OAAA,CAAAC,OAAA,CAGKxB,SAAS,CAACsD,eAAe,CAAa,YAAY,CAAC,EAAA1C,IAAA,WAA7E2C,iBAAiB;YAAA,OAAAhC,OAAA,CAAAC,OAAA,CACO+B,iBAAiB,CAACC,qBAAqB,CAAC,CAACJ,MAAM,CAAC,CAAC,EAAAxC,IAAA,WAAzE,CAAC;cAAE6C;YAAU,CAAC,CAAC;cAErB,OAAOA,SAAS,IAAI,KAAK;YAAC;UAAA,KALlB,KAAK;QAAA;MAMd,CAAC,YAAQrB,KAAK,EAAE;QACfrC,GAAG,CAAC2D,OAAO,CAACtB,KAAK,YAAYuB,KAAK,GAAGvB,KAAK,CAACC,OAAO,GAAGuB,MAAM,CAACxB,KAAK,CAAC,CAAC;QACnE,OAAO,KAAK;MACb,CAAC;IACF,CAAC,QAAAzB,CAAA;MAAA,OAAAY,OAAA,CAAAe,MAAA,CAAA3B,CAAA;IAAA;EAAA;EAAC,IAAAkD,SAAA;IAAAxD,UAAA;EAAA;EAAAwD,SAAA,CAAA3C,gBAAA,GAAAA,gBAAA;EAAA2C,SAAA,CAAAX,+BAAA,GAAAA,+BAAA;EAAA,OAAAW,SAAA;AAAA","ignoreList":[]}
@@ -8,49 +8,56 @@ import Navigation, { Target } from "sap/ushell/services/Navigation";
8
8
  import { FEATURE_TOGGLE_SRVC_URL, FEATURE_TOGGLES } from "./Constants";
9
9
  import HttpHelper from "./HttpHelper";
10
10
 
11
- interface IFeatureToggles {
12
- TASK_ACTIONS: string;
11
+ interface FeatureToggle {
12
+ key: FEATURE_TOGGLES;
13
+ enabled: boolean;
13
14
  }
14
15
 
16
+ interface FeatureToggleResponse {
17
+ value: {
18
+ ToggleId: FEATURE_TOGGLES;
19
+ State: string;
20
+ }[];
21
+ }
22
+
23
+ const featureToggles = new Map<FEATURE_TOGGLES, boolean>();
24
+
15
25
  /**
16
- * Checks if feature is enabled or not.
26
+ * Utility to check if a feature toggle is enabled.
17
27
  *
18
- * @param {string} sToggleId - feature toggle id
19
- * @returns {boolean} - returns true if feature is enabled.
28
+ * @param key The key of the feature toggle to check.
29
+ * @returns Promise resolving to `true` if the feature toggle is enabled, `false` otherwise.
20
30
  */
21
- export const isFeatureEnabled = async (sToggleId: string) => {
31
+ export const isFeatureEnabled = async (key: FEATURE_TOGGLES): Promise<boolean> => {
32
+ if (featureToggles.has(key)) {
33
+ return featureToggles.get(key)!;
34
+ }
35
+
22
36
  try {
23
- const aFeatureToggles = await _getFeatureToggles();
24
- const oToggle = aFeatureToggles.find((oFeatureToggle) => {
25
- return oFeatureToggle.ToggleId === sToggleId;
26
- });
27
- return !oToggle || oToggle.State === "" ? false : true;
37
+ const unavailableToggles = Object.values(FEATURE_TOGGLES).filter((toggle) => !featureToggles.has(toggle));
38
+ (await getFeatureToggles(unavailableToggles)).forEach((toggle) => featureToggles.set(toggle.key, toggle.enabled));
28
39
  } catch (error) {
29
- Log.error("Unable to load feature toggles: " + (error as Error).message);
30
- return false;
40
+ Log.error("Error fetching feature toggles", (error as Error).message);
41
+ featureToggles.set(key, false);
31
42
  }
43
+
44
+ return featureToggles.get(key) || false;
32
45
  };
33
46
 
34
47
  /**
35
- * Returns array of all feature toggles
48
+ * Utility to fetch feature toggles from the server.
36
49
  *
37
- * @returns {object[]} - returns array of all feature toggles.
50
+ * @param keys An array of feature toggle keys to fetch.
51
+ * @returns Promise resolving to an array of feature toggles.
38
52
  */
39
- export const _getFeatureToggles = async () => {
40
- let sFeatureToggleUrl = FEATURE_TOGGLE_SRVC_URL + "?$filter=";
41
- const FEATURE_TOGGLE_KEYS = Object.keys(FEATURE_TOGGLES);
42
- const toggleFilter = FEATURE_TOGGLE_KEYS.map((sToggleKey) => {
43
- return "ToggleId eq '" + FEATURE_TOGGLES[sToggleKey as keyof IFeatureToggles] + "'";
44
- }).join(" or ");
45
- sFeatureToggleUrl = sFeatureToggleUrl + "(" + toggleFilter + ")";
46
- const oResponse = (await HttpHelper.GetJSON(sFeatureToggleUrl)) as {
47
- error: { message: string };
48
- value: Array<{ ToggleId: string; State: string }>;
49
- };
50
- if (oResponse?.error) {
51
- throw new Error(oResponse.error.message);
52
- }
53
- return oResponse?.value || [];
53
+ const getFeatureToggles = async (keys: FEATURE_TOGGLES[]): Promise<FeatureToggle[]> => {
54
+ const filterExpression = `?$filter=(ToggleId eq '${keys.join("' or ToggleId eq '")}')`;
55
+ const { value = [] } = (await HttpHelper.GetJSON(FEATURE_TOGGLE_SRVC_URL + filterExpression)) as FeatureToggleResponse;
56
+
57
+ return keys.map((key) => ({
58
+ key,
59
+ enabled: value.some((toggle) => toggle.ToggleId === key && toggle.State.toUpperCase() === "X")
60
+ }));
54
61
  };
55
62
 
56
63
  /**
@@ -61,7 +68,7 @@ export const _getFeatureToggles = async () => {
61
68
  * @param action Action name for the semantic object.
62
69
  * @returns Promise resolving to `true` if navigation is supported and feature is enabled.
63
70
  */
64
- export const isNavigationSupportedForFeature = async (featureToggle: string, intent: Target): Promise<boolean> => {
71
+ export const isNavigationSupportedForFeature = async (featureToggle: FEATURE_TOGGLES, intent: Target): Promise<boolean> => {
65
72
  try {
66
73
  const isFeatureToggleEnabled = await isFeatureEnabled(featureToggle);
67
74
  if (!isFeatureToggleEnabled) {
@@ -9,10 +9,7 @@ declare module "sap/cux/home/utils/HttpHelper" {
9
9
  * @author SAP SE
10
10
  * @version 0.0.1
11
11
  * @since 1.121.0
12
- *
13
12
  * @private
14
- * @experimental Since 1.121
15
- * @hidden
16
13
  *
17
14
  * @alias sap.cux.home.utils.HttpHelper
18
15
  */
@@ -36,6 +33,13 @@ declare module "sap/cux/home/utils/HttpHelper" {
36
33
  * @returns {Promise<unknown>} Promise that resolves with the JSON data response
37
34
  */
38
35
  static GetJSON(url: string): Promise<unknown>;
36
+ /**
37
+ * Get Method for Multiple Requests
38
+ *
39
+ * @param {string[]} urls - An array of URLs to get from
40
+ * @returns {Promise<(string | object)[]>} Promise that resolves with the responses from the URLs
41
+ */
42
+ static GetMultipleRequests(urls?: string[]): Promise<(string | object)[]>;
39
43
  }
40
44
  }
41
45
  //# sourceMappingURL=HttpHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HttpHelper.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/HttpHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAM/C,OAAO,UAAU,MAAM,oBAAoB,CAAC;IAG5C;;;;;;;;;;;;;;;OAeG;IAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;QACjD,OAAO;QAIP;;;WAGG;QACH,OAAO,CAAC,MAAM,CAAC,cAAc;QAmB7B;;;;;WAKG;eACW,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAoBlE;;;;WAIG;eACW,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;KASpD;CAEA"}
1
+ {"version":3,"file":"HttpHelper.d.ts","sourceRoot":"../../../../../..","sources":["src/sap/cux/home/utils/HttpHelper.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,+BAA+B,CAAC;IAM/C,OAAO,UAAU,MAAM,oBAAoB,CAAC;IAG5C;;;;;;;;;;;;OAYG;IAEH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;QACjD,OAAO;QAIP;;;WAGG;QACH,OAAO,CAAC,MAAM,CAAC,cAAc;QAmB7B;;;;;WAKG;eACW,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QAoBlE;;;;WAIG;eACW,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;QASpD;;;;;WAKG;eACiB,mBAAmB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;KAmB1F;CAEA"}