@strapi/admin 5.6.0 → 5.7.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/dist/admin/{AdminSeatInfo-CfbjPdSS.mjs → AdminSeatInfo-Bpyschk4.mjs} +3 -3
  2. package/dist/admin/{AdminSeatInfo-CfbjPdSS.mjs.map → AdminSeatInfo-Bpyschk4.mjs.map} +1 -1
  3. package/dist/admin/{ApplicationInfoPage-DGet0m1z.mjs → ApplicationInfoPage-BlX64-1T.mjs} +5 -5
  4. package/dist/admin/{ApplicationInfoPage-DGet0m1z.mjs.map → ApplicationInfoPage-BlX64-1T.mjs.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-__zpHK8U.js → ApplicationInfoPage-Cx9Z4tfk.js} +2 -2
  6. package/dist/admin/{ApplicationInfoPage-__zpHK8U.js.map → ApplicationInfoPage-Cx9Z4tfk.js.map} +1 -1
  7. package/dist/admin/{AuthResponse-CWs8VL81.mjs → AuthResponse-BI0D7fJC.mjs} +2 -2
  8. package/dist/admin/{AuthResponse-CWs8VL81.mjs.map → AuthResponse-BI0D7fJC.mjs.map} +1 -1
  9. package/dist/admin/{AuthenticatedLayout-CERzLY03.mjs → AuthenticatedLayout-Br8Ujef5.mjs} +11 -11
  10. package/dist/admin/{AuthenticatedLayout-CERzLY03.mjs.map → AuthenticatedLayout-Br8Ujef5.mjs.map} +1 -1
  11. package/dist/admin/{AuthenticatedLayout-CchQ7f0Q.js → AuthenticatedLayout-CCwt0AgG.js} +9 -9
  12. package/dist/admin/{AuthenticatedLayout-CchQ7f0Q.js.map → AuthenticatedLayout-CCwt0AgG.js.map} +1 -1
  13. package/dist/admin/{CreatePage-DfdEecPk.mjs → CreatePage-CaMDsF7E.mjs} +3 -3
  14. package/dist/admin/{CreatePage-DfdEecPk.mjs.map → CreatePage-CaMDsF7E.mjs.map} +1 -1
  15. package/dist/admin/{CreatePage-yGgGidu3.js → CreatePage-DtK2k2xj.js} +2 -2
  16. package/dist/admin/{CreatePage-yGgGidu3.js.map → CreatePage-DtK2k2xj.js.map} +1 -1
  17. package/dist/admin/{CreatePage-CPnVtQdL.js → CreatePage-Je194jpQ.js} +2 -2
  18. package/dist/admin/{CreatePage-CPnVtQdL.js.map → CreatePage-Je194jpQ.js.map} +1 -1
  19. package/dist/admin/{CreatePage-D_fsEi_M.mjs → CreatePage-cPI93IzV.mjs} +4 -4
  20. package/dist/admin/{CreatePage-D_fsEi_M.mjs.map → CreatePage-cPI93IzV.mjs.map} +1 -1
  21. package/dist/admin/{CreateView-CUFaRabp.js → CreateView-CKHDAAe9.js} +2 -2
  22. package/dist/admin/{CreateView-CUFaRabp.js.map → CreateView-CKHDAAe9.js.map} +1 -1
  23. package/dist/admin/{CreateView-DLtLs1ax.js → CreateView-CV1T_FkK.js} +2 -2
  24. package/dist/admin/{CreateView-DLtLs1ax.js.map → CreateView-CV1T_FkK.js.map} +1 -1
  25. package/dist/admin/{CreateView-DuIhzj5r.mjs → CreateView-CYhJZ4SU.mjs} +3 -3
  26. package/dist/admin/{CreateView-DuIhzj5r.mjs.map → CreateView-CYhJZ4SU.mjs.map} +1 -1
  27. package/dist/admin/{CreateView-Cj52m1Cx.mjs → CreateView-CYk_dMMs.mjs} +3 -3
  28. package/dist/admin/{CreateView-Cj52m1Cx.mjs.map → CreateView-CYk_dMMs.mjs.map} +1 -1
  29. package/dist/admin/{EditPage-tM4j7ixi.mjs → EditPage-CZPAEYlB.mjs} +5 -5
  30. package/dist/admin/{EditPage-tM4j7ixi.mjs.map → EditPage-CZPAEYlB.mjs.map} +1 -1
  31. package/dist/admin/{EditPage-BFnBbj_O.js → EditPage-DPnF8khi.js} +3 -3
  32. package/dist/admin/{EditPage-BFnBbj_O.js.map → EditPage-DPnF8khi.js.map} +1 -1
  33. package/dist/admin/{EditPage-DKw8vquT.mjs → EditPage-DTaqqKhx.mjs} +7 -7
  34. package/dist/admin/{EditPage-DKw8vquT.mjs.map → EditPage-DTaqqKhx.mjs.map} +1 -1
  35. package/dist/admin/{EditPage-BKCr-_61.js → EditPage-e1MbaksH.js} +3 -3
  36. package/dist/admin/{EditPage-BKCr-_61.js.map → EditPage-e1MbaksH.js.map} +1 -1
  37. package/dist/admin/{EditPage-B_teX0_W.js → EditPage-f8LeUPW3.js} +5 -5
  38. package/dist/admin/{EditPage-B_teX0_W.js.map → EditPage-f8LeUPW3.js.map} +1 -1
  39. package/dist/admin/{EditPage-DmCwq9lg.mjs → EditPage-qRfveoLn.mjs} +5 -5
  40. package/dist/admin/{EditPage-DmCwq9lg.mjs.map → EditPage-qRfveoLn.mjs.map} +1 -1
  41. package/dist/admin/{EditView-F6qKlUJj.mjs → EditView-Df6PVPAd.mjs} +4 -4
  42. package/dist/admin/{EditView-F6qKlUJj.mjs.map → EditView-Df6PVPAd.mjs.map} +1 -1
  43. package/dist/admin/{EditView-CcXlJX5m.js → EditView-IrrSxD_e.js} +3 -3
  44. package/dist/admin/{EditView-CcXlJX5m.js.map → EditView-IrrSxD_e.js.map} +1 -1
  45. package/dist/admin/{EditViewPage-WRs6SDk3.mjs → EditViewPage-BKnY-1Sj.mjs} +4 -4
  46. package/dist/admin/{EditViewPage-WRs6SDk3.mjs.map → EditViewPage-BKnY-1Sj.mjs.map} +1 -1
  47. package/dist/admin/{EditViewPage-D8leQHjU.js → EditViewPage-BNzM51al.js} +3 -3
  48. package/dist/admin/{EditViewPage-D8leQHjU.js.map → EditViewPage-BNzM51al.js.map} +1 -1
  49. package/dist/admin/{EventsTable-1Lwyttx6.mjs → EventsTable-DUz7EZyi.mjs} +2 -2
  50. package/dist/admin/{EventsTable-1Lwyttx6.mjs.map → EventsTable-DUz7EZyi.mjs.map} +1 -1
  51. package/dist/admin/{EventsTable-QXXuWW3U.js → EventsTable-fqzWSspG.js} +2 -2
  52. package/dist/admin/{EventsTable-QXXuWW3U.js.map → EventsTable-fqzWSspG.js.map} +1 -1
  53. package/dist/admin/HomePage-BcZ8G5Zk.js +375 -0
  54. package/dist/admin/HomePage-BcZ8G5Zk.js.map +1 -0
  55. package/dist/admin/{HomePage-CANB1HEn.js → HomePage-DAKopsM1.js} +2 -2
  56. package/dist/admin/HomePage-DAKopsM1.js.map +1 -0
  57. package/dist/admin/{HomePage-BcKeFpnc.mjs → HomePage-HuAhOTRQ.mjs} +3 -3
  58. package/dist/admin/HomePage-HuAhOTRQ.mjs.map +1 -0
  59. package/dist/admin/HomePage-NPjXohKj.mjs +350 -0
  60. package/dist/admin/HomePage-NPjXohKj.mjs.map +1 -0
  61. package/dist/admin/{InstalledPlugins-Chyea6Jt.mjs → InstalledPlugins-BDBDHjp1.mjs} +3 -3
  62. package/dist/admin/{InstalledPlugins-Chyea6Jt.mjs.map → InstalledPlugins-BDBDHjp1.mjs.map} +1 -1
  63. package/dist/admin/{InstalledPlugins-B_bI-CBz.js → InstalledPlugins-OsZRe2Mj.js} +2 -2
  64. package/dist/admin/{InstalledPlugins-B_bI-CBz.js.map → InstalledPlugins-OsZRe2Mj.js.map} +1 -1
  65. package/dist/admin/{Layout-CcWr6va_.js → Layout-BmPlcHQy.js} +3 -3
  66. package/dist/admin/{Layout-CcWr6va_.js.map → Layout-BmPlcHQy.js.map} +1 -1
  67. package/dist/admin/{Layout-TkS64Yl1.mjs → Layout-ZnQ6qK04.mjs} +5 -5
  68. package/dist/admin/{Layout-TkS64Yl1.mjs.map → Layout-ZnQ6qK04.mjs.map} +1 -1
  69. package/dist/admin/{ListPage-CP7hcUqH.js → ListPage-6TiKw8tv.js} +2 -2
  70. package/dist/admin/{ListPage-CP7hcUqH.js.map → ListPage-6TiKw8tv.js.map} +1 -1
  71. package/dist/admin/{ListPage-BEQmwBHz.js → ListPage-BVk9Y9nA.js} +2 -2
  72. package/dist/admin/{ListPage-BEQmwBHz.js.map → ListPage-BVk9Y9nA.js.map} +1 -1
  73. package/dist/admin/{ListPage-BX6bIW1R.mjs → ListPage-B_XyFDAF.mjs} +5 -5
  74. package/dist/admin/{ListPage-BX6bIW1R.mjs.map → ListPage-B_XyFDAF.mjs.map} +1 -1
  75. package/dist/admin/{ListPage-DRfqG74z.js → ListPage-BoJnuSeZ.js} +2 -2
  76. package/dist/admin/{ListPage-DRfqG74z.js.map → ListPage-BoJnuSeZ.js.map} +1 -1
  77. package/dist/admin/{ListPage-w3LcIP0T.mjs → ListPage-Bu63qBzy.mjs} +3 -3
  78. package/dist/admin/{ListPage-w3LcIP0T.mjs.map → ListPage-Bu63qBzy.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-CD6ZO-Wp.mjs → ListPage-C0iLSqYo.mjs} +3 -3
  80. package/dist/admin/{ListPage-CD6ZO-Wp.mjs.map → ListPage-C0iLSqYo.mjs.map} +1 -1
  81. package/dist/admin/{ListPage-DmmTUnVG.js → ListPage-CtOOlqCn.js} +5 -5
  82. package/dist/admin/{ListPage-DmmTUnVG.js.map → ListPage-CtOOlqCn.js.map} +1 -1
  83. package/dist/admin/{ListPage-6AqXEX4y.mjs → ListPage-Da_2kaB7.mjs} +6 -6
  84. package/dist/admin/{ListPage-6AqXEX4y.mjs.map → ListPage-Da_2kaB7.mjs.map} +1 -1
  85. package/dist/admin/{ListPage-IsE6pk54.mjs → ListPage-YvkZI4Dz.mjs} +3 -3
  86. package/dist/admin/{ListPage-IsE6pk54.mjs.map → ListPage-YvkZI4Dz.mjs.map} +1 -1
  87. package/dist/admin/{ListPage-BcZC7g5g.js → ListPage-xSonCT19.js} +3 -3
  88. package/dist/admin/{ListPage-BcZC7g5g.js.map → ListPage-xSonCT19.js.map} +1 -1
  89. package/dist/admin/{ListView-fOGcorFr.mjs → ListView-CMiSzy7H.mjs} +4 -4
  90. package/dist/admin/{ListView-fOGcorFr.mjs.map → ListView-CMiSzy7H.mjs.map} +1 -1
  91. package/dist/admin/{ListView-CGwmzT8M.js → ListView-CeE2Qlyi.js} +3 -3
  92. package/dist/admin/{ListView-CGwmzT8M.js.map → ListView-CeE2Qlyi.js.map} +1 -1
  93. package/dist/admin/{ListView-buo5Vb7Z.js → ListView-Cr_P57s2.js} +3 -3
  94. package/dist/admin/{ListView-buo5Vb7Z.js.map → ListView-Cr_P57s2.js.map} +1 -1
  95. package/dist/admin/{ListView-Df-gIOv9.mjs → ListView-DhZFpqcJ.mjs} +4 -4
  96. package/dist/admin/{ListView-Df-gIOv9.mjs.map → ListView-DhZFpqcJ.mjs.map} +1 -1
  97. package/dist/admin/{Login-LmIF0yHO.js → Login-B-e6bger.js} +2 -2
  98. package/dist/admin/{Login-LmIF0yHO.js.map → Login-B-e6bger.js.map} +1 -1
  99. package/dist/admin/{Login-wOwE4WT_.mjs → Login-CKEdHx7A.mjs} +3 -3
  100. package/dist/admin/{Login-wOwE4WT_.mjs.map → Login-CKEdHx7A.mjs.map} +1 -1
  101. package/dist/admin/{MagicLinkEE-BNB-I3Lc.mjs → MagicLinkEE-DCazf_P2.mjs} +3 -3
  102. package/dist/admin/{MagicLinkEE-BNB-I3Lc.mjs.map → MagicLinkEE-DCazf_P2.mjs.map} +1 -1
  103. package/dist/admin/{MagicLinkEE-CzBtZH-_.js → MagicLinkEE-DYCH6Jl2.js} +3 -3
  104. package/dist/admin/{MagicLinkEE-CzBtZH-_.js.map → MagicLinkEE-DYCH6Jl2.js.map} +1 -1
  105. package/dist/admin/{MarketplacePage-ChPIl3Lm.mjs → MarketplacePage-CTbE4SlU.mjs} +3 -3
  106. package/dist/admin/{MarketplacePage-ChPIl3Lm.mjs.map → MarketplacePage-CTbE4SlU.mjs.map} +1 -1
  107. package/dist/admin/{MarketplacePage-YIaJ1AaI.js → MarketplacePage-DeH9a207.js} +2 -2
  108. package/dist/admin/{MarketplacePage-YIaJ1AaI.js.map → MarketplacePage-DeH9a207.js.map} +1 -1
  109. package/dist/admin/{Permissions-CqkJcZdu.mjs → Permissions-gB8QZDch.mjs} +2 -2
  110. package/dist/admin/{Permissions-CqkJcZdu.mjs.map → Permissions-gB8QZDch.mjs.map} +1 -1
  111. package/dist/admin/{PrivateRoute-CzKixo0E.mjs → PrivateRoute-DIxYvSni.mjs} +2 -2
  112. package/dist/admin/{PrivateRoute-CzKixo0E.mjs.map → PrivateRoute-DIxYvSni.mjs.map} +1 -1
  113. package/dist/admin/{ProfilePage-DuSEvyq3.mjs → ProfilePage-Bcb_ayAW.mjs} +4 -4
  114. package/dist/admin/{ProfilePage-DuSEvyq3.mjs.map → ProfilePage-Bcb_ayAW.mjs.map} +1 -1
  115. package/dist/admin/{ProfilePage-CqenohKy.js → ProfilePage-CD0uiMaE.js} +3 -3
  116. package/dist/admin/{ProfilePage-CqenohKy.js.map → ProfilePage-CD0uiMaE.js.map} +1 -1
  117. package/dist/admin/{PurchaseAuditLogs-CvvCh9tm.js → PurchaseAuditLogs-CHKqdqrY.js} +2 -2
  118. package/dist/admin/{PurchaseAuditLogs-CvvCh9tm.js.map → PurchaseAuditLogs-CHKqdqrY.js.map} +1 -1
  119. package/dist/admin/{PurchaseAuditLogs-C3Umrg-5.mjs → PurchaseAuditLogs-D9V7WucM.mjs} +2 -2
  120. package/dist/admin/{PurchaseAuditLogs-C3Umrg-5.mjs.map → PurchaseAuditLogs-D9V7WucM.mjs.map} +1 -1
  121. package/dist/admin/{PurchaseContentHistory-BuIZGUim.mjs → PurchaseContentHistory-CtiF0HJP.mjs} +2 -2
  122. package/dist/admin/{PurchaseContentHistory-BuIZGUim.mjs.map → PurchaseContentHistory-CtiF0HJP.mjs.map} +1 -1
  123. package/dist/admin/{PurchaseContentHistory-CYt2Dx35.js → PurchaseContentHistory-eOg1pQvg.js} +2 -2
  124. package/dist/admin/{PurchaseContentHistory-CYt2Dx35.js.map → PurchaseContentHistory-eOg1pQvg.js.map} +1 -1
  125. package/dist/admin/{PurchaseSingleSignOn-LeXIHRh2.js → PurchaseSingleSignOn-C4Mthjnp.js} +2 -2
  126. package/dist/admin/{PurchaseSingleSignOn-LeXIHRh2.js.map → PurchaseSingleSignOn-C4Mthjnp.js.map} +1 -1
  127. package/dist/admin/{PurchaseSingleSignOn-m3wEJIYm.mjs → PurchaseSingleSignOn-Dfg-RTXq.mjs} +2 -2
  128. package/dist/admin/{PurchaseSingleSignOn-m3wEJIYm.mjs.map → PurchaseSingleSignOn-Dfg-RTXq.mjs.map} +1 -1
  129. package/dist/admin/RelativeTime-BGJ1PWx_.mjs +38 -0
  130. package/dist/admin/RelativeTime-BGJ1PWx_.mjs.map +1 -0
  131. package/dist/admin/RelativeTime-DPLD3wf-.js +60 -0
  132. package/dist/admin/RelativeTime-DPLD3wf-.js.map +1 -0
  133. package/dist/admin/{SelectRoles-C04C6G8i.mjs → SelectRoles-D1xPS-qt.mjs} +4 -4
  134. package/dist/admin/{SelectRoles-C04C6G8i.mjs.map → SelectRoles-D1xPS-qt.mjs.map} +1 -1
  135. package/dist/admin/{SelectRoles-WiYb5Fjg.js → SelectRoles-DIyUH00-.js} +3 -3
  136. package/dist/admin/{SelectRoles-WiYb5Fjg.js.map → SelectRoles-DIyUH00-.js.map} +1 -1
  137. package/dist/admin/{SingleSignOnPage-B7OU11gd.mjs → SingleSignOnPage-BC2aTKy7.mjs} +4 -4
  138. package/dist/admin/{SingleSignOnPage-B7OU11gd.mjs.map → SingleSignOnPage-BC2aTKy7.mjs.map} +1 -1
  139. package/dist/admin/{SingleSignOnPage-BlgE_vrE.js → SingleSignOnPage-BNuYGkeX.js} +3 -3
  140. package/dist/admin/{SingleSignOnPage-BlgE_vrE.js.map → SingleSignOnPage-BNuYGkeX.js.map} +1 -1
  141. package/dist/admin/{Table-BxYY3PX9.js → Table-7pe1j4im.js} +5 -57
  142. package/dist/admin/Table-7pe1j4im.js.map +1 -0
  143. package/dist/admin/{Table-C-_pdniw.mjs → Table-DQnLoM7I.mjs} +4 -36
  144. package/dist/admin/Table-DQnLoM7I.mjs.map +1 -0
  145. package/dist/admin/{Theme-5Y8Pi0Wm.mjs → Theme-CTMU9Z8I.mjs} +2 -2
  146. package/dist/admin/{Theme-5Y8Pi0Wm.mjs.map → Theme-CTMU9Z8I.mjs.map} +1 -1
  147. package/dist/admin/Theme-DWGZX5tv.js.map +1 -1
  148. package/dist/admin/{TokenTypeSelect-Cmc58ea-.mjs → TokenTypeSelect-CTdltdS8.mjs} +3 -3
  149. package/dist/admin/{TokenTypeSelect-Cmc58ea-.mjs.map → TokenTypeSelect-CTdltdS8.mjs.map} +1 -1
  150. package/dist/admin/{TokenTypeSelect-4pU-xqqr.js → TokenTypeSelect-ZzXED7rf.js} +2 -2
  151. package/dist/admin/{TokenTypeSelect-4pU-xqqr.js.map → TokenTypeSelect-ZzXED7rf.js.map} +1 -1
  152. package/dist/admin/{UseCasePage-DFRtsARG.mjs → UseCasePage-BqAoX3j-.mjs} +4 -4
  153. package/dist/admin/{UseCasePage-DFRtsARG.mjs.map → UseCasePage-BqAoX3j-.mjs.map} +1 -1
  154. package/dist/admin/{UseCasePage-BfwS_z1T.js → UseCasePage-iNVoVcCb.js} +2 -2
  155. package/dist/admin/{UseCasePage-BfwS_z1T.js.map → UseCasePage-iNVoVcCb.js.map} +1 -1
  156. package/dist/admin/{constants-BQLsELai.js → constants-BtdWKFzN.js} +2 -2
  157. package/dist/admin/{constants-BQLsELai.js.map → constants-BtdWKFzN.js.map} +1 -1
  158. package/dist/admin/{constants-CV2faKSp.mjs → constants-TZNepYft.mjs} +3 -3
  159. package/dist/admin/{constants-CV2faKSp.mjs.map → constants-TZNepYft.mjs.map} +1 -1
  160. package/dist/admin/{en-CJdNdwAe.js → en-BR2e5qX-.js} +7 -16
  161. package/dist/admin/{en-CJdNdwAe.js.map → en-BR2e5qX-.js.map} +1 -1
  162. package/dist/admin/{en-DOZzjg_v.mjs → en-CSPHZKTw.mjs} +7 -16
  163. package/dist/admin/{en-DOZzjg_v.mjs.map → en-CSPHZKTw.mjs.map} +1 -1
  164. package/dist/admin/{en-GB-BjOvFjLX.js → en-GB-Bke-WrFJ.js} +2 -2
  165. package/dist/admin/en-GB-Bke-WrFJ.js.map +1 -0
  166. package/dist/admin/en-GB-Gv8lAy1p.mjs +6 -0
  167. package/dist/admin/en-GB-Gv8lAy1p.mjs.map +1 -0
  168. package/dist/admin/{index-Cn5HftCc.mjs → index-CMdgTmC0.mjs} +35 -35
  169. package/dist/admin/index-CMdgTmC0.mjs.map +1 -0
  170. package/dist/admin/{index-u_GcMlYH.js → index-DxMAHgtc.js} +33 -33
  171. package/dist/admin/index-DxMAHgtc.js.map +1 -0
  172. package/dist/admin/index.js +1 -1
  173. package/dist/admin/index.mjs +2 -2
  174. package/dist/admin/{selectors-BUDjU_0m.mjs → selectors-BZApelK9.mjs} +2 -2
  175. package/dist/admin/{selectors-BUDjU_0m.mjs.map → selectors-BZApelK9.mjs.map} +1 -1
  176. package/dist/admin/src/features/Tracking.d.ts +1 -1
  177. package/dist/admin/src/pages/Home/components/ContentManagerWidgets.d.ts +3 -0
  178. package/dist/admin/src/pages/Home/components/GuidedTour.d.ts +1 -0
  179. package/dist/admin/src/pages/Home/components/Widget.d.ts +23 -0
  180. package/dist/admin/src/services/homepage.d.ts +5 -0
  181. package/dist/admin/test.mjs +1 -1
  182. package/dist/admin/{useAdminRoles-DHmyH8OJ.mjs → useAdminRoles-BVwapBge.mjs} +2 -2
  183. package/dist/admin/{useAdminRoles-DHmyH8OJ.mjs.map → useAdminRoles-BVwapBge.mjs.map} +1 -1
  184. package/dist/admin/{useAdminRoles-FWDpKtmj.js → useAdminRoles-DVnFvP_o.js} +2 -2
  185. package/dist/admin/{useAdminRoles-FWDpKtmj.js.map → useAdminRoles-DVnFvP_o.js.map} +1 -1
  186. package/dist/admin/{useLicenseLimitNotification-DQKWFvvl.mjs → useLicenseLimitNotification-CAQIrlP4.mjs} +2 -2
  187. package/dist/admin/{useLicenseLimitNotification-DQKWFvvl.mjs.map → useLicenseLimitNotification-CAQIrlP4.mjs.map} +1 -1
  188. package/dist/admin/{validation-BCuQyMAN.js → validation-CV2jBW7t.js} +2 -2
  189. package/dist/admin/{validation-BCuQyMAN.js.map → validation-CV2jBW7t.js.map} +1 -1
  190. package/dist/admin/{validation-B59Lo6xw.mjs → validation-D36pWUQH.mjs} +2 -2
  191. package/dist/admin/{validation-B59Lo6xw.mjs.map → validation-D36pWUQH.mjs.map} +1 -1
  192. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  193. package/dist/package.json.d.ts +7 -7
  194. package/dist/server/index.js +184 -6
  195. package/dist/server/index.js.map +1 -1
  196. package/dist/server/index.mjs +313 -136
  197. package/dist/server/index.mjs.map +1 -1
  198. package/dist/server/src/controllers/homepage.d.ts +8 -0
  199. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  200. package/dist/server/src/controllers/index.d.ts +3 -0
  201. package/dist/server/src/controllers/index.d.ts.map +1 -1
  202. package/dist/server/src/index.d.ts +9 -0
  203. package/dist/server/src/index.d.ts.map +1 -1
  204. package/dist/server/src/routes/homepage.d.ts +14 -0
  205. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  206. package/dist/server/src/routes/index.d.ts.map +1 -1
  207. package/dist/server/src/services/homepage.d.ts +11 -0
  208. package/dist/server/src/services/homepage.d.ts.map +1 -0
  209. package/dist/server/src/services/index.d.ts +6 -0
  210. package/dist/server/src/services/index.d.ts.map +1 -1
  211. package/dist/shared/contracts/admin.d.ts +2 -1
  212. package/dist/shared/contracts/api-token.d.ts +2 -1
  213. package/dist/shared/contracts/authentication.d.ts +3 -2
  214. package/dist/shared/contracts/content-api.d.ts +3 -2
  215. package/dist/shared/contracts/homepage.d.ts +26 -0
  216. package/dist/shared/contracts/homepage.d.ts.map +1 -0
  217. package/dist/shared/contracts/permissions.d.ts +2 -1
  218. package/dist/shared/contracts/roles.d.ts +3 -2
  219. package/dist/shared/contracts/shared.d.ts +2 -1
  220. package/dist/shared/contracts/transfer.d.ts +1 -0
  221. package/dist/shared/contracts/user.d.ts +3 -2
  222. package/dist/shared/contracts/users.d.ts +3 -2
  223. package/dist/shared/contracts/webhooks.d.ts +2 -1
  224. package/package.json +9 -8
  225. package/dist/admin/HomePage-BcKeFpnc.mjs.map +0 -1
  226. package/dist/admin/HomePage-CANB1HEn.js.map +0 -1
  227. package/dist/admin/HomePage-idSom5Sg.mjs +0 -576
  228. package/dist/admin/HomePage-idSom5Sg.mjs.map +0 -1
  229. package/dist/admin/HomePage-lO_3h0i-.js +0 -601
  230. package/dist/admin/HomePage-lO_3h0i-.js.map +0 -1
  231. package/dist/admin/Table-BxYY3PX9.js.map +0 -1
  232. package/dist/admin/Table-C-_pdniw.mjs.map +0 -1
  233. package/dist/admin/en-GB-BjOvFjLX.js.map +0 -1
  234. package/dist/admin/en-GB-Ceyy7cF8.mjs +0 -6
  235. package/dist/admin/en-GB-Ceyy7cF8.mjs.map +0 -1
  236. package/dist/admin/index-Cn5HftCc.mjs.map +0 -1
  237. package/dist/admin/index-u_GcMlYH.js.map +0 -1
  238. /package/dist/admin/src/pages/{HomePage.d.ts → Home/HomePage.d.ts} +0 -0
@@ -8,10 +8,10 @@ import { useIntl } from 'react-intl';
8
8
  import { useParams, useNavigate } from 'react-router-dom';
9
9
  import { styled } from 'styled-components';
10
10
  import * as yup from 'yup';
11
- import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, h as useCreateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-Cn5HftCc.mjs';
12
- import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, e as useAPIErrorHandler } from './Theme-5Y8Pi0Wm.mjs';
11
+ import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, h as useCreateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-CMdgTmC0.mjs';
12
+ import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, e as useAPIErrorHandler } from './Theme-CTMU9Z8I.mjs';
13
13
  import { i as isBaseQueryError } from './admin-DOzK8yjX.mjs';
14
- import { P as Permissions } from './Permissions-CqkJcZdu.mjs';
14
+ import { P as Permissions } from './Permissions-gB8QZDch.mjs';
15
15
 
16
16
  const CREATE_SCHEMA = yup.object().shape({
17
17
  name: yup.string().required(errorsTrads.required.id),
@@ -239,4 +239,4 @@ const ProtectedCreatePage = () => {
239
239
  };
240
240
 
241
241
  export { CreatePage, ProtectedCreatePage };
242
- //# sourceMappingURL=CreatePage-D_fsEi_M.mjs.map
242
+ //# sourceMappingURL=CreatePage-cPI93IzV.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreatePage-D_fsEi_M.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["translatedErrors"],"mappings":"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"}
1
+ {"version":3,"file":"CreatePage-cPI93IzV.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button type=\"submit\" loading={isSubmitting} startIcon={<Check />}>\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["translatedErrors"],"mappings":"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"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const Theme = require('./Theme-DWGZX5tv.js');
7
- const EditViewPage = require('./EditViewPage-D8leQHjU.js');
7
+ const EditViewPage = require('./EditViewPage-BNzM51al.js');
8
8
 
9
9
  const ProtectedCreateView = () => {
10
10
  const permissions = Theme.useTypedSelector(
@@ -14,4 +14,4 @@ const ProtectedCreateView = () => {
14
14
  };
15
15
 
16
16
  exports.ProtectedCreateView = ProtectedCreateView;
17
- //# sourceMappingURL=CreateView-CUFaRabp.js.map
17
+ //# sourceMappingURL=CreateView-CKHDAAe9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateView-CUFaRabp.js","sources":["../../admin/src/pages/Settings/pages/ApiTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView/EditViewPage';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["useTypedSelector","Page","jsx","EditView"],"mappings":";;;;;;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAAA,sBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,YAAY,CAAE,CAAA;AAAA,GAClE;AAEA,EAAA,sCACGC,UAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAAC,cAAA,CAACC,yBAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CreateView-CKHDAAe9.js","sources":["../../admin/src/pages/Settings/pages/ApiTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView/EditViewPage';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["useTypedSelector","Page","jsx","EditView"],"mappings":";;;;;;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAAA,sBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,YAAY,CAAE,CAAA;AAAA,GAClE;AAEA,EAAA,sCACGC,UAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAAC,cAAA,CAACC,yBAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
@@ -4,7 +4,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const Theme = require('./Theme-DWGZX5tv.js');
7
- const EditView = require('./EditView-CcXlJX5m.js');
7
+ const EditView = require('./EditView-IrrSxD_e.js');
8
8
 
9
9
  const ProtectedCreateView = () => {
10
10
  const permissions = Theme.useTypedSelector(
@@ -14,4 +14,4 @@ const ProtectedCreateView = () => {
14
14
  };
15
15
 
16
16
  exports.ProtectedCreateView = ProtectedCreateView;
17
- //# sourceMappingURL=CreateView-DLtLs1ax.js.map
17
+ //# sourceMappingURL=CreateView-CV1T_FkK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateView-DLtLs1ax.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["useTypedSelector","Page","jsx","EditView"],"mappings":";;;;;;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAAA,sBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA;AAAA,GACvE;AAEA,EAAA,sCACGC,UAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAAC,cAAA,CAACC,qBAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CreateView-CV1T_FkK.js","sources":["../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":["useTypedSelector","Page","jsx","EditView"],"mappings":";;;;;;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAAA,sBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA;AAAA,GACvE;AAEA,EAAA,sCACGC,UAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAAC,cAAA,CAACC,qBAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { b as useTypedSelector, P as Page } from './Theme-5Y8Pi0Wm.mjs';
3
- import { EditView } from './EditViewPage-WRs6SDk3.mjs';
2
+ import { b as useTypedSelector, P as Page } from './Theme-CTMU9Z8I.mjs';
3
+ import { EditView } from './EditViewPage-BKnY-1Sj.mjs';
4
4
 
5
5
  const ProtectedCreateView = () => {
6
6
  const permissions = useTypedSelector(
@@ -10,4 +10,4 @@ const ProtectedCreateView = () => {
10
10
  };
11
11
 
12
12
  export { ProtectedCreateView };
13
- //# sourceMappingURL=CreateView-DuIhzj5r.mjs.map
13
+ //# sourceMappingURL=CreateView-CYhJZ4SU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateView-DuIhzj5r.mjs","sources":["../../admin/src/pages/Settings/pages/ApiTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView/EditViewPage';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":[],"mappings":";;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,YAAY,CAAE,CAAA;AAAA,GAClE;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CreateView-CYhJZ4SU.mjs","sources":["../../admin/src/pages/Settings/pages/ApiTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView/EditViewPage';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":[],"mappings":";;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,YAAY,CAAE,CAAA;AAAA,GAClE;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { b as useTypedSelector, P as Page } from './Theme-5Y8Pi0Wm.mjs';
3
- import { EditView } from './EditView-F6qKlUJj.mjs';
2
+ import { b as useTypedSelector, P as Page } from './Theme-CTMU9Z8I.mjs';
3
+ import { EditView } from './EditView-Df6PVPAd.mjs';
4
4
 
5
5
  const ProtectedCreateView = () => {
6
6
  const permissions = useTypedSelector(
@@ -10,4 +10,4 @@ const ProtectedCreateView = () => {
10
10
  };
11
11
 
12
12
  export { ProtectedCreateView };
13
- //# sourceMappingURL=CreateView-Cj52m1Cx.mjs.map
13
+ //# sourceMappingURL=CreateView-CYk_dMMs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateView-Cj52m1Cx.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":[],"mappings":";;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA;AAAA,GACvE;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CreateView-CYk_dMMs.mjs","sources":["../../admin/src/pages/Settings/pages/TransferTokens/CreateView.tsx"],"sourcesContent":["import { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\n\nimport { EditView } from './EditView';\n\nexport const ProtectedCreateView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditView />\n </Page.Protect>\n );\n};\n"],"names":[],"mappings":";;;;AAKO,MAAM,sBAAsB,MAAM;AACvC,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,UAAU,WAAY,CAAA,QAAA,GAAW,iBAAiB,CAAE,CAAA;AAAA,GACvE;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
@@ -6,11 +6,11 @@ import { Formik } from 'formik';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useMatch, Navigate } from 'react-router-dom';
8
8
  import * as yup from 'yup';
9
- import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, o as useUpdateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-Cn5HftCc.mjs';
10
- import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, e as useAPIErrorHandler } from './Theme-5Y8Pi0Wm.mjs';
11
- import { u as useAdminRoles } from './useAdminRoles-DHmyH8OJ.mjs';
9
+ import { e as errorsTrads, f as useGetRolePermissionLayoutQuery, g as useGetRolePermissionsQuery, o as useUpdateRoleMutation, i as useUpdateRolePermissionsMutation, b as Layouts, B as BackButton } from './index-CMdgTmC0.mjs';
10
+ import { b as useTypedSelector, P as Page, a as useNotification, c as useTracking, e as useAPIErrorHandler } from './Theme-CTMU9Z8I.mjs';
11
+ import { u as useAdminRoles } from './useAdminRoles-BVwapBge.mjs';
12
12
  import { i as isBaseQueryError } from './admin-DOzK8yjX.mjs';
13
- import { P as Permissions } from './Permissions-CqkJcZdu.mjs';
13
+ import { P as Permissions } from './Permissions-gB8QZDch.mjs';
14
14
 
15
15
  const RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {
16
16
  const { formatMessage } = useIntl();
@@ -269,4 +269,4 @@ const ProtectedEditPage = () => {
269
269
  };
270
270
 
271
271
  export { EditPage, ProtectedEditPage };
272
- //# sourceMappingURL=EditPage-tM4j7ixi.mjs.map
272
+ //# sourceMappingURL=EditPage-CZPAEYlB.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-tM4j7ixi.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["translatedErrors"],"mappings":";;;;;;;;;;;;;;AAuBA,MAAM,QAAA,GAAW,CAAC,EAAE,QAAA,EAAU,MAAM,MAAQ,EAAA,MAAA,EAAQ,QAAU,EAAA,MAAA,EAA4B,KAAA;AACxF,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA;AAElC,EAAA,2BACG,GAAI,EAAA,EAAA,UAAA,EAAW,UAAW,EAAA,OAAA,EAAS,GAAG,MAAO,EAAA,cAAA,EAAe,SAAS,EAAA,IAAA,EACpE,+BAAC,IAAK,EAAA,EAAA,SAAA,EAAU,UAAS,UAAW,EAAA,SAAA,EAAU,KAAK,CACjD,EAAA,QAAA,EAAA;AAAA,oBAAC,IAAA,CAAA,IAAA,EAAA,EAAK,gBAAe,eACnB,EAAA,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,GACC,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,GAAA,EAAA,EACC,8BAAC,UAAW,EAAA,EAAA,UAAA,EAAW,QACpB,QACG,EAAA,IAAA,GAAA,IAAA,CAAK,OACL,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,gBAAA;AAAA,UACJ,cAAgB,EAAA;AAAA,SACjB,GACP,CACF,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,GACC,EAAA,EAAA,QAAA,kBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,SAAA,EAAU,YAAa,EAAA,OAAA,EAAQ,IACxC,EAAA,QAAA,EAAA,IAAA,GACG,IAAK,CAAA,WAAA,GACL,aAAc,CAAA;AAAA,UACZ,EAAI,EAAA,iCAAA;AAAA,UACJ,cAAgB,EAAA;AAAA,SACjB,GACP,CACF,EAAA;AAAA,OACF,EAAA,CAAA;AAAA,sBACC,GAAA,CAAA,MAAA,EAAA,EAAO,QAAQ,EAAA,IAAA,EAAC,SAAQ,WACtB,EAAA,QAAA,EAAA,aAAA;AAAA,QACC;AAAA,UACE,EAAI,EAAA,4CAAA;AAAA,UACJ,cACE,EAAA;AAAA,SACJ;AAAA,QACA,EAAE,MAAQ,EAAA,IAAA,CAAK,UAAW;AAAA,OAE9B,EAAA;AAAA,KACF,EAAA,CAAA;AAAA,oBACC,IAAA,CAAA,IAAA,CAAK,IAAL,EAAA,EAAU,KAAK,CACd,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,IAAA,CAAK,MAAL,EAAU,GAAA,EAAK,GAAG,SAAU,EAAA,QAAA,EAAS,YAAW,SAC/C,EAAA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAM,CAAA,IAAA;AAAA,QAAN;AAAA,UACC,IAAK,EAAA,MAAA;AAAA,UACL,KAAA,EAAO,OAAO,IAAQ,IAAA,aAAA,CAAc,EAAE,EAAI,EAAA,MAAA,CAAO,MAAM,CAAA;AAAA,UACvD,QAAQ,EAAA,IAAA;AAAA,UAER,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,CAAM,KAAN,EAAA,EACE,QAAc,EAAA,aAAA,CAAA;AAAA,cACb,EAAI,EAAA,aAAA;AAAA,cACJ,cAAgB,EAAA;AAAA,aACjB,CACH,EAAA,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,SAAA;AAAA,cAAA;AAAA,gBACC,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,MAAA;AAAA,gBACA,KAAA,EAAO,OAAO,IAAQ,IAAA;AAAA;AAAA,aACxB;AAAA,4BACA,GAAA,CAAC,KAAM,CAAA,KAAA,EAAN,EAAY;AAAA;AAAA;AAAA,OAEjB,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,KAAK,IAAL,EAAA,EAAU,KAAK,CAAG,EAAA,SAAA,EAAU,QAAS,EAAA,UAAA,EAAW,SAC/C,EAAA,QAAA,kBAAA,IAAA;AAAA,QAAC,KAAM,CAAA,IAAA;AAAA,QAAN;AAAA,UACC,IAAK,EAAA,aAAA;AAAA,UACL,KAAA,EAAO,OAAO,WAAe,IAAA,aAAA,CAAc,EAAE,EAAI,EAAA,MAAA,CAAO,aAAa,CAAA;AAAA,UAErE,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,KAAA,CAAM,KAAN,EAAA,EACE,QAAc,EAAA,aAAA,CAAA;AAAA,cACb,EAAI,EAAA,oBAAA;AAAA,cACJ,cAAgB,EAAA;AAAA,aACjB,CACH,EAAA,CAAA;AAAA,4BACA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,QAAA;AAAA,gBACA,QAAA;AAAA,gBACA,MAAA;AAAA,gBACA,OAAO,MAAO,CAAA;AAAA;AAAA,aAChB;AAAA,4BACA,GAAA,CAAC,KAAM,CAAA,KAAA,EAAN,EAAY;AAAA;AAAA;AAAA,OAEjB,EAAA;AAAA,KACF,EAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA;AAEJ,CAAA;;AChFA,MAAM,gBAAmB,GAAA,GAAA,CAAI,MAAO,EAAA,CAAE,KAAM,CAAA;AAAA,EAC1C,MAAM,GAAI,CAAA,MAAA,GAAS,QAAS,CAAAA,WAAA,CAAiB,SAAS,EAAE,CAAA;AAAA,EACxD,WAAa,EAAA,GAAA,CAAI,MAAO,EAAA,CAAE,QAAS;AACrC,CAAC,CAAA;AAUD,MAAM,WAAW,MAAM;AACrB,EAAM,MAAA,EAAE,kBAAmB,EAAA,GAAI,eAAgB,EAAA;AAC/C,EAAM,MAAA,EAAE,aAAc,EAAA,GAAI,OAAQ,EAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,SAAS,qBAAqB,CAAA;AAC5C,EAAM,MAAA,EAAA,GAAK,OAAO,MAAO,CAAA,EAAA;AACzB,EAAM,MAAA,cAAA,GAAiB,KAAM,CAAA,MAAA,CAAuB,IAAI,CAAA;AACxD,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,WAAY,EAAA;AACnC,EAAM,MAAA;AAAA,IACJ,uBAAyB,EAAA,cAAA;AAAA,IACzB,+BAAiC,EAAA;AAAA,MAC/B,kBAAmB,EAAA;AAEvB,EAAA,MAAM,EAAE,SAAW,EAAA,0BAAA,EAA4B,IAAM,EAAA,iBAAA,KACnD,+BAAgC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAK9B,MAAM,EAAM,IAAA;AAAA,GACb,CAAA;AAEH,EAAM,MAAA;AAAA,IACJ,KAAA;AAAA,IACA,SAAW,EAAA,aAAA;AAAA,IACX,OAAS,EAAA;AAAA,GACP,GAAA,aAAA;AAAA,IACF,EAAE,EAAG,EAAA;AAAA,IACL;AAAA,MACE,yBAA2B,EAAA;AAAA;AAC7B,GACF;AAEA,EAAA,MAAM,IAAO,GAAA,KAAA,CAAM,CAAC,CAAA,IAAK,EAAC;AAE1B,EAAA,MAAM,EAAE,IAAA,EAAM,WAAa,EAAA,SAAA,EAAW,sBAAyB,GAAA,0BAAA;AAAA,IAC7D;AAAA,MACE;AAAA,KACF;AAAA,IACA;AAAA,MACE,MAAM,CAAC,EAAA;AAAA,MACP,yBAA2B,EAAA;AAAA;AAC7B,GACF;AAEA,EAAM,MAAA,CAAC,UAAU,CAAA,GAAI,qBAAsB,EAAA;AAC3C,EAAM,MAAA,CAAC,qBAAqB,CAAA,GAAI,gCAAiC,EAAA;AAEjE,EAAA,IAAI,CAAC,EAAI,EAAA;AACP,IAAO,uBAAA,GAAA,CAAC,QAAS,EAAA,EAAA,EAAA,EAAG,iBAAkB,EAAA,CAAA;AAAA;AAGxC,EAAM,MAAA,oBAAA,GAAuB,OAC3B,IAAA,EACA,MACG,KAAA;AACH,IAAI,IAAA;AACF,MAAM,MAAA,EAAE,mBAAmB,mBAAoB,EAAA,GAC7C,eAAe,OAAS,EAAA,cAAA,MAAoB,EAAC;AAE/C,MAAM,MAAA,GAAA,GAAM,MAAM,UAAW,CAAA;AAAA,QAC3B,EAAA;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAED,MAAA,IAAI,WAAW,GAAK,EAAA;AAClB,QAAA,IAAI,iBAAiB,GAAI,CAAA,KAAK,KAAK,GAAI,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACvE,UAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,GAAI,CAAA,KAAK,CAAC,CAAA;AAAA,SAC7C,MAAA;AACL,UAAmB,kBAAA,CAAA;AAAA,YACjB,IAAM,EAAA,QAAA;AAAA,YACN,OAAA,EAAS,cAAe,CAAA,GAAA,CAAI,KAAK;AAAA,WAClC,CAAA;AAAA;AAGH,QAAA;AAAA;AAGF,MAAI,IAAA,IAAA,CAAK,IAAS,KAAA,oBAAA,IAAwB,iBAAmB,EAAA;AAC3D,QAAM,MAAA,SAAA,GAAY,MAAM,qBAAsB,CAAA;AAAA,UAC5C,EAAA,EAAI,IAAI,IAAK,CAAA,EAAA;AAAA,UACb,WAAa,EAAA;AAAA,SACd,CAAA;AAED,QAAA,IAAI,WAAW,SAAW,EAAA;AACxB,UAAA,IAAI,iBAAiB,SAAU,CAAA,KAAK,KAAK,SAAU,CAAA,KAAA,CAAM,SAAS,iBAAmB,EAAA;AACnF,YAAA,MAAA,CAAO,SAAU,CAAA,sBAAA,CAAuB,SAAU,CAAA,KAAK,CAAC,CAAA;AAAA,WACnD,MAAA;AACL,YAAmB,kBAAA,CAAA;AAAA,cACjB,IAAM,EAAA,QAAA;AAAA,cACN,OAAA,EAAS,cAAe,CAAA,SAAA,CAAU,KAAK;AAAA,aACxC,CAAA;AAAA;AAGH,UAAA;AAAA;AAGF,QAAA,IAAI,mBAAqB,EAAA;AACvB,UAAA,UAAA,CAAW,qBAAqB,CAAA;AAAA;AAClC;AAGF,MAAA,cAAA,CAAe,SAAS,kBAAmB,EAAA;AAE3C,MAAA,MAAM,WAAY,EAAA;AAElB,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,SAAA;AAAA,QACN,OAAS,EAAA,aAAA,CAAc,EAAE,EAAA,EAAI,8BAA8B;AAAA,OAC5D,CAAA;AAAA,aACM,KAAO,EAAA;AACd,MAAmB,kBAAA,CAAA;AAAA,QACjB,IAAM,EAAA,QAAA;AAAA,QACN,SAAS,aAAc,CAAA,EAAE,IAAI,oBAAsB,EAAA,cAAA,EAAgB,qBAAqB;AAAA,OACzF,CAAA;AAAA;AACH,GACF;AAEA,EAAA,MAAM,cAAiB,GAAA,CAAC,aAAiB,IAAA,IAAA,CAAK,IAAS,KAAA,oBAAA;AAEvD,EAAA,IAAI,0BAA8B,IAAA,aAAA,IAAiB,oBAAwB,IAAA,CAAC,iBAAmB,EAAA;AAC7F,IAAO,uBAAA,GAAA,CAAC,IAAK,CAAA,OAAA,EAAL,EAAa,CAAA;AAAA;AAGvB,EAAA,4BACG,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAC,GAAA,CAAA,IAAA,CAAK,OAAL,EACE,QAAA,EAAA,aAAA;AAAA,MACC,EAAE,EAAA,EAAI,oBAAsB,EAAA,cAAA,EAAgB,mBAAoB,EAAA;AAAA,MAChE;AAAA,QACE,IAAM,EAAA;AAAA;AACR,KAEJ,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,kBAAkB,EAAA,IAAA;AAAA,QAClB,aACE,EAAA;AAAA,UACE,IAAA,EAAM,KAAK,IAAQ,IAAA,EAAA;AAAA,UACnB,WAAA,EAAa,KAAK,WAAe,IAAA;AAAA,SACnC;AAAA,QAEF,QAAU,EAAA,oBAAA;AAAA,QACV,gBAAkB,EAAA,gBAAA;AAAA,QAClB,gBAAkB,EAAA,KAAA;AAAA,QAEjB,QAAC,EAAA,CAAA,EAAE,YAAc,EAAA,MAAA,EAAQ,MAAQ,EAAA,YAAA,EAAc,UAAY,EAAA,YAAA,EAC1D,qBAAA,IAAA,CAAC,MAAK,EAAA,EAAA,QAAA,EAAU,YACd,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,OAAQ,CAAA,MAAA;AAAA,YAAR;AAAA,cACC,aACE,kBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,GAAA,EAAK,CACT,EAAA,QAAA,kBAAA,GAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,IAAK,EAAA,QAAA;AAAA,kBACL,SAAA,sBAAY,KAAM,EAAA,EAAA,CAAA;AAAA,kBAClB,QAAA,EAAU,KAAK,IAAS,KAAA,oBAAA;AAAA,kBACxB,OAAS,EAAA,YAAA;AAAA,kBAER,QAAc,EAAA,aAAA,CAAA;AAAA,oBACb,EAAI,EAAA,aAAA;AAAA,oBACJ,cAAgB,EAAA;AAAA,mBACjB;AAAA;AAAA,eAEL,EAAA,CAAA;AAAA,cAEF,OAAO,aAAc,CAAA;AAAA,gBACnB,EAAI,EAAA,2BAAA;AAAA,gBACJ,cAAgB,EAAA;AAAA,eACjB,CAAA;AAAA,cACD,UAAU,aAAc,CAAA;AAAA,gBACtB,EAAI,EAAA,mCAAA;AAAA,gBACJ,cAAgB,EAAA;AAAA,eACjB,CAAA;AAAA,cACD,gBAAkB,kBAAA,GAAA,CAAC,UAAW,EAAA,EAAA,QAAA,EAAS,UAAW,EAAA;AAAA;AAAA,WACpD;AAAA,0BACA,GAAA,CAAC,OAAQ,CAAA,OAAA,EAAR,EACC,QAAA,kBAAA,IAAA,CAAC,IAAK,EAAA,EAAA,SAAA,EAAU,QAAS,EAAA,UAAA,EAAW,SAAU,EAAA,GAAA,EAAK,CACjD,EAAA,QAAA,EAAA;AAAA,4BAAA,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,QAAU,EAAA,cAAA;AAAA,gBACV,MAAA;AAAA,gBACA,MAAA;AAAA,gBACA,QAAU,EAAA,YAAA;AAAA,gBACV,MAAQ,EAAA,UAAA;AAAA,gBACR;AAAA;AAAA,aACF;AAAA,4BACC,GAAA,CAAA,GAAA,EAAA,EAAI,MAAO,EAAA,cAAA,EAAe,WAAS,IAClC,EAAA,QAAA,kBAAA,GAAA;AAAA,cAAC,WAAA;AAAA,cAAA;AAAA,gBACC,cAAA;AAAA,gBACA,WAAA;AAAA,gBACA,GAAK,EAAA,cAAA;AAAA,gBACL,MAAQ,EAAA;AAAA;AAAA,aAEZ,EAAA;AAAA,WAAA,EACF,CACF,EAAA;AAAA,SACF,EAAA;AAAA;AAAA;AAEJ,GACF,EAAA,CAAA;AAEJ;AAEA,MAAM,oBAAoB,MAAM;AAC9B,EAAA,MAAM,WAAc,GAAA,gBAAA;AAAA,IAClB,CAAC,KAAU,KAAA,KAAA,CAAM,SAAU,CAAA,WAAA,CAAY,UAAU,KAAM,CAAA;AAAA,GACzD;AAEA,EAAA,2BACG,IAAK,CAAA,OAAA,EAAL,EAAa,WACZ,EAAA,QAAA,kBAAA,GAAA,CAAC,YAAS,CACZ,EAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"EditPage-CZPAEYlB.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["translatedErrors"],"mappings":"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"}
@@ -10,9 +10,9 @@ const formik = require('formik');
10
10
  const reactIntl = require('react-intl');
11
11
  const reactRouterDom = require('react-router-dom');
12
12
  const yup = require('yup');
13
- const index = require('./index-u_GcMlYH.js');
13
+ const index = require('./index-DxMAHgtc.js');
14
14
  const Theme = require('./Theme-DWGZX5tv.js');
15
- const useAdminRoles = require('./useAdminRoles-FWDpKtmj.js');
15
+ const useAdminRoles = require('./useAdminRoles-DVnFvP_o.js');
16
16
  const admin = require('./admin-DRnq5SAg.js');
17
17
  const Permissions = require('./Permissions-Cmimrby0.js');
18
18
 
@@ -295,4 +295,4 @@ const ProtectedEditPage = () => {
295
295
 
296
296
  exports.EditPage = EditPage;
297
297
  exports.ProtectedEditPage = ProtectedEditPage;
298
- //# sourceMappingURL=EditPage-BFnBbj_O.js.map
298
+ //# sourceMappingURL=EditPage-DPnF8khi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditPage-BFnBbj_O.js","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","Field","TextInput","Textarea","yup","translatedErrors","useNotification","useMatch","React","useTracking","useAPIErrorHandler","useGetRolePermissionLayoutQuery","useAdminRoles","useGetRolePermissionsQuery","useUpdateRoleMutation","useUpdateRolePermissionsMutation","Navigate","isBaseQueryError","Page","Main","Formik","Layouts","Check","BackButton","Permissions","useTypedSelector"],"mappings":"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"}
1
+ {"version":3,"file":"EditPage-DPnF8khi.js","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleForm.tsx","../../admin/src/pages/Settings/pages/Roles/EditPage.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { FormikProps } from 'formik';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\nimport type { EditRoleFormValues } from '../EditPage';\n\ninterface RoleFormProps extends Pick<FormikProps<EditRoleFormValues>, 'values' | 'errors'> {\n onBlur: FormikProps<EditRoleFormValues>['handleBlur'];\n onChange: FormikProps<EditRoleFormValues>['handleChange'];\n disabled?: boolean;\n role: AdminRole;\n}\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }: RoleFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.name || ''}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea\n disabled={disabled}\n onChange={onChange}\n onBlur={onBlur}\n value={values.description}\n />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n );\n};\n\nexport { RoleForm };\nexport type { RoleFormProps };\n","import * as React from 'react';\n\nimport { Box, Button, Flex, Main } from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { Formik, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { Navigate, useMatch } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAdminRoles } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRoleMutation,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\nimport { RoleForm } from './components/RoleForm';\n\nconst EDIT_ROLE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().optional(),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface EditRoleFormValues {\n name: string;\n description: string;\n}\n\nconst EditPage = () => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const match = useMatch('/settings/roles/:id');\n const id = match?.params.id;\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n const {\n roles,\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n const role = roles[0] ?? {};\n\n const { data: permissions, isLoading: isLoadingPermissions } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [updateRole] = useUpdateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n if (!id) {\n return <Navigate to=\"/settings/roles\" />;\n }\n\n const handleEditRoleSubmit = async (\n data: EditRoleFormValues,\n formik: FormikHelpers<EditRoleFormValues>\n ) => {\n try {\n const { permissionsToSend, didUpdateConditions } =\n permissionsRef.current?.getPermissions() ?? {};\n\n const res = await updateRole({\n id,\n ...data,\n });\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n if (role.code !== 'strapi-super-admin' && permissionsToSend) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current?.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'notification.success.saved' }),\n });\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n if (isLoadingPermissionsLayout || isRoleLoading || isLoadingPermissions || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n enableReinitialize\n initialValues={\n {\n name: role.name ?? '',\n description: role.description ?? '',\n } satisfies EditRoleFormValues\n }\n onSubmit={handleEditRoleSubmit}\n validationSchema={EDIT_ROLE_SCHEMA}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur, isSubmitting }) => (\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n type=\"submit\"\n startIcon={<Check />}\n disabled={role.code === 'strapi-super-admin'}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={<BackButton fallback=\"../roles\" />}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst ProtectedEditPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.update\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <EditPage />\n </Page.Protect>\n );\n};\n\nexport { EditPage, ProtectedEditPage };\nexport type { EditRoleFormValues };\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","Field","TextInput","Textarea","yup","translatedErrors","useNotification","useMatch","React","useTracking","useAPIErrorHandler","useGetRolePermissionLayoutQuery","useAdminRoles","useGetRolePermissionsQuery","useUpdateRoleMutation","useUpdateRolePermissionsMutation","Navigate","isBaseQueryError","Page","Main","Formik","Layouts","Check","BackButton","Permissions","useTypedSelector"],"mappings":"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"}
@@ -6,14 +6,14 @@ import pick from 'lodash/pick';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useMatch, useNavigate } from 'react-router-dom';
8
8
  import * as yup from 'yup';
9
- import { e as errorsTrads, j as useUpdateUserMutation, k as useAdminUsers, F as Form, b as Layouts, B as BackButton, M as MemoizedInputRenderer } from './index-Cn5HftCc.mjs';
10
- import { b as useTypedSelector, P as Page, a as useNotification, e as useAPIErrorHandler, k as useRBAC } from './Theme-5Y8Pi0Wm.mjs';
9
+ import { e as errorsTrads, j as useUpdateUserMutation, k as useAdminUsers, F as Form, b as Layouts, B as BackButton, M as MemoizedInputRenderer } from './index-CMdgTmC0.mjs';
10
+ import { b as useTypedSelector, P as Page, a as useNotification, e as useAPIErrorHandler, k as useRBAC } from './Theme-CTMU9Z8I.mjs';
11
11
  import { u as useEnterprise } from './useEnterprise-BGzVPL4w.mjs';
12
- import { s as selectAdminPermissions } from './selectors-BUDjU_0m.mjs';
12
+ import { s as selectAdminPermissions } from './selectors-BZApelK9.mjs';
13
13
  import { i as isBaseQueryError } from './admin-DOzK8yjX.mjs';
14
14
  import { g as getDisplayName } from './users-8N93LH7R.mjs';
15
- import { M as MagicLinkCE, S as SelectRoles } from './SelectRoles-C04C6G8i.mjs';
16
- import { C as COMMON_USER_SCHEMA } from './validation-B59Lo6xw.mjs';
15
+ import { M as MagicLinkCE, S as SelectRoles } from './SelectRoles-D1xPS-qt.mjs';
16
+ import { C as COMMON_USER_SCHEMA } from './validation-D36pWUQH.mjs';
17
17
 
18
18
  const EDIT_VALIDATION_SCHEMA = yup.object().shape({
19
19
  ...COMMON_USER_SCHEMA,
@@ -35,7 +35,7 @@ const EditPage = () => {
35
35
  const { toggleNotification } = useNotification();
36
36
  const MagicLink = useEnterprise(
37
37
  MagicLinkCE,
38
- async () => (await import('./MagicLinkEE-BNB-I3Lc.mjs')).MagicLinkEE
38
+ async () => (await import('./MagicLinkEE-DCazf_P2.mjs')).MagicLinkEE
39
39
  );
40
40
  const {
41
41
  _unstableFormatAPIError: formatAPIError,
@@ -327,4 +327,4 @@ const ProtectedEditPage = () => {
327
327
  };
328
328
 
329
329
  export { EditPage, ProtectedEditPage };
330
- //# sourceMappingURL=EditPage-DKw8vquT.mjs.map
330
+ //# sourceMappingURL=EditPage-DTaqqKhx.mjs.map