@strapi/admin 5.10.1 → 5.10.3

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 (221) hide show
  1. package/dist/admin/chunks/{AdminSeatInfo-Cw1ujAsZ.mjs → AdminSeatInfo-CQ4w8a3g.mjs} +3 -3
  2. package/dist/admin/chunks/{AdminSeatInfo-Cw1ujAsZ.mjs.map → AdminSeatInfo-CQ4w8a3g.mjs.map} +1 -1
  3. package/dist/admin/chunks/{AdminSeatInfo-BfPqdNN0.js → AdminSeatInfo-DZ4hBesy.js} +3 -3
  4. package/dist/admin/chunks/{AdminSeatInfo-BfPqdNN0.js.map → AdminSeatInfo-DZ4hBesy.js.map} +1 -1
  5. package/dist/admin/chunks/{ApplicationInfoPage-DIiAE-tT.js → ApplicationInfoPage-CsBvES_c.js} +5 -5
  6. package/dist/admin/chunks/{ApplicationInfoPage-DIiAE-tT.js.map → ApplicationInfoPage-CsBvES_c.js.map} +1 -1
  7. package/dist/admin/chunks/{ApplicationInfoPage-Ch6hKH4Y.mjs → ApplicationInfoPage-DiEcqVEU.mjs} +5 -5
  8. package/dist/admin/chunks/{ApplicationInfoPage-Ch6hKH4Y.mjs.map → ApplicationInfoPage-DiEcqVEU.mjs.map} +1 -1
  9. package/dist/admin/chunks/{AuthResponse-DI-Q1kQL.js → AuthResponse-Ch0hurir.js} +2 -2
  10. package/dist/admin/chunks/{AuthResponse-DI-Q1kQL.js.map → AuthResponse-Ch0hurir.js.map} +1 -1
  11. package/dist/admin/chunks/{AuthResponse-DFS6gVO4.mjs → AuthResponse-Cu7HgPEK.mjs} +2 -2
  12. package/dist/admin/chunks/{AuthResponse-DFS6gVO4.mjs.map → AuthResponse-Cu7HgPEK.mjs.map} +1 -1
  13. package/dist/admin/chunks/{AuthenticatedLayout-BNWCtSH2.mjs → AuthenticatedLayout-C9eZ12Ue.mjs} +10 -291
  14. package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +1 -0
  15. package/dist/admin/chunks/{AuthenticatedLayout-D067wUoO.js → AuthenticatedLayout-D_VSoB1l.js} +5 -286
  16. package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +1 -0
  17. package/dist/admin/chunks/{CreatePage-DojcQqvH.mjs → CreatePage-Cb-ETkOn.mjs} +5 -5
  18. package/dist/admin/chunks/{CreatePage-DojcQqvH.mjs.map → CreatePage-Cb-ETkOn.mjs.map} +1 -1
  19. package/dist/admin/chunks/{CreatePage-0PdN9Fyc.mjs → CreatePage-DQDa78K3.mjs} +4 -4
  20. package/dist/admin/chunks/{CreatePage-0PdN9Fyc.mjs.map → CreatePage-DQDa78K3.mjs.map} +1 -1
  21. package/dist/admin/chunks/{CreatePage-BK_ivKDk.js → CreatePage-DbmpFjHt.js} +4 -4
  22. package/dist/admin/chunks/{CreatePage-BK_ivKDk.js.map → CreatePage-DbmpFjHt.js.map} +1 -1
  23. package/dist/admin/chunks/{CreatePage-C8PMNi_P.js → CreatePage-DkzHz0zk.js} +5 -5
  24. package/dist/admin/chunks/{CreatePage-C8PMNi_P.js.map → CreatePage-DkzHz0zk.js.map} +1 -1
  25. package/dist/admin/chunks/{CreateView-DtccbWiR.js → CreateView-CE4-drK6.js} +5 -5
  26. package/dist/admin/chunks/{CreateView-DtccbWiR.js.map → CreateView-CE4-drK6.js.map} +1 -1
  27. package/dist/admin/chunks/{CreateView-BuN2a7bo.mjs → CreateView-CmubtWzn.mjs} +5 -5
  28. package/dist/admin/chunks/{CreateView-BuN2a7bo.mjs.map → CreateView-CmubtWzn.mjs.map} +1 -1
  29. package/dist/admin/chunks/{CreateView-DB0xD4f5.mjs → CreateView-DZaIevIB.mjs} +5 -5
  30. package/dist/admin/chunks/{CreateView-DB0xD4f5.mjs.map → CreateView-DZaIevIB.mjs.map} +1 -1
  31. package/dist/admin/chunks/{CreateView-ITRNGoQ6.js → CreateView-yjsS9KUJ.js} +5 -5
  32. package/dist/admin/chunks/{CreateView-ITRNGoQ6.js.map → CreateView-yjsS9KUJ.js.map} +1 -1
  33. package/dist/admin/chunks/{EditPage-BazkPM17.mjs → EditPage-Bjr4f1Bs.mjs} +5 -5
  34. package/dist/admin/chunks/{EditPage-BazkPM17.mjs.map → EditPage-Bjr4f1Bs.mjs.map} +1 -1
  35. package/dist/admin/chunks/{EditPage-ibh8EtSv.js → EditPage-BrMhV8aB.js} +8 -8
  36. package/dist/admin/chunks/{EditPage-ibh8EtSv.js.map → EditPage-BrMhV8aB.js.map} +1 -1
  37. package/dist/admin/chunks/{EditPage-BNZ90ISm.mjs → EditPage-C44OaxjN.mjs} +5 -5
  38. package/dist/admin/chunks/{EditPage-BNZ90ISm.mjs.map → EditPage-C44OaxjN.mjs.map} +1 -1
  39. package/dist/admin/chunks/{EditPage-r043NYgB.js → EditPage-CNaAuT5C.js} +5 -5
  40. package/dist/admin/chunks/{EditPage-r043NYgB.js.map → EditPage-CNaAuT5C.js.map} +1 -1
  41. package/dist/admin/chunks/{EditPage-DiDSR0tz.js → EditPage-CycQlsFL.js} +5 -5
  42. package/dist/admin/chunks/{EditPage-DiDSR0tz.js.map → EditPage-CycQlsFL.js.map} +1 -1
  43. package/dist/admin/chunks/{EditPage-LRn1-C88.mjs → EditPage-MmQQ4hWc.mjs} +8 -8
  44. package/dist/admin/chunks/{EditPage-LRn1-C88.mjs.map → EditPage-MmQQ4hWc.mjs.map} +1 -1
  45. package/dist/admin/chunks/{EditView-DxmJI6e0.js → EditView-C9cKaoY1.js} +4 -4
  46. package/dist/admin/chunks/{EditView-DxmJI6e0.js.map → EditView-C9cKaoY1.js.map} +1 -1
  47. package/dist/admin/chunks/{EditView-CgMgqsza.mjs → EditView-CFIkvFrt.mjs} +4 -4
  48. package/dist/admin/chunks/{EditView-CgMgqsza.mjs.map → EditView-CFIkvFrt.mjs.map} +1 -1
  49. package/dist/admin/chunks/{EditViewPage-BE_u8pQP.mjs → EditViewPage-CwdhHAuX.mjs} +4 -4
  50. package/dist/admin/chunks/{EditViewPage-BE_u8pQP.mjs.map → EditViewPage-CwdhHAuX.mjs.map} +1 -1
  51. package/dist/admin/chunks/{EditViewPage-Bz4GEIsc.js → EditViewPage-DBga-70A.js} +4 -4
  52. package/dist/admin/chunks/{EditViewPage-Bz4GEIsc.js.map → EditViewPage-DBga-70A.js.map} +1 -1
  53. package/dist/admin/chunks/{EventsTable-CsFf4rOj.mjs → EventsTable-CeqMb1jP.mjs} +5 -5
  54. package/dist/admin/chunks/{EventsTable-CsFf4rOj.mjs.map → EventsTable-CeqMb1jP.mjs.map} +1 -1
  55. package/dist/admin/chunks/{EventsTable-CZY0aI5G.js → EventsTable-fkWvAMuL.js} +5 -5
  56. package/dist/admin/chunks/{EventsTable-CZY0aI5G.js.map → EventsTable-fkWvAMuL.js.map} +1 -1
  57. package/dist/admin/chunks/{HomePage-ebJLhO6a.js → HomePage-B2skN1xt.js} +5 -5
  58. package/dist/admin/chunks/{HomePage-ebJLhO6a.js.map → HomePage-B2skN1xt.js.map} +1 -1
  59. package/dist/admin/chunks/{HomePage-Df0YSqNE.js → HomePage-CVc0RfvD.js} +4 -4
  60. package/dist/admin/chunks/{HomePage-Df0YSqNE.js.map → HomePage-CVc0RfvD.js.map} +1 -1
  61. package/dist/admin/chunks/{HomePage-CFTx_SgI.mjs → HomePage-DGTeFboL.mjs} +4 -4
  62. package/dist/admin/chunks/{HomePage-CFTx_SgI.mjs.map → HomePage-DGTeFboL.mjs.map} +1 -1
  63. package/dist/admin/chunks/{HomePage-C2Sue0eX.mjs → HomePage-MfOqcIag.mjs} +5 -5
  64. package/dist/admin/chunks/{HomePage-C2Sue0eX.mjs.map → HomePage-MfOqcIag.mjs.map} +1 -1
  65. package/dist/admin/chunks/{InstalledPlugins-B4gyKUHh.mjs → InstalledPlugins-5j7xjDqh.mjs} +3 -3
  66. package/dist/admin/chunks/{InstalledPlugins-B4gyKUHh.mjs.map → InstalledPlugins-5j7xjDqh.mjs.map} +1 -1
  67. package/dist/admin/chunks/{InstalledPlugins-BtwwVsQ_.js → InstalledPlugins-BXM3i3xr.js} +3 -3
  68. package/dist/admin/chunks/{InstalledPlugins-BtwwVsQ_.js.map → InstalledPlugins-BXM3i3xr.js.map} +1 -1
  69. package/dist/admin/chunks/{Layout-BZTqa7oj.js → Layout-DST1PxaO.js} +5 -5
  70. package/dist/admin/chunks/{Layout-BZTqa7oj.js.map → Layout-DST1PxaO.js.map} +1 -1
  71. package/dist/admin/chunks/{Layout-B_xkPr1q.mjs → Layout-DYjtK6iP.mjs} +5 -5
  72. package/dist/admin/chunks/{Layout-B_xkPr1q.mjs.map → Layout-DYjtK6iP.mjs.map} +1 -1
  73. package/dist/admin/chunks/{ListPage-BtMdu1eQ.mjs → ListPage-B5Hb8BA-.mjs} +7 -7
  74. package/dist/admin/chunks/{ListPage-BtMdu1eQ.mjs.map → ListPage-B5Hb8BA-.mjs.map} +1 -1
  75. package/dist/admin/chunks/{ListPage-Beh8uBDE.mjs → ListPage-BVI0O8bq.mjs} +3 -3
  76. package/dist/admin/chunks/{ListPage-Beh8uBDE.mjs.map → ListPage-BVI0O8bq.mjs.map} +1 -1
  77. package/dist/admin/chunks/{ListPage-YW-UVjk3.js → ListPage-BgyypnOM.js} +7 -7
  78. package/dist/admin/chunks/{ListPage-YW-UVjk3.js.map → ListPage-BgyypnOM.js.map} +1 -1
  79. package/dist/admin/chunks/{ListPage-CENQarKY.mjs → ListPage-BhGt3EBQ.mjs} +3 -3
  80. package/dist/admin/chunks/{ListPage-CENQarKY.mjs.map → ListPage-BhGt3EBQ.mjs.map} +1 -1
  81. package/dist/admin/chunks/{ListPage-gKsEm3Px.js → ListPage-CLXy5r60.js} +5 -5
  82. package/dist/admin/chunks/{ListPage-gKsEm3Px.js.map → ListPage-CLXy5r60.js.map} +1 -1
  83. package/dist/admin/chunks/{ListPage-Du6Jt5wY.js → ListPage-CWINpwfS.js} +7 -7
  84. package/dist/admin/chunks/{ListPage-Du6Jt5wY.js.map → ListPage-CWINpwfS.js.map} +1 -1
  85. package/dist/admin/chunks/{ListPage-DgmOJv7H.js → ListPage-D21yUih2.js} +3 -3
  86. package/dist/admin/chunks/{ListPage-DgmOJv7H.js.map → ListPage-D21yUih2.js.map} +1 -1
  87. package/dist/admin/chunks/{ListPage-LqcmQd_Q.js → ListPage-DbfL2rpi.js} +3 -3
  88. package/dist/admin/chunks/{ListPage-LqcmQd_Q.js.map → ListPage-DbfL2rpi.js.map} +1 -1
  89. package/dist/admin/chunks/{ListPage-r9rW__R8.mjs → ListPage-PwzVjSsA.mjs} +7 -7
  90. package/dist/admin/chunks/{ListPage-r9rW__R8.mjs.map → ListPage-PwzVjSsA.mjs.map} +1 -1
  91. package/dist/admin/chunks/{ListPage-Czwak48Z.mjs → ListPage-srJutHdv.mjs} +5 -5
  92. package/dist/admin/chunks/{ListPage-Czwak48Z.mjs.map → ListPage-srJutHdv.mjs.map} +1 -1
  93. package/dist/admin/chunks/{ListView-Q2AO0JSX.mjs → ListView--KzJiQiO.mjs} +4 -4
  94. package/dist/admin/chunks/{ListView-Q2AO0JSX.mjs.map → ListView--KzJiQiO.mjs.map} +1 -1
  95. package/dist/admin/chunks/{ListView-CajksON_.mjs → ListView-CoGoDDiF.mjs} +4 -4
  96. package/dist/admin/chunks/{ListView-CajksON_.mjs.map → ListView-CoGoDDiF.mjs.map} +1 -1
  97. package/dist/admin/chunks/{ListView-Bys8EN-y.js → ListView-DGfxO89i.js} +4 -4
  98. package/dist/admin/chunks/{ListView-Bys8EN-y.js.map → ListView-DGfxO89i.js.map} +1 -1
  99. package/dist/admin/chunks/{ListView-BfwBUxHL.js → ListView-DzwvQ8nW.js} +4 -4
  100. package/dist/admin/chunks/{ListView-BfwBUxHL.js.map → ListView-DzwvQ8nW.js.map} +1 -1
  101. package/dist/admin/chunks/{Login-5ByBaKI3.mjs → Login-Dtkhd0GV.mjs} +3 -3
  102. package/dist/admin/chunks/{Login-5ByBaKI3.mjs.map → Login-Dtkhd0GV.mjs.map} +1 -1
  103. package/dist/admin/chunks/{Login-BpEOnVbU.js → Login-Iw84AH9L.js} +3 -3
  104. package/dist/admin/chunks/{Login-BpEOnVbU.js.map → Login-Iw84AH9L.js.map} +1 -1
  105. package/dist/admin/chunks/{MagicLinkEE-a-AbOB4s.js → MagicLinkEE-C5K8p8Rk.js} +5 -5
  106. package/dist/admin/chunks/{MagicLinkEE-a-AbOB4s.js.map → MagicLinkEE-C5K8p8Rk.js.map} +1 -1
  107. package/dist/admin/chunks/{MagicLinkEE-CiQG7NL3.mjs → MagicLinkEE-EcyHC46Y.mjs} +5 -5
  108. package/dist/admin/chunks/{MagicLinkEE-CiQG7NL3.mjs.map → MagicLinkEE-EcyHC46Y.mjs.map} +1 -1
  109. package/dist/admin/chunks/{MarketplacePage-my1nDaHy.js → MarketplacePage-BmqfuAvB.js} +3 -3
  110. package/dist/admin/chunks/{MarketplacePage-my1nDaHy.js.map → MarketplacePage-BmqfuAvB.js.map} +1 -1
  111. package/dist/admin/chunks/{MarketplacePage-BrHNQ8SG.mjs → MarketplacePage-CcAYozK2.mjs} +3 -3
  112. package/dist/admin/chunks/{MarketplacePage-BrHNQ8SG.mjs.map → MarketplacePage-CcAYozK2.mjs.map} +1 -1
  113. package/dist/admin/chunks/{Permissions-C7FA_7J9.js → Permissions-D6qH78lN.js} +2 -2
  114. package/dist/admin/chunks/{Permissions-C7FA_7J9.js.map → Permissions-D6qH78lN.js.map} +1 -1
  115. package/dist/admin/chunks/{Permissions-CuLck8vw.mjs → Permissions-rJmE3qb1.mjs} +2 -2
  116. package/dist/admin/chunks/{Permissions-CuLck8vw.mjs.map → Permissions-rJmE3qb1.mjs.map} +1 -1
  117. package/dist/admin/chunks/{PrivateRoute-BnxIlIDb.js → PrivateRoute-DvGSyomB.js} +2 -2
  118. package/dist/admin/chunks/{PrivateRoute-BnxIlIDb.js.map → PrivateRoute-DvGSyomB.js.map} +1 -1
  119. package/dist/admin/chunks/{PrivateRoute-BYKd2yE4.mjs → PrivateRoute-KL_RhoV8.mjs} +2 -2
  120. package/dist/admin/chunks/{PrivateRoute-BYKd2yE4.mjs.map → PrivateRoute-KL_RhoV8.mjs.map} +1 -1
  121. package/dist/admin/chunks/{ProfilePage-Do6nPMsx.mjs → ProfilePage-CN8SAQ9w.mjs} +4 -4
  122. package/dist/admin/chunks/{ProfilePage-Do6nPMsx.mjs.map → ProfilePage-CN8SAQ9w.mjs.map} +1 -1
  123. package/dist/admin/chunks/{ProfilePage-C8zWtYzY.js → ProfilePage-DiGV7o6c.js} +4 -4
  124. package/dist/admin/chunks/{ProfilePage-C8zWtYzY.js.map → ProfilePage-DiGV7o6c.js.map} +1 -1
  125. package/dist/admin/chunks/{PurchaseAuditLogs-McvZESGI.mjs → PurchaseAuditLogs-BI41XTBD.mjs} +3 -3
  126. package/dist/admin/chunks/{PurchaseAuditLogs-McvZESGI.mjs.map → PurchaseAuditLogs-BI41XTBD.mjs.map} +1 -1
  127. package/dist/admin/chunks/{PurchaseAuditLogs-BTAi887h.js → PurchaseAuditLogs-DnWVbru3.js} +3 -3
  128. package/dist/admin/chunks/{PurchaseAuditLogs-BTAi887h.js.map → PurchaseAuditLogs-DnWVbru3.js.map} +1 -1
  129. package/dist/admin/chunks/{PurchaseContentHistory-pb7RDvhZ.mjs → PurchaseContentHistory-BzC2C4Pv.mjs} +3 -3
  130. package/dist/admin/chunks/{PurchaseContentHistory-pb7RDvhZ.mjs.map → PurchaseContentHistory-BzC2C4Pv.mjs.map} +1 -1
  131. package/dist/admin/chunks/{PurchaseContentHistory-dfepsahq.js → PurchaseContentHistory-DUk7otrp.js} +3 -3
  132. package/dist/admin/chunks/{PurchaseContentHistory-dfepsahq.js.map → PurchaseContentHistory-DUk7otrp.js.map} +1 -1
  133. package/dist/admin/chunks/{PurchaseSingleSignOn-Dgal5RnY.js → PurchaseSingleSignOn-Bq0YHAHt.js} +3 -3
  134. package/dist/admin/chunks/{PurchaseSingleSignOn-Dgal5RnY.js.map → PurchaseSingleSignOn-Bq0YHAHt.js.map} +1 -1
  135. package/dist/admin/chunks/{PurchaseSingleSignOn-BUB9Irlt.mjs → PurchaseSingleSignOn-G1TKPP15.mjs} +3 -3
  136. package/dist/admin/chunks/{PurchaseSingleSignOn-BUB9Irlt.mjs.map → PurchaseSingleSignOn-G1TKPP15.mjs.map} +1 -1
  137. package/dist/admin/chunks/{SelectRoles-Clx1_4zB.js → SelectRoles-CKInlnSd.js} +4 -4
  138. package/dist/admin/chunks/{SelectRoles-Clx1_4zB.js.map → SelectRoles-CKInlnSd.js.map} +1 -1
  139. package/dist/admin/chunks/{SelectRoles-CG3Czm0u.mjs → SelectRoles-DR4KBZkw.mjs} +4 -4
  140. package/dist/admin/chunks/{SelectRoles-CG3Czm0u.mjs.map → SelectRoles-DR4KBZkw.mjs.map} +1 -1
  141. package/dist/admin/chunks/{SingleSignOnPage-Bqn13t3u.mjs → SingleSignOnPage-CRzrEUGp.mjs} +4 -4
  142. package/dist/admin/chunks/{SingleSignOnPage-Bqn13t3u.mjs.map → SingleSignOnPage-CRzrEUGp.mjs.map} +1 -1
  143. package/dist/admin/chunks/{SingleSignOnPage-DqHWnXWQ.js → SingleSignOnPage-DtRVlrGP.js} +4 -4
  144. package/dist/admin/chunks/{SingleSignOnPage-DqHWnXWQ.js.map → SingleSignOnPage-DtRVlrGP.js.map} +1 -1
  145. package/dist/admin/chunks/{Table-Ra6bYcx7.mjs → Table-BohVeu0r.mjs} +3 -3
  146. package/dist/admin/chunks/{Table-Ra6bYcx7.mjs.map → Table-BohVeu0r.mjs.map} +1 -1
  147. package/dist/admin/chunks/{Table-BHi0q5It.js → Table-CBZnqMuN.js} +3 -3
  148. package/dist/admin/chunks/{Table-BHi0q5It.js.map → Table-CBZnqMuN.js.map} +1 -1
  149. package/dist/admin/chunks/{Theme-CDaBfQ-7.mjs → Theme-C3oHrQcy.mjs} +6 -4
  150. package/dist/admin/chunks/Theme-C3oHrQcy.mjs.map +1 -0
  151. package/dist/admin/chunks/{Theme-CFGbtvHi.js → Theme-DDlJz91O.js} +6 -3
  152. package/dist/admin/chunks/Theme-DDlJz91O.js.map +1 -0
  153. package/dist/admin/chunks/{TokenTypeSelect-EY1WftKo.js → TokenTypeSelect-BV_ZNiY_.js} +3 -3
  154. package/dist/admin/chunks/{TokenTypeSelect-EY1WftKo.js.map → TokenTypeSelect-BV_ZNiY_.js.map} +1 -1
  155. package/dist/admin/chunks/{TokenTypeSelect-BIRgChNx.mjs → TokenTypeSelect-CpEAVZ_b.mjs} +3 -3
  156. package/dist/admin/chunks/{TokenTypeSelect-BIRgChNx.mjs.map → TokenTypeSelect-CpEAVZ_b.mjs.map} +1 -1
  157. package/dist/admin/chunks/{UseCasePage-Y_h0Fbiv.mjs → UseCasePage-Bro5fyP3.mjs} +4 -4
  158. package/dist/admin/chunks/{UseCasePage-Y_h0Fbiv.mjs.map → UseCasePage-Bro5fyP3.mjs.map} +1 -1
  159. package/dist/admin/chunks/{UseCasePage-Dl-WfgYc.js → UseCasePage-CipG2GC4.js} +4 -4
  160. package/dist/admin/chunks/{UseCasePage-Dl-WfgYc.js.map → UseCasePage-CipG2GC4.js.map} +1 -1
  161. package/dist/admin/chunks/{constants-DoArvzRr.mjs → constants-BddeukI7.mjs} +3 -3
  162. package/dist/admin/chunks/{constants-DoArvzRr.mjs.map → constants-BddeukI7.mjs.map} +1 -1
  163. package/dist/admin/chunks/{constants-DClZ3JYF.js → constants-CaerHoe3.js} +3 -3
  164. package/dist/admin/chunks/{constants-DClZ3JYF.js.map → constants-CaerHoe3.js.map} +1 -1
  165. package/dist/admin/chunks/en-GB-3SrHvAFz.mjs +6 -0
  166. package/dist/admin/chunks/en-GB-3SrHvAFz.mjs.map +1 -0
  167. package/dist/admin/chunks/en-GB-Cc-PTeUP.js +8 -0
  168. package/dist/admin/chunks/en-GB-Cc-PTeUP.js.map +1 -0
  169. package/dist/admin/chunks/{en-CRu3-kTC.mjs → en-n340Bke8.mjs} +2 -1
  170. package/dist/admin/chunks/{en-CRu3-kTC.mjs.map → en-n340Bke8.mjs.map} +1 -1
  171. package/dist/admin/chunks/{en-CJjqxA2Q.js → en-rWmm12oE.js} +2 -1
  172. package/dist/admin/chunks/{en-CJjqxA2Q.js.map → en-rWmm12oE.js.map} +1 -1
  173. package/dist/admin/chunks/{index-BUGouNML.mjs → index-BM8-DG5K.mjs} +56 -36
  174. package/dist/admin/chunks/index-BM8-DG5K.mjs.map +1 -0
  175. package/dist/admin/chunks/{index-D7OmC33R.js → index-HGaughzt.js} +56 -36
  176. package/dist/admin/chunks/index-HGaughzt.js.map +1 -0
  177. package/dist/admin/chunks/{selectors-2ohXQx5g.js → selectors-Bf-6Fmez.js} +2 -2
  178. package/dist/admin/chunks/{selectors-2ohXQx5g.js.map → selectors-Bf-6Fmez.js.map} +1 -1
  179. package/dist/admin/chunks/{selectors-PQdhPmzv.mjs → selectors-Dej_6h4x.mjs} +2 -2
  180. package/dist/admin/chunks/{selectors-PQdhPmzv.mjs.map → selectors-Dej_6h4x.mjs.map} +1 -1
  181. package/dist/admin/chunks/{useAdminRoles-BEmkB0uj.mjs → useAdminRoles-C6Es4UUq.mjs} +2 -2
  182. package/dist/admin/chunks/{useAdminRoles-BEmkB0uj.mjs.map → useAdminRoles-C6Es4UUq.mjs.map} +1 -1
  183. package/dist/admin/chunks/{useAdminRoles-DwDqOIvp.js → useAdminRoles-_4HKisJz.js} +2 -2
  184. package/dist/admin/chunks/{useAdminRoles-DwDqOIvp.js.map → useAdminRoles-_4HKisJz.js.map} +1 -1
  185. package/dist/admin/chunks/{useLicenseLimitNotification-CGkazzao.mjs → useLicenseLimitNotification-DbPhRccK.mjs} +2 -2
  186. package/dist/admin/chunks/{useLicenseLimitNotification-CGkazzao.mjs.map → useLicenseLimitNotification-DbPhRccK.mjs.map} +1 -1
  187. package/dist/admin/chunks/{useLicenseLimitNotification-BMCQ8obE.js → useLicenseLimitNotification-iuozPic9.js} +2 -2
  188. package/dist/admin/chunks/{useLicenseLimitNotification-BMCQ8obE.js.map → useLicenseLimitNotification-iuozPic9.js.map} +1 -1
  189. package/dist/admin/chunks/{validation-DOQs6_Ay.mjs → validation-Dmvl0gZQ.mjs} +8 -2
  190. package/dist/admin/chunks/validation-Dmvl0gZQ.mjs.map +1 -0
  191. package/dist/admin/chunks/{validation-ECrFbJ6K.js → validation-dPl3P7dv.js} +8 -2
  192. package/dist/admin/chunks/validation-dPl3P7dv.js.map +1 -0
  193. package/dist/admin/index.js +2 -2
  194. package/dist/admin/index.mjs +2 -2
  195. package/dist/admin/src/features/Configuration.d.ts +1 -3
  196. package/dist/admin/src/utils/strings.d.ts +2 -1
  197. package/dist/admin/test.js +1 -2
  198. package/dist/admin/test.js.map +1 -1
  199. package/dist/admin/test.mjs +1 -2
  200. package/dist/admin/test.mjs.map +1 -1
  201. package/dist/server/index.js +23 -9
  202. package/dist/server/index.js.map +1 -1
  203. package/dist/server/index.mjs +23 -9
  204. package/dist/server/index.mjs.map +1 -1
  205. package/dist/server/src/routes/authentication.d.ts.map +1 -1
  206. package/dist/server/src/services/homepage.d.ts.map +1 -1
  207. package/dist/server/src/validation/common-validators.d.ts.map +1 -1
  208. package/package.json +7 -7
  209. package/dist/admin/chunks/AuthenticatedLayout-BNWCtSH2.mjs.map +0 -1
  210. package/dist/admin/chunks/AuthenticatedLayout-D067wUoO.js.map +0 -1
  211. package/dist/admin/chunks/Theme-CDaBfQ-7.mjs.map +0 -1
  212. package/dist/admin/chunks/Theme-CFGbtvHi.js.map +0 -1
  213. package/dist/admin/chunks/en-GB-CMP_CCZs.js +0 -8
  214. package/dist/admin/chunks/en-GB-CMP_CCZs.js.map +0 -1
  215. package/dist/admin/chunks/en-GB-DZyWkup_.mjs +0 -6
  216. package/dist/admin/chunks/en-GB-DZyWkup_.mjs.map +0 -1
  217. package/dist/admin/chunks/index-BUGouNML.mjs.map +0 -1
  218. package/dist/admin/chunks/index-D7OmC33R.js.map +0 -1
  219. package/dist/admin/chunks/validation-DOQs6_Ay.mjs.map +0 -1
  220. package/dist/admin/chunks/validation-ECrFbJ6K.js.map +0 -1
  221. package/dist/admin/src/components/Onboarding.d.ts +0 -2
@@ -3,12 +3,12 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var reactIntl = require('react-intl');
5
5
  var reactRouterDom = require('react-router-dom');
6
- var index = require('./index-D7OmC33R.js');
7
- var Theme = require('./Theme-CFGbtvHi.js');
6
+ var index = require('./index-HGaughzt.js');
7
+ var Theme = require('./Theme-DDlJz91O.js');
8
8
  var React = require('react');
9
9
  var sortBy = require('lodash/sortBy');
10
10
  var reactRedux = require('react-redux');
11
- var selectors = require('./selectors-2ohXQx5g.js');
11
+ var selectors = require('./selectors-Bf-6Fmez.js');
12
12
  var useEnterprise = require('./useEnterprise-IHd3AKd2.js');
13
13
  var designSystem = require('@strapi/design-system');
14
14
  var icons = require('@strapi/icons');
@@ -85,7 +85,7 @@ const useSettingsMenu = ()=>{
85
85
  * memoize the return value of this function to avoid re-computing it on every render
86
86
  * because it's used in an effect it ends up re-running recursively.
87
87
  */ const ceLinks = React__namespace.useMemo(()=>index.SETTINGS_LINKS_CE(), []);
88
- const { admin: adminLinks, global: globalLinks } = useEnterprise.useEnterprise(ceLinks, async ()=>(await Promise.resolve().then(function () { return require('./index-D7OmC33R.js'); }).then(function (n) { return n.constants; })).SETTINGS_LINKS_EE(), {
88
+ const { admin: adminLinks, global: globalLinks } = useEnterprise.useEnterprise(ceLinks, async ()=>(await Promise.resolve().then(function () { return require('./index-HGaughzt.js'); }).then(function (n) { return n.constants; })).SETTINGS_LINKS_EE(), {
89
89
  combine (ceLinks, eeLinks) {
90
90
  return {
91
91
  admin: [
@@ -293,4 +293,4 @@ const Layout = ()=>{
293
293
  };
294
294
 
295
295
  exports.Layout = Layout;
296
- //# sourceMappingURL=Layout-BZTqa7oj.js.map
296
+ //# sourceMappingURL=Layout-DST1PxaO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout-BZTqa7oj.js","sources":["../../../admin/src/hooks/useSettingsMenu.ts","../../../admin/src/pages/Settings/components/SettingsNav.tsx","../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","settings","useStrapiApp","permissions","useSelector","selectAdminPermissions","ceLinks","useMemo","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","CustomIcon","styled","Lightning","theme","colors","warning500","Link","SubNavLink","SettingsNav","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","filteredMenu","every","title","name","label","handleClickOnLink","destination","from","to","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","SubNavSections","SubNavSection","tag","NavLink","withBullet","onClick","position","licenseOnly","width","height","Layout","match","useMatch","Page","Loading","params","settingId","Navigate","Layouts","Root","sideNav","Title","Outlet"],"mappings":"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"}
1
+ {"version":3,"file":"Layout-DST1PxaO.js","sources":["../../../admin/src/hooks/useSettingsMenu.ts","../../../admin/src/pages/Settings/components/SettingsNav.tsx","../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","settings","useStrapiApp","permissions","useSelector","selectAdminPermissions","ceLinks","useMemo","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","CustomIcon","styled","Lightning","theme","colors","warning500","Link","SubNavLink","SettingsNav","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","filteredMenu","every","title","name","label","handleClickOnLink","destination","from","to","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","SubNavSections","SubNavSection","tag","NavLink","withBullet","onClick","position","licenseOnly","width","height","Layout","match","useMatch","Page","Loading","params","settingId","Navigate","Layouts","Root","sideNav","Title","Outlet"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useIntl } from 'react-intl';
3
3
  import { useLocation, NavLink, useMatch, Navigate, Outlet } from 'react-router-dom';
4
- import { p as SETTINGS_LINKS_CE, b as Layouts } from './index-BUGouNML.mjs';
5
- import { u as useAuth, p as useAppInfo, q as useStrapiApp, c as useTracking, P as Page } from './Theme-CDaBfQ-7.mjs';
4
+ import { p as SETTINGS_LINKS_CE, b as Layouts } from './index-BM8-DG5K.mjs';
5
+ import { u as useAuth, p as useAppInfo, q as useStrapiApp, c as useTracking, P as Page } from './Theme-C3oHrQcy.mjs';
6
6
  import * as React from 'react';
7
7
  import sortBy from 'lodash/sortBy';
8
8
  import { useSelector } from 'react-redux';
9
- import { s as selectAdminPermissions } from './selectors-PQdhPmzv.mjs';
9
+ import { s as selectAdminPermissions } from './selectors-Dej_6h4x.mjs';
10
10
  import { u as useEnterprise } from './useEnterprise-Dy8wMNV5.mjs';
11
11
  import { SubNavLink, SubNav, SubNavHeader, SubNavSections, SubNavSection } from '@strapi/design-system';
12
12
  import { Lightning } from '@strapi/icons';
@@ -64,7 +64,7 @@ const useSettingsMenu = ()=>{
64
64
  * memoize the return value of this function to avoid re-computing it on every render
65
65
  * because it's used in an effect it ends up re-running recursively.
66
66
  */ const ceLinks = React.useMemo(()=>SETTINGS_LINKS_CE(), []);
67
- const { admin: adminLinks, global: globalLinks } = useEnterprise(ceLinks, async ()=>(await import('./index-BUGouNML.mjs').then(function (n) { return n.O; })).SETTINGS_LINKS_EE(), {
67
+ const { admin: adminLinks, global: globalLinks } = useEnterprise(ceLinks, async ()=>(await import('./index-BM8-DG5K.mjs').then(function (n) { return n.O; })).SETTINGS_LINKS_EE(), {
68
68
  combine (ceLinks, eeLinks) {
69
69
  return {
70
70
  admin: [
@@ -272,4 +272,4 @@ const Layout = ()=>{
272
272
  };
273
273
 
274
274
  export { Layout };
275
- //# sourceMappingURL=Layout-B_xkPr1q.mjs.map
275
+ //# sourceMappingURL=Layout-DYjtK6iP.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout-B_xkPr1q.mjs","sources":["../../../admin/src/hooks/useSettingsMenu.ts","../../../admin/src/pages/Settings/components/SettingsNav.tsx","../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","settings","useStrapiApp","permissions","useSelector","selectAdminPermissions","ceLinks","useMemo","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","CustomIcon","styled","Lightning","theme","colors","warning500","Link","SubNavLink","SettingsNav","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","filteredMenu","every","title","name","label","handleClickOnLink","destination","from","to","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","SubNavSections","SubNavSection","tag","NavLink","withBullet","onClick","position","licenseOnly","width","height","Layout","match","useMatch","Page","Loading","params","settingId","Navigate","Layouts","Root","sideNav","Title","Outlet"],"mappings":"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"}
1
+ {"version":3,"file":"Layout-DYjtK6iP.mjs","sources":["../../../admin/src/hooks/useSettingsMenu.ts","../../../admin/src/pages/Settings/components/SettingsNav.tsx","../../../admin/src/pages/Settings/Layout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport sortBy from 'lodash/sortBy';\nimport { useSelector } from 'react-redux';\n\nimport { SETTINGS_LINKS_CE, SettingsMenuLink } from '../constants';\nimport { useAppInfo } from '../features/AppInfo';\nimport { useAuth } from '../features/Auth';\nimport { useStrapiApp } from '../features/StrapiApp';\nimport { selectAdminPermissions } from '../selectors';\nimport { PermissionMap } from '../types/permissions';\n\nimport { useEnterprise } from './useEnterprise';\n\nimport type {\n StrapiAppSetting,\n StrapiAppSettingLink as IStrapiAppSettingLink,\n} from '../core/apis/router';\n\nconst formatLinks = (menu: SettingsMenuSection[]): SettingsMenuSectionWithDisplayedLinks[] =>\n menu.map((menuSection) => {\n const formattedLinks = menuSection.links.map((link) => ({\n ...link,\n isDisplayed: false,\n }));\n\n return { ...menuSection, links: formattedLinks };\n });\n\ninterface SettingsMenuLinkWithPermissions extends SettingsMenuLink {\n permissions: IStrapiAppSettingLink['permissions'];\n hasNotification?: boolean;\n}\n\ninterface StrapiAppSettingsLink extends IStrapiAppSettingLink {\n licenseOnly?: never;\n hasNotification?: never;\n}\n\ninterface SettingsMenuSection extends Omit<StrapiAppSetting, 'links'> {\n links: Array<SettingsMenuLinkWithPermissions | StrapiAppSettingsLink>;\n}\n\ninterface SettingsMenuLinkWithPermissionsAndDisplayed extends SettingsMenuLinkWithPermissions {\n isDisplayed: boolean;\n}\n\ninterface StrapiAppSettingLinkWithDisplayed extends StrapiAppSettingsLink {\n isDisplayed: boolean;\n}\n\ninterface SettingsMenuSectionWithDisplayedLinks extends Omit<SettingsMenuSection, 'links'> {\n links: Array<SettingsMenuLinkWithPermissionsAndDisplayed | StrapiAppSettingLinkWithDisplayed>;\n}\n\ntype SettingsMenu = SettingsMenuSectionWithDisplayedLinks[];\n\nconst useSettingsMenu = (): {\n isLoading: boolean;\n menu: SettingsMenu;\n} => {\n const [{ isLoading, menu }, setData] = React.useState<{\n isLoading: boolean;\n menu: SettingsMenu;\n }>({\n isLoading: true,\n menu: [],\n });\n const checkUserHasPermission = useAuth(\n 'useSettingsMenu',\n (state) => state.checkUserHasPermissions\n );\n const shouldUpdateStrapi = useAppInfo('useSettingsMenu', (state) => state.shouldUpdateStrapi);\n const settings = useStrapiApp('useSettingsMenu', (state) => state.settings);\n const permissions = useSelector(selectAdminPermissions);\n\n /**\n * memoize the return value of this function to avoid re-computing it on every render\n * because it's used in an effect it ends up re-running recursively.\n */\n const ceLinks = React.useMemo(() => SETTINGS_LINKS_CE(), []);\n\n const { admin: adminLinks, global: globalLinks } = useEnterprise(\n ceLinks,\n async () => (await import('../../../ee/admin/src/constants')).SETTINGS_LINKS_EE(),\n {\n combine(ceLinks, eeLinks) {\n return {\n admin: [...eeLinks.admin, ...ceLinks.admin],\n global: [...ceLinks.global, ...eeLinks.global],\n };\n },\n defaultValue: {\n admin: [],\n global: [],\n },\n }\n );\n\n const addPermissions = React.useCallback(\n (link: SettingsMenuLink) => {\n if (!link.id) {\n throw new Error('The settings menu item must have an id attribute.');\n }\n\n return {\n ...link,\n permissions: permissions.settings?.[link.id as keyof PermissionMap['settings']]?.main ?? [],\n } satisfies SettingsMenuLinkWithPermissions;\n },\n [permissions.settings]\n );\n\n React.useEffect(() => {\n const getData = async () => {\n interface MenuLinkPermission {\n hasPermission: boolean;\n sectionIndex: number;\n linkIndex: number;\n }\n\n const buildMenuPermissions = (sections: SettingsMenuSectionWithDisplayedLinks[]) =>\n Promise.all(\n sections.reduce<Promise<MenuLinkPermission>[]>((acc, section, sectionIndex) => {\n const linksWithPermissions = section.links.map(async (link, linkIndex) => ({\n hasPermission: (await checkUserHasPermission(link.permissions)).length > 0,\n sectionIndex,\n linkIndex,\n }));\n\n return [...acc, ...linksWithPermissions];\n }, [])\n );\n\n const menuPermissions = await buildMenuPermissions(sections);\n\n setData((prev) => {\n return {\n ...prev,\n isLoading: false,\n menu: sections.map((section, sectionIndex) => ({\n ...section,\n links: section.links.map((link, linkIndex) => {\n const permission = menuPermissions.find(\n (permission) =>\n permission.sectionIndex === sectionIndex && permission.linkIndex === linkIndex\n );\n\n return {\n ...link,\n isDisplayed: Boolean(permission?.hasPermission),\n };\n }),\n })),\n };\n });\n };\n\n const { global, ...otherSections } = settings;\n const sections = formatLinks([\n {\n ...global,\n links: sortBy([...global.links, ...globalLinks.map(addPermissions)], (link) => link.id).map(\n (link) => ({\n ...link,\n hasNotification: link.id === '000-application-infos' && shouldUpdateStrapi,\n })\n ),\n },\n {\n id: 'permissions',\n intlLabel: { id: 'Settings.permissions', defaultMessage: 'Administration Panel' },\n links: adminLinks.map(addPermissions),\n },\n ...Object.values(otherSections),\n ]);\n\n getData();\n }, [\n adminLinks,\n globalLinks,\n settings,\n shouldUpdateStrapi,\n addPermissions,\n checkUserHasPermission,\n ]);\n\n return {\n isLoading,\n menu: menu.map((menuItem) => ({\n ...menuItem,\n links: menuItem.links.filter((link) => link.isDisplayed),\n })),\n };\n};\n\nexport { useSettingsMenu };\nexport type { SettingsMenu };\n","import {\n SubNav,\n SubNavHeader,\n SubNavLink,\n SubNavSection,\n SubNavSections,\n} from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { SettingsMenu } from '../../../hooks/useSettingsMenu';\n\nconst CustomIcon = styled(Lightning)`\n right: 15px;\n position: absolute;\n bottom: 50%;\n transform: translateY(50%);\n\n path {\n fill: ${({ theme }) => theme.colors.warning500};\n }\n`;\n\nconst Link = styled(SubNavLink)`\n &.active ${CustomIcon} {\n right: 13px;\n }\n`;\n\ninterface SettingsNavProps {\n menu: SettingsMenu;\n}\n\nconst SettingsNav = ({ menu }: SettingsNavProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n\n const filteredMenu = menu.filter(\n (section) => !section.links.every((link) => link.isDisplayed === false)\n );\n\n const sections = filteredMenu.map((section) => {\n return {\n ...section,\n title: section.intlLabel,\n links: section.links.map((link) => {\n return {\n ...link,\n title: link.intlLabel,\n name: link.id,\n };\n }),\n };\n });\n\n const label = formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n });\n\n const handleClickOnLink = (destination: string) => () => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n return (\n <SubNav aria-label={label}>\n <SubNavHeader label={label} />\n <SubNavSections>\n {sections.map((section) => (\n <SubNavSection key={section.id} label={formatMessage(section.intlLabel)}>\n {section.links.map((link) => {\n return (\n <Link\n tag={NavLink}\n withBullet={link.hasNotification}\n to={link.to}\n onClick={handleClickOnLink(link.to)}\n key={link.id}\n position=\"relative\"\n >\n {formatMessage(link.intlLabel)}\n {link?.licenseOnly && <CustomIcon width=\"1.5rem\" height=\"1.5rem\" />}\n </Link>\n );\n })}\n </SubNavSection>\n ))}\n </SubNavSections>\n </SubNav>\n );\n};\n\nexport { SettingsNav };\nexport type { SettingsNavProps };\n","import { useIntl } from 'react-intl';\nimport { Navigate, Outlet, useMatch } from 'react-router-dom';\n\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { useSettingsMenu } from '../../hooks/useSettingsMenu';\n\nimport { SettingsNav } from './components/SettingsNav';\n\nconst Layout = () => {\n /**\n * This ensures we're capturing the settingId from the URL\n * but also lets any nesting after that pass.\n */\n const match = useMatch('/settings/:settingId/*');\n const { formatMessage } = useIntl();\n const { isLoading, menu } = useSettingsMenu();\n\n // Since the useSettingsMenu hook can make API calls in order to check the links permissions\n // We need to add a loading state to prevent redirecting the user while permissions are being checked\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (!match?.params.settingId) {\n return <Navigate to=\"application-infos\" />;\n }\n\n return (\n <Layouts.Root sideNav={<SettingsNav menu={menu} />}>\n <Page.Title>\n {formatMessage({\n id: 'global.settings',\n defaultMessage: 'Settings',\n })}\n </Page.Title>\n <Outlet />\n </Layouts.Root>\n );\n};\n\nexport { Layout };\n"],"names":["formatLinks","menu","map","menuSection","formattedLinks","links","link","isDisplayed","useSettingsMenu","isLoading","setData","React","useState","checkUserHasPermission","useAuth","state","checkUserHasPermissions","shouldUpdateStrapi","useAppInfo","settings","useStrapiApp","permissions","useSelector","selectAdminPermissions","ceLinks","useMemo","SETTINGS_LINKS_CE","admin","adminLinks","global","globalLinks","useEnterprise","SETTINGS_LINKS_EE","combine","eeLinks","defaultValue","addPermissions","useCallback","id","Error","main","useEffect","getData","buildMenuPermissions","sections","Promise","all","reduce","acc","section","sectionIndex","linksWithPermissions","linkIndex","hasPermission","length","menuPermissions","prev","permission","find","Boolean","otherSections","sortBy","hasNotification","intlLabel","defaultMessage","Object","values","menuItem","filter","CustomIcon","styled","Lightning","theme","colors","warning500","Link","SubNavLink","SettingsNav","formatMessage","useIntl","trackUsage","useTracking","pathname","useLocation","filteredMenu","every","title","name","label","handleClickOnLink","destination","from","to","_jsxs","SubNav","aria-label","_jsx","SubNavHeader","SubNavSections","SubNavSection","tag","NavLink","withBullet","onClick","position","licenseOnly","width","height","Layout","match","useMatch","Page","Loading","params","settingId","Navigate","Layouts","Root","sideNav","Title","Outlet"],"mappings":"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"}
@@ -5,13 +5,13 @@ import { Mail, Pencil, Trash } from '@strapi/icons';
5
5
  import * as qs from 'qs';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useNavigate, useLocation, NavLink } from 'react-router-dom';
8
- import { e as errorsTrads, q as useCreateUserMutation, F as Form, M as MemoizedInputRenderer, k as useAdminUsers, r as useDeleteManyUsersMutation, b as Layouts, S as SearchInput, s as Filters, T as Table, P as Pagination, C as ConfirmDialog } from './index-BUGouNML.mjs';
9
- import { a as useNotification, e as useAPIErrorHandler, b as useTypedSelector, P as Page, k as useRBAC } from './Theme-CDaBfQ-7.mjs';
8
+ import { e as errorsTrads, q as useCreateUserMutation, F as Form, M as MemoizedInputRenderer, k as useAdminUsers, r as useDeleteManyUsersMutation, b as Layouts, S as SearchInput, s as Filters, T as Table, P as Pagination, C as ConfirmDialog } from './index-BM8-DG5K.mjs';
9
+ import { a as useNotification, e as useAPIErrorHandler, b as useTypedSelector, P as Page, k as useRBAC } from './Theme-C3oHrQcy.mjs';
10
10
  import { u as useEnterprise } from './useEnterprise-Dy8wMNV5.mjs';
11
11
  import { g as getDisplayName } from './users-B3iOAYG-.mjs';
12
12
  import * as yup from 'yup';
13
13
  import { i as isBaseQueryError } from './admin-BBS7sDVu.mjs';
14
- import { M as MagicLinkCE, S as SelectRoles } from './SelectRoles-CG3Czm0u.mjs';
14
+ import { M as MagicLinkCE, S as SelectRoles } from './SelectRoles-DR4KBZkw.mjs';
15
15
  import 'react-dom/client';
16
16
  import 'invariant';
17
17
  import 'lodash/isFunction';
@@ -40,7 +40,7 @@ import 'lodash/defaultsDeep';
40
40
  import 'lodash/trimEnd';
41
41
  import '@reduxjs/toolkit/query/react';
42
42
  import 'lodash/fp/pipe';
43
- import './useAdminRoles-BEmkB0uj.mjs';
43
+ import './useAdminRoles-C6Es4UUq.mjs';
44
44
 
45
45
  const CreateActionCE = /*#__PURE__*/ React.forwardRef((props, ref)=>{
46
46
  const { formatMessage } = useIntl();
@@ -80,7 +80,7 @@ const ModalForm = ({ onToggle })=>{
80
80
  },
81
81
  defaultValue: FORM_INITIAL_VALUES
82
82
  });
83
- const MagicLink = useEnterprise(MagicLinkCE, async ()=>(await import('./MagicLinkEE-CiQG7NL3.mjs')).MagicLinkEE);
83
+ const MagicLink = useEnterprise(MagicLinkCE, async ()=>(await import('./MagicLinkEE-EcyHC46Y.mjs')).MagicLinkEE);
84
84
  const [createUser] = useCreateUserMutation();
85
85
  const headerTitle = formatMessage({
86
86
  id: 'Settings.permissions.users.create',
@@ -675,7 +675,7 @@ const FILTERS = [
675
675
  * -----------------------------------------------------------------------------------------------*/ // component which determines whether this page should render the CE or EE page
676
676
  const ListPage = ()=>{
677
677
  const UsersListPage = useEnterprise(ListPageCE, async ()=>// eslint-disable-next-line import/no-cycle
678
- (await import('./ListPage-r9rW__R8.mjs')).UserListPageEE);
678
+ (await import('./ListPage-PwzVjSsA.mjs')).UserListPageEE);
679
679
  // block rendering until the EE component is fully loaded
680
680
  if (!UsersListPage) {
681
681
  return null;
@@ -693,4 +693,4 @@ const ListPage = ()=>{
693
693
  };
694
694
 
695
695
  export { ListPage, ListPageCE, ProtectedListPage };
696
- //# sourceMappingURL=ListPage-BtMdu1eQ.mjs.map
696
+ //# sourceMappingURL=ListPage-B5Hb8BA-.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-BtMdu1eQ.mjs","sources":["../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, ButtonProps } from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>((props, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button ref={ref} startIcon={<Mail />} size=\"S\" {...props}>\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n});\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n <Typography>{isActive ? 'Active' : 'Inactive'}</Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["CreateActionCE","React","forwardRef","props","ref","formatMessage","useIntl","_jsx","Button","startIcon","Mail","size","id","defaultMessage","ModalForm","onToggle","currentStep","setStep","useState","registrationToken","setRegistrationToken","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create","ListPageCE","isModalOpened","setIsModalOpen","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","CreateActionEE","headers","TABLE_HEADERS","header","title","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","err","handleRowClick","toString","handleDeleteClick","confirmDelete","Page","Error","Main","aria-busy","Title","Layouts","primaryAction","subtitle","Action","startActions","SearchInput","target","Filters","options","FILTERS","Trigger","Popover","List","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","textColor","e","stopPropagation","justifyContent","IconButton","NavLink","to","getDisplayName","Pencil","Trash","Pagination","PageSize","Links","Dialog","open","ConfirmDialog","onConfirm","sortable","role","join","isActive","Status","borderWidth","background","color","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-B5Hb8BA-.mjs","sources":["../../../admin/src/pages/Settings/pages/Users/components/CreateActionCE.tsx","../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx","../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, ButtonProps } from '@strapi/design-system';\nimport { Mail } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\ninterface CreateActionCEProps extends Pick<ButtonProps, 'onClick'> {}\n\nconst CreateActionCE = React.forwardRef<HTMLButtonElement, CreateActionCEProps>((props, ref) => {\n const { formatMessage } = useIntl();\n\n return (\n <Button ref={ref} startIcon={<Mail />} size=\"S\" {...props}>\n {formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n })}\n </Button>\n );\n});\n\nexport { CreateActionCE };\nexport type { CreateActionCEProps };\n","import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n","import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, any>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status\n size=\"S\"\n borderWidth={0}\n background=\"transparent\"\n color=\"neutral800\"\n variant={isActive ? 'success' : 'danger'}\n >\n <Typography>{isActive ? 'Active' : 'Inactive'}</Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["CreateActionCE","React","forwardRef","props","ref","formatMessage","useIntl","_jsx","Button","startIcon","Mail","size","id","defaultMessage","ModalForm","onToggle","currentStep","setStep","useState","registrationToken","setRegistrationToken","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","field","Item","col","InputRenderer","disabled","placeholder","xs","SelectRoles","undefined","hint","Footer","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create","ListPageCE","isModalOpened","setIsModalOpen","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","pagination","CreateAction","CreateActionEE","headers","TABLE_HEADERS","header","title","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","err","handleRowClick","toString","handleDeleteClick","confirmDelete","Page","Error","Main","aria-busy","Title","Layouts","primaryAction","subtitle","Action","startActions","SearchInput","target","Filters","options","FILTERS","Trigger","Popover","List","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","user","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","textColor","e","stopPropagation","justifyContent","IconButton","NavLink","to","getDisplayName","Pencil","Trash","Pagination","PageSize","Links","Dialog","open","ConfirmDialog","onConfirm","sortable","role","join","isActive","Status","borderWidth","background","color","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { JSONInput, Modal as Modal$1, Breadcrumbs, Crumb, Flex, Loader, Box, Typography, Grid, Field, Combobox, ComboboxOption, IconButton } from '@strapi/design-system';
3
3
  import { Eye } from '@strapi/icons';
4
4
  import { useIntl } from 'react-intl';
5
- import { k as useAdminUsers, u as useField, b as Layouts, s as Filters, T as Table, P as Pagination } from './index-BUGouNML.mjs';
6
- import { a as useNotification, e as useAPIErrorHandler, n as useQueryParams, b as useTypedSelector, P as Page, k as useRBAC } from './Theme-CDaBfQ-7.mjs';
5
+ import { k as useAdminUsers, u as useField, b as Layouts, s as Filters, T as Table, P as Pagination } from './index-BM8-DG5K.mjs';
6
+ import { a as useNotification, e as useAPIErrorHandler, n as useQueryParams, b as useTypedSelector, P as Page, k as useRBAC } from './Theme-C3oHrQcy.mjs';
7
7
  import * as React from 'react';
8
8
  import { styled } from 'styled-components';
9
9
  import { a as adminApi } from './admin-BBS7sDVu.mjs';
@@ -607,4 +607,4 @@ const ProtectedListPage = ()=>{
607
607
  };
608
608
 
609
609
  export { ListPage, ProtectedListPage };
610
- //# sourceMappingURL=ListPage-Beh8uBDE.mjs.map
610
+ //# sourceMappingURL=ListPage-BVI0O8bq.mjs.map