@strapi/admin 5.4.1 → 5.4.2

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 (216) hide show
  1. package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs → AdminSeatInfo-BVns5hqY.mjs} +4 -4
  2. package/dist/admin/{AdminSeatInfo-BtXH5sC-.mjs.map → AdminSeatInfo-BVns5hqY.mjs.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-DJpF8PS1.js → AdminSeatInfo-YZSkpqTQ.js} +4 -4
  4. package/dist/admin/{AdminSeatInfo-DJpF8PS1.js.map → AdminSeatInfo-YZSkpqTQ.js.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-C9NiLWTS.js → ApplicationInfoPage-fGmhKAEH.js} +5 -5
  6. package/dist/admin/{ApplicationInfoPage-C9NiLWTS.js.map → ApplicationInfoPage-fGmhKAEH.js.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-683CGPri.mjs → ApplicationInfoPage-rMRwA77j.mjs} +5 -5
  8. package/dist/admin/{ApplicationInfoPage-683CGPri.mjs.map → ApplicationInfoPage-rMRwA77j.mjs.map} +1 -1
  9. package/dist/admin/{AuthResponse-tnFAm9fD.js → AuthResponse-B8hxRyao.js} +2 -2
  10. package/dist/admin/{AuthResponse-tnFAm9fD.js.map → AuthResponse-B8hxRyao.js.map} +1 -1
  11. package/dist/admin/{AuthResponse-BKpQdQAD.mjs → AuthResponse-CU7dtQY6.mjs} +2 -2
  12. package/dist/admin/{AuthResponse-BKpQdQAD.mjs.map → AuthResponse-CU7dtQY6.mjs.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-B0W-Ppik.js → AuthenticatedLayout-6zPHuS0W.js} +14 -14
  14. package/dist/admin/{AuthenticatedLayout-B0W-Ppik.js.map → AuthenticatedLayout-6zPHuS0W.js.map} +1 -1
  15. package/dist/admin/{AuthenticatedLayout-QjRy82SQ.mjs → AuthenticatedLayout-NZYgRFcl.mjs} +14 -14
  16. package/dist/admin/{AuthenticatedLayout-QjRy82SQ.mjs.map → AuthenticatedLayout-NZYgRFcl.mjs.map} +1 -1
  17. package/dist/admin/{CreateActionEE-BAbsDj_W.js → CreateActionEE-BnGBSrSz.js} +2 -2
  18. package/dist/admin/{CreateActionEE-BAbsDj_W.js.map → CreateActionEE-BnGBSrSz.js.map} +1 -1
  19. package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs → CreateActionEE-Bz3zvzzy.mjs} +2 -2
  20. package/dist/admin/{CreateActionEE-1i1Hn9yC.mjs.map → CreateActionEE-Bz3zvzzy.mjs.map} +1 -1
  21. package/dist/admin/{CreatePage-DdnSea92.js → CreatePage-Cpb66rVt.js} +3 -3
  22. package/dist/admin/{CreatePage-DdnSea92.js.map → CreatePage-Cpb66rVt.js.map} +1 -1
  23. package/dist/admin/{CreatePage-C4PU0AHF.mjs → CreatePage-CsZSWXwB.mjs} +3 -3
  24. package/dist/admin/{CreatePage-C4PU0AHF.mjs.map → CreatePage-CsZSWXwB.mjs.map} +1 -1
  25. package/dist/admin/{CreatePage-B5cgJ0x4.mjs → CreatePage-DPB9ir6r.mjs} +5 -5
  26. package/dist/admin/{CreatePage-B5cgJ0x4.mjs.map → CreatePage-DPB9ir6r.mjs.map} +1 -1
  27. package/dist/admin/{CreatePage-CQ_PSjfy.js → CreatePage-VY2xm9Wa.js} +5 -5
  28. package/dist/admin/{CreatePage-CQ_PSjfy.js.map → CreatePage-VY2xm9Wa.js.map} +1 -1
  29. package/dist/admin/{CreateView-CAFMGwXw.mjs → CreateView-B5J76SJD.mjs} +3 -3
  30. package/dist/admin/{CreateView-CAFMGwXw.mjs.map → CreateView-B5J76SJD.mjs.map} +1 -1
  31. package/dist/admin/{CreateView-BkjGFO1q.js → CreateView-BXug7isO.js} +3 -3
  32. package/dist/admin/{CreateView-BkjGFO1q.js.map → CreateView-BXug7isO.js.map} +1 -1
  33. package/dist/admin/{CreateView-LWgbJBGg.mjs → CreateView-CMI17CIi.mjs} +3 -3
  34. package/dist/admin/{CreateView-LWgbJBGg.mjs.map → CreateView-CMI17CIi.mjs.map} +1 -1
  35. package/dist/admin/{CreateView-r2yuWZ7_.js → CreateView-DnHNPboX.js} +3 -3
  36. package/dist/admin/{CreateView-r2yuWZ7_.js.map → CreateView-DnHNPboX.js.map} +1 -1
  37. package/dist/admin/{EditPage-CSQazVET.js → EditPage-Bgvwsmih.js} +6 -6
  38. package/dist/admin/{EditPage-CSQazVET.js.map → EditPage-Bgvwsmih.js.map} +1 -1
  39. package/dist/admin/{EditPage-DkK2CcjP.mjs → EditPage-BruskLzK.mjs} +6 -6
  40. package/dist/admin/{EditPage-DkK2CcjP.mjs.map → EditPage-BruskLzK.mjs.map} +1 -1
  41. package/dist/admin/{EditPage-D144CUxd.js → EditPage-BuWy13_w.js} +8 -8
  42. package/dist/admin/{EditPage-D144CUxd.js.map → EditPage-BuWy13_w.js.map} +1 -1
  43. package/dist/admin/{EditPage-C3OJuYxY.mjs → EditPage-DcSPQTtt.mjs} +7 -7
  44. package/dist/admin/{EditPage-C3OJuYxY.mjs.map → EditPage-DcSPQTtt.mjs.map} +1 -1
  45. package/dist/admin/{EditPage-Din0xCNi.mjs → EditPage-DevrDzXh.mjs} +8 -8
  46. package/dist/admin/{EditPage-Din0xCNi.mjs.map → EditPage-DevrDzXh.mjs.map} +1 -1
  47. package/dist/admin/{EditPage-DnvQHl4z.js → EditPage-Zat17CsY.js} +7 -7
  48. package/dist/admin/{EditPage-DnvQHl4z.js.map → EditPage-Zat17CsY.js.map} +1 -1
  49. package/dist/admin/{EditView-CbfTBtQA.mjs → EditView-BUKYxFyW.mjs} +6 -6
  50. package/dist/admin/{EditView-CbfTBtQA.mjs.map → EditView-BUKYxFyW.mjs.map} +1 -1
  51. package/dist/admin/{EditView-BxoYN0cp.js → EditView-CWhNhhQk.js} +6 -6
  52. package/dist/admin/{EditView-BxoYN0cp.js.map → EditView-CWhNhhQk.js.map} +1 -1
  53. package/dist/admin/{EditViewPage-BgUsc1vI.js → EditViewPage-CnJ4ZooO.js} +6 -6
  54. package/dist/admin/{EditViewPage-BgUsc1vI.js.map → EditViewPage-CnJ4ZooO.js.map} +1 -1
  55. package/dist/admin/{EditViewPage-Ds7H3Ib6.mjs → EditViewPage-DtZCPpEa.mjs} +6 -6
  56. package/dist/admin/{EditViewPage-Ds7H3Ib6.mjs.map → EditViewPage-DtZCPpEa.mjs.map} +1 -1
  57. package/dist/admin/{EventsTable-B9ddYPQx.js → EventsTable-B5JJMPA2.js} +2 -2
  58. package/dist/admin/{EventsTable-B9ddYPQx.js.map → EventsTable-B5JJMPA2.js.map} +1 -1
  59. package/dist/admin/{EventsTable-VBW6pGYW.mjs → EventsTable-BlzuD4LC.mjs} +2 -2
  60. package/dist/admin/{EventsTable-VBW6pGYW.mjs.map → EventsTable-BlzuD4LC.mjs.map} +1 -1
  61. package/dist/admin/{HomePage-wT6KNByy.js → HomePage-AvpauwXM.js} +3 -3
  62. package/dist/admin/{HomePage-wT6KNByy.js.map → HomePage-AvpauwXM.js.map} +1 -1
  63. package/dist/admin/{HomePage-_UCA75ne.mjs → HomePage-B21w_wNq.mjs} +3 -3
  64. package/dist/admin/{HomePage-_UCA75ne.mjs.map → HomePage-B21w_wNq.mjs.map} +1 -1
  65. package/dist/admin/{HomePage-uvzslDAc.js → HomePage-Dpuv_jq4.js} +5 -5
  66. package/dist/admin/{HomePage-uvzslDAc.js.map → HomePage-Dpuv_jq4.js.map} +1 -1
  67. package/dist/admin/{HomePage-BrGErg0o.mjs → HomePage-qJC8TTq6.mjs} +5 -5
  68. package/dist/admin/{HomePage-BrGErg0o.mjs.map → HomePage-qJC8TTq6.mjs.map} +1 -1
  69. package/dist/admin/{InstalledPlugins-q6iHMp8e.js → InstalledPlugins-9r6y2kyr.js} +4 -4
  70. package/dist/admin/{InstalledPlugins-q6iHMp8e.js.map → InstalledPlugins-9r6y2kyr.js.map} +1 -1
  71. package/dist/admin/{InstalledPlugins-B4iKWlES.mjs → InstalledPlugins-DEceX9Cg.mjs} +4 -4
  72. package/dist/admin/{InstalledPlugins-B4iKWlES.mjs.map → InstalledPlugins-DEceX9Cg.mjs.map} +1 -1
  73. package/dist/admin/{Layout-CaNlgN5n.mjs → Layout-CIroFchB.mjs} +5 -5
  74. package/dist/admin/{Layout-CaNlgN5n.mjs.map → Layout-CIroFchB.mjs.map} +1 -1
  75. package/dist/admin/{Layout-DGeCkbBf.js → Layout-C_RH1apu.js} +5 -5
  76. package/dist/admin/{Layout-DGeCkbBf.js.map → Layout-C_RH1apu.js.map} +1 -1
  77. package/dist/admin/{ListPage-CocqTTCj.mjs → ListPage-BMfkg16H.mjs} +4 -4
  78. package/dist/admin/{ListPage-CocqTTCj.mjs.map → ListPage-BMfkg16H.mjs.map} +1 -1
  79. package/dist/admin/{ListPage-DDnATmBl.js → ListPage-BWHVcy4q.js} +4 -4
  80. package/dist/admin/{ListPage-DDnATmBl.js.map → ListPage-BWHVcy4q.js.map} +1 -1
  81. package/dist/admin/{ListPage-D5H8f2M-.mjs → ListPage-Bqd_yAEb.mjs} +3 -3
  82. package/dist/admin/{ListPage-D5H8f2M-.mjs.map → ListPage-Bqd_yAEb.mjs.map} +1 -1
  83. package/dist/admin/{ListPage-cZ7G9ifV.mjs → ListPage-BxrPVSl5.mjs} +8 -8
  84. package/dist/admin/{ListPage-cZ7G9ifV.mjs.map → ListPage-BxrPVSl5.mjs.map} +1 -1
  85. package/dist/admin/{ListPage-B7z3qFyl.js → ListPage-CS7tHdAz.js} +4 -4
  86. package/dist/admin/{ListPage-B7z3qFyl.js.map → ListPage-CS7tHdAz.js.map} +1 -1
  87. package/dist/admin/{ListPage-Cl2tgcBV.js → ListPage-ChMiuYyL.js} +3 -3
  88. package/dist/admin/{ListPage-Cl2tgcBV.js.map → ListPage-ChMiuYyL.js.map} +1 -1
  89. package/dist/admin/{ListPage-Dhe2wcgV.js → ListPage-DK-JhVGo.js} +8 -8
  90. package/dist/admin/{ListPage-Dhe2wcgV.js.map → ListPage-DK-JhVGo.js.map} +1 -1
  91. package/dist/admin/{ListPage-CCnBCVJc.js → ListPage-DRmrKeZ4.js} +6 -6
  92. package/dist/admin/{ListPage-CCnBCVJc.js.map → ListPage-DRmrKeZ4.js.map} +1 -1
  93. package/dist/admin/{ListPage-fK1xgGBO.mjs → ListPage-DfyyMyn7.mjs} +6 -6
  94. package/dist/admin/{ListPage-fK1xgGBO.mjs.map → ListPage-DfyyMyn7.mjs.map} +1 -1
  95. package/dist/admin/{ListPage-DbHPSzvx.mjs → ListPage-ZOKLnTJp.mjs} +4 -4
  96. package/dist/admin/{ListPage-DbHPSzvx.mjs.map → ListPage-ZOKLnTJp.mjs.map} +1 -1
  97. package/dist/admin/{ListView-Uma8Kh0Y.js → ListView-B9_D-i55.js} +5 -5
  98. package/dist/admin/{ListView-Uma8Kh0Y.js.map → ListView-B9_D-i55.js.map} +1 -1
  99. package/dist/admin/{ListView-BAOu3t3r.js → ListView-BeuDKXi2.js} +5 -5
  100. package/dist/admin/{ListView-BAOu3t3r.js.map → ListView-BeuDKXi2.js.map} +1 -1
  101. package/dist/admin/{ListView-CDBJ6KxG.mjs → ListView-Bjy7mOBN.mjs} +5 -5
  102. package/dist/admin/{ListView-CDBJ6KxG.mjs.map → ListView-Bjy7mOBN.mjs.map} +1 -1
  103. package/dist/admin/{ListView-DCHh8Z9Q.mjs → ListView-BwLr86nb.mjs} +5 -5
  104. package/dist/admin/{ListView-DCHh8Z9Q.mjs.map → ListView-BwLr86nb.mjs.map} +1 -1
  105. package/dist/admin/{Login-BMNixw-B.mjs → Login-DsIpK3bD.mjs} +3 -3
  106. package/dist/admin/{Login-BMNixw-B.mjs.map → Login-DsIpK3bD.mjs.map} +1 -1
  107. package/dist/admin/{Login-CIgQWbpY.js → Login-xV0kqX0X.js} +3 -3
  108. package/dist/admin/{Login-CIgQWbpY.js.map → Login-xV0kqX0X.js.map} +1 -1
  109. package/dist/admin/{MagicLinkEE-Cfm5HTYA.js → MagicLinkEE-CQXTo_i9.js} +3 -3
  110. package/dist/admin/{MagicLinkEE-Cfm5HTYA.js.map → MagicLinkEE-CQXTo_i9.js.map} +1 -1
  111. package/dist/admin/{MagicLinkEE-DXVettXy.mjs → MagicLinkEE-CsJGWKhy.mjs} +3 -3
  112. package/dist/admin/{MagicLinkEE-DXVettXy.mjs.map → MagicLinkEE-CsJGWKhy.mjs.map} +1 -1
  113. package/dist/admin/{MarketplacePage-ybCMvYyZ.js → MarketplacePage-DeHyp7y1.js} +3 -3
  114. package/dist/admin/{MarketplacePage-ybCMvYyZ.js.map → MarketplacePage-DeHyp7y1.js.map} +1 -1
  115. package/dist/admin/{MarketplacePage-9oBw1vCF.mjs → MarketplacePage-qbedpjBD.mjs} +3 -3
  116. package/dist/admin/{MarketplacePage-9oBw1vCF.mjs.map → MarketplacePage-qbedpjBD.mjs.map} +1 -1
  117. package/dist/admin/{Permissions-DJGQDnx2.js → Permissions-DII2emCe.js} +45 -35
  118. package/dist/admin/Permissions-DII2emCe.js.map +1 -0
  119. package/dist/admin/{Permissions-D-z4OQkJ.mjs → Permissions-lDPhNvFl.mjs} +45 -35
  120. package/dist/admin/Permissions-lDPhNvFl.mjs.map +1 -0
  121. package/dist/admin/{PrivateRoute-C1dP5ye6.js → PrivateRoute-D7Y029Yb.js} +2 -2
  122. package/dist/admin/{PrivateRoute-C1dP5ye6.js.map → PrivateRoute-D7Y029Yb.js.map} +1 -1
  123. package/dist/admin/{PrivateRoute-gjOsMUaF.mjs → PrivateRoute-KBnpPkup.mjs} +2 -2
  124. package/dist/admin/{PrivateRoute-gjOsMUaF.mjs.map → PrivateRoute-KBnpPkup.mjs.map} +1 -1
  125. package/dist/admin/{ProfilePage-iJfFC8iM.js → ProfilePage--a3BOCVY.js} +5 -5
  126. package/dist/admin/{ProfilePage-iJfFC8iM.js.map → ProfilePage--a3BOCVY.js.map} +1 -1
  127. package/dist/admin/{ProfilePage-Dye2XFUg.mjs → ProfilePage-DRvD3GIN.mjs} +5 -5
  128. package/dist/admin/{ProfilePage-Dye2XFUg.mjs.map → ProfilePage-DRvD3GIN.mjs.map} +1 -1
  129. package/dist/admin/{PurchaseAuditLogs-Cm4FhsMb.mjs → PurchaseAuditLogs-BVvceWTE.mjs} +2 -2
  130. package/dist/admin/{PurchaseAuditLogs-Cm4FhsMb.mjs.map → PurchaseAuditLogs-BVvceWTE.mjs.map} +1 -1
  131. package/dist/admin/{PurchaseAuditLogs-D01OAXZ1.js → PurchaseAuditLogs-C2RIeJGf.js} +2 -2
  132. package/dist/admin/{PurchaseAuditLogs-D01OAXZ1.js.map → PurchaseAuditLogs-C2RIeJGf.js.map} +1 -1
  133. package/dist/admin/{PurchaseSingleSignOn-DuP_lPo5.js → PurchaseSingleSignOn-DU1UqoVl.js} +2 -2
  134. package/dist/admin/{PurchaseSingleSignOn-DuP_lPo5.js.map → PurchaseSingleSignOn-DU1UqoVl.js.map} +1 -1
  135. package/dist/admin/{PurchaseSingleSignOn-EcMNl-Fp.mjs → PurchaseSingleSignOn-nEzAlPxk.mjs} +2 -2
  136. package/dist/admin/{PurchaseSingleSignOn-EcMNl-Fp.mjs.map → PurchaseSingleSignOn-nEzAlPxk.mjs.map} +1 -1
  137. package/dist/admin/{SelectRoles-CiXoM32h.mjs → SelectRoles-Bs9u04uj.mjs} +4 -4
  138. package/dist/admin/{SelectRoles-CiXoM32h.mjs.map → SelectRoles-Bs9u04uj.mjs.map} +1 -1
  139. package/dist/admin/{SelectRoles-DLKg2oSV.js → SelectRoles-mnUhsABJ.js} +4 -4
  140. package/dist/admin/{SelectRoles-DLKg2oSV.js.map → SelectRoles-mnUhsABJ.js.map} +1 -1
  141. package/dist/admin/{SingleSignOnPage-CiDC2Nqn.mjs → SingleSignOnPage-3zjvpu53.mjs} +5 -5
  142. package/dist/admin/{SingleSignOnPage-CiDC2Nqn.mjs.map → SingleSignOnPage-3zjvpu53.mjs.map} +1 -1
  143. package/dist/admin/{SingleSignOnPage-yeUvuSTO.js → SingleSignOnPage-cV4vLp_a.js} +5 -5
  144. package/dist/admin/{SingleSignOnPage-yeUvuSTO.js.map → SingleSignOnPage-cV4vLp_a.js.map} +1 -1
  145. package/dist/admin/{Table-lxKdXhV9.js → Table-DZNHvug-.js} +3 -3
  146. package/dist/admin/{Table-lxKdXhV9.js.map → Table-DZNHvug-.js.map} +1 -1
  147. package/dist/admin/{Table-kHROpxjl.mjs → Table-tIZ8sJm6.mjs} +3 -3
  148. package/dist/admin/{Table-kHROpxjl.mjs.map → Table-tIZ8sJm6.mjs.map} +1 -1
  149. package/dist/admin/{Theme-NAd2H4cV.mjs → Theme-CLIXCqhU.mjs} +2 -2
  150. package/dist/admin/{Theme-NAd2H4cV.mjs.map → Theme-CLIXCqhU.mjs.map} +1 -1
  151. package/dist/admin/{Theme-K6zNL3JT.js → Theme-CV_l77KL.js} +2 -2
  152. package/dist/admin/{Theme-K6zNL3JT.js.map → Theme-CV_l77KL.js.map} +1 -1
  153. package/dist/admin/{TokenTypeSelect-By7iQpgJ.js → TokenTypeSelect-CgZvnPsJ.js} +4 -4
  154. package/dist/admin/{TokenTypeSelect-By7iQpgJ.js.map → TokenTypeSelect-CgZvnPsJ.js.map} +1 -1
  155. package/dist/admin/{TokenTypeSelect-B-iJxzXE.mjs → TokenTypeSelect-JQ4xkd6g.mjs} +4 -4
  156. package/dist/admin/{TokenTypeSelect-B-iJxzXE.mjs.map → TokenTypeSelect-JQ4xkd6g.mjs.map} +1 -1
  157. package/dist/admin/{UseCasePage-x-bVF6tp.mjs → UseCasePage-Crn_GyDw.mjs} +4 -4
  158. package/dist/admin/{UseCasePage-x-bVF6tp.mjs.map → UseCasePage-Crn_GyDw.mjs.map} +1 -1
  159. package/dist/admin/{UseCasePage-CY0JP2XW.js → UseCasePage-fdZFNaFz.js} +4 -4
  160. package/dist/admin/{UseCasePage-CY0JP2XW.js.map → UseCasePage-fdZFNaFz.js.map} +1 -1
  161. package/dist/admin/{admin-3FVGSNUT.js → admin-CoWMk1La.js} +4 -1
  162. package/dist/admin/admin-CoWMk1La.js.map +1 -0
  163. package/dist/admin/{admin-DIy_Bn_0.mjs → admin-CuE4OEl1.mjs} +4 -1
  164. package/dist/admin/admin-CuE4OEl1.mjs.map +1 -0
  165. package/dist/admin/{apiTokens-BOJ6JDtg.mjs → apiTokens-BbGEd8hG.mjs} +2 -2
  166. package/dist/admin/{apiTokens-BOJ6JDtg.mjs.map → apiTokens-BbGEd8hG.mjs.map} +1 -1
  167. package/dist/admin/{apiTokens-CcgEvJ9L.js → apiTokens-rxLmW4xI.js} +2 -2
  168. package/dist/admin/{apiTokens-CcgEvJ9L.js.map → apiTokens-rxLmW4xI.js.map} +1 -1
  169. package/dist/admin/{constants-QMVP-ySv.js → constants-DAPlN6Ts.js} +3 -3
  170. package/dist/admin/{constants-QMVP-ySv.js.map → constants-DAPlN6Ts.js.map} +1 -1
  171. package/dist/admin/{constants-BgfUvQDe.mjs → constants-DGb02Psr.mjs} +3 -3
  172. package/dist/admin/{constants-BgfUvQDe.mjs.map → constants-DGb02Psr.mjs.map} +1 -1
  173. package/dist/admin/ee.js +1 -1
  174. package/dist/admin/ee.mjs +1 -1
  175. package/dist/admin/{index-CQ0jOkIC.mjs → index-BnX71_B4.mjs} +33 -33
  176. package/dist/admin/{index-CQ0jOkIC.mjs.map → index-BnX71_B4.mjs.map} +1 -1
  177. package/dist/admin/{index-D4vvFryW.js → index-D9wwwbid.js} +33 -33
  178. package/dist/admin/{index-D4vvFryW.js.map → index-D9wwwbid.js.map} +1 -1
  179. package/dist/admin/index.js +3 -3
  180. package/dist/admin/index.mjs +3 -3
  181. package/dist/admin/{selectors-DYNXQ1tD.js → selectors-CM2KPWni.js} +2 -2
  182. package/dist/admin/{selectors-DYNXQ1tD.js.map → selectors-CM2KPWni.js.map} +1 -1
  183. package/dist/admin/{selectors-ZSFBgSp8.mjs → selectors-D9-d7hGq.mjs} +2 -2
  184. package/dist/admin/{selectors-ZSFBgSp8.mjs.map → selectors-D9-d7hGq.mjs.map} +1 -1
  185. package/dist/admin/test.js +2 -2
  186. package/dist/admin/test.mjs +2 -2
  187. package/dist/admin/{transferTokens-CTsVFvMK.js → transferTokens-CeXBOv8T.js} +2 -2
  188. package/dist/admin/{transferTokens-CTsVFvMK.js.map → transferTokens-CeXBOv8T.js.map} +1 -1
  189. package/dist/admin/{transferTokens-CXTFej3W.mjs → transferTokens-DRhm3E2K.mjs} +2 -2
  190. package/dist/admin/{transferTokens-CXTFej3W.mjs.map → transferTokens-DRhm3E2K.mjs.map} +1 -1
  191. package/dist/admin/{useAdminRoles-BlqZHo5X.mjs → useAdminRoles-H1TFksyF.mjs} +2 -2
  192. package/dist/admin/{useAdminRoles-BlqZHo5X.mjs.map → useAdminRoles-H1TFksyF.mjs.map} +1 -1
  193. package/dist/admin/{useAdminRoles-Ck5p_pOt.js → useAdminRoles-hnMykCZo.js} +2 -2
  194. package/dist/admin/{useAdminRoles-Ck5p_pOt.js.map → useAdminRoles-hnMykCZo.js.map} +1 -1
  195. package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js → useLicenseLimitNotification-B6SNDncg.js} +3 -3
  196. package/dist/admin/{useLicenseLimitNotification-BJ69x-oH.js.map → useLicenseLimitNotification-B6SNDncg.js.map} +1 -1
  197. package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs → useLicenseLimitNotification-BEKK4zym.mjs} +3 -3
  198. package/dist/admin/{useLicenseLimitNotification-J4qdwz19.mjs.map → useLicenseLimitNotification-BEKK4zym.mjs.map} +1 -1
  199. package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs → useLicenseLimits-BsqWmbk9.mjs} +2 -2
  200. package/dist/admin/{useLicenseLimits-D_SDg_6i.mjs.map → useLicenseLimits-BsqWmbk9.mjs.map} +1 -1
  201. package/dist/admin/{useLicenseLimits-D1oogU-K.js → useLicenseLimits-JFp6koHQ.js} +2 -2
  202. package/dist/admin/{useLicenseLimits-D1oogU-K.js.map → useLicenseLimits-JFp6koHQ.js.map} +1 -1
  203. package/dist/admin/{useWebhooks-CkRHgTl_.js → useWebhooks-CeQ6X5FT.js} +2 -2
  204. package/dist/admin/{useWebhooks-CkRHgTl_.js.map → useWebhooks-CeQ6X5FT.js.map} +1 -1
  205. package/dist/admin/{useWebhooks-C2yEtiSU.mjs → useWebhooks-ChRqPd68.mjs} +2 -2
  206. package/dist/admin/{useWebhooks-C2yEtiSU.mjs.map → useWebhooks-ChRqPd68.mjs.map} +1 -1
  207. package/dist/admin/{validation-DYzpgGER.mjs → validation-BqckJ_66.mjs} +2 -2
  208. package/dist/admin/{validation-DYzpgGER.mjs.map → validation-BqckJ_66.mjs.map} +1 -1
  209. package/dist/admin/{validation-CsNKFFCI.js → validation-Ct0GJF3v.js} +2 -2
  210. package/dist/admin/{validation-CsNKFFCI.js.map → validation-Ct0GJF3v.js.map} +1 -1
  211. package/dist/package.json.d.ts +9 -9
  212. package/package.json +10 -10
  213. package/dist/admin/Permissions-D-z4OQkJ.mjs.map +0 -1
  214. package/dist/admin/Permissions-DJGQDnx2.js.map +0 -1
  215. package/dist/admin/admin-3FVGSNUT.js.map +0 -1
  216. package/dist/admin/admin-DIy_Bn_0.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-DbHPSzvx.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n Modal as DSModal,\n Typography,\n Breadcrumbs,\n Crumb,\n Field,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <DSModal.Root defaultOpen onOpenChange={handleClose}>\n <DSModal.Content>\n <DSModal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </DSModal.Header>\n <DSModal.Body>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </DSModal.Body>\n </DSModal.Content>\n </DSModal.Root>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid.Root\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid.Root>\n <Field.Root>\n <Field.Label>\n {formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n </Field.Label>\n <Payload value={JSON.stringify(payload, null, 2)} disabled />\n </Field.Root>\n </>\n );\n};\n\nconst Payload = styled(JSONInput)`\n max-width: 100%;\n overflow: scroll;\n`;\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["DSModal"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-ZOKLnTJp.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { adminApi } from '../../../../admin/src/services/api';\nimport * as AuditLogs from '../../../../shared/contracts/audit-logs';\n\nconst auditLogsService = adminApi.injectEndpoints({\n endpoints: (builder) => ({\n getAuditLogs: builder.query<AuditLogs.GetAll.Response, AuditLogs.GetAll.Request['query']>({\n query: (params) => ({\n url: `/admin/audit-logs`,\n config: {\n params,\n },\n }),\n }),\n getAuditLog: builder.query<AuditLogs.Get.Response, AuditLogs.Get.Params['id']>({\n query: (id) => `/admin/audit-logs/${id}`,\n }),\n }),\n overrideExisting: false,\n});\n\nconst { useGetAuditLogsQuery, useGetAuditLogQuery } = auditLogsService;\n\nexport { useGetAuditLogsQuery, useGetAuditLogQuery };\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nexport const useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value: string) => {\n const date = parseISO(value);\n\n const formattedDate = formatDate(date, {\n dateStyle: 'long',\n });\n const formattedTime = formatDate(date, {\n timeStyle: 'medium',\n hourCycle: 'h24',\n });\n\n return `${formattedDate}, ${formattedTime}`;\n };\n\n return formatTimeStamp;\n};\n","export const actionTypes = {\n 'entry.create': 'Create entry{model, select, undefined {} other { ({model})}}',\n 'entry.update': 'Update entry{model, select, undefined {} other { ({model})}}',\n 'entry.delete': 'Delete entry{model, select, undefined {} other { ({model})}}',\n 'entry.publish': 'Publish entry{model, select, undefined {} other { ({model})}}',\n 'entry.unpublish': 'Unpublish entry{model, select, undefined {} other { ({model})}}',\n 'media.create': 'Create media',\n 'media.update': 'Update media',\n 'media.delete': 'Delete media',\n 'media-folder.create': 'Create media folder',\n 'media-folder.update': 'Update media folder',\n 'media-folder.delete': 'Delete media folder',\n 'user.create': 'Create user',\n 'user.update': 'Update user',\n 'user.delete': 'Delete user',\n 'admin.auth.success': 'Admin login',\n 'admin.logout': 'Admin logout',\n 'content-type.create': 'Create content type',\n 'content-type.update': 'Update content type',\n 'content-type.delete': 'Delete content type',\n 'component.create': 'Create component',\n 'component.update': 'Update component',\n 'component.delete': 'Delete component',\n 'role.create': 'Create role',\n 'role.update': 'Update role',\n 'role.delete': 'Delete role',\n 'permission.create': 'Create permission',\n 'permission.update': 'Update permission',\n 'permission.delete': 'Delete permission',\n};\n\nexport const getDefaultMessage = (value: keyof typeof actionTypes) => {\n return actionTypes[value] || value;\n};\n","import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n JSONInput,\n Loader,\n Modal as DSModal,\n Typography,\n Breadcrumbs,\n Crumb,\n Field,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useGetAuditLogQuery } from '../../../../../services/auditLogs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { actionTypes, getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\ninterface ModalProps {\n handleClose: () => void;\n logId: string;\n}\n\nexport const Modal = ({ handleClose, logId }: ModalProps) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { data, error, isLoading } = useGetAuditLogQuery(logId);\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n handleClose();\n }\n }, [error, formatAPIError, handleClose, toggleNotification]);\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = data && 'date' in data ? formatTimeStamp(data.date) : '';\n\n return (\n <DSModal.Root defaultOpen onOpenChange={handleClose}>\n <DSModal.Content>\n <DSModal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={formattedDate} id=\"title\">\n <Crumb isCurrent>{formattedDate}</Crumb>\n </Breadcrumbs>\n </DSModal.Header>\n <DSModal.Body>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </DSModal.Body>\n </DSModal.Content>\n </DSModal.Root>\n );\n};\n\ninterface ActionBodyProps {\n isLoading?: boolean;\n data: AuditLog;\n formattedDate: string;\n}\n\nconst ActionBody = ({ isLoading, data, formattedDate }: ActionBodyProps) => {\n const { formatMessage } = useIntl();\n\n if (isLoading) {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\n {/**\n * TODO: this will need to be translated.\n */}\n <Loader>Loading content...</Loader>\n </Flex>\n );\n }\n\n const { action, user, payload } = data;\n\n return (\n <>\n <Box marginBottom={3}>\n <Typography variant=\"delta\" id=\"title\">\n {formatMessage({\n id: 'Settings.permissions.auditLogs.details',\n defaultMessage: 'Log Details',\n })}\n </Typography>\n </Box>\n <Grid.Root\n gap={4}\n gridCols={2}\n paddingTop={4}\n paddingBottom={4}\n paddingLeft={6}\n paddingRight={6}\n marginBottom={4}\n background=\"neutral100\"\n hasRadius\n >\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n })}\n actionName={formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action as keyof typeof actionTypes),\n },\n // @ts-expect-error - any\n { model: payload?.model }\n )}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n })}\n actionName={formattedDate}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n })}\n actionName={user?.displayName || '-'}\n />\n <ActionItem\n actionLabel={formatMessage({\n id: 'Settings.permissions.auditLogs.userId',\n defaultMessage: 'User ID',\n })}\n actionName={user?.id.toString() || '-'}\n />\n </Grid.Root>\n <Field.Root>\n <Field.Label>\n {formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n </Field.Label>\n <Payload value={JSON.stringify(payload, null, 2)} disabled />\n </Field.Root>\n </>\n );\n};\n\nconst Payload = styled(JSONInput)`\n max-width: 100%;\n overflow: scroll;\n`;\n\ninterface ActionItemProps {\n actionLabel: string;\n actionName: string;\n}\n\nconst ActionItem = ({ actionLabel, actionName }: ActionItemProps) => {\n return (\n <Flex direction=\"column\" alignItems=\"baseline\" gap={1}>\n <Typography textColor=\"neutral600\" variant=\"sigma\">\n {actionLabel}\n </Typography>\n <Typography textColor=\"neutral600\">{actionName}</Typography>\n </Flex>\n );\n};\n","import * as React from 'react';\n\nimport { useNotification } from '../../../../../../../../admin/src/features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../../../../admin/src/hooks/useAPIErrorHandler';\nimport { useQueryParams } from '../../../../../../../../admin/src/hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../../../../../admin/src/services/users';\nimport { useGetAuditLogsQuery } from '../../../../../services/auditLogs';\n\nexport const useAuditLogsData = ({\n canReadAuditLogs,\n canReadUsers,\n}: {\n canReadAuditLogs: boolean;\n canReadUsers: boolean;\n}) => {\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [{ query }] = useQueryParams();\n\n const {\n data,\n error,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n skip: !canReadUsers,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({ type: 'danger', message: formatAPIError(error) });\n }\n }, [error, toggleNotification, formatAPIError]);\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n error: auditLogsError,\n } = useGetAuditLogsQuery(query, {\n refetchOnMountOrArgChange: true,\n skip: !canReadAuditLogs,\n });\n\n React.useEffect(() => {\n if (auditLogsError) {\n toggleNotification({ type: 'danger', message: formatAPIError(auditLogsError) });\n }\n }, [auditLogsError, toggleNotification, formatAPIError]);\n\n return {\n auditLogs,\n users: data?.users ?? [],\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n","import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { IntlShape } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { getDisplayName } from '../../../../../../../../admin/src/utils/users';\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): Filters.Filter[] => {\n const operators = [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ] as NonNullable<Filters.Filter['operators']>;\n\n const filters = [\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n name: 'action',\n operators,\n options: (Object.keys(actionTypes) as (keyof typeof actionTypes)[]).map((action) => ({\n label: formatMessage(\n {\n id: `Settings.permissions.auditLogs.${action}`,\n defaultMessage: getDefaultMessage(action),\n },\n { model: undefined }\n ),\n value: action,\n })),\n type: 'enumeration',\n },\n {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n name: 'date',\n type: 'datetime',\n },\n ] satisfies Filters.Filter[];\n\n if (canReadUsers && users) {\n return [\n ...filters,\n {\n input: ComboboxFilter,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n mainField: { name: 'id', type: 'integer' },\n name: 'user',\n operators,\n options: users.map((user) => ({\n label: getDisplayName(user),\n value: user.id.toString(),\n })),\n type: 'relation',\n } satisfies Filters.Filter,\n ];\n }\n\n return filters;\n};\n","import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id })}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id })}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal handleClose={() => setQuery({ id: '' }, 'remove')} logId={query.id.toString()} />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["DSModal"],"mappings":"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"}
@@ -10,12 +10,12 @@ const symbols = require('@strapi/icons/symbols');
10
10
  const qs = require('qs');
11
11
  const reactIntl = require('react-intl');
12
12
  const reactRouterDom = require('react-router-dom');
13
- const index = require('./index-D4vvFryW.js');
14
- const Theme = require('./Theme-K6zNL3JT.js');
13
+ const index = require('./index-D9wwwbid.js');
14
+ const Theme = require('./Theme-CV_l77KL.js');
15
15
  const useOnce = require('./useOnce-C7EQufL3.js');
16
- const transferTokens = require('./transferTokens-CTsVFvMK.js');
16
+ const transferTokens = require('./transferTokens-CeXBOv8T.js');
17
17
  const constants = require('./constants-DF68OPrs.js');
18
- const Table = require('./Table-lxKdXhV9.js');
18
+ const Table = require('./Table-DZNHvug-.js');
19
19
 
20
20
  function _interopNamespace(e) {
21
21
  if (e && e.__esModule) return e;
@@ -234,4 +234,4 @@ const ProtectedListView = () => {
234
234
 
235
235
  exports.ListView = ListView;
236
236
  exports.ProtectedListView = ProtectedListView;
237
- //# sourceMappingURL=ListView-Uma8Kh0Y.js.map
237
+ //# sourceMappingURL=ListView-B9_D-i55.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-Uma8Kh0Y.js","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 { Data } from '@strapi/types';\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\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":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useAPIErrorHandler","React","qs","useOnce","TRANSFER_TOKEN_TYPE","transferTokens","useGetTransferTokensQuery","useDeleteTransferTokenMutation","jsxs","Fragment","jsx","Page","Layouts","LinkButton","Link","Plus","Table","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-B9_D-i55.js","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 { Data } from '@strapi/types';\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\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":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useAPIErrorHandler","React","qs","useOnce","TRANSFER_TOKEN_TYPE","transferTokens","useGetTransferTokensQuery","useDeleteTransferTokenMutation","jsxs","Fragment","jsx","Page","Layouts","LinkButton","Link","Plus","Table","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}
@@ -10,12 +10,12 @@ const symbols = require('@strapi/icons/symbols');
10
10
  const qs = require('qs');
11
11
  const reactIntl = require('react-intl');
12
12
  const reactRouterDom = require('react-router-dom');
13
- const Theme = require('./Theme-K6zNL3JT.js');
14
- const index = require('./index-D4vvFryW.js');
13
+ const Theme = require('./Theme-CV_l77KL.js');
14
+ const index = require('./index-D9wwwbid.js');
15
15
  const useOnce = require('./useOnce-C7EQufL3.js');
16
- const apiTokens = require('./apiTokens-CcgEvJ9L.js');
16
+ const apiTokens = require('./apiTokens-rxLmW4xI.js');
17
17
  const constants = require('./constants-DF68OPrs.js');
18
- const Table = require('./Table-lxKdXhV9.js');
18
+ const Table = require('./Table-DZNHvug-.js');
19
19
 
20
20
  function _interopNamespace(e) {
21
21
  if (e && e.__esModule) return e;
@@ -223,4 +223,4 @@ const ProtectedListView = () => {
223
223
 
224
224
  exports.ListView = ListView;
225
225
  exports.ProtectedListView = ProtectedListView;
226
- //# sourceMappingURL=ListView-BAOu3t3r.js.map
226
+ //# sourceMappingURL=ListView-BeuDKXi2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-BAOu3t3r.js","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 { Data } from '@strapi/types';\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\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":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useGuidedTour","useAPIErrorHandler","React","qs","useOnce","API_TOKEN_TYPE","apiTokens","useGetAPITokensQuery","useDeleteAPITokenMutation","jsxs","Fragment","jsx","Page","Layouts","LinkButton","Link","Plus","Table","EmptyStateLayout","EmptyDocuments"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-BeuDKXi2.js","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 { Data } from '@strapi/types';\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\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":["useIntl","useNotification","useTypedSelector","useRBAC","useNavigate","useTracking","useGuidedTour","useAPIErrorHandler","React","qs","useOnce","API_TOKEN_TYPE","apiTokens","useGetAPITokensQuery","useDeleteAPITokenMutation","jsxs","Fragment","jsx","Page","Layouts","LinkButton","Link","Plus","Table","EmptyStateLayout","EmptyDocuments"],"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-NAd2H4cV.mjs';
10
- import { b as Layouts } from './index-CQ0jOkIC.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-CLIXCqhU.mjs';
10
+ import { b as Layouts } from './index-BnX71_B4.mjs';
11
11
  import { u as useOnce } from './useOnce-NHeEacbN.mjs';
12
- import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from './apiTokens-BOJ6JDtg.mjs';
12
+ import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from './apiTokens-BbGEd8hG.mjs';
13
13
  import { A as API_TOKEN_TYPE } from './constants-CRj0ViV1.mjs';
14
- import { T as Table } from './Table-kHROpxjl.mjs';
14
+ import { T as Table } from './Table-tIZ8sJm6.mjs';
15
15
 
16
16
  const TABLE_HEADERS = [
17
17
  {
@@ -197,4 +197,4 @@ const ProtectedListView = () => {
197
197
  };
198
198
 
199
199
  export { ListView, ProtectedListView };
200
- //# sourceMappingURL=ListView-CDBJ6KxG.mjs.map
200
+ //# sourceMappingURL=ListView-Bjy7mOBN.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-CDBJ6KxG.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 { Data } from '@strapi/types';\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\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":[],"mappings":"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"}
1
+ {"version":3,"file":"ListView-Bjy7mOBN.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 { Data } from '@strapi/types';\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\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":[],"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-CQ0jOkIC.mjs';
10
- import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, e as useAPIErrorHandler } from './Theme-NAd2H4cV.mjs';
9
+ import { b as Layouts } from './index-BnX71_B4.mjs';
10
+ import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, e as useAPIErrorHandler } from './Theme-CLIXCqhU.mjs';
11
11
  import { u as useOnce } from './useOnce-NHeEacbN.mjs';
12
- import { c as useGetTransferTokensQuery, d as useDeleteTransferTokenMutation } from './transferTokens-CXTFej3W.mjs';
12
+ import { c as useGetTransferTokensQuery, d as useDeleteTransferTokenMutation } from './transferTokens-DRhm3E2K.mjs';
13
13
  import { T as TRANSFER_TOKEN_TYPE } from './constants-CRj0ViV1.mjs';
14
- import { T as Table } from './Table-kHROpxjl.mjs';
14
+ import { T as Table } from './Table-tIZ8sJm6.mjs';
15
15
 
16
16
  const tableHeaders = [
17
17
  {
@@ -208,4 +208,4 @@ const ProtectedListView = () => {
208
208
  };
209
209
 
210
210
  export { ListView, ProtectedListView };
211
- //# sourceMappingURL=ListView-DCHh8Z9Q.mjs.map
211
+ //# sourceMappingURL=ListView-BwLr86nb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-DCHh8Z9Q.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 { Data } from '@strapi/types';\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\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":[],"mappings":"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"}
1
+ {"version":3,"file":"ListView-BwLr86nb.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 { Data } from '@strapi/types';\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\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":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { Divider, Box, Flex, Typography } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
4
  import { styled } from 'styled-components';
5
- import { d as Login } from './index-CQ0jOkIC.mjs';
6
- import { l as useGetProvidersQuery } from './Theme-NAd2H4cV.mjs';
5
+ import { d as Login } from './index-BnX71_B4.mjs';
6
+ import { l as useGetProvidersQuery } from './Theme-CLIXCqhU.mjs';
7
7
  import { S as SSOProviders } from './SSOProviders-BD7LHrkI.mjs';
8
8
 
9
9
  const DividerFull = styled(Divider)`
@@ -28,4 +28,4 @@ const LoginEE = (loginProps) => {
28
28
  };
29
29
 
30
30
  export { LoginEE };
31
- //# sourceMappingURL=Login-BMNixw-B.mjs.map
31
+ //# sourceMappingURL=Login-DsIpK3bD.mjs.map