@strapi/admin 5.10.3 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs → ApplicationInfoPage-BZwUO73O.mjs} +2 -2
  2. package/dist/admin/chunks/{ApplicationInfoPage-DiEcqVEU.mjs.map → ApplicationInfoPage-BZwUO73O.mjs.map} +1 -1
  3. package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js → ApplicationInfoPage-DJOazrYK.js} +2 -2
  4. package/dist/admin/chunks/{ApplicationInfoPage-CsBvES_c.js.map → ApplicationInfoPage-DJOazrYK.js.map} +1 -1
  5. package/dist/admin/chunks/{AuthenticatedLayout-D_VSoB1l.js → AuthenticatedLayout-Dy75FZrh.js} +7 -6
  6. package/dist/admin/chunks/AuthenticatedLayout-Dy75FZrh.js.map +1 -0
  7. package/dist/admin/chunks/{AuthenticatedLayout-C9eZ12Ue.mjs → AuthenticatedLayout-jDyinb04.mjs} +7 -6
  8. package/dist/admin/chunks/AuthenticatedLayout-jDyinb04.mjs.map +1 -0
  9. package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs → CreatePage-BO4p8eVo.mjs} +2 -2
  10. package/dist/admin/chunks/{CreatePage-DQDa78K3.mjs.map → CreatePage-BO4p8eVo.mjs.map} +1 -1
  11. package/dist/admin/chunks/{CreatePage-DbmpFjHt.js → CreatePage-Bgs19RIr.js} +2 -2
  12. package/dist/admin/chunks/{CreatePage-DbmpFjHt.js.map → CreatePage-Bgs19RIr.js.map} +1 -1
  13. package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs → CreatePage-CvMkpe3b.mjs} +3 -3
  14. package/dist/admin/chunks/{CreatePage-Cb-ETkOn.mjs.map → CreatePage-CvMkpe3b.mjs.map} +1 -1
  15. package/dist/admin/chunks/{CreatePage-DkzHz0zk.js → CreatePage-D0kjwP8s.js} +3 -3
  16. package/dist/admin/chunks/{CreatePage-DkzHz0zk.js.map → CreatePage-D0kjwP8s.js.map} +1 -1
  17. package/dist/admin/chunks/{CreateView-CmubtWzn.mjs → CreateView-B5Rq5Uhw.mjs} +4 -4
  18. package/dist/admin/chunks/{CreateView-CmubtWzn.mjs.map → CreateView-B5Rq5Uhw.mjs.map} +1 -1
  19. package/dist/admin/chunks/{CreateView-CE4-drK6.js → CreateView-DCsm2KBZ.js} +4 -4
  20. package/dist/admin/chunks/{CreateView-CE4-drK6.js.map → CreateView-DCsm2KBZ.js.map} +1 -1
  21. package/dist/admin/chunks/{CreateView-yjsS9KUJ.js → CreateView-DGq7e-Zm.js} +4 -4
  22. package/dist/admin/chunks/{CreateView-yjsS9KUJ.js.map → CreateView-DGq7e-Zm.js.map} +1 -1
  23. package/dist/admin/chunks/{CreateView-DZaIevIB.mjs → CreateView-h_bF5XrZ.mjs} +4 -4
  24. package/dist/admin/chunks/{CreateView-DZaIevIB.mjs.map → CreateView-h_bF5XrZ.mjs.map} +1 -1
  25. package/dist/admin/chunks/{EditPage-CNaAuT5C.js → EditPage-85v6bKcJ.js} +3 -3
  26. package/dist/admin/chunks/{EditPage-CNaAuT5C.js.map → EditPage-85v6bKcJ.js.map} +1 -1
  27. package/dist/admin/chunks/{EditPage-C44OaxjN.mjs → EditPage-CBrPs4kH.mjs} +3 -3
  28. package/dist/admin/chunks/{EditPage-C44OaxjN.mjs.map → EditPage-CBrPs4kH.mjs.map} +1 -1
  29. package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs → EditPage-CFSx_zaS.mjs} +3 -3
  30. package/dist/admin/chunks/{EditPage-Bjr4f1Bs.mjs.map → EditPage-CFSx_zaS.mjs.map} +1 -1
  31. package/dist/admin/chunks/{EditPage-CycQlsFL.js → EditPage-CK8pIRKZ.js} +3 -3
  32. package/dist/admin/chunks/{EditPage-CycQlsFL.js.map → EditPage-CK8pIRKZ.js.map} +1 -1
  33. package/dist/admin/chunks/{EditPage-BrMhV8aB.js → EditPage-DHtr1mq1.js} +6 -6
  34. package/dist/admin/chunks/{EditPage-BrMhV8aB.js.map → EditPage-DHtr1mq1.js.map} +1 -1
  35. package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs → EditPage-DrT9bgfE.mjs} +6 -6
  36. package/dist/admin/chunks/{EditPage-MmQQ4hWc.mjs.map → EditPage-DrT9bgfE.mjs.map} +1 -1
  37. package/dist/admin/chunks/{EditView-C9cKaoY1.js → EditView-CfJxHMkF.js} +3 -3
  38. package/dist/admin/chunks/{EditView-C9cKaoY1.js.map → EditView-CfJxHMkF.js.map} +1 -1
  39. package/dist/admin/chunks/{EditView-CFIkvFrt.mjs → EditView-XfGT5Bj1.mjs} +3 -3
  40. package/dist/admin/chunks/{EditView-CFIkvFrt.mjs.map → EditView-XfGT5Bj1.mjs.map} +1 -1
  41. package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs → EditViewPage-BLftPAqX.mjs} +3 -3
  42. package/dist/admin/chunks/{EditViewPage-CwdhHAuX.mjs.map → EditViewPage-BLftPAqX.mjs.map} +1 -1
  43. package/dist/admin/chunks/{EditViewPage-DBga-70A.js → EditViewPage-Dvm8m28e.js} +3 -3
  44. package/dist/admin/chunks/{EditViewPage-DBga-70A.js.map → EditViewPage-Dvm8m28e.js.map} +1 -1
  45. package/dist/admin/chunks/{EventsTable-fkWvAMuL.js → EventsTable-C1FNa1mh.js} +3 -3
  46. package/dist/admin/chunks/{EventsTable-fkWvAMuL.js.map → EventsTable-C1FNa1mh.js.map} +1 -1
  47. package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs → EventsTable-aDYIp-4O.mjs} +3 -3
  48. package/dist/admin/chunks/{EventsTable-CeqMb1jP.mjs.map → EventsTable-aDYIp-4O.mjs.map} +1 -1
  49. package/dist/admin/chunks/{HomePage-CVc0RfvD.js → HomePage-8CeDS3qO.js} +3 -3
  50. package/dist/admin/chunks/{HomePage-CVc0RfvD.js.map → HomePage-8CeDS3qO.js.map} +1 -1
  51. package/dist/admin/chunks/{HomePage-B2skN1xt.js → HomePage-BKwoMagC.js} +3 -3
  52. package/dist/admin/chunks/{HomePage-B2skN1xt.js.map → HomePage-BKwoMagC.js.map} +1 -1
  53. package/dist/admin/chunks/{HomePage-DGTeFboL.mjs → HomePage-BRggBAHf.mjs} +3 -3
  54. package/dist/admin/chunks/{HomePage-DGTeFboL.mjs.map → HomePage-BRggBAHf.mjs.map} +1 -1
  55. package/dist/admin/chunks/{HomePage-MfOqcIag.mjs → HomePage-DuRHJoC7.mjs} +3 -3
  56. package/dist/admin/chunks/{HomePage-MfOqcIag.mjs.map → HomePage-DuRHJoC7.mjs.map} +1 -1
  57. package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs → InstalledPlugins-23tOdYYB.mjs} +2 -2
  58. package/dist/admin/chunks/{InstalledPlugins-5j7xjDqh.mjs.map → InstalledPlugins-23tOdYYB.mjs.map} +1 -1
  59. package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js → InstalledPlugins-z8ODfbJj.js} +2 -2
  60. package/dist/admin/chunks/{InstalledPlugins-BXM3i3xr.js.map → InstalledPlugins-z8ODfbJj.js.map} +1 -1
  61. package/dist/admin/chunks/{Layout-DST1PxaO.js → Layout-BZgwh-LZ.js} +3 -3
  62. package/dist/admin/chunks/{Layout-DST1PxaO.js.map → Layout-BZgwh-LZ.js.map} +1 -1
  63. package/dist/admin/chunks/{Layout-DYjtK6iP.mjs → Layout-CmzbGRtV.mjs} +3 -3
  64. package/dist/admin/chunks/{Layout-DYjtK6iP.mjs.map → Layout-CmzbGRtV.mjs.map} +1 -1
  65. package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs → ListPage-BE3aimOU.mjs} +2 -2
  66. package/dist/admin/chunks/{ListPage-BhGt3EBQ.mjs.map → ListPage-BE3aimOU.mjs.map} +1 -1
  67. package/dist/admin/chunks/{ListPage-CWINpwfS.js → ListPage-BRVhZryp.js} +6 -6
  68. package/dist/admin/chunks/{ListPage-CWINpwfS.js.map → ListPage-BRVhZryp.js.map} +1 -1
  69. package/dist/admin/chunks/{ListPage-srJutHdv.mjs → ListPage-BuFQNHRU.mjs} +3 -3
  70. package/dist/admin/chunks/{ListPage-srJutHdv.mjs.map → ListPage-BuFQNHRU.mjs.map} +1 -1
  71. package/dist/admin/chunks/{ListPage-CLXy5r60.js → ListPage-C46MNvAQ.js} +3 -3
  72. package/dist/admin/chunks/{ListPage-CLXy5r60.js.map → ListPage-C46MNvAQ.js.map} +1 -1
  73. package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs → ListPage-CTxfjKUP.mjs} +2 -2
  74. package/dist/admin/chunks/{ListPage-BVI0O8bq.mjs.map → ListPage-CTxfjKUP.mjs.map} +1 -1
  75. package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs → ListPage-CovdXetq.mjs} +6 -6
  76. package/dist/admin/chunks/{ListPage-B5Hb8BA-.mjs.map → ListPage-CovdXetq.mjs.map} +1 -1
  77. package/dist/admin/chunks/{ListPage-BgyypnOM.js → ListPage-D7fIXyTM.js} +5 -5
  78. package/dist/admin/chunks/{ListPage-BgyypnOM.js.map → ListPage-D7fIXyTM.js.map} +1 -1
  79. package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs → ListPage-DoR-NV6v.mjs} +5 -5
  80. package/dist/admin/chunks/{ListPage-PwzVjSsA.mjs.map → ListPage-DoR-NV6v.mjs.map} +1 -1
  81. package/dist/admin/chunks/{ListPage-D21yUih2.js → ListPage-SVEmrFSg.js} +2 -2
  82. package/dist/admin/chunks/{ListPage-D21yUih2.js.map → ListPage-SVEmrFSg.js.map} +1 -1
  83. package/dist/admin/chunks/{ListPage-DbfL2rpi.js → ListPage-fOcHewxm.js} +2 -2
  84. package/dist/admin/chunks/{ListPage-DbfL2rpi.js.map → ListPage-fOcHewxm.js.map} +1 -1
  85. package/dist/admin/chunks/{ListView--KzJiQiO.mjs → ListView-BUbdI3-z.mjs} +3 -3
  86. package/dist/admin/chunks/{ListView--KzJiQiO.mjs.map → ListView-BUbdI3-z.mjs.map} +1 -1
  87. package/dist/admin/chunks/{ListView-DzwvQ8nW.js → ListView-CGHuleNQ.js} +3 -3
  88. package/dist/admin/chunks/{ListView-DzwvQ8nW.js.map → ListView-CGHuleNQ.js.map} +1 -1
  89. package/dist/admin/chunks/{ListView-CoGoDDiF.mjs → ListView-DxPGNDw_.mjs} +3 -3
  90. package/dist/admin/chunks/{ListView-CoGoDDiF.mjs.map → ListView-DxPGNDw_.mjs.map} +1 -1
  91. package/dist/admin/chunks/{ListView-DGfxO89i.js → ListView-HZFAPppY.js} +3 -3
  92. package/dist/admin/chunks/{ListView-DGfxO89i.js.map → ListView-HZFAPppY.js.map} +1 -1
  93. package/dist/admin/chunks/{Login-Dtkhd0GV.mjs → Login-B_Z4SJVp.mjs} +2 -2
  94. package/dist/admin/chunks/{Login-Dtkhd0GV.mjs.map → Login-B_Z4SJVp.mjs.map} +1 -1
  95. package/dist/admin/chunks/{Login-Iw84AH9L.js → Login-CjRacmoJ.js} +2 -2
  96. package/dist/admin/chunks/{Login-Iw84AH9L.js.map → Login-CjRacmoJ.js.map} +1 -1
  97. package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js → MagicLinkEE-DZLJwQiC.js} +4 -4
  98. package/dist/admin/chunks/{MagicLinkEE-C5K8p8Rk.js.map → MagicLinkEE-DZLJwQiC.js.map} +1 -1
  99. package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs → MagicLinkEE-Oh6er0ux.mjs} +4 -4
  100. package/dist/admin/chunks/{MagicLinkEE-EcyHC46Y.mjs.map → MagicLinkEE-Oh6er0ux.mjs.map} +1 -1
  101. package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs → MarketplacePage-BUksRtFV.mjs} +2 -2
  102. package/dist/admin/chunks/{MarketplacePage-CcAYozK2.mjs.map → MarketplacePage-BUksRtFV.mjs.map} +1 -1
  103. package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js → MarketplacePage-D-PvEBXN.js} +2 -2
  104. package/dist/admin/chunks/{MarketplacePage-BmqfuAvB.js.map → MarketplacePage-D-PvEBXN.js.map} +1 -1
  105. package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs → ProfilePage-D0cczhuo.mjs} +3 -3
  106. package/dist/admin/chunks/{ProfilePage-CN8SAQ9w.mjs.map → ProfilePage-D0cczhuo.mjs.map} +1 -1
  107. package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js → ProfilePage-DghUK7p_.js} +3 -3
  108. package/dist/admin/chunks/{ProfilePage-DiGV7o6c.js.map → ProfilePage-DghUK7p_.js.map} +1 -1
  109. package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js → PurchaseAuditLogs-BIBa5E6F.js} +2 -2
  110. package/dist/admin/chunks/{PurchaseAuditLogs-DnWVbru3.js.map → PurchaseAuditLogs-BIBa5E6F.js.map} +1 -1
  111. package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs → PurchaseAuditLogs-BOqpGLyP.mjs} +2 -2
  112. package/dist/admin/chunks/{PurchaseAuditLogs-BI41XTBD.mjs.map → PurchaseAuditLogs-BOqpGLyP.mjs.map} +1 -1
  113. package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs → PurchaseContentHistory-DqyUHK_8.mjs} +2 -2
  114. package/dist/admin/chunks/{PurchaseContentHistory-BzC2C4Pv.mjs.map → PurchaseContentHistory-DqyUHK_8.mjs.map} +1 -1
  115. package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js → PurchaseContentHistory-y25nmJsq.js} +2 -2
  116. package/dist/admin/chunks/{PurchaseContentHistory-DUk7otrp.js.map → PurchaseContentHistory-y25nmJsq.js.map} +1 -1
  117. package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js → PurchaseSingleSignOn-DloQ-NfU.js} +2 -2
  118. package/dist/admin/chunks/{PurchaseSingleSignOn-Bq0YHAHt.js.map → PurchaseSingleSignOn-DloQ-NfU.js.map} +1 -1
  119. package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs → PurchaseSingleSignOn-L8wgCpHG.mjs} +2 -2
  120. package/dist/admin/chunks/{PurchaseSingleSignOn-G1TKPP15.mjs.map → PurchaseSingleSignOn-L8wgCpHG.mjs.map} +1 -1
  121. package/dist/admin/chunks/{SelectRoles-CKInlnSd.js → SelectRoles-ChZyGpDA.js} +3 -3
  122. package/dist/admin/chunks/{SelectRoles-CKInlnSd.js.map → SelectRoles-ChZyGpDA.js.map} +1 -1
  123. package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs → SelectRoles-hAMu1PFv.mjs} +3 -3
  124. package/dist/admin/chunks/{SelectRoles-DR4KBZkw.mjs.map → SelectRoles-hAMu1PFv.mjs.map} +1 -1
  125. package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs → SingleSignOnPage-B-NIM66a.mjs} +3 -3
  126. package/dist/admin/chunks/{SingleSignOnPage-CRzrEUGp.mjs.map → SingleSignOnPage-B-NIM66a.mjs.map} +1 -1
  127. package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js → SingleSignOnPage-D-JNyyk2.js} +3 -3
  128. package/dist/admin/chunks/{SingleSignOnPage-DtRVlrGP.js.map → SingleSignOnPage-D-JNyyk2.js.map} +1 -1
  129. package/dist/admin/chunks/{Table-CBZnqMuN.js → Table-U6zMuKE5.js} +2 -2
  130. package/dist/admin/chunks/{Table-CBZnqMuN.js.map → Table-U6zMuKE5.js.map} +1 -1
  131. package/dist/admin/chunks/{Table-BohVeu0r.mjs → Table-b4wXHsis.mjs} +2 -2
  132. package/dist/admin/chunks/{Table-BohVeu0r.mjs.map → Table-b4wXHsis.mjs.map} +1 -1
  133. package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs → TokenTypeSelect-BUFFAUgx.mjs} +2 -2
  134. package/dist/admin/chunks/{TokenTypeSelect-CpEAVZ_b.mjs.map → TokenTypeSelect-BUFFAUgx.mjs.map} +1 -1
  135. package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js → TokenTypeSelect-DCa4dg3r.js} +2 -2
  136. package/dist/admin/chunks/{TokenTypeSelect-BV_ZNiY_.js.map → TokenTypeSelect-DCa4dg3r.js.map} +1 -1
  137. package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs → UseCasePage-BlHgNz7W.mjs} +2 -2
  138. package/dist/admin/chunks/{UseCasePage-Bro5fyP3.mjs.map → UseCasePage-BlHgNz7W.mjs.map} +1 -1
  139. package/dist/admin/chunks/{UseCasePage-CipG2GC4.js → UseCasePage-CYCPZztF.js} +2 -2
  140. package/dist/admin/chunks/{UseCasePage-CipG2GC4.js.map → UseCasePage-CYCPZztF.js.map} +1 -1
  141. package/dist/admin/chunks/{constants-BddeukI7.mjs → constants-BY_PZgf3.mjs} +2 -2
  142. package/dist/admin/chunks/{constants-BddeukI7.mjs.map → constants-BY_PZgf3.mjs.map} +1 -1
  143. package/dist/admin/chunks/{constants-CaerHoe3.js → constants-D3gM8ElF.js} +2 -2
  144. package/dist/admin/chunks/{constants-CaerHoe3.js.map → constants-D3gM8ElF.js.map} +1 -1
  145. package/dist/admin/chunks/{index-HGaughzt.js → index-BdqtLS-k.js} +32 -32
  146. package/dist/admin/chunks/{index-HGaughzt.js.map → index-BdqtLS-k.js.map} +1 -1
  147. package/dist/admin/chunks/{index-BM8-DG5K.mjs → index-C3BO0YZa.mjs} +32 -32
  148. package/dist/admin/chunks/{index-BM8-DG5K.mjs.map → index-C3BO0YZa.mjs.map} +1 -1
  149. package/dist/admin/chunks/uk-D7QEPfXn.mjs +788 -0
  150. package/dist/admin/chunks/uk-D7QEPfXn.mjs.map +1 -0
  151. package/dist/admin/chunks/uk-WdcESeZB.js +807 -0
  152. package/dist/admin/chunks/uk-WdcESeZB.js.map +1 -0
  153. package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs → useAdminRoles-D68i2BI_.mjs} +2 -2
  154. package/dist/admin/chunks/{useAdminRoles-C6Es4UUq.mjs.map → useAdminRoles-D68i2BI_.mjs.map} +1 -1
  155. package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js → useAdminRoles-Dy5KXk0R.js} +2 -2
  156. package/dist/admin/chunks/{useAdminRoles-_4HKisJz.js.map → useAdminRoles-Dy5KXk0R.js.map} +1 -1
  157. package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs → validation-XFv2h8gD.mjs} +2 -2
  158. package/dist/admin/chunks/{validation-Dmvl0gZQ.mjs.map → validation-XFv2h8gD.mjs.map} +1 -1
  159. package/dist/admin/chunks/{validation-dPl3P7dv.js → validation-sucpUItn.js} +2 -2
  160. package/dist/admin/chunks/{validation-dPl3P7dv.js.map → validation-sucpUItn.js.map} +1 -1
  161. package/dist/admin/index.js +1 -1
  162. package/dist/admin/index.mjs +1 -1
  163. package/dist/server/index.js +0 -1
  164. package/dist/server/index.js.map +1 -1
  165. package/dist/server/index.mjs +0 -1
  166. package/dist/server/index.mjs.map +1 -1
  167. package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
  168. package/package.json +11 -11
  169. package/dist/admin/chunks/AuthenticatedLayout-C9eZ12Ue.mjs.map +0 -1
  170. package/dist/admin/chunks/AuthenticatedLayout-D_VSoB1l.js.map +0 -1
  171. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs +0 -201
  172. package/dist/admin/chunks/uk-Cb6a0PAZ.mjs.map +0 -1
  173. package/dist/admin/chunks/uk-gz16FlMw.js +0 -212
  174. package/dist/admin/chunks/uk-gz16FlMw.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-D21yUih2.js","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":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useFormatTimeStamp","formatDate","useIntl","formatTimeStamp","value","date","parseISO","formattedDate","dateStyle","formattedTime","timeStyle","hourCycle","actionTypes","getDefaultMessage","Modal","handleClose","logId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","data","error","isLoading","React","useEffect","type","message","_jsx","DSModal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Body","ActionBody","formatMessage","Flex","padding","justifyContent","alignItems","Loader","action","user","payload","_Fragment","Box","marginBottom","Typography","variant","defaultMessage","Grid","gap","gridCols","paddingTop","paddingBottom","paddingLeft","paddingRight","background","hasRadius","ActionItem","actionLabel","actionName","model","displayName","toString","Field","Label","Payload","JSON","stringify","disabled","styled","JSONInput","direction","textColor","useAuditLogsData","canReadAuditLogs","canReadUsers","useQueryParams","isError","isUsersError","isLoadingUsers","useAdminUsers","skip","refetchOnMountOrArgChange","auditLogs","isLoadingAuditLogs","isAuditLogsError","auditLogsError","users","hasError","ComboboxFilter","props","field","useField","name","ariaLabel","handleChange","onChange","Combobox","aria-label","options","map","opt","ComboboxOption","getDisplayedFilters","operators","filters","input","Object","keys","undefined","mainField","getDisplayName","ListPage","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","isLoadingRBAC","useRBAC","readUsers","read","setQuery","isLoadingData","displayedFilters","headers","sortable","cellFormatter","Page","Error","results","Main","aria-busy","Title","Layouts","title","subtitle","Action","startActions","Filters","Trigger","Popover","List","Table","rows","Head","header","HeaderCell","Empty","Loading","log","Row","onClick","Cell","e","stopPropagation","IconButton","withTooltip","target","Eye","Pagination","pagination","PageSize","Links","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-SVEmrFSg.js","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":["auditLogsService","adminApi","injectEndpoints","endpoints","builder","getAuditLogs","query","params","url","config","getAuditLog","id","overrideExisting","useGetAuditLogsQuery","useGetAuditLogQuery","useFormatTimeStamp","formatDate","useIntl","formatTimeStamp","value","date","parseISO","formattedDate","dateStyle","formattedTime","timeStyle","hourCycle","actionTypes","getDefaultMessage","Modal","handleClose","logId","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","data","error","isLoading","React","useEffect","type","message","_jsx","DSModal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Body","ActionBody","formatMessage","Flex","padding","justifyContent","alignItems","Loader","action","user","payload","_Fragment","Box","marginBottom","Typography","variant","defaultMessage","Grid","gap","gridCols","paddingTop","paddingBottom","paddingLeft","paddingRight","background","hasRadius","ActionItem","actionLabel","actionName","model","displayName","toString","Field","Label","Payload","JSON","stringify","disabled","styled","JSONInput","direction","textColor","useAuditLogsData","canReadAuditLogs","canReadUsers","useQueryParams","isError","isUsersError","isLoadingUsers","useAdminUsers","skip","refetchOnMountOrArgChange","auditLogs","isLoadingAuditLogs","isAuditLogsError","auditLogsError","users","hasError","ComboboxFilter","props","field","useField","name","ariaLabel","handleChange","onChange","Combobox","aria-label","options","map","opt","ComboboxOption","getDisplayedFilters","operators","filters","input","Object","keys","undefined","mainField","getDisplayName","ListPage","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","isLoadingRBAC","useRBAC","readUsers","read","setQuery","isLoadingData","displayedFilters","headers","sortable","cellFormatter","Page","Error","results","Main","aria-busy","Title","Layouts","title","subtitle","Action","startActions","Filters","Trigger","Popover","List","Table","rows","Head","header","HeaderCell","Empty","Loading","log","Row","onClick","Cell","e","stopPropagation","IconButton","withTooltip","target","Eye","Pagination","pagination","PageSize","Links","ProtectedListPage","main","Protect"],"mappings":"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"}
@@ -7,7 +7,7 @@ var icons = require('@strapi/icons');
7
7
  var symbols = require('@strapi/icons/symbols');
8
8
  var reactIntl = require('react-intl');
9
9
  var reactRouterDom = require('react-router-dom');
10
- var index = require('./index-HGaughzt.js');
10
+ var index = require('./index-BdqtLS-k.js');
11
11
  var Theme = require('./Theme-DDlJz91O.js');
12
12
  var useWebhooks = require('./useWebhooks-CROc5Uno.js');
13
13
  require('react-dom/client');
@@ -471,4 +471,4 @@ const DeleteActionButton = ({ onDelete })=>{
471
471
 
472
472
  exports.ListPage = ListPage;
473
473
  exports.ProtectedListPage = ProtectedListPage;
474
- //# sourceMappingURL=ListPage-DbfL2rpi.js.map
474
+ //# sourceMappingURL=ListPage-fOcHewxm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-DbfL2rpi.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","Layouts","Root","Title","name","Main","aria-busy","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","_Fragment","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-fOcHewxm.js","sources":["../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <Layouts.Root>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","Layouts","Root","Title","name","Main","aria-busy","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","_Fragment","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
@@ -7,11 +7,11 @@ import * as qs from 'qs';
7
7
  import { useIntl } from 'react-intl';
8
8
  import { useNavigate, Link } from 'react-router-dom';
9
9
  import { b as useTypedSelector, P as Page, a as useNotification, k as useRBAC, c as useTracking, m as useGuidedTour, e as useAPIErrorHandler } from './Theme-C3oHrQcy.mjs';
10
- import { b as Layouts } from './index-BM8-DG5K.mjs';
10
+ import { b as Layouts } from './index-C3BO0YZa.mjs';
11
11
  import { u as useOnce } from './useOnce-EHSWW7FY.mjs';
12
12
  import { u as useGetAPITokensQuery, a as useDeleteAPITokenMutation } from './apiTokens-Bl4j4xFt.mjs';
13
13
  import { A as API_TOKEN_TYPE } from './constants-B8oOcJBB.mjs';
14
- import { T as Table } from './Table-BohVeu0r.mjs';
14
+ import { T as Table } from './Table-b4wXHsis.mjs';
15
15
  import '@radix-ui/react-context';
16
16
  import './admin-BBS7sDVu.mjs';
17
17
  import 'lodash/trimEnd';
@@ -250,4 +250,4 @@ const ProtectedListView = ()=>{
250
250
  };
251
251
 
252
252
  export { ListView, ProtectedListView };
253
- //# sourceMappingURL=ListView--KzJiQiO.mjs.map
253
+ //# sourceMappingURL=ListView-BUbdI3-z.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView--KzJiQiO.mjs","sources":["../../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-BUbdI3-z.mjs","sources":["../../../admin/src/pages/Settings/pages/ApiTokens/ListView.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { EmptyStateLayout, LinkButton } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
@@ -9,11 +9,11 @@ var qs = require('qs');
9
9
  var reactIntl = require('react-intl');
10
10
  var reactRouterDom = require('react-router-dom');
11
11
  var Theme = require('./Theme-DDlJz91O.js');
12
- var index = require('./index-HGaughzt.js');
12
+ var index = require('./index-BdqtLS-k.js');
13
13
  var useOnce = require('./useOnce-CCEXokcy.js');
14
14
  var apiTokens = require('./apiTokens-C7CY0RRl.js');
15
15
  var constants = require('./constants-tbFuOuW4.js');
16
- var Table = require('./Table-CBZnqMuN.js');
16
+ var Table = require('./Table-U6zMuKE5.js');
17
17
  require('@radix-ui/react-context');
18
18
  require('./admin-udBiOv2o.js');
19
19
  require('lodash/trimEnd');
@@ -273,4 +273,4 @@ const ProtectedListView = ()=>{
273
273
 
274
274
  exports.ListView = ListView;
275
275
  exports.ProtectedListView = ProtectedListView;
276
- //# sourceMappingURL=ListView-DzwvQ8nW.js.map
276
+ //# sourceMappingURL=ListView-CGHuleNQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView-DzwvQ8nW.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 * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListView-CGHuleNQ.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 * as qs from 'qs';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\n\nimport { useGuidedTour } from '../../../../components/GuidedTour/Provider';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useOnce } from '../../../../hooks/useOnce';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDeleteAPITokenMutation, useGetAPITokensQuery } from '../../../../services/apiTokens';\nimport { API_TOKEN_TYPE } from '../../components/Tokens/constants';\nimport { Table } from '../../components/Tokens/Table';\n\nimport type { Data } from '@strapi/types';\n\nconst TABLE_HEADERS = [\n {\n name: 'name',\n label: {\n id: 'Settings.apiTokens.ListView.headers.name',\n defaultMessage: 'Name',\n },\n sortable: true,\n },\n {\n name: 'description',\n label: {\n id: 'Settings.apiTokens.ListView.headers.description',\n defaultMessage: 'Description',\n },\n sortable: false,\n },\n {\n name: 'createdAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.createdAt',\n defaultMessage: 'Created at',\n },\n sortable: false,\n },\n {\n name: 'lastUsedAt',\n label: {\n id: 'Settings.apiTokens.ListView.headers.lastUsedAt',\n defaultMessage: 'Last used',\n },\n sortable: false,\n },\n];\n\nexport const ListView = () => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens']\n );\n const {\n allowedActions: { canRead, canCreate, canDelete, canUpdate },\n } = useRBAC(permissions);\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const startSection = useGuidedTour('ListView', (state) => state.startSection);\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n React.useEffect(() => {\n startSection('apiTokens');\n }, [startSection]);\n\n React.useEffect(() => {\n navigate({ search: qs.stringify({ sort: 'name:ASC' }, { encode: false }) });\n }, [navigate]);\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n useOnce(() => {\n trackUsage('willAccessTokenList', {\n tokenType: API_TOKEN_TYPE,\n });\n });\n\n const { data: apiTokens = [], isLoading, error } = useGetAPITokensQuery();\n\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n React.useEffect(() => {\n trackUsage('didAccessTokenList', { number: apiTokens.length, tokenType: API_TOKEN_TYPE });\n }, [apiTokens, trackUsage]);\n\n const [deleteToken] = useDeleteAPITokenMutation();\n\n const handleDelete = async (id: Data.ID) => {\n try {\n const res = await deleteToken(id);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n trackUsage('didDeleteToken');\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n }\n };\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n { name: 'API Tokens' }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' })}\n subtitle={formatMessage({\n id: 'Settings.apiTokens.description',\n defaultMessage: 'List of generated tokens to consume the API',\n })}\n primaryAction={\n canCreate && (\n <LinkButton\n tag={Link}\n data-testid=\"create-api-token-button\"\n startIcon={<Plus />}\n size=\"S\"\n onClick={() =>\n trackUsage('willAddTokenFromList', {\n tokenType: API_TOKEN_TYPE,\n })\n }\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.create',\n defaultMessage: 'Create new API Token',\n })}\n </LinkButton>\n )\n }\n />\n {!canRead ? (\n <Page.NoPermissions />\n ) : (\n <Page.Main aria-busy={isLoading}>\n <Layouts.Content>\n {apiTokens.length > 0 && (\n <Table\n permissions={{ canRead, canDelete, canUpdate }}\n headers={headers}\n isLoading={isLoading}\n onConfirmDelete={handleDelete}\n tokens={apiTokens}\n tokenType={API_TOKEN_TYPE}\n />\n )}\n {canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.addFirstToken',\n defaultMessage: 'Add your first API Token',\n })}\n action={\n <LinkButton\n tag={Link}\n variant=\"secondary\"\n startIcon={<Plus />}\n to=\"/settings/api-tokens/create\"\n >\n {formatMessage({\n id: 'Settings.apiTokens.addNewToken',\n defaultMessage: 'Add new API Token',\n })}\n </LinkButton>\n }\n />\n ) : null}\n {!canCreate && apiTokens.length === 0 ? (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"16rem\" />}\n content={formatMessage({\n id: 'Settings.apiTokens.emptyStateLayout',\n defaultMessage: 'You don’t have any content yet...',\n })}\n />\n ) : null}\n </Layouts.Content>\n </Page.Main>\n )}\n </>\n );\n};\n\nexport const ProtectedListView = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.['api-tokens'].main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListView />\n </Page.Protect>\n );\n};\n"],"names":["TABLE_HEADERS","name","label","id","defaultMessage","sortable","ListView","formatMessage","useIntl","toggleNotification","useNotification","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canCreate","canDelete","canUpdate","useRBAC","navigate","useNavigate","trackUsage","useTracking","startSection","useGuidedTour","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","React","useEffect","search","qs","stringify","sort","encode","headers","map","header","useOnce","tokenType","API_TOKEN_TYPE","data","apiTokens","isLoading","error","useGetAPITokensQuery","type","message","number","length","deleteToken","useDeleteAPITokenMutation","handleDelete","res","_jsxs","_Fragment","_jsx","Page","Title","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","Link","data-testid","startIcon","Plus","size","onClick","to","NoPermissions","Main","aria-busy","Content","Table","onConfirmDelete","tokens","EmptyStateLayout","icon","EmptyDocuments","width","content","action","variant","ProtectedListView","main","Protect"],"mappings":"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"}