@strapi/admin 5.0.0-alpha.0 → 5.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs → AdminSeatInfo-20pkL95U.mjs} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-l78lfIiY.mjs.map → AdminSeatInfo-20pkL95U.mjs.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js → AdminSeatInfo-TjK5LW2b.js} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-YaA1q_2d.js.map → AdminSeatInfo-TjK5LW2b.js.map} +1 -1
  5. package/dist/_chunks/{ApplicationInfoPage-PHLA1Ysy.js → ApplicationInfoPage-1OdKMDYH.js} +11 -12
  6. package/dist/_chunks/ApplicationInfoPage-1OdKMDYH.js.map +1 -0
  7. package/dist/_chunks/{ApplicationInfoPage-Zn5JU2zd.mjs → ApplicationInfoPage-ed6y9Q-B.mjs} +12 -13
  8. package/dist/_chunks/ApplicationInfoPage-ed6y9Q-B.mjs.map +1 -0
  9. package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs → AuthResponse-Hxop00n-.mjs} +2 -2
  10. package/dist/_chunks/{AuthResponse-1aYRF7_3.mjs.map → AuthResponse-Hxop00n-.mjs.map} +1 -1
  11. package/dist/_chunks/{AuthResponse-7NG3smr6.js → AuthResponse-sca_wjIN.js} +2 -2
  12. package/dist/_chunks/{AuthResponse-7NG3smr6.js.map → AuthResponse-sca_wjIN.js.map} +1 -1
  13. package/dist/_chunks/{AuthenticatedLayout-5r4rzKeb.js → AuthenticatedLayout-PPlOm7kb.js} +14 -11
  14. package/dist/_chunks/AuthenticatedLayout-PPlOm7kb.js.map +1 -0
  15. package/dist/_chunks/{AuthenticatedLayout-a7KNOdln.mjs → AuthenticatedLayout-knXNB2i2.mjs} +11 -9
  16. package/dist/_chunks/AuthenticatedLayout-knXNB2i2.mjs.map +1 -0
  17. package/dist/_chunks/{ComponentConfigurationPage-pb8HhFAg.mjs → ComponentConfigurationPage-okd3XovW.mjs} +11 -12
  18. package/dist/_chunks/ComponentConfigurationPage-okd3XovW.mjs.map +1 -0
  19. package/dist/_chunks/{ComponentConfigurationPage-R3qV_iCR.js → ComponentConfigurationPage-xZMDjeVf.js} +11 -12
  20. package/dist/_chunks/ComponentConfigurationPage-xZMDjeVf.js.map +1 -0
  21. package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js → CreateActionEE-E6YNdAVx.js} +2 -2
  22. package/dist/_chunks/{CreateActionEE-a2zWCIpQ.js.map → CreateActionEE-E6YNdAVx.js.map} +1 -1
  23. package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs → CreateActionEE-PaZYJ410.mjs} +2 -2
  24. package/dist/_chunks/{CreateActionEE-hb4Pr-SD.mjs.map → CreateActionEE-PaZYJ410.mjs.map} +1 -1
  25. package/dist/_chunks/{CreatePage-nl6zKkKT.js → CreatePage-1Oi4-aR6.js} +17 -16
  26. package/dist/_chunks/CreatePage-1Oi4-aR6.js.map +1 -0
  27. package/dist/_chunks/{CreatePage-UC4uBFUR.mjs → CreatePage-6458K0l9.mjs} +3 -3
  28. package/dist/_chunks/{CreatePage-UC4uBFUR.mjs.map → CreatePage-6458K0l9.mjs.map} +1 -1
  29. package/dist/_chunks/{CreatePage-NSKUL8l4.js → CreatePage-DmNFNVN9.js} +10 -9
  30. package/dist/_chunks/CreatePage-DmNFNVN9.js.map +1 -0
  31. package/dist/_chunks/{CreatePage-Bil0egZ1.mjs → CreatePage-P1F3dkB3.mjs} +17 -16
  32. package/dist/_chunks/CreatePage-P1F3dkB3.mjs.map +1 -0
  33. package/dist/_chunks/{CreatePage-h5L6QP47.mjs → CreatePage-PM_r99U5.mjs} +10 -9
  34. package/dist/_chunks/CreatePage-PM_r99U5.mjs.map +1 -0
  35. package/dist/_chunks/{CreatePage-MAI6XyNg.js → CreatePage-hlkPO2Cv.js} +3 -3
  36. package/dist/_chunks/{CreatePage-MAI6XyNg.js.map → CreatePage-hlkPO2Cv.js.map} +1 -1
  37. package/dist/_chunks/{CreateView-kc0iM0LS.js → CreateView-AWmN1xWJ.js} +3 -3
  38. package/dist/_chunks/{CreateView-kc0iM0LS.js.map → CreateView-AWmN1xWJ.js.map} +1 -1
  39. package/dist/_chunks/{CreateView-RVrFxAFt.mjs → CreateView-cTvLLIgu.mjs} +3 -3
  40. package/dist/_chunks/{CreateView-RVrFxAFt.mjs.map → CreateView-cTvLLIgu.mjs.map} +1 -1
  41. package/dist/_chunks/{CreateView-3DMhoCPN.js → CreateView-hUH4bf5k.js} +3 -3
  42. package/dist/_chunks/{CreateView-3DMhoCPN.js.map → CreateView-hUH4bf5k.js.map} +1 -1
  43. package/dist/_chunks/{CreateView-DuSt3AcE.mjs → CreateView-pBI75ZwZ.mjs} +3 -3
  44. package/dist/_chunks/{CreateView-DuSt3AcE.mjs.map → CreateView-pBI75ZwZ.mjs.map} +1 -1
  45. package/dist/_chunks/{EditConfigurationPage-y_TvxjZM.mjs → EditConfigurationPage-LItt0mJo.mjs} +10 -11
  46. package/dist/_chunks/EditConfigurationPage-LItt0mJo.mjs.map +1 -0
  47. package/dist/_chunks/{EditConfigurationPage-OpEZOvAG.js → EditConfigurationPage-PZ4yq1bM.js} +10 -11
  48. package/dist/_chunks/EditConfigurationPage-PZ4yq1bM.js.map +1 -0
  49. package/dist/_chunks/{EditPage-_swY0Hy-.mjs → EditPage--EPGgPNr.mjs} +11 -10
  50. package/dist/_chunks/EditPage--EPGgPNr.mjs.map +1 -0
  51. package/dist/_chunks/{EditPage-fDVAYmuS.mjs → EditPage-30rqjB1d.mjs} +16 -16
  52. package/dist/_chunks/EditPage-30rqjB1d.mjs.map +1 -0
  53. package/dist/_chunks/{EditPage-wfPrhkA7.mjs → EditPage-GRIZWtGz.mjs} +19 -18
  54. package/dist/_chunks/{EditPage-wfPrhkA7.mjs.map → EditPage-GRIZWtGz.mjs.map} +1 -1
  55. package/dist/_chunks/{EditPage-VoRR5DCQ.mjs → EditPage-MPNLCYgQ.mjs} +14 -14
  56. package/dist/_chunks/EditPage-MPNLCYgQ.mjs.map +1 -0
  57. package/dist/_chunks/{EditPage-QoDSqYYq.js → EditPage-RpzlPkkU.js} +19 -18
  58. package/dist/_chunks/{EditPage-QoDSqYYq.js.map → EditPage-RpzlPkkU.js.map} +1 -1
  59. package/dist/_chunks/{EditPage-9aK8IFXY.js → EditPage-W6hncyNY.js} +15 -15
  60. package/dist/_chunks/EditPage-W6hncyNY.js.map +1 -0
  61. package/dist/_chunks/{EditPage-A6olBfVm.js → EditPage-_N_lm93z.js} +13 -13
  62. package/dist/_chunks/EditPage-_N_lm93z.js.map +1 -0
  63. package/dist/_chunks/{EditPage-PpBP7TBo.js → EditPage-mU2WAH0F.js} +11 -10
  64. package/dist/_chunks/EditPage-mU2WAH0F.js.map +1 -0
  65. package/dist/_chunks/{EditView-EuUw_2zc.mjs → EditView-0lXpbgG0.mjs} +12 -12
  66. package/dist/_chunks/EditView-0lXpbgG0.mjs.map +1 -0
  67. package/dist/_chunks/{EditView-C_ynfmtW.js → EditView-wDP9PNQY.js} +11 -11
  68. package/dist/_chunks/EditView-wDP9PNQY.js.map +1 -0
  69. package/dist/_chunks/{EditViewPage-Z_e1dpbU.js → EditViewPage-0Pd8zBi7.js} +16 -15
  70. package/dist/_chunks/EditViewPage-0Pd8zBi7.js.map +1 -0
  71. package/dist/_chunks/{EditViewPage-xYzUSAwS.mjs → EditViewPage-R6diW-gL.mjs} +7 -7
  72. package/dist/_chunks/EditViewPage-R6diW-gL.mjs.map +1 -0
  73. package/dist/_chunks/{EditViewPage-XtJmgPi5.js → EditViewPage-ed0-10GO.js} +6 -6
  74. package/dist/_chunks/EditViewPage-ed0-10GO.js.map +1 -0
  75. package/dist/_chunks/{EditViewPage-8uPO5GWR.mjs → EditViewPage-uWYR_o8w.mjs} +15 -15
  76. package/dist/_chunks/EditViewPage-uWYR_o8w.mjs.map +1 -0
  77. package/dist/_chunks/{EventsTable-WP7PUujH.mjs → EventsTable-CqN6AzV9.mjs} +2 -2
  78. package/dist/_chunks/{EventsTable-WP7PUujH.mjs.map → EventsTable-CqN6AzV9.mjs.map} +1 -1
  79. package/dist/_chunks/{EventsTable-hI0aV29K.js → EventsTable-R_AHW6Z4.js} +2 -2
  80. package/dist/_chunks/{EventsTable-hI0aV29K.js.map → EventsTable-R_AHW6Z4.js.map} +1 -1
  81. package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js → FieldTypeIcon-1WDWx0cR.js} +2 -2
  82. package/dist/_chunks/{FieldTypeIcon-OeDSkshr.js.map → FieldTypeIcon-1WDWx0cR.js.map} +1 -1
  83. package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs → FieldTypeIcon-rAK1gg9p.mjs} +2 -2
  84. package/dist/_chunks/{FieldTypeIcon-Is5Qjngf.mjs.map → FieldTypeIcon-rAK1gg9p.mjs.map} +1 -1
  85. package/dist/_chunks/{Filters-xVuf1kg6.js → Filters-f6ghLf0Z.js} +2 -2
  86. package/dist/_chunks/{Filters-xVuf1kg6.js.map → Filters-f6ghLf0Z.js.map} +1 -1
  87. package/dist/_chunks/{Filters-tMd2Q5jg.mjs → Filters-rPaxqj4F.mjs} +2 -2
  88. package/dist/_chunks/{Filters-tMd2Q5jg.mjs.map → Filters-rPaxqj4F.mjs.map} +1 -1
  89. package/dist/_chunks/{Form-sZKjSFQC.mjs → Form-QOZA9Aq6.mjs} +6 -5
  90. package/dist/_chunks/Form-QOZA9Aq6.mjs.map +1 -0
  91. package/dist/_chunks/{Form-EiK_H9BI.js → Form-eqzCPjSo.js} +6 -5
  92. package/dist/_chunks/Form-eqzCPjSo.js.map +1 -0
  93. package/dist/_chunks/{History-1AF4LH3c.mjs → History-Eq4_WQPf.mjs} +4 -4
  94. package/dist/_chunks/{History-1AF4LH3c.mjs.map → History-Eq4_WQPf.mjs.map} +1 -1
  95. package/dist/_chunks/{History-V_ik1IL0.js → History-j00hpmXV.js} +4 -4
  96. package/dist/_chunks/{History-V_ik1IL0.js.map → History-j00hpmXV.js.map} +1 -1
  97. package/dist/_chunks/{HomePage-yrIp1-eG.js → HomePage-3IVOMrYf.js} +6 -5
  98. package/dist/_chunks/HomePage-3IVOMrYf.js.map +1 -0
  99. package/dist/_chunks/{HomePage-zL7HPV7A.js → HomePage-79fqDlve.js} +3 -3
  100. package/dist/_chunks/{HomePage-zL7HPV7A.js.map → HomePage-79fqDlve.js.map} +1 -1
  101. package/dist/_chunks/{HomePage-C6Ivli1q.mjs → HomePage-O-TRGX5T.mjs} +6 -5
  102. package/dist/_chunks/HomePage-O-TRGX5T.mjs.map +1 -0
  103. package/dist/_chunks/{HomePage-7Xva17wM.mjs → HomePage-gTElgmEK.mjs} +3 -3
  104. package/dist/_chunks/{HomePage-7Xva17wM.mjs.map → HomePage-gTElgmEK.mjs.map} +1 -1
  105. package/dist/_chunks/{InputRenderer-RMnWnPI4.js → InputRenderer-AVDw8MeU.js} +12 -19
  106. package/dist/_chunks/InputRenderer-AVDw8MeU.js.map +1 -0
  107. package/dist/_chunks/{InputRenderer-iP1kRki4.mjs → InputRenderer-bJwYq9ga.mjs} +13 -20
  108. package/dist/_chunks/InputRenderer-bJwYq9ga.mjs.map +1 -0
  109. package/dist/_chunks/{InstalledPluginsPage-PrMyistN.js → InstalledPluginsPage-FkR2xkQz.js} +5 -5
  110. package/dist/_chunks/InstalledPluginsPage-FkR2xkQz.js.map +1 -0
  111. package/dist/_chunks/{InstalledPluginsPage-7m_FfOGl.mjs → InstalledPluginsPage-R2hVFPZl.mjs} +6 -6
  112. package/dist/_chunks/InstalledPluginsPage-R2hVFPZl.mjs.map +1 -0
  113. package/dist/_chunks/{Layout-9Li8e-qi.js → Layout-G49-Vc5u.js} +5 -5
  114. package/dist/_chunks/Layout-G49-Vc5u.js.map +1 -0
  115. package/dist/_chunks/{Layout-EDS3Yv8X.mjs → Layout-cV6Se3U9.mjs} +6 -6
  116. package/dist/_chunks/Layout-cV6Se3U9.mjs.map +1 -0
  117. package/dist/_chunks/{Layout-DC68R0Fa.js → Layout-jweb3cF3.js} +2 -2
  118. package/dist/_chunks/{Layout-DC68R0Fa.js.map → Layout-jweb3cF3.js.map} +1 -1
  119. package/dist/_chunks/{Layout-tDfvrUZo.mjs → Layout-omCNy92r.mjs} +2 -2
  120. package/dist/_chunks/{Layout-tDfvrUZo.mjs.map → Layout-omCNy92r.mjs.map} +1 -1
  121. package/dist/_chunks/{ListConfigurationPage-Gl8AA-2t.js → ListConfigurationPage-70qtv4Ci.js} +11 -10
  122. package/dist/_chunks/ListConfigurationPage-70qtv4Ci.js.map +1 -0
  123. package/dist/_chunks/{ListConfigurationPage-7O7HiJjG.mjs → ListConfigurationPage-PrJNO_6y.mjs} +11 -10
  124. package/dist/_chunks/ListConfigurationPage-PrJNO_6y.mjs.map +1 -0
  125. package/dist/_chunks/{ListPage-em8KMoKx.js → ListPage-2lswUYQN.js} +14 -14
  126. package/dist/_chunks/ListPage-2lswUYQN.js.map +1 -0
  127. package/dist/_chunks/{ListPage-_i7RNkUF.js → ListPage-78Cv8Vfq.js} +8 -8
  128. package/dist/_chunks/ListPage-78Cv8Vfq.js.map +1 -0
  129. package/dist/_chunks/{ListPage-skKuhRrN.js → ListPage-7dZ3nYvc.js} +12 -11
  130. package/dist/_chunks/ListPage-7dZ3nYvc.js.map +1 -0
  131. package/dist/_chunks/{ListPage-DZBRIMkE.mjs → ListPage-Cvn3WbMH.mjs} +14 -14
  132. package/dist/_chunks/ListPage-Cvn3WbMH.mjs.map +1 -0
  133. package/dist/_chunks/{ListPage-0eDZZ7Zw.js → ListPage-Ms6egnF5.js} +3 -3
  134. package/dist/_chunks/{ListPage-0eDZZ7Zw.js.map → ListPage-Ms6egnF5.js.map} +1 -1
  135. package/dist/_chunks/{ListPage-Ky2tG2bd.mjs → ListPage-NmUS_cOz.mjs} +9 -9
  136. package/dist/_chunks/ListPage-NmUS_cOz.mjs.map +1 -0
  137. package/dist/_chunks/{ListPage-NdzVJ_Ed.js → ListPage-Pf5LxUYn.js} +11 -9
  138. package/dist/_chunks/ListPage-Pf5LxUYn.js.map +1 -0
  139. package/dist/_chunks/{ListPage-cBvO_gYR.mjs → ListPage-Q81SX0vA.mjs} +3 -3
  140. package/dist/_chunks/{ListPage-cBvO_gYR.mjs.map → ListPage-Q81SX0vA.mjs.map} +1 -1
  141. package/dist/_chunks/{ListPage-RlY1nro4.mjs → ListPage-edro79m2.mjs} +9 -9
  142. package/dist/_chunks/ListPage-edro79m2.mjs.map +1 -0
  143. package/dist/_chunks/{ListPage-1q5Fi4W9.mjs → ListPage-mAUCZIg8.mjs} +14 -13
  144. package/dist/_chunks/ListPage-mAUCZIg8.mjs.map +1 -0
  145. package/dist/_chunks/{ListPage-God7L19W.mjs → ListPage-xFkcmM1b.mjs} +15 -15
  146. package/dist/_chunks/ListPage-xFkcmM1b.mjs.map +1 -0
  147. package/dist/_chunks/{ListPage-aElBcYPH.js → ListPage-yymh17qi.js} +13 -13
  148. package/dist/_chunks/ListPage-yymh17qi.js.map +1 -0
  149. package/dist/_chunks/{ListView-hm-mjZ8N.mjs → ListView--43zLiHW.mjs} +11 -11
  150. package/dist/_chunks/ListView--43zLiHW.mjs.map +1 -0
  151. package/dist/_chunks/{ListView--mxDKrnG.js → ListView-YtMAQnXL.js} +10 -10
  152. package/dist/_chunks/ListView-YtMAQnXL.js.map +1 -0
  153. package/dist/_chunks/{ListView-vP-PjR4p.js → ListView-nfA6o3qO.js} +9 -9
  154. package/dist/_chunks/ListView-nfA6o3qO.js.map +1 -0
  155. package/dist/_chunks/{ListView-QEgFV6dm.mjs → ListView-qPiKeCxj.mjs} +10 -10
  156. package/dist/_chunks/ListView-qPiKeCxj.mjs.map +1 -0
  157. package/dist/_chunks/{ListViewPage-NiwpwxBR.js → ListViewPage-Ys7-G2XX.js} +9 -9
  158. package/dist/_chunks/ListViewPage-Ys7-G2XX.js.map +1 -0
  159. package/dist/_chunks/{ListViewPage-xOVa04T_.mjs → ListViewPage-fPFonK_X.mjs} +10 -10
  160. package/dist/_chunks/ListViewPage-fPFonK_X.mjs.map +1 -0
  161. package/dist/_chunks/{Login-IFCsIrab.mjs → Login-6kXI90Vy.mjs} +2 -2
  162. package/dist/_chunks/{Login-IFCsIrab.mjs.map → Login-6kXI90Vy.mjs.map} +1 -1
  163. package/dist/_chunks/{Login-0FtP5Ck_.js → Login-Ge3DZEpr.js} +2 -2
  164. package/dist/_chunks/{Login-0FtP5Ck_.js.map → Login-Ge3DZEpr.js.map} +1 -1
  165. package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs → MagicLinkEE-HXWaLr0K.mjs} +3 -3
  166. package/dist/_chunks/{MagicLinkEE-eaU4kQ6o.mjs.map → MagicLinkEE-HXWaLr0K.mjs.map} +1 -1
  167. package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js → MagicLinkEE-sXtA2gUK.js} +3 -3
  168. package/dist/_chunks/{MagicLinkEE-S7dXBaH0.js.map → MagicLinkEE-sXtA2gUK.js.map} +1 -1
  169. package/dist/_chunks/{MarketplacePage-f0ZrC_p8.mjs → MarketplacePage-hVOJ9_0k.mjs} +15 -20
  170. package/dist/_chunks/MarketplacePage-hVOJ9_0k.mjs.map +1 -0
  171. package/dist/_chunks/{MarketplacePage-zSQ_GRnZ.js → MarketplacePage-s8KDwNwK.js} +14 -19
  172. package/dist/_chunks/MarketplacePage-s8KDwNwK.js.map +1 -0
  173. package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js → NoContentTypePage-7YEcgsE3.js} +2 -2
  174. package/dist/_chunks/{NoContentTypePage-_XU8B8oQ.js.map → NoContentTypePage-7YEcgsE3.js.map} +1 -1
  175. package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs → NoContentTypePage-szvJnQKF.mjs} +2 -2
  176. package/dist/_chunks/{NoContentTypePage-ER4yVLjV.mjs.map → NoContentTypePage-szvJnQKF.mjs.map} +1 -1
  177. package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js → NoPermissionsPage-UX-5msLb.js} +2 -2
  178. package/dist/_chunks/{NoPermissionsPage-5A4Hwjad.js.map → NoPermissionsPage-UX-5msLb.js.map} +1 -1
  179. package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs → NoPermissionsPage-pqQFFlXa.mjs} +2 -2
  180. package/dist/_chunks/{NoPermissionsPage-DcFRsCHz.mjs.map → NoPermissionsPage-pqQFFlXa.mjs.map} +1 -1
  181. package/dist/_chunks/{Permissions-Ke5fqSQ2.mjs → Permissions-NUaDxULo.mjs} +3 -3
  182. package/dist/_chunks/Permissions-NUaDxULo.mjs.map +1 -0
  183. package/dist/_chunks/{Permissions--rdF1ZKQ.js → Permissions-a0IZJ8dM.js} +6 -5
  184. package/dist/_chunks/Permissions-a0IZJ8dM.js.map +1 -0
  185. package/dist/_chunks/{PrivateRoute-GLTcdbu8.js → PrivateRoute-KGxyTa5b.js} +2 -2
  186. package/dist/_chunks/{PrivateRoute-GLTcdbu8.js.map → PrivateRoute-KGxyTa5b.js.map} +1 -1
  187. package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs → PrivateRoute-eP4-pBby.mjs} +2 -2
  188. package/dist/_chunks/{PrivateRoute-dWrZb-9J.mjs.map → PrivateRoute-eP4-pBby.mjs.map} +1 -1
  189. package/dist/_chunks/{ProfilePage-bE7txhNu.mjs → ProfilePage-LXB-_EZ8.mjs} +14 -14
  190. package/dist/_chunks/ProfilePage-LXB-_EZ8.mjs.map +1 -0
  191. package/dist/_chunks/{ProfilePage-EEcNKnGH.js → ProfilePage-MBCGqbc_.js} +13 -13
  192. package/dist/_chunks/ProfilePage-MBCGqbc_.js.map +1 -0
  193. package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js → ReviewWorkflowsColumn-Ancp7-x3.js} +2 -2
  194. package/dist/_chunks/{ReviewWorkflowsColumn-hJRkAN5a.js.map → ReviewWorkflowsColumn-Ancp7-x3.js.map} +1 -1
  195. package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs → ReviewWorkflowsColumn-WzYpj2O3.mjs} +2 -2
  196. package/dist/_chunks/{ReviewWorkflowsColumn-FDxVKdto.mjs.map → ReviewWorkflowsColumn-WzYpj2O3.mjs.map} +1 -1
  197. package/dist/_chunks/{SelectRoles-Iih1yeTu.mjs → SelectRoles-Dxz_rAaT.mjs} +6 -9
  198. package/dist/_chunks/SelectRoles-Dxz_rAaT.mjs.map +1 -0
  199. package/dist/_chunks/{SelectRoles-XK5HcBdP.js → SelectRoles-Pr2wqehq.js} +5 -8
  200. package/dist/_chunks/SelectRoles-Pr2wqehq.js.map +1 -0
  201. package/dist/_chunks/{SingleSignOnPage-uURRsIxP.js → SingleSignOnPage-4dK4id8H.js} +9 -9
  202. package/dist/_chunks/SingleSignOnPage-4dK4id8H.js.map +1 -0
  203. package/dist/_chunks/{SingleSignOnPage-vOeDxBfa.mjs → SingleSignOnPage-gxgIeURz.mjs} +10 -10
  204. package/dist/_chunks/SingleSignOnPage-gxgIeURz.mjs.map +1 -0
  205. package/dist/_chunks/{Table-k6gVR2KH.mjs → Table-NiTkS4IC.mjs} +2 -2
  206. package/dist/_chunks/{Table-k6gVR2KH.mjs.map → Table-NiTkS4IC.mjs.map} +1 -1
  207. package/dist/_chunks/{Table-VsNr4Mha.js → Table-_9gVkGGi.js} +2 -2
  208. package/dist/_chunks/{Table-VsNr4Mha.js.map → Table-_9gVkGGi.js.map} +1 -1
  209. package/dist/_chunks/{TokenTypeSelect-QN_bDdss.js → TokenTypeSelect-3aWUm1cW.js} +10 -10
  210. package/dist/_chunks/TokenTypeSelect-3aWUm1cW.js.map +1 -0
  211. package/dist/_chunks/{TokenTypeSelect-Z9iyoteG.mjs → TokenTypeSelect-jtfCyMMZ.mjs} +10 -10
  212. package/dist/_chunks/TokenTypeSelect-jtfCyMMZ.mjs.map +1 -0
  213. package/dist/_chunks/{UseCasePage-qJwKBweD.mjs → UseCasePage-0qXYZ8kt.mjs} +7 -6
  214. package/dist/_chunks/UseCasePage-0qXYZ8kt.mjs.map +1 -0
  215. package/dist/_chunks/{UseCasePage-xAlTWOcX.js → UseCasePage-QK-B8FfM.js} +7 -6
  216. package/dist/_chunks/UseCasePage-QK-B8FfM.js.map +1 -0
  217. package/dist/_chunks/{apiTokens-dGGyJI-w.mjs → apiTokens-DO6vkoyd.mjs} +2 -2
  218. package/dist/_chunks/{apiTokens-dGGyJI-w.mjs.map → apiTokens-DO6vkoyd.mjs.map} +1 -1
  219. package/dist/_chunks/{apiTokens-b3w4qO8B.js → apiTokens-TayNdk_V.js} +2 -2
  220. package/dist/_chunks/{apiTokens-b3w4qO8B.js.map → apiTokens-TayNdk_V.js.map} +1 -1
  221. package/dist/_chunks/{constants-ruIkLWCb.mjs → constants-FEW7x2Od.mjs} +2 -2
  222. package/dist/_chunks/{constants-ruIkLWCb.mjs.map → constants-FEW7x2Od.mjs.map} +1 -1
  223. package/dist/_chunks/{constants-PHXhIuUs.js → constants-RZp8o_c4.js} +2 -2
  224. package/dist/_chunks/{constants-PHXhIuUs.js.map → constants-RZp8o_c4.js.map} +1 -1
  225. package/dist/_chunks/{constants-IZEgEoW9.js → constants-Xd-X3SCR.js} +3 -3
  226. package/dist/_chunks/{constants-IZEgEoW9.js.map → constants-Xd-X3SCR.js.map} +1 -1
  227. package/dist/_chunks/{constants-WjN6I3sL.mjs → constants-_T5uxsuv.mjs} +3 -3
  228. package/dist/_chunks/{constants-WjN6I3sL.mjs.map → constants-_T5uxsuv.mjs.map} +1 -1
  229. package/dist/_chunks/{index-ibtz273H.js → index-ejSDPT-T.js} +151 -326
  230. package/dist/_chunks/index-ejSDPT-T.js.map +1 -0
  231. package/dist/_chunks/{index-5ZvCaCyY.mjs → index-hjUhNUvw.mjs} +279 -455
  232. package/dist/_chunks/index-hjUhNUvw.mjs.map +1 -0
  233. package/dist/_chunks/{selectors-TFKI8arF.js → selectors-T2YIN4Fb.js} +2 -2
  234. package/dist/_chunks/{selectors-TFKI8arF.js.map → selectors-T2YIN4Fb.js.map} +1 -1
  235. package/dist/_chunks/{selectors-JBxTdRJK.mjs → selectors-uLWxH-jN.mjs} +2 -2
  236. package/dist/_chunks/{selectors-JBxTdRJK.mjs.map → selectors-uLWxH-jN.mjs.map} +1 -1
  237. package/dist/_chunks/{transferTokens-G-suI4pp.js → transferTokens-T-kGMb3U.js} +2 -2
  238. package/dist/_chunks/{transferTokens-G-suI4pp.js.map → transferTokens-T-kGMb3U.js.map} +1 -1
  239. package/dist/_chunks/{transferTokens-4KlyXDql.mjs → transferTokens-jdkk-sPx.mjs} +2 -2
  240. package/dist/_chunks/{transferTokens-4KlyXDql.mjs.map → transferTokens-jdkk-sPx.mjs.map} +1 -1
  241. package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs → useAdminRoles-QJQS1BCd.mjs} +2 -2
  242. package/dist/_chunks/{useAdminRoles-7_YWhmkQ.mjs.map → useAdminRoles-QJQS1BCd.mjs.map} +1 -1
  243. package/dist/_chunks/{useAdminRoles-o4dxsCcY.js → useAdminRoles-SnzC_mvy.js} +2 -2
  244. package/dist/_chunks/{useAdminRoles-o4dxsCcY.js.map → useAdminRoles-SnzC_mvy.js.map} +1 -1
  245. package/dist/_chunks/{useContentTypes-dRoMxL8c.js → useContentTypes-Lpg-eJmK.js} +5 -4
  246. package/dist/_chunks/useContentTypes-Lpg-eJmK.js.map +1 -0
  247. package/dist/_chunks/{useContentTypes-x6OLbsWe.mjs → useContentTypes-U-n1-lz0.mjs} +5 -4
  248. package/dist/_chunks/useContentTypes-U-n1-lz0.mjs.map +1 -0
  249. package/dist/_chunks/{useLicenseLimitNotification-BaSsY40x.js → useLicenseLimitNotification-Hjv_LKmp.js} +6 -5
  250. package/dist/_chunks/useLicenseLimitNotification-Hjv_LKmp.js.map +1 -0
  251. package/dist/_chunks/{useLicenseLimitNotification-wzvrsJoL.mjs → useLicenseLimitNotification-yJHxF4YO.mjs} +6 -5
  252. package/dist/_chunks/useLicenseLimitNotification-yJHxF4YO.mjs.map +1 -0
  253. package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs → useReviewWorkflows-0rQx2KxS.mjs} +2 -2
  254. package/dist/_chunks/{useReviewWorkflows-PAvhwNm3.mjs.map → useReviewWorkflows-0rQx2KxS.mjs.map} +1 -1
  255. package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js → useReviewWorkflows-QoSEilRp.js} +2 -2
  256. package/dist/_chunks/{useReviewWorkflows-3SKYABe_.js.map → useReviewWorkflows-QoSEilRp.js.map} +1 -1
  257. package/dist/_chunks/{useSyncRbac-f7CCq_yt.js → useSyncRbac-hZJWbmmY.js} +2 -2
  258. package/dist/_chunks/{useSyncRbac-f7CCq_yt.js.map → useSyncRbac-hZJWbmmY.js.map} +1 -1
  259. package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs → useSyncRbac-wVgN6XIc.mjs} +2 -2
  260. package/dist/_chunks/{useSyncRbac-Kt8Li0Yf.mjs.map → useSyncRbac-wVgN6XIc.mjs.map} +1 -1
  261. package/dist/_chunks/{useWebhooks-Fhm21I_2.js → useWebhooks-1ZG0V0Mc.js} +2 -2
  262. package/dist/_chunks/{useWebhooks-Fhm21I_2.js.map → useWebhooks-1ZG0V0Mc.js.map} +1 -1
  263. package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs → useWebhooks-WBwti5Jl.mjs} +2 -2
  264. package/dist/_chunks/{useWebhooks-6rWM4vzd.mjs.map → useWebhooks-WBwti5Jl.mjs.map} +1 -1
  265. package/dist/_chunks/{validateWorkflow-DlwU9a4N.mjs → validateWorkflow-23kb45Oa.mjs} +6 -5
  266. package/dist/_chunks/validateWorkflow-23kb45Oa.mjs.map +1 -0
  267. package/dist/_chunks/{validateWorkflow-1g4fl4e7.js → validateWorkflow-MaEpFiHz.js} +9 -8
  268. package/dist/_chunks/validateWorkflow-MaEpFiHz.js.map +1 -0
  269. package/dist/_chunks/{validation-NckIpCgz.js → validation-7cD0kJHF.js} +2 -2
  270. package/dist/_chunks/{validation-NckIpCgz.js.map → validation-7cD0kJHF.js.map} +1 -1
  271. package/dist/_chunks/{validation-aaWzg0nE.mjs → validation-rilbXPnt.mjs} +2 -2
  272. package/dist/_chunks/{validation-aaWzg0nE.mjs.map → validation-rilbXPnt.mjs.map} +1 -1
  273. package/dist/admin/index.js +1 -4
  274. package/dist/admin/index.js.map +1 -1
  275. package/dist/admin/index.mjs +22 -25
  276. package/dist/admin/src/content-manager/pages/EditView/components/DocumentActions.d.ts +1 -2
  277. package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +2 -2
  278. package/dist/admin/src/index.d.ts +0 -2
  279. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +1 -1
  280. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +1 -1
  281. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
  282. package/dist/admin/src/utils/users.d.ts +1 -1
  283. package/dist/server/src/validation/api-tokens.d.ts +27 -4
  284. package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
  285. package/dist/server/src/validation/authentication/register.d.ts +8 -2
  286. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  287. package/dist/server/src/validation/permission.d.ts +53 -4
  288. package/dist/server/src/validation/permission.d.ts.map +1 -1
  289. package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
  290. package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
  291. package/dist/server/src/validation/role.d.ts +23 -6
  292. package/dist/server/src/validation/role.d.ts.map +1 -1
  293. package/dist/server/src/validation/transfer/token.d.ts +23 -4
  294. package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
  295. package/dist/server/src/validation/user.d.ts +56 -8
  296. package/dist/server/src/validation/user.d.ts.map +1 -1
  297. package/package.json +19 -12
  298. package/dist/_chunks/ApplicationInfoPage-PHLA1Ysy.js.map +0 -1
  299. package/dist/_chunks/ApplicationInfoPage-Zn5JU2zd.mjs.map +0 -1
  300. package/dist/_chunks/AuthenticatedLayout-5r4rzKeb.js.map +0 -1
  301. package/dist/_chunks/AuthenticatedLayout-a7KNOdln.mjs.map +0 -1
  302. package/dist/_chunks/ComponentConfigurationPage-R3qV_iCR.js.map +0 -1
  303. package/dist/_chunks/ComponentConfigurationPage-pb8HhFAg.mjs.map +0 -1
  304. package/dist/_chunks/CreatePage-Bil0egZ1.mjs.map +0 -1
  305. package/dist/_chunks/CreatePage-NSKUL8l4.js.map +0 -1
  306. package/dist/_chunks/CreatePage-h5L6QP47.mjs.map +0 -1
  307. package/dist/_chunks/CreatePage-nl6zKkKT.js.map +0 -1
  308. package/dist/_chunks/EditConfigurationPage-OpEZOvAG.js.map +0 -1
  309. package/dist/_chunks/EditConfigurationPage-y_TvxjZM.mjs.map +0 -1
  310. package/dist/_chunks/EditPage-9aK8IFXY.js.map +0 -1
  311. package/dist/_chunks/EditPage-A6olBfVm.js.map +0 -1
  312. package/dist/_chunks/EditPage-PpBP7TBo.js.map +0 -1
  313. package/dist/_chunks/EditPage-VoRR5DCQ.mjs.map +0 -1
  314. package/dist/_chunks/EditPage-_swY0Hy-.mjs.map +0 -1
  315. package/dist/_chunks/EditPage-fDVAYmuS.mjs.map +0 -1
  316. package/dist/_chunks/EditView-C_ynfmtW.js.map +0 -1
  317. package/dist/_chunks/EditView-EuUw_2zc.mjs.map +0 -1
  318. package/dist/_chunks/EditViewPage-8uPO5GWR.mjs.map +0 -1
  319. package/dist/_chunks/EditViewPage-XtJmgPi5.js.map +0 -1
  320. package/dist/_chunks/EditViewPage-Z_e1dpbU.js.map +0 -1
  321. package/dist/_chunks/EditViewPage-xYzUSAwS.mjs.map +0 -1
  322. package/dist/_chunks/Form-EiK_H9BI.js.map +0 -1
  323. package/dist/_chunks/Form-sZKjSFQC.mjs.map +0 -1
  324. package/dist/_chunks/HomePage-C6Ivli1q.mjs.map +0 -1
  325. package/dist/_chunks/HomePage-yrIp1-eG.js.map +0 -1
  326. package/dist/_chunks/InputRenderer-RMnWnPI4.js.map +0 -1
  327. package/dist/_chunks/InputRenderer-iP1kRki4.mjs.map +0 -1
  328. package/dist/_chunks/InstalledPluginsPage-7m_FfOGl.mjs.map +0 -1
  329. package/dist/_chunks/InstalledPluginsPage-PrMyistN.js.map +0 -1
  330. package/dist/_chunks/Layout-9Li8e-qi.js.map +0 -1
  331. package/dist/_chunks/Layout-EDS3Yv8X.mjs.map +0 -1
  332. package/dist/_chunks/ListConfigurationPage-7O7HiJjG.mjs.map +0 -1
  333. package/dist/_chunks/ListConfigurationPage-Gl8AA-2t.js.map +0 -1
  334. package/dist/_chunks/ListPage-1q5Fi4W9.mjs.map +0 -1
  335. package/dist/_chunks/ListPage-DZBRIMkE.mjs.map +0 -1
  336. package/dist/_chunks/ListPage-God7L19W.mjs.map +0 -1
  337. package/dist/_chunks/ListPage-Ky2tG2bd.mjs.map +0 -1
  338. package/dist/_chunks/ListPage-NdzVJ_Ed.js.map +0 -1
  339. package/dist/_chunks/ListPage-RlY1nro4.mjs.map +0 -1
  340. package/dist/_chunks/ListPage-_i7RNkUF.js.map +0 -1
  341. package/dist/_chunks/ListPage-aElBcYPH.js.map +0 -1
  342. package/dist/_chunks/ListPage-em8KMoKx.js.map +0 -1
  343. package/dist/_chunks/ListPage-skKuhRrN.js.map +0 -1
  344. package/dist/_chunks/ListView--mxDKrnG.js.map +0 -1
  345. package/dist/_chunks/ListView-QEgFV6dm.mjs.map +0 -1
  346. package/dist/_chunks/ListView-hm-mjZ8N.mjs.map +0 -1
  347. package/dist/_chunks/ListView-vP-PjR4p.js.map +0 -1
  348. package/dist/_chunks/ListViewPage-NiwpwxBR.js.map +0 -1
  349. package/dist/_chunks/ListViewPage-xOVa04T_.mjs.map +0 -1
  350. package/dist/_chunks/MarketplacePage-f0ZrC_p8.mjs.map +0 -1
  351. package/dist/_chunks/MarketplacePage-zSQ_GRnZ.js.map +0 -1
  352. package/dist/_chunks/Permissions--rdF1ZKQ.js.map +0 -1
  353. package/dist/_chunks/Permissions-Ke5fqSQ2.mjs.map +0 -1
  354. package/dist/_chunks/ProfilePage-EEcNKnGH.js.map +0 -1
  355. package/dist/_chunks/ProfilePage-bE7txhNu.mjs.map +0 -1
  356. package/dist/_chunks/SelectRoles-Iih1yeTu.mjs.map +0 -1
  357. package/dist/_chunks/SelectRoles-XK5HcBdP.js.map +0 -1
  358. package/dist/_chunks/SingleSignOnPage-uURRsIxP.js.map +0 -1
  359. package/dist/_chunks/SingleSignOnPage-vOeDxBfa.mjs.map +0 -1
  360. package/dist/_chunks/TokenTypeSelect-QN_bDdss.js.map +0 -1
  361. package/dist/_chunks/TokenTypeSelect-Z9iyoteG.mjs.map +0 -1
  362. package/dist/_chunks/UseCasePage-qJwKBweD.mjs.map +0 -1
  363. package/dist/_chunks/UseCasePage-xAlTWOcX.js.map +0 -1
  364. package/dist/_chunks/index-5ZvCaCyY.mjs.map +0 -1
  365. package/dist/_chunks/index-ibtz273H.js.map +0 -1
  366. package/dist/_chunks/useContentTypes-dRoMxL8c.js.map +0 -1
  367. package/dist/_chunks/useContentTypes-x6OLbsWe.mjs.map +0 -1
  368. package/dist/_chunks/useLicenseLimitNotification-BaSsY40x.js.map +0 -1
  369. package/dist/_chunks/useLicenseLimitNotification-wzvrsJoL.mjs.map +0 -1
  370. package/dist/_chunks/validateWorkflow-1g4fl4e7.js.map +0 -1
  371. package/dist/_chunks/validateWorkflow-DlwU9a4N.mjs.map +0 -1
  372. package/dist/admin/src/features/AppInfo.d.ts +0 -22
  373. package/dist/admin/src/features/Notifications.d.ts +0 -47
  374. package/dist/admin/src/utils/getYupInnerErrors.d.ts +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-edro79m2.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useNotification } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\n};\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification, useQueryParams } from '@strapi/helper-plugin';\n\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'warning', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'warning', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n ContentLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Main,\n Typography,\n} from '@strapi/design-system';\nimport { useFocusWhenNavigate, useQueryParams, useRBAC } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n {\n name: 'actions',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.actions',\n defaultMessage: 'Actions',\n }),\n sortable: false,\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n />\n <HeaderLayout\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <ActionLayout\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <ContentLayout>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n case 'actions':\n return null;\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...auditLogs?.pagination} defaultPageSize={24}>\n <Pagination.PageSize options={['12', '24', '50', '100']} />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
@@ -3,15 +3,15 @@ import * as React from "react";
3
3
  import { createElement } from "react";
4
4
  import { Flex, Loader, Table, TFooter, Thead, Tr, Th, Typography, VisuallyHidden, Tbody, Td, IconButton } from "@strapi/design-system";
5
5
  import { Link, LinkButton } from "@strapi/design-system/v2";
6
- import { useRBAC, onRowClick } from "@strapi/helper-plugin";
6
+ import { useNotification, useRBAC, onRowClick } from "@strapi/helper-plugin";
7
7
  import { Plus, Pencil, Trash } from "@strapi/icons";
8
8
  import { useIntl } from "react-intl";
9
- import { useNavigate } from "react-router-dom";
9
+ import { useNavigate, NavLink } from "react-router-dom";
10
10
  import styled from "styled-components";
11
- import { q as useTypedSelector, P as Page, d as useTracking, o as useAPIErrorHandler, u as useNotification, G as useLicenseLimits, H as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, J as ConfirmDialog, K as LimitsModal } from "./index-5ZvCaCyY.mjs";
12
- import { u as useContentTypes } from "./useContentTypes-x6OLbsWe.mjs";
13
- import { H as Header, R as Root } from "./Layout-tDfvrUZo.mjs";
14
- import { u as useReviewWorkflows } from "./useReviewWorkflows-PAvhwNm3.mjs";
11
+ import { o as useTypedSelector, P as Page, c as useTracking, m as useAPIErrorHandler, C as useLicenseLimits, D as CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME, E as ConfirmDialog, G as LimitsModal } from "./index-hjUhNUvw.mjs";
12
+ import { u as useContentTypes } from "./useContentTypes-U-n1-lz0.mjs";
13
+ import { H as Header, R as Root } from "./Layout-omCNy92r.mjs";
14
+ import { u as useReviewWorkflows } from "./useReviewWorkflows-0rQx2KxS.mjs";
15
15
  const ActionLink = styled(Link)`
16
16
  align-items: center;
17
17
  height: ${32 / 16}rem;
@@ -47,7 +47,7 @@ const ReviewWorkflowsListView = () => {
47
47
  const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();
48
48
  const { meta, workflows, isLoading, deleteWorkflow } = useReviewWorkflows();
49
49
  const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
50
- const { toggleNotification } = useNotification();
50
+ const toggleNotification = useNotification();
51
51
  const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();
52
52
  const permissions = useTypedSelector(
53
53
  (state) => state.admin_app.permissions.settings?.["review-workflows"]
@@ -76,7 +76,7 @@ const ReviewWorkflowsListView = () => {
76
76
  const res = await deleteWorkflow({ id: workflowToDelete });
77
77
  if ("error" in res) {
78
78
  toggleNotification({
79
- type: "danger",
79
+ type: "warning",
80
80
  message: formatAPIError(res.error)
81
81
  });
82
82
  return;
@@ -84,15 +84,15 @@ const ReviewWorkflowsListView = () => {
84
84
  setWorkflowToDelete(null);
85
85
  toggleNotification({
86
86
  type: "success",
87
- message: formatMessage({ id: "notification.success.deleted", defaultMessage: "Deleted" })
87
+ message: { id: "notification.success.deleted", defaultMessage: "Deleted" }
88
88
  });
89
89
  } catch (error) {
90
90
  toggleNotification({
91
- type: "danger",
92
- message: formatMessage({
91
+ type: "warning",
92
+ message: {
93
93
  id: "notification.error.unexpected",
94
94
  defaultMessage: "An error occurred"
95
- })
95
+ }
96
96
  });
97
97
  }
98
98
  };
@@ -112,6 +112,7 @@ const ReviewWorkflowsListView = () => {
112
112
  {
113
113
  startIcon: /* @__PURE__ */ jsx(Plus, {}),
114
114
  size: "S",
115
+ as: NavLink,
115
116
  to: "/settings/review-workflows/create",
116
117
  onClick: (event) => {
117
118
  if (numberOfWorkflows && meta && meta?.workflowCount >= parseInt(numberOfWorkflows, 10)) {
@@ -275,4 +276,4 @@ export {
275
276
  ProtectedReviewWorkflowsPage,
276
277
  ReviewWorkflowsListView
277
278
  };
278
- //# sourceMappingURL=ListPage-1q5Fi4W9.mjs.map
279
+ //# sourceMappingURL=ListPage-mAUCZIg8.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-mAUCZIg8.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Flex,\n IconButton,\n Loader,\n Table,\n Thead,\n Tbody,\n Tr,\n Td,\n TFooter,\n Th,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Link, LinkButton } from '@strapi/design-system/v2';\nimport { onRowClick, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ConfirmDialog } from '../../../../../../../admin/src/components/ConfirmDialog';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useTracking } from '../../../../../../../admin/src/features/Tracking';\nimport { useAPIErrorHandler } from '../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useContentTypes } from '../../../../../../../admin/src/hooks/useContentTypes';\nimport { useLicenseLimits } from '../../../../hooks/useLicenseLimits';\n\nimport * as Layout from './components/Layout';\nimport { LimitsModal } from './components/LimitsModal';\nimport { CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME } from './constants';\nimport { useReviewWorkflows } from './hooks/useReviewWorkflows';\n\nconst ActionLink = styled(Link)`\n align-items: center;\n height: ${32 / 16}rem;\n display: flex;\n justify-content: center;\n padding: ${({ theme }) => `${theme.spaces[2]}}`};\n width: ${32 / 16}rem;\n\n svg {\n height: ${12 / 16}rem;\n width: ${12 / 16}rem;\n\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\nexport const ReviewWorkflowsListView = () => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const [workflowToDelete, setWorkflowToDelete] = React.useState<string | null>(null);\n const [showLimitModal, setShowLimitModal] = React.useState<boolean>(false);\n const { collectionTypes, singleTypes, isLoading: isLoadingModels } = useContentTypes();\n const { meta, workflows, isLoading, deleteWorkflow } = useReviewWorkflows();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const { getFeature, isLoading: isLicenseLoading } = useLicenseLimits();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']\n );\n const {\n allowedActions: { canCreate, canDelete },\n } = useRBAC(permissions);\n\n const limits = getFeature('review-workflows');\n const numberOfWorkflows = limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] as string;\n\n const getContentTypeDisplayName = (uid: string) => {\n const contentType = [...collectionTypes, ...singleTypes].find(\n (contentType) => contentType.uid === uid\n );\n\n return contentType?.info.displayName;\n };\n\n const handleDeleteWorkflow = (workflowId: string) => {\n setWorkflowToDelete(workflowId);\n };\n\n const toggleConfirmDeleteDialog = () => {\n setWorkflowToDelete(null);\n };\n\n const handleConfirmDeleteDialog = async () => {\n if (!workflowToDelete) return;\n\n try {\n const res = await deleteWorkflow({ id: workflowToDelete });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWorkflowToDelete(null);\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.deleted', defaultMessage: 'Deleted' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error.unexpected',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n /**\n * If the current license has a limit:\n * check if the total count of workflows or stages exceeds that limit and display\n * the limits modal on page load. It can be closed by the user, but the\n * API will throw an error in case they try to create a new workflow or update the\n * stages.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now). In case they are trying to create the 201st workflow/ stage\n * the API will throw an error.\n *\n */\n React.useEffect(() => {\n if (!isLoading && !isLicenseLoading) {\n if (numberOfWorkflows && meta && meta?.workflowCount > parseInt(numberOfWorkflows, 10)) {\n setShowLimitModal(true);\n }\n }\n }, [isLicenseLoading, isLoading, meta, meta?.workflowCount, numberOfWorkflows]);\n\n return (\n <>\n <Layout.Header\n primaryAction={\n canCreate && (\n <LinkButton\n startIcon={<Plus />}\n size=\"S\"\n as={NavLink}\n // @ts-expect-error – the `as` prop does not correctly infer the props of it's component\n to=\"/settings/review-workflows/create\"\n onClick={(event) => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit. If so,\n * prevent the navigation and show the limits overlay.\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n numberOfWorkflows &&\n meta &&\n meta?.workflowCount >= parseInt(numberOfWorkflows, 10)\n ) {\n event.preventDefault();\n setShowLimitModal(true);\n } else {\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </LinkButton>\n )\n }\n subtitle={formatMessage({\n id: 'Settings.review-workflows.list.page.subtitle',\n defaultMessage: 'Manage your content review process',\n })}\n title={formatMessage({\n id: 'Settings.review-workflows.list.page.title',\n defaultMessage: 'Review Workflows',\n })}\n />\n\n <Layout.Root>\n {isLoading || isLoadingModels ? (\n <Flex justifyContent=\"center\">\n <Loader>\n {formatMessage({\n id: 'Settings.review-workflows.page.list.isLoading',\n defaultMessage: 'Workflows are loading',\n })}\n </Loader>\n </Flex>\n ) : (\n <Table\n colCount={3}\n footer={\n // TODO: we should be able to use a link here instead of an (inaccessible onClick) handler\n canCreate && (\n <TFooter\n icon={<Plus />}\n onClick={() => {\n /**\n * If the current license has a workflow limit:\n * check if the total count of workflows exceeds that limit\n *\n * If the current license does not have a limit (e.g. offline license):\n * allow the user to navigate to the create-view. In case they exceed the\n * current hard-limit of 200 they will see an error thrown by the API.\n */\n\n if (\n numberOfWorkflows &&\n meta &&\n meta?.workflowCount >= parseInt(numberOfWorkflows, 10)\n ) {\n setShowLimitModal(true);\n } else {\n navigate('/settings/review-workflows/create');\n trackUsage('willCreateWorkflow');\n }\n }}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.create',\n defaultMessage: 'Create new workflow',\n })}\n </TFooter>\n )\n }\n rowCount={1}\n >\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.name.title',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.stages.title',\n defaultMessage: 'Stages',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\">\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.contentTypes.title',\n defaultMessage: 'Content Types',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.list.column.actions.title',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n\n <Tbody>\n {workflows?.map((workflow) => (\n <Tr\n {...onRowClick({\n fn(event) {\n const el = event.target as HTMLElement;\n // Abort row onClick event when the user click on the delete button\n if (el.nodeName === 'BUTTON') {\n return;\n }\n\n navigate(`/settings/review-workflows/${workflow.id}`);\n },\n })}\n key={`workflow-${workflow.id}`}\n >\n <Td width={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {workflow.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{workflow.stages.length}</Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {(workflow?.contentTypes ?? []).map(getContentTypeDisplayName).join(', ')}\n </Typography>\n </Td>\n <Td>\n <Flex alignItems=\"center\" justifyContent=\"end\">\n <ActionLink\n // @ts-expect-error – the `as` prop does not correctly infer the props of it's component\n to={`/settings/review-workflows/${workflow.id}`}\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.edit.label',\n defaultMessage: 'Edit {name}',\n },\n { name: workflow.name }\n )}\n >\n <Pencil />\n </ActionLink>\n\n {workflows.length > 1 && canDelete && (\n <IconButton\n aria-label={formatMessage(\n {\n id: 'Settings.review-workflows.list.page.list.column.actions.delete.label',\n defaultMessage: 'Delete {name}',\n },\n { name: 'Default workflow' }\n )}\n icon={<Trash />}\n noBorder\n onClick={() => {\n handleDeleteWorkflow(String(workflow.id));\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n )}\n\n <ConfirmDialog\n isOpen={!!workflowToDelete}\n onClose={toggleConfirmDeleteDialog}\n onConfirm={handleConfirmDeleteDialog}\n >\n {formatMessage({\n id: 'Settings.review-workflows.list.page.delete.confirm.body',\n defaultMessage:\n 'If you remove this worfklow, all stage-related information will be removed for this content-type. Are you sure you want to remove it?',\n })}\n </ConfirmDialog>\n\n <LimitsModal.Root isOpen={showLimitModal} onClose={() => setShowLimitModal(false)}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'Settings.review-workflows.list.page.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n </Layout.Root>\n </>\n );\n};\n\nexport const ProtectedReviewWorkflowsPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['review-workflows']?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ReviewWorkflowsListView />\n </Page.Protect>\n );\n};\n"],"names":["contentType","Layout.Header","Layout.Root"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { Button, ModalLayout, ModalHeader, ModalBody, Flex, Box, Typography, Grid, GridItem, ModalFooter, Main, HeaderLayout, ActionLayout, ContentLayout, IconButton, Status } from "@strapi/design-system";
4
- import { useRBAC, useFocusWhenNavigate } from "@strapi/helper-plugin";
4
+ import { useNotification, useRBAC, useFocusWhenNavigate } from "@strapi/helper-plugin";
5
5
  import { Envelop, Pencil, Trash } from "@strapi/icons";
6
6
  import * as qs from "qs";
7
7
  import { Helmet } from "react-helmet";
8
8
  import { useIntl } from "react-intl";
9
9
  import { useNavigate, useLocation, NavLink } from "react-router-dom";
10
- import { F as Filters } from "./Filters-tMd2Q5jg.mjs";
11
- import { p as errorsTrads, u as useNotification, o as useAPIErrorHandler, m as useEnterprise, bc as useCreateUserMutation, F as Form, I as InputRenderer, w as isBaseQueryError, q as useTypedSelector, P as Page, B as useAdminUsers, bd as useDeleteManyUsersMutation, aR as SearchInput, T as Table, g as getDisplayName, y as Pagination } from "./index-5ZvCaCyY.mjs";
10
+ import { F as Filters } from "./Filters-rPaxqj4F.mjs";
11
+ import { n as errorsTrads, m as useAPIErrorHandler, k as useEnterprise, b9 as useCreateUserMutation, F as Form, I as InputRenderer, t as isBaseQueryError, o as useTypedSelector, P as Page, y as useAdminUsers, ba as useDeleteManyUsersMutation, aO as SearchInput, T as Table, i as getDisplayName, w as Pagination } from "./index-hjUhNUvw.mjs";
12
12
  import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
13
13
  import * as yup from "yup";
14
- import { M as MagicLinkCE, S as SelectRoles } from "./SelectRoles-Iih1yeTu.mjs";
14
+ import { M as MagicLinkCE, S as SelectRoles } from "./SelectRoles-Dxz_rAaT.mjs";
15
15
  const CreateActionCE = ({ onClick }) => {
16
16
  const { formatMessage } = useIntl();
17
17
  return /* @__PURE__ */ jsx(Button, { onClick, startIcon: /* @__PURE__ */ jsx(Envelop, {}), size: "S", children: formatMessage({
@@ -23,7 +23,7 @@ const ModalForm = ({ onToggle }) => {
23
23
  const [currentStep, setStep] = React.useState("create");
24
24
  const [registrationToken, setRegistrationToken] = React.useState("");
25
25
  const { formatMessage } = useIntl();
26
- const { toggleNotification } = useNotification();
26
+ const toggleNotification = useNotification();
27
27
  const {
28
28
  _unstableFormatAPIError: formatAPIError,
29
29
  _unstableFormatValidationErrors: formatValidationErrors
@@ -53,7 +53,7 @@ const ModalForm = ({ onToggle }) => {
53
53
  );
54
54
  const MagicLink = useEnterprise(
55
55
  MagicLinkCE,
56
- async () => (await import("./MagicLinkEE-eaU4kQ6o.mjs")).MagicLinkEE
56
+ async () => (await import("./MagicLinkEE-HXWaLr0K.mjs")).MagicLinkEE
57
57
  );
58
58
  const [createUser] = useCreateUserMutation();
59
59
  const headerTitle = formatMessage({
@@ -71,13 +71,13 @@ const ModalForm = ({ onToggle }) => {
71
71
  goNext();
72
72
  } else {
73
73
  toggleNotification({
74
- type: "danger",
75
- message: formatMessage({ id: "notification.error", defaultMessage: "An error occured" })
74
+ type: "warning",
75
+ message: { id: "notification.error", defaultMessage: "An error occured" }
76
76
  });
77
77
  }
78
78
  } else {
79
79
  toggleNotification({
80
- type: "danger",
80
+ type: "warning",
81
81
  message: formatAPIError(res.error)
82
82
  });
83
83
  if (isBaseQueryError(res.error) && res.error.name === "ValidationError") {
@@ -263,7 +263,7 @@ const ListPageCE = () => {
263
263
  allowedActions: { canCreate, canDelete, canRead }
264
264
  } = useRBAC(permissions.settings?.users);
265
265
  const navigate = useNavigate();
266
- const { toggleNotification } = useNotification();
266
+ const toggleNotification = useNotification();
267
267
  const { formatMessage } = useIntl();
268
268
  const { search } = useLocation();
269
269
  useFocusWhenNavigate();
@@ -271,7 +271,7 @@ const ListPageCE = () => {
271
271
  const { pagination, users = [] } = data ?? {};
272
272
  const CreateAction = useEnterprise(
273
273
  CreateActionCE,
274
- async () => (await import("./CreateActionEE-hb4Pr-SD.mjs")).CreateActionEE
274
+ async () => (await import("./CreateActionEE-PaZYJ410.mjs")).CreateActionEE
275
275
  );
276
276
  const headers = TABLE_HEADERS.map((header) => ({
277
277
  ...header,
@@ -290,14 +290,14 @@ const ListPageCE = () => {
290
290
  const res = await deleteAll({ ids });
291
291
  if ("error" in res) {
292
292
  toggleNotification({
293
- type: "danger",
293
+ type: "warning",
294
294
  message: formatAPIError(res.error)
295
295
  });
296
296
  }
297
297
  } catch (err) {
298
298
  console.error(err);
299
299
  toggleNotification({
300
- type: "danger",
300
+ type: "warning",
301
301
  message: formatMessage({
302
302
  id: "global.error",
303
303
  defaultMessage: "An error occurred"
@@ -520,7 +520,7 @@ const ListPage = () => {
520
520
  ListPageCE,
521
521
  async () => (
522
522
  // eslint-disable-next-line import/no-cycle
523
- (await import("./ListPage-cBvO_gYR.mjs")).UserListPageEE
523
+ (await import("./ListPage-Q81SX0vA.mjs")).UserListPageEE
524
524
  )
525
525
  );
526
526
  if (!UsersListPage) {
@@ -537,4 +537,4 @@ export {
537
537
  ListPageCE,
538
538
  ProtectedListPage
539
539
  };
540
- //# sourceMappingURL=ListPage-God7L19W.mjs.map
540
+ //# sourceMappingURL=ListPage-xFkcmM1b.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-xFkcmM1b.mjs","sources":["../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import { Button, ButtonProps } from '@strapi/design-system';\nimport { Envelop } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = ({ onClick }: CreateActionCEProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button onClick={onClick} startIcon={<Envelop />} size=\"S\">\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n};\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n ModalBody,\n ModalFooter,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useNotification } from '@strapi/helper-plugin';\nimport { Entity } from '@strapi/types';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const toggleNotification = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n\n goNext();\n } else {\n // This shouldn't happen, but just incase.\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n }\n } else {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <ModalLayout onClose={onToggle} labelledBy=\"title\">\n <ModalHeader>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </ModalHeader>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <ModalBody>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && <MagicLink registrationToken={registrationToken} />}\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" as=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid gap={5}>\n <GridItem col={6} xs={12}>\n <SelectRoles disabled={isDisabled} />\n </GridItem>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <GridItem key={field.name} col={size}>\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder ? formatMessage(field.placeholder) : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </GridItem>\n );\n });\n })}\n </Grid>\n </Box>\n </Box>\n </Flex>\n </ModalBody>\n <ModalFooter\n startActions={\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n }\n endActions={\n currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )\n }\n />\n </>\n );\n }}\n </Form>\n </ModalLayout>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Entity.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup.string().trim().required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n lastname: yup.string(),\n email: yup.string().email(translatedErrors.email).required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n ContentLayout,\n HeaderLayout,\n Main,\n Flex,\n Typography,\n Status,\n IconButton,\n} from '@strapi/design-system';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { Filters } from '../../../../components/Filters';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n useFocusWhenNavigate();\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n console.error(err);\n toggleNotification({\n type: 'warning',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () =>\n await handleDeleteAll([id]);\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Main aria-busy={isLoading}>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n />\n <HeaderLayout\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <ActionLayout\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <ContentLayout>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n forwardedAs={NavLink}\n // @ts-expect-error – This is an issue in the DS with the as prop not adding the inferred props to the component.\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user, formatMessage) }\n )}\n noBorder\n icon={<Pencil />}\n />\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user, formatMessage) }\n )}\n noBorder\n icon={<Trash />}\n />\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </ContentLayout>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n </Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n {isActive ? 'Active' : 'Inactive'}\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["translatedErrors"],"mappings":"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"}
@@ -9,8 +9,8 @@ const Icons = require("@strapi/icons");
9
9
  const reactHelmet = require("react-helmet");
10
10
  const reactIntl = require("react-intl");
11
11
  const reactRouterDom = require("react-router-dom");
12
- const index = require("./index-ibtz273H.js");
13
- const useWebhooks = require("./useWebhooks-Fhm21I_2.js");
12
+ const index = require("./index-ejSDPT-T.js");
13
+ const useWebhooks = require("./useWebhooks-1ZG0V0Mc.js");
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule)
16
16
  return e;
@@ -36,7 +36,7 @@ const ListPage = () => {
36
36
  const permissions = index.useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);
37
37
  const { formatMessage } = reactIntl.useIntl();
38
38
  const { _unstableFormatAPIError: formatAPIError } = index.useAPIErrorHandler();
39
- const { toggleNotification } = index.useNotification();
39
+ const toggleNotification = helperPlugin.useNotification();
40
40
  helperPlugin.useFocusWhenNavigate();
41
41
  const navigate = reactRouterDom.useNavigate();
42
42
  const {
@@ -54,7 +54,7 @@ const ListPage = () => {
54
54
  React__namespace.useEffect(() => {
55
55
  if (webhooksError) {
56
56
  toggleNotification({
57
- type: "danger",
57
+ type: "warning",
58
58
  message: formatAPIError(webhooksError)
59
59
  });
60
60
  return;
@@ -73,17 +73,17 @@ const ListPage = () => {
73
73
  const res = await updateWebhook(body);
74
74
  if ("error" in res) {
75
75
  toggleNotification({
76
- type: "danger",
76
+ type: "warning",
77
77
  message: formatAPIError(res.error)
78
78
  });
79
79
  }
80
80
  } catch {
81
81
  toggleNotification({
82
- type: "danger",
83
- message: formatMessage({
82
+ type: "warning",
83
+ message: {
84
84
  id: "notification.error",
85
85
  defaultMessage: "An error occurred"
86
- })
86
+ }
87
87
  });
88
88
  }
89
89
  };
@@ -94,7 +94,7 @@ const ListPage = () => {
94
94
  });
95
95
  if ("error" in res) {
96
96
  toggleNotification({
97
- type: "danger",
97
+ type: "warning",
98
98
  message: formatAPIError(res.error)
99
99
  });
100
100
  return;
@@ -102,11 +102,11 @@ const ListPage = () => {
102
102
  setWebhooksToDelete([]);
103
103
  } catch {
104
104
  toggleNotification({
105
- type: "danger",
106
- message: formatMessage({
105
+ type: "warning",
106
+ message: {
107
107
  id: "notification.error",
108
108
  defaultMessage: "An error occurred"
109
- })
109
+ }
110
110
  });
111
111
  } finally {
112
112
  setShowModal(false);
@@ -356,4 +356,4 @@ const ProtectedListPage = () => {
356
356
  };
357
357
  exports.ListPage = ListPage;
358
358
  exports.ProtectedListPage = ProtectedListPage;
359
- //# sourceMappingURL=ListPage-aElBcYPH.js.map
359
+ //# sourceMappingURL=ListPage-yymh17qi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage-yymh17qi.js","sources":["../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n ActionLayout,\n BaseCheckbox,\n Button,\n ContentLayout,\n EmptyStateLayout,\n Flex,\n HeaderLayout,\n IconButton,\n Layout,\n Main,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { useFocusWhenNavigate, useNotification, useRBAC } from '@strapi/helper-plugin';\nimport { EmptyDocuments, Pencil, Plus, Trash } from '@strapi/icons';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n useFocusWhenNavigate();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n }\n };\n\n const confirmDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'warning',\n message: {\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n },\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layout>\n <Helmet\n title={formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n />\n <Main aria-busy={isLoading}>\n <HeaderLayout\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n as={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n to=\"create\"\n size=\"S\"\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <ActionLayout\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <ContentLayout>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <BaseCheckbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n indeterminate={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n }\n value={webhooksToDeleteLength === numberOfWebhooks}\n onValueChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <BaseCheckbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n value={webhooksToDelete?.includes(webhook.id)}\n onValueChange={(selected) => selectOneCheckbox(selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n selected={webhook.isEnabled}\n onChange={(e) => {\n e.stopPropagation();\n enableWebhook({\n ...webhook,\n isEnabled: !webhook.isEnabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n icon={<Pencil />}\n noBorder\n />\n )}\n {canDelete && (\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setWebhooksToDelete([webhook.id]);\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n icon={<Trash />}\n noBorder\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n // @ts-expect-error – this is an issue with the DS where as props are not inferred\n <LinkButton variant=\"secondary\" startIcon={<Plus />} as={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </ContentLayout>\n </Main>\n <ConfirmDialog\n isOpen={showModal}\n onClose={() => setShowModal((prev) => !prev)}\n onConfirm={confirmDelete}\n />\n </Layout>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["React","useTypedSelector","useIntl","useAPIErrorHandler","useNotification","useFocusWhenNavigate","useNavigate","useRBAC","useNotifyAT","useWebhooks","jsx","Page","Layout","Helmet","jsxs","Main","HeaderLayout","LinkButton","NavLink","Plus","ActionLayout","Fragment","Typography","Button","Trash","ContentLayout","Table","TFooter","Thead","Tr","Th","BaseCheckbox","VisuallyHidden","Tbody","Td","Flex","Switch","IconButton","Pencil","EmptyStateLayout","EmptyDocuments","ConfirmDialog"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { HeaderLayout, LinkButton, Main, ContentLayout, EmptyStateLayout } from "@strapi/design-system";
4
- import { useFocusWhenNavigate, useRBAC } from "@strapi/helper-plugin";
4
+ import { useFocusWhenNavigate, useNotification, useRBAC } from "@strapi/helper-plugin";
5
5
  import { Plus, EmptyDocuments } from "@strapi/icons";
6
6
  import * as qs from "qs";
7
7
  import { Helmet } from "react-helmet";
8
8
  import { useIntl } from "react-intl";
9
9
  import { useNavigate } from "react-router-dom";
10
- import { q as useTypedSelector, P as Page, u as useNotification, d as useTracking, c as useGuidedTour, o as useAPIErrorHandler } from "./index-5ZvCaCyY.mjs";
10
+ import { o as useTypedSelector, P as Page, c as useTracking, b as useGuidedTour, m as useAPIErrorHandler } from "./index-hjUhNUvw.mjs";
11
11
  import { u as useOnce } from "./useOnce-BuAUYuau.mjs";
12
- import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-dGGyJI-w.mjs";
12
+ import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from "./apiTokens-DO6vkoyd.mjs";
13
13
  import { A as API_TOKEN_TYPE } from "./constants-fJt30IoY.mjs";
14
- import { T as Table } from "./Table-k6gVR2KH.mjs";
14
+ import { T as Table } from "./Table-NiTkS4IC.mjs";
15
15
  const TABLE_HEADERS = [
16
16
  {
17
17
  name: "name",
@@ -49,7 +49,7 @@ const TABLE_HEADERS = [
49
49
  const ListView = () => {
50
50
  useFocusWhenNavigate();
51
51
  const { formatMessage } = useIntl();
52
- const { toggleNotification } = useNotification();
52
+ const toggleNotification = useNotification();
53
53
  const permissions = useTypedSelector(
54
54
  (state) => state.admin_app.permissions.settings?.["api-tokens"]
55
55
  );
@@ -79,7 +79,7 @@ const ListView = () => {
79
79
  React.useEffect(() => {
80
80
  if (error) {
81
81
  toggleNotification({
82
- type: "danger",
82
+ type: "warning",
83
83
  message: formatAPIError(error)
84
84
  });
85
85
  }
@@ -93,7 +93,7 @@ const ListView = () => {
93
93
  const res = await deleteToken(id);
94
94
  if ("error" in res) {
95
95
  toggleNotification({
96
- type: "danger",
96
+ type: "warning",
97
97
  message: formatAPIError(res.error)
98
98
  });
99
99
  return;
@@ -101,11 +101,11 @@ const ListView = () => {
101
101
  trackUsage("didDeleteToken");
102
102
  } catch {
103
103
  toggleNotification({
104
- type: "danger",
105
- message: formatMessage({
104
+ type: "warning",
105
+ message: {
106
106
  id: "notification.error",
107
107
  defaultMessage: "Something went wrong"
108
- })
108
+ }
109
109
  });
110
110
  }
111
111
  };
@@ -202,4 +202,4 @@ export {
202
202
  ListView,
203
203
  ProtectedListView
204
204
  };
205
- //# sourceMappingURL=ListView-hm-mjZ8N.mjs.map
205
+ //# sourceMappingURL=ListView--43zLiHW.mjs.map