@strapi/admin 5.10.2 → 5.10.4

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 +9 -9
  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
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-LqcmQd_Q.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","Layouts","Root","Title","name","Main","aria-busy","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","_Fragment","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-DbfL2rpi.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","Layouts","Root","Title","name","Main","aria-busy","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","_Fragment","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
@@ -1,20 +1,20 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { ListPageCE } from './ListPage-BtMdu1eQ.mjs';
3
- import { u as useLicenseLimitNotification } from './useLicenseLimitNotification-CGkazzao.mjs';
2
+ import { ListPageCE } from './ListPage-B5Hb8BA-.mjs';
3
+ import { u as useLicenseLimitNotification } from './useLicenseLimitNotification-DbPhRccK.mjs';
4
4
  import 'react';
5
5
  import '@strapi/design-system';
6
6
  import '@strapi/icons';
7
7
  import 'qs';
8
8
  import 'react-intl';
9
9
  import 'react-router-dom';
10
- import './index-BUGouNML.mjs';
10
+ import './index-BM8-DG5K.mjs';
11
11
  import 'react-dom/client';
12
12
  import 'invariant';
13
13
  import 'lodash/isFunction';
14
14
  import 'lodash/merge';
15
15
  import 'lodash/pick';
16
16
  import 'immer';
17
- import './Theme-CDaBfQ-7.mjs';
17
+ import './Theme-C3oHrQcy.mjs';
18
18
  import '@radix-ui/react-context';
19
19
  import '@strapi/icons/symbols';
20
20
  import './admin-BBS7sDVu.mjs';
@@ -41,8 +41,8 @@ import 'lodash/omit';
41
41
  import 'formik';
42
42
  import 'lodash/throttle';
43
43
  import './users-B3iOAYG-.mjs';
44
- import './SelectRoles-CG3Czm0u.mjs';
45
- import './useAdminRoles-BEmkB0uj.mjs';
44
+ import './SelectRoles-DR4KBZkw.mjs';
45
+ import './useAdminRoles-C6Es4UUq.mjs';
46
46
  import 'lodash/isNil';
47
47
  import './useLicenseLimits-D4XBewxi.mjs';
48
48
 
@@ -52,4 +52,4 @@ const UserListPageEE = ()=>{
52
52
  };
53
53
 
54
54
  export { UserListPageEE };
55
- //# sourceMappingURL=ListPage-r9rW__R8.mjs.map
55
+ //# sourceMappingURL=ListPage-PwzVjSsA.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-r9rW__R8.mjs","sources":["../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":["UserListPageEE","useLicenseLimitNotification","_jsx","ListPageCE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGaA,cAAiB,GAAA,IAAA;AAC5BC,IAAAA,2BAAAA,EAAAA;AAEA,IAAA,qBAAOC,GAACC,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACV;;;;"}
1
+ {"version":3,"file":"ListPage-PwzVjSsA.mjs","sources":["../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":["UserListPageEE","useLicenseLimitNotification","_jsx","ListPageCE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGaA,cAAiB,GAAA,IAAA;AAC5BC,IAAAA,2BAAAA,EAAAA;AAEA,IAAA,qBAAOC,GAACC,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACV;;;;"}
@@ -5,10 +5,10 @@ import { Plus, Duplicate, Pencil, Trash } from '@strapi/icons';
5
5
  import { produce } from 'immer';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { useNavigate } from 'react-router-dom';
8
- import { n as useFetchClient, b as Layouts, S as SearchInput, C as ConfirmDialog } from './index-BUGouNML.mjs';
9
- import { b as useTypedSelector, P as Page, e as useAPIErrorHandler, a as useNotification, n as useQueryParams, k as useRBAC } from './Theme-CDaBfQ-7.mjs';
10
- import { u as useAdminRoles } from './useAdminRoles-BEmkB0uj.mjs';
11
- import { s as selectAdminPermissions } from './selectors-PQdhPmzv.mjs';
8
+ import { n as useFetchClient, b as Layouts, S as SearchInput, C as ConfirmDialog } from './index-BM8-DG5K.mjs';
9
+ import { b as useTypedSelector, P as Page, e as useAPIErrorHandler, a as useNotification, n as useQueryParams, k as useRBAC } from './Theme-C3oHrQcy.mjs';
10
+ import { u as useAdminRoles } from './useAdminRoles-C6Es4UUq.mjs';
11
+ import { s as selectAdminPermissions } from './selectors-Dej_6h4x.mjs';
12
12
  import { c as isFetchError } from './admin-BBS7sDVu.mjs';
13
13
  import 'react-dom/client';
14
14
  import 'invariant';
@@ -370,4 +370,4 @@ const reducer = (state, action)=>produce(state, (draftState)=>{
370
370
  };
371
371
 
372
372
  export { ListPage, ProtectedListPage };
373
- //# sourceMappingURL=ListPage-Czwak48Z.mjs.map
373
+ //# sourceMappingURL=ListPage-srJutHdv.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-Czwak48Z.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAMA,UAAU,CAAC,EACfC,EAAE,EACFC,IAAI,EACJC,WAAW,EACXC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACO,GAAA;IACb,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,GAAGC,WAAW,GAAGN,KAAAA;AAEvB,IAAA,MAAMO,iBAAiBH,aACrB,CAAA;QACER,EAAI,EAAA,CAAC,wBAAwB,CAAC;QAC9BY,cAAgB,EAAA;KAElB,EAAA;QAAEC,MAAQV,EAAAA;AAAW,KAAA,CAAA;AAGvB,IAAA,qBACEW,IAACC,CAAAA,EAAAA,EAAAA;QACCR,MAAQA,EAAAA,MAAAA;QACRS,eAAeX,EAAAA,QAAAA;;QAGfY,OAASX,EAAAA,SAAAA,GAAYI,UAAWO,CAAAA,OAAO,GAAGC,SAAAA;;0BAE1CC,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BvB,oBAAAA,QAAAA,EAAAA;;;0BAGLkB,GAACC,CAAAA,EAAAA,EAAAA;gBAAGC,QAAU,EAAA,CAAC,KAAK,CAAC;AACnB,gBAAA,QAAA,gBAAAF,GAACG,CAAAA,UAAAA,EAAAA;oBAAWC,QAAQ,EAAA,IAAA;oBAACC,SAAU,EAAA,YAAA;AAC5BtB,oBAAAA,QAAAA,EAAAA;;;0BAGLiB,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACG,CAAAA,UAAAA,EAAAA;oBAAWE,SAAU,EAAA,YAAA;AAAcb,oBAAAA,QAAAA,EAAAA;;;0BAEtCQ,GAACC,CAAAA,EAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAD,GAACM,CAAAA,IAAAA,EAAAA;oBAAKC,cAAe,EAAA,UAAA;oBAAWT,OAAS,EAAA,CAACU,CAAMA,GAAAA,CAAAA,CAAEC,eAAe,EAAA;8BAC9DxB,KAAMyB,CAAAA,GAAG,CAAC,CAACC,IAAMC,EAAAA,CAAAA,GAAAA;AAChB,wBAAA,IAAID,IAAM,EAAA;AACR,4BAAA,qBACEX,GAACa,CAAAA,GAAAA,EAAAA;gCAAqBC,WAAaF,EAAAA,CAAAA,KAAM,IAAI,CAAI,GAAA,CAAA;AAC/C,gCAAA,QAAA,gBAAAZ,GAACe,CAAAA,UAAAA,EAAAA;AAAY,oCAAA,GAAGJ,IAAI;oCAAEK,OAAQ,EAAA;;AADtBL,6BAAAA,EAAAA,IAAAA,CAAKM,KAAK,CAAA;AAIxB;wBAEA,OAAO,IAAA;AACT,qBAAA;;;;AA7BCpC,KAAAA,EAAAA,EAAAA,CAAAA;AAkCX,CAAA;;ACpCA,MAAMqC,QAAW,GAAA,IAAA;IACf,MAAM,EAAE7B,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM6B,cAAcC,gBAAiBC,CAAAA,sBAAAA,CAAAA;IACrC,MAAM,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;IAC3B,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;AAC/B,IAAA,MAAM,CAACC,wBAA0BC,EAAAA,4BAAAA,CAA6B,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAChF,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAM,EACJC,SAAWC,EAAAA,uBAAuB,EAClCC,cAAgB,EAAA,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAElD,SAAS,EAAE,EAC7D,GAAGmD,OAAQnB,CAAAA,WAAAA,CAAYoB,QAAQ,EAAEC,KAAAA,CAAAA;AAElC,IAAA,MAAM,EAAEA,KAAK,EAAEC,SAASC,YAAY,EAAE,GAAGC,aACvC,CAAA;AAAEC,QAAAA,OAAAA,EAASd,OAAOe,EAAK,GAAA;YAAE/D,IAAM,EAAA;AAAEgE,gBAAAA,UAAAA,EAAYhB,MAAMe;AAAG;SAAM9C,GAAAA;KAC5D,EAAA;QACEgD,yBAA2B,EAAA,IAAA;AAC3BC,QAAAA,IAAAA,EAAMf,2BAA2B,CAACI;AACpC,KAAA,CAAA;AAGF,IAAA,MAAMY,QAAWC,GAAAA,WAAAA,EAAAA;IACjB,MAAM,CAAC,EAAEC,YAAY,EAAE,EAAEC,SAAS,GAAGxB,KAAAA,CAAMyB,UAAU,CAACC,OAASC,EAAAA,YAAAA,CAAAA;IAC/D,MAAM,EAAEC,IAAI,EAAE,GAAGC,cAAAA,EAAAA;AAEjB,IAAA,MAAMC,gBAAmB,GAAA,UAAA;QACvB,IAAI;YACFN,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AAEA,YAAA,MAAMH,KAAK,2BAA6B,EAAA;gBACtCI,GAAK,EAAA;AAACT,oBAAAA;AAAa;AACrB,aAAA,CAAA;YAEA,MAAMT,YAAAA,EAAAA;YAENU,QAAS,CAAA;gBACPO,IAAM,EAAA;AACR,aAAA,CAAA;AACF,SAAA,CAAE,OAAOE,KAAO,EAAA;AACd,YAAA,IAAIC,aAAaD,KAAQ,CAAA,EAAA;gBACvBrC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,QAAA;AACNI,oBAAAA,OAAAA,EAASzC,cAAeuC,CAAAA,KAAAA;AAC1B,iBAAA,CAAA;AACF;AACF;AACF,KAAA;IAEA,MAAMG,kBAAAA,GAAqB,IAAMf,QAAS,CAAA,KAAA,CAAA;AAE1C,IAAA,MAAMgB,iBAAoB,GAAA,IAAMtC,4BAA6B,CAAA,CAACuC,OAAS,CAACA,IAAAA,CAAAA;IAExE,MAAMC,iBAAAA,GAAoB,CAACC,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AAC9CA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;YAEjB,IAAI2D,IAAAA,CAAKpF,UAAU,EAAE;gBACnBwC,kBAAmB,CAAA;oBACjBmC,IAAM,EAAA,MAAA;AACNI,oBAAAA,OAAAA,EAAS1E,aAAc,CAAA;wBAAER,EAAI,EAAA;AAAiD,qBAAA;AAChF,iBAAA,CAAA;aACK,MAAA;gBACLuE,QAAS,CAAA;oBACPO,IAAM,EAAA,oBAAA;AACN9E,oBAAAA,EAAAA,EAAIuF,KAAKvF;AACX,iBAAA,CAAA;AAEAoF,gBAAAA,iBAAAA,EAAAA;AACF;AACF,SAAA;IAEA,MAAMK,oBAAAA,GAAuB,CAACF,IAAAA,GAAoB,CAAC5D,CAAAA,GAAAA;AACjDA,YAAAA,CAAAA,CAAE6D,cAAc,EAAA;AAChB7D,YAAAA,CAAAA,CAAEC,eAAe,EAAA;AAEjBwC,YAAAA,QAAAA,CAAS,CAAC,UAAU,EAAEmB,IAAKvF,CAAAA,EAAE,CAAC,CAAC,CAAA;AACjC,SAAA;IAEA,MAAM0F,QAAAA,GAAW/B,KAAMgC,CAAAA,MAAM,GAAG,CAAA;AAChC,IAAA,MAAMC,QAAW,GAAA,CAAA;AAEjB,IAAA,IAAIxC,uBAAyB,EAAA;QAC3B,qBAAOjC,GAAA,CAAC0E,KAAKC,OAAO,EAAA,EAAA,CAAA;AACtB;IAEA,qBACEhF,IAAA,CAAC+E,KAAKE,IAAI,EAAA;;AACR,0BAAA5E,GAAA,CAAC0E,KAAKG,KAAK,EAAA;0BACRxF,aACC,CAAA;oBAAER,EAAI,EAAA,oBAAA;oBAAsBY,cAAgB,EAAA;iBAC5C,EAAA;oBACEX,IAAM,EAAA;AACR,iBAAA;;AAGJ,0BAAAkB,GAAA,CAAC8E,QAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EACE7C,0BACEnC,GAACiF,CAAAA,MAAAA,EAAAA;oBAAOnF,OAASkE,EAAAA,kBAAAA;AAAoBkB,oBAAAA,SAAAA,gBAAWlF,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;oBAASC,IAAK,EAAA,GAAA;8BAC5D/F,aAAc,CAAA;wBACbR,EAAI,EAAA,gCAAA;wBACJY,cAAgB,EAAA;AAClB,qBAAA;AAEA,iBAAA,CAAA,GAAA,IAAA;AAEN4F,gBAAAA,KAAAA,EAAOhG,aAAc,CAAA;oBACnBR,EAAI,EAAA,cAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA,CAAA;AACA6F,gBAAAA,QAAAA,EAAUjG,aAAc,CAAA;oBACtBR,EAAI,EAAA,iCAAA;oBACJY,cAAgB,EAAA;AAClB,iBAAA;;YAED4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQS,MAAM,EAAA;AACbC,gBAAAA,YAAAA,gBACExF,GAACyF,CAAAA,WAAAA,EAAAA;AACCxE,oBAAAA,KAAAA,EAAO5B,aACL,CAAA;wBAAER,EAAI,EAAA,4BAAA;wBAA8BY,cAAgB,EAAA;qBACpD,EAAA;AACEiG,wBAAAA,MAAAA,EAAQrG,aAAc,CAAA;4BACpBR,EAAI,EAAA,cAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AACF,qBAAA;;;YAMT4C,OACC,kBAAArC,GAAA,CAAC8E,QAAQa,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAhG,IAACiG,CAAAA,KAAAA,EAAAA;oBACCnB,QAAUA,EAAAA,QAAAA;oBACVF,QAAUA,EAAAA,QAAAA;AACVsB,oBAAAA,MAAAA,EACE1D,0BACEnC,GAAC8F,CAAAA,OAAAA,EAAAA;wBAAQ1G,MAAO,EAAA,SAAA;wBAAUU,OAASkE,EAAAA,kBAAAA;AAAoBrD,wBAAAA,IAAAA,gBAAMX,GAACmF,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;kCAC3D9F,aAAc,CAAA;4BACbR,EAAI,EAAA,gCAAA;4BACJY,cAAgB,EAAA;AAClB,yBAAA;AAEA,qBAAA,CAAA,GAAA,IAAA;;sCAGNO,GAAC+F,CAAAA,KAAAA,EAAAA;AACC,4BAAA,QAAA,gBAAApG,IAACC,CAAAA,EAAAA,EAAAA;gCAAGC,eAAe,EAAA,CAAA;;kDACjBG,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,aAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,oBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACG,CAAAA,UAAAA,EAAAA;4CAAWa,OAAQ,EAAA,OAAA;4CAAQX,SAAU,EAAA,YAAA;sDACnChB,aAAc,CAAA;gDACbR,EAAI,EAAA,cAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;kDAGJO,GAACgG,CAAAA,EAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAAhG,GAACiG,CAAAA,cAAAA,EAAAA;sDACE5G,aAAc,CAAA;gDACbR,EAAI,EAAA,gBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA;;;;;;sCAKRO,GAACkG,CAAAA,KAAAA,EAAAA;AACE1D,4BAAAA,QAAAA,EAAAA,KAAAA,EAAO9B,GAAI,CAAA,CAAC0D,IAAM+B,EAAAA,KAAAA,iBACjBnG,GAACpB,CAAAA,OAAAA,EAAAA;oCACCQ,MAAO,EAAA,SAAA;AAEPP,oCAAAA,EAAAA,EAAIuF,KAAKvF,EAAE;AACXC,oCAAAA,IAAAA,EAAMsF,KAAKtF,IAAI;AACfC,oCAAAA,WAAAA,EAAaqF,KAAKrF,WAAW;AAC7BC,oCAAAA,UAAAA,EAAYoF,KAAKpF,UAAU;oCAC3BC,KACE,EAAA;wCACEkD,SACG,IAAA;AACCrC,4CAAAA,OAAAA,EAASwE,oBAAqBF,CAAAA,IAAAA,CAAAA;AAC9BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDACnBR,EAAI,EAAA,qBAAA;gDACJY,cAAgB,EAAA;AAClB,6CAAA,CAAA;AACA2G,4CAAAA,QAAAA,gBAAUpG,GAACqG,CAAAA,SAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFlH,SACG,IAAA;AACCW,4CAAAA,OAAAA,EAAS,IAAMmD,QAAAA,CAASmB,IAAKvF,CAAAA,EAAE,CAACyH,QAAQ,EAAA,CAAA;AACxCrF,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,gBAAA;gDAAkBY,cAAgB,EAAA;AAAO,6CAAA,CAAA;AACpE2G,4CAAAA,QAAAA,gBAAUpG,GAACuG,CAAAA,MAAAA,EAAAA,EAAAA;AACb,yCAAA;wCACFnE,SACG,IAAA;AACCtC,4CAAAA,OAAAA,EAASqE,iBAAkBC,CAAAA,IAAAA,CAAAA;AAC3BnD,4CAAAA,KAAAA,EAAO5B,aAAc,CAAA;gDAAER,EAAI,EAAA,eAAA;gDAAiBY,cAAgB,EAAA;AAAS,6CAAA,CAAA;AACrE2G,4CAAAA,QAAAA,gBAAUpG,GAACwG,CAAAA,KAAAA,EAAAA,EAAAA;AACb;AACH,qCAAA,CAACC,MAAM,CAACC,OAAAA,CAAAA;AAEXxH,oCAAAA,QAAAA,EAAUiH,KAAQ,GAAA,CAAA;oCAClBhH,SAAWA,EAAAA;AA/BNiF,iCAAAA,EAAAA,IAAAA,CAAKvF,EAAE,CAAA;;;;;AAsCxB,0BAAAmB,GAAA,CAAC2G,OAAOC,IAAI,EAAA;gBAACC,IAAMnF,EAAAA,wBAAAA;gBAA0BoF,YAAc7C,EAAAA,iBAAAA;AACzD,gBAAA,QAAA,gBAAAjE,GAAC+G,CAAAA,aAAAA,EAAAA;oBAAcC,SAAWtD,EAAAA;;;;;AAIlC;AAgBA,MAAMH,YAAe,GAAA;IACnBJ,YAAc,EAAA,IAAA;IACd8D,6BAA+B,EAAA,KAAA;IAC/BC,iBAAmB,EAAA;AACrB,CAAA;AAwBA,MAAM5D,UAAU,CAAC6D,KAAAA,EAAcC,MAC7BC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAOzD,IAAI;YACjB,KAAK,iBAAA;AAAmB,gBAAA;AACtB2D,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,IAAA;AAC3C,oBAAA;AACF;YACA,KAAK,2BAAA;AAA6B,gBAAA;AAChCK,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,IAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1B,oBAAA;AACF;YACA,KAAK,sBAAA;AAAwB,gBAAA;AAC3BmE,oBAAAA,UAAAA,CAAWJ,iBAAiB,GAAG,KAAA;AAC/BI,oBAAAA,UAAAA,CAAWnE,YAAY,GAAG,IAAA;AAC1BmE,oBAAAA,UAAAA,CAAWL,6BAA6B,GAAG,KAAA;AAC3C,oBAAA;AACF;YACA,KAAK,oBAAA;AAAsB,gBAAA;oBACzBK,UAAWnE,CAAAA,YAAY,GAAGiE,MAAAA,CAAOvI,EAAE;AAEnC,oBAAA;AACF;AACA,YAAA;gBACE,OAAOyI,UAAAA;AACX;AACF,KAAA,CAAA;AAEF;;AAEkG,2GAE5FC,iBAAoB,GAAA,IAAA;IACxB,MAAMpG,WAAAA,GAAcC,gBAAiB,CAAA,CAAC+F,KAAUA,GAAAA,KAAAA,CAAMK,SAAS,CAACrG,WAAW,CAACoB,QAAQ,EAAEC,KAAMiF,CAAAA,IAAAA,CAAAA;IAE5F,qBACEzH,GAAA,CAAC0E,KAAKgD,OAAO,EAAA;QAACvG,WAAaA,EAAAA,WAAAA;AACzB,QAAA,QAAA,gBAAAnB,GAACkB,CAAAA,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
1
+ {"version":3,"file":"ListPage-srJutHdv.mjs","sources":["../../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'children' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n cursor?: string;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n cursor,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n cursor={cursor}\n aria-rowindex={rowIndex}\n key={id}\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n onClick={canUpdate ? editObject.onClick : undefined}\n >\n <Td maxWidth={`13rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={`25rem`}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" onClick={(e) => e.stopPropagation()}>\n {icons.map((icon, i) => {\n if (icon) {\n return (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton {...icon} variant=\"ghost\" />\n </Box>\n );\n }\n\n return null;\n })}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n Button,\n Dialog,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { produce } from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\nimport { isFetchError } from '../../../../utils/getFetchClient';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const navigate = useNavigate();\n const [{ roleToDelete }, dispatch] = React.useReducer(reducer, initialState);\n const { post } = useFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (isFetchError(error)) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }\n };\n\n const handleNewRoleClick = () => navigate('new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: formatMessage({ id: 'Roles.ListPage.notification.delete-not-allowed' }),\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n navigate(`duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return <Page.Loading />;\n }\n\n return (\n <Page.Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n />\n {canRead && (\n <Layouts.Action\n startActions={\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <Layouts.Content>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter cursor=\"pointer\" onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n cursor=\"pointer\"\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n children: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => navigate(role.id.toString()),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n children: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n children: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </Layouts.Content>\n )}\n <Dialog.Root open={isWarningDeleteAllOpened} onOpenChange={handleToggleModal}>\n <ConfirmDialog onConfirm={handleDeleteData} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.roles.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":["RoleRow","id","name","description","usersCount","icons","rowIndex","canUpdate","cursor","formatMessage","useIntl","editObject","usersCountText","defaultMessage","number","_jsxs","Tr","aria-rowindex","onClick","undefined","_jsx","Td","maxWidth","Typography","ellipsis","textColor","Flex","justifyContent","e","stopPropagation","map","icon","i","Box","paddingLeft","IconButton","variant","label","ListPage","permissions","useTypedSelector","selectAdminPermissions","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","isWarningDeleteAllOpened","setIsWarningDeleteAllOpenend","React","useState","query","useQueryParams","isLoading","isLoadingForPermissions","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","roles","refetch","refetchRoles","useAdminRoles","filters","_q","$containsi","refetchOnMountOrArgChange","skip","navigate","useNavigate","roleToDelete","dispatch","useReducer","reducer","initialState","post","useFetchClient","handleDeleteData","type","ids","error","isFetchError","message","handleNewRoleClick","handleToggleModal","prev","handleClickDelete","role","preventDefault","handleClickDuplicate","rowCount","length","colCount","Page","Loading","Main","Title","Layouts","Header","primaryAction","Button","startIcon","Plus","size","title","subtitle","Action","startActions","SearchInput","target","Content","Table","footer","TFooter","Thead","Th","VisuallyHidden","Tbody","index","children","Duplicate","toString","Pencil","Trash","filter","Boolean","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","showModalConfirmButtonLoading","shouldRefetchData","state","action","produce","draftState","ProtectedListPage","admin_app","read","Protect"],"mappings":"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"}
@@ -6,12 +6,12 @@ import { EmptyDocuments } from '@strapi/icons/symbols';
6
6
  import * as qs from 'qs';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { useNavigate, Link } from 'react-router-dom';
9
- import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, m as useGuidedTour, e as useAPIErrorHandler } from './Theme-CDaBfQ-7.mjs';
10
- import { b as Layouts } from './index-BUGouNML.mjs';
9
+ import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, m as useGuidedTour, e as useAPIErrorHandler } from './Theme-C3oHrQcy.mjs';
10
+ import { b as Layouts } from './index-BM8-DG5K.mjs';
11
11
  import { u as useOnce } from './useOnce-EHSWW7FY.mjs';
12
12
  import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from './apiTokens-Bl4j4xFt.mjs';
13
13
  import { A as API_TOKEN_TYPE } from './constants-B8oOcJBB.mjs';
14
- import { T as Table } from './Table-Ra6bYcx7.mjs';
14
+ import { T as Table } from './Table-BohVeu0r.mjs';
15
15
  import '@radix-ui/react-context';
16
16
  import './admin-BBS7sDVu.mjs';
17
17
  import 'lodash/trimEnd';
@@ -250,4 +250,4 @@ const ProtectedListView = ()=>{
250
250
  };
251
251
 
252
252
  export { ListView, ProtectedListView };
253
- //# sourceMappingURL=ListView-Q2AO0JSX.mjs.map
253
+ //# sourceMappingURL=ListView--KzJiQiO.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-Q2AO0JSX.mjs","sources":["../../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListView--KzJiQiO.mjs","sources":["../../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
@@ -6,12 +6,12 @@ import { EmptyDocuments } from '@strapi/icons/symbols';
6
6
  import * as qs from 'qs';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { useNavigate, Link } from 'react-router-dom';
9
- import { b as Layouts } from './index-BUGouNML.mjs';
10
- import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, e as useAPIErrorHandler } from './Theme-CDaBfQ-7.mjs';
9
+ import { b as Layouts } from './index-BM8-DG5K.mjs';
10
+ import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, e as useAPIErrorHandler } from './Theme-C3oHrQcy.mjs';
11
11
  import { u as useOnce } from './useOnce-EHSWW7FY.mjs';
12
12
  import { c as useGetTransferTokensQuery, d as useDeleteTransferTokenMutation } from './transferTokens-9pdM-Bum.mjs';
13
13
  import { T as TRANSFER_TOKEN_TYPE } from './constants-B8oOcJBB.mjs';
14
- import { T as Table } from './Table-Ra6bYcx7.mjs';
14
+ import { T as Table } from './Table-BohVeu0r.mjs';
15
15
  import 'react-dom/client';
16
16
  import 'invariant';
17
17
  import 'lodash/isFunction';
@@ -252,4 +252,4 @@ const tableHeaders = [
252
252
  };
253
253
 
254
254
  export { ListView, ProtectedListView };
255
- //# sourceMappingURL=ListView-CajksON_.mjs.map
255
+ //# sourceMappingURL=ListView-CoGoDDiF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-CajksON_.mjs","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst tableHeaders = [\n {\n name: 'name',\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n role=\"button\"\n tag={Link}\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n })}\n />\n ) : null}\n {!canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["tableHeaders","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","isLoading","isLoadingRBAC","allowedActions","canCreate","canDelete","canUpdate","canRead","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","useOnce","tokenType","TRANSFER_TOKEN_TYPE","headers","map","header","data","transferTokens","isLoadingTokens","error","useGetTransferTokensQuery","undefined","skip","number","length","type","message","deleteToken","useDeleteTransferTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","role","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","action","variant","icon","EmptyDocuments","width","content","ProtectedListView","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-CoGoDDiF.mjs","sources":["../../../admin/src/pages/Settings/pages/TransferTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport {\n useDeleteTransferTokenMutation,\n useGetTransferTokensQuery,\n} from '../../../../services/transferTokens';\nimport { TRANSFER_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst tableHeaders = [\n {\n name: 'name',\n label: {\n id: 'Settings.tokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.tokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.tokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.tokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n] as const;\n\n/* -------------------------------------------------------------------------------------------------\n * ListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens']\n );\n const {\n isLoading: isLoadingRBAC,\n allowedActions: { canCreate, canDelete, canUpdate, canRead },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const {\n data: transferTokens = [],\n isLoading: isLoadingTokens,\n error,\n } = useGetTransferTokensQuery(undefined, {\n skip: !canRead,\n });\n\n React.useEffect(() => {\n if (transferTokens) {\n trackUsage('didAccessTokenList', {\n number: transferTokens.length,\n tokenType: TRANSFER_TOKEN_TYPE,\n });\n }\n }, [trackUsage, transferTokens]);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const [deleteToken] = useDeleteTransferTokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occured' }),\n });\n }\n };\n\n const isLoading = isLoadingTokens || isLoadingRBAC;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Transfer Tokens',\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.transferTokens.title',\n defaultMessage: 'Transfer Tokens',\n })}\n subtitle={formatMessage({\n id: 'Settings.transferTokens.description',\n defaultMessage: '\"List of generated transfer tokens\"', // TODO change this message\n })}\n primaryAction={\n canCreate ? (\n <LinkButton\n role=\"button\"\n tag={Link}\n data-testid=\"create-transfer-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: TRANSFER_TOKEN_TYPE,\n })\n }\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.create',\n defaultMessage: 'Create new Transfer Token',\n })}\n </LinkButton>\n ) : undefined\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {transferTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={transferTokens}\n tokenType={TRANSFER_TOKEN_TYPE}\n />\n )}\n {canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/transfer-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.transferTokens.addNewToken',\n defaultMessage: 'Add new Transfer Token',\n })}\n </LinkButton>\n }\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.addFirstToken',\n defaultMessage: 'Add your first Transfer Token',\n })}\n />\n ) : null}\n {!canCreate && transferTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.transferTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['transfer-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n\nexport { ListView, ProtectedListView };\n"],"names":["tableHeaders","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","isLoading","isLoadingRBAC","allowedActions","canCreate","canDelete","canUpdate","canRead","useRBAC","navigate","useNavigate","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","useOnce","tokenType","TRANSFER_TOKEN_TYPE","headers","map","header","data","transferTokens","isLoadingTokens","error","useGetTransferTokensQuery","undefined","skip","number","length","type","message","deleteToken","useDeleteTransferTokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","role","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","action","variant","icon","EmptyDocuments","width","content","ProtectedListView","main","Protect"],"mappings":"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"}
@@ -8,12 +8,12 @@ var symbols = require('@strapi/icons/symbols');
8
8
  var qs = require('qs');
9
9
  var reactIntl = require('react-intl');
10
10
  var reactRouterDom = require('react-router-dom');
11
- var index = require('./index-D7OmC33R.js');
12
- var Theme = require('./Theme-CFGbtvHi.js');
11
+ var index = require('./index-HGaughzt.js');
12
+ var Theme = require('./Theme-DDlJz91O.js');
13
13
  var useOnce = require('./useOnce-CCEXokcy.js');
14
14
  var transferTokens = require('./transferTokens-oEFM8kkT.js');
15
15
  var constants = require('./constants-tbFuOuW4.js');
16
- var Table = require('./Table-BHi0q5It.js');
16
+ var Table = require('./Table-CBZnqMuN.js');
17
17
  require('react-dom/client');
18
18
  require('invariant');
19
19
  require('lodash/isFunction');
@@ -275,4 +275,4 @@ const tableHeaders = [
275
275
 
276
276
  exports.ListView = ListView;
277
277
  exports.ProtectedListView = ProtectedListView;
278
- //# sourceMappingURL=ListView-Bys8EN-y.js.map
278
+ //# sourceMappingURL=ListView-DGfxO89i.js.map