@strapi/admin 4.25.21 → 4.25.23

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 (211) hide show
  1. package/dist/_chunks/{AdminSeatInfo-fNh9AVPj.mjs → AdminSeatInfo-LXgNjwsq.mjs} +3 -3
  2. package/dist/_chunks/{AdminSeatInfo-fNh9AVPj.mjs.map → AdminSeatInfo-LXgNjwsq.mjs.map} +1 -1
  3. package/dist/_chunks/{AdminSeatInfo-n9_ckklX.js → AdminSeatInfo-iASat0Hw.js} +3 -3
  4. package/dist/_chunks/{AdminSeatInfo-n9_ckklX.js.map → AdminSeatInfo-iASat0Hw.js.map} +1 -1
  5. package/dist/_chunks/{AuthenticatedApp-JlSCDE9m.mjs → AuthenticatedApp-Bfl9hK_h.mjs} +22 -22
  6. package/dist/_chunks/{AuthenticatedApp-JlSCDE9m.mjs.map → AuthenticatedApp-Bfl9hK_h.mjs.map} +1 -1
  7. package/dist/_chunks/{AuthenticatedApp-QDCywiaA.js → AuthenticatedApp-BhDorlD8.js} +22 -22
  8. package/dist/_chunks/{AuthenticatedApp-QDCywiaA.js.map → AuthenticatedApp-BhDorlD8.js.map} +1 -1
  9. package/dist/_chunks/{CreateActionEE-j5RHQGR1.mjs → CreateActionEE-H-fQGqjA.mjs} +2 -2
  10. package/dist/_chunks/{CreateActionEE-j5RHQGR1.mjs.map → CreateActionEE-H-fQGqjA.mjs.map} +1 -1
  11. package/dist/_chunks/{CreateActionEE-41ZkOmsl.js → CreateActionEE-fa-xpnfx.js} +2 -2
  12. package/dist/_chunks/{CreateActionEE-41ZkOmsl.js.map → CreateActionEE-fa-xpnfx.js.map} +1 -1
  13. package/dist/_chunks/{CreatePage-pZqlUQYD.js → CreatePage--54BSoB7.js} +8 -8
  14. package/dist/_chunks/{CreatePage-pZqlUQYD.js.map → CreatePage--54BSoB7.js.map} +1 -1
  15. package/dist/_chunks/{CreatePage-ApXmZ6hv.mjs → CreatePage-VaJ3geMW.mjs} +8 -8
  16. package/dist/_chunks/{CreatePage-ApXmZ6hv.mjs.map → CreatePage-VaJ3geMW.mjs.map} +1 -1
  17. package/dist/_chunks/{CreatePage-w8DFLtB6.js → CreatePage-fxCGcrNa.js} +6 -6
  18. package/dist/_chunks/{CreatePage-w8DFLtB6.js.map → CreatePage-fxCGcrNa.js.map} +1 -1
  19. package/dist/_chunks/{CreatePage-9yf08Hvr.mjs → CreatePage-sZwN4-t1.mjs} +3 -3
  20. package/dist/_chunks/{CreatePage-9yf08Hvr.mjs.map → CreatePage-sZwN4-t1.mjs.map} +1 -1
  21. package/dist/_chunks/{CreatePage-eEbDUiWT.js → CreatePage-xF4vGlFt.js} +3 -3
  22. package/dist/_chunks/{CreatePage-eEbDUiWT.js.map → CreatePage-xF4vGlFt.js.map} +1 -1
  23. package/dist/_chunks/{CreatePage-hqu9LQBD.mjs → CreatePage-yCJUQ_Q_.mjs} +6 -6
  24. package/dist/_chunks/{CreatePage-hqu9LQBD.mjs.map → CreatePage-yCJUQ_Q_.mjs.map} +1 -1
  25. package/dist/_chunks/{CreateView-kbmC1gMS.mjs → CreateView--YWdFkar.mjs} +6 -6
  26. package/dist/_chunks/{CreateView-kbmC1gMS.mjs.map → CreateView--YWdFkar.mjs.map} +1 -1
  27. package/dist/_chunks/{CreateView-63oNUfVH.js → CreateView-0cT0WTX3.js} +6 -6
  28. package/dist/_chunks/{CreateView-63oNUfVH.js.map → CreateView-0cT0WTX3.js.map} +1 -1
  29. package/dist/_chunks/{CreateView-KVMv7s3s.js → CreateView-iobgSsYH.js} +6 -6
  30. package/dist/_chunks/{CreateView-KVMv7s3s.js.map → CreateView-iobgSsYH.js.map} +1 -1
  31. package/dist/_chunks/{CreateView-EiUPL71p.mjs → CreateView-qLcZo0lL.mjs} +6 -6
  32. package/dist/_chunks/{CreateView-EiUPL71p.mjs.map → CreateView-qLcZo0lL.mjs.map} +1 -1
  33. package/dist/_chunks/{EditPage-zla6CY-n.js → EditPage-41veRB1H.js} +6 -6
  34. package/dist/_chunks/{EditPage-zla6CY-n.js.map → EditPage-41veRB1H.js.map} +1 -1
  35. package/dist/_chunks/{EditPage-Dfh_a9re.mjs → EditPage-9L9QFEhI.mjs} +9 -9
  36. package/dist/_chunks/{EditPage-Dfh_a9re.mjs.map → EditPage-9L9QFEhI.mjs.map} +1 -1
  37. package/dist/_chunks/{EditPage-S32_MPZV.js → EditPage-IqschOA1.js} +6 -6
  38. package/dist/_chunks/{EditPage-S32_MPZV.js.map → EditPage-IqschOA1.js.map} +1 -1
  39. package/dist/_chunks/{EditPage-4QW2drFe.js → EditPage-MbDaNryL.js} +4 -4
  40. package/dist/_chunks/{EditPage-4QW2drFe.js.map → EditPage-MbDaNryL.js.map} +1 -1
  41. package/dist/_chunks/{EditPage-IKP7kDDd.mjs → EditPage-RVuaalPM.mjs} +4 -4
  42. package/dist/_chunks/{EditPage-IKP7kDDd.mjs.map → EditPage-RVuaalPM.mjs.map} +1 -1
  43. package/dist/_chunks/{EditPage--b9DJdw5.js → EditPage-TKSrKZIB.js} +9 -9
  44. package/dist/_chunks/{EditPage--b9DJdw5.js.map → EditPage-TKSrKZIB.js.map} +1 -1
  45. package/dist/_chunks/{EditPage-0SD5FvMy.mjs → EditPage-eakBPGh3.mjs} +6 -6
  46. package/dist/_chunks/{EditPage-0SD5FvMy.mjs.map → EditPage-eakBPGh3.mjs.map} +1 -1
  47. package/dist/_chunks/{EditPage-ys_BuVge.mjs → EditPage-j7PAa8iL.mjs} +6 -6
  48. package/dist/_chunks/{EditPage-ys_BuVge.mjs.map → EditPage-j7PAa8iL.mjs.map} +1 -1
  49. package/dist/_chunks/{EditView-Z0k2PFIW.js → EditView-jWLX1Tyq.js} +4 -4
  50. package/dist/_chunks/{EditView-Z0k2PFIW.js.map → EditView-jWLX1Tyq.js.map} +1 -1
  51. package/dist/_chunks/{EditView-DEchhGSy.mjs → EditView-y7Ru7MBN.mjs} +4 -4
  52. package/dist/_chunks/{EditView-DEchhGSy.mjs.map → EditView-y7Ru7MBN.mjs.map} +1 -1
  53. package/dist/_chunks/{EditViewPage-FaZ9DTP-.js → EditViewPage-26ouX4XT.js} +4 -4
  54. package/dist/_chunks/{EditViewPage-FaZ9DTP-.js.map → EditViewPage-26ouX4XT.js.map} +1 -1
  55. package/dist/_chunks/{EditViewPage-66vkBGnE.mjs → EditViewPage-K3F6kESh.mjs} +4 -4
  56. package/dist/_chunks/{EditViewPage-66vkBGnE.mjs.map → EditViewPage-K3F6kESh.mjs.map} +1 -1
  57. package/dist/_chunks/{EventsTable-wVl5KPcq.mjs → EventsTable-KDjZ2cVf.mjs} +6 -6
  58. package/dist/_chunks/{EventsTable-wVl5KPcq.mjs.map → EventsTable-KDjZ2cVf.mjs.map} +1 -1
  59. package/dist/_chunks/{EventsTable-Mp4lY2AJ.js → EventsTable-LXrDlBfr.js} +6 -6
  60. package/dist/_chunks/{EventsTable-Mp4lY2AJ.js.map → EventsTable-LXrDlBfr.js.map} +1 -1
  61. package/dist/_chunks/{HomePage-J_qLEedO.js → HomePage-FResDoxA.js} +5 -5
  62. package/dist/_chunks/{HomePage-J_qLEedO.js.map → HomePage-FResDoxA.js.map} +1 -1
  63. package/dist/_chunks/{HomePage-dHbUIjx9.js → HomePage-Ze3G8iUH.js} +6 -6
  64. package/dist/_chunks/{HomePage-dHbUIjx9.js.map → HomePage-Ze3G8iUH.js.map} +1 -1
  65. package/dist/_chunks/{HomePage-NgMfBDG1.mjs → HomePage-ednXn0_w.mjs} +6 -6
  66. package/dist/_chunks/{HomePage-NgMfBDG1.mjs.map → HomePage-ednXn0_w.mjs.map} +1 -1
  67. package/dist/_chunks/{HomePage-Uzw2Zg0c.mjs → HomePage-eu--l8xF.mjs} +5 -5
  68. package/dist/_chunks/{HomePage-Uzw2Zg0c.mjs.map → HomePage-eu--l8xF.mjs.map} +1 -1
  69. package/dist/_chunks/{InformationBoxEE-L8BBbY5q.mjs → InformationBoxEE-Gdo1XAgx.mjs} +3 -3
  70. package/dist/_chunks/{InformationBoxEE-L8BBbY5q.mjs.map → InformationBoxEE-Gdo1XAgx.mjs.map} +1 -1
  71. package/dist/_chunks/{InformationBoxEE-QnIjVrwB.js → InformationBoxEE-paMrWUnO.js} +3 -3
  72. package/dist/_chunks/{InformationBoxEE-QnIjVrwB.js.map → InformationBoxEE-paMrWUnO.js.map} +1 -1
  73. package/dist/_chunks/{InstalledPluginsPage-5FMbbylg.js → InstalledPluginsPage-CqVr2dr6.js} +3 -3
  74. package/dist/_chunks/{InstalledPluginsPage-5FMbbylg.js.map → InstalledPluginsPage-CqVr2dr6.js.map} +1 -1
  75. package/dist/_chunks/{InstalledPluginsPage-9wzLhUvI.mjs → InstalledPluginsPage-bwx1FfBD.mjs} +3 -3
  76. package/dist/_chunks/{InstalledPluginsPage-9wzLhUvI.mjs.map → InstalledPluginsPage-bwx1FfBD.mjs.map} +1 -1
  77. package/dist/_chunks/{Layout--0fQX_O4.js → Layout-3Lv7Nso2.js} +2 -2
  78. package/dist/_chunks/{Layout--0fQX_O4.js.map → Layout-3Lv7Nso2.js.map} +1 -1
  79. package/dist/_chunks/{Layout-QMOA8ZMB.mjs → Layout-Z16aTYpZ.mjs} +2 -2
  80. package/dist/_chunks/{Layout-QMOA8ZMB.mjs.map → Layout-Z16aTYpZ.mjs.map} +1 -1
  81. package/dist/_chunks/{ListPage-m6p6QnZU.js → ListPage-5xEl9tYB.js} +7 -7
  82. package/dist/_chunks/{ListPage-m6p6QnZU.js.map → ListPage-5xEl9tYB.js.map} +1 -1
  83. package/dist/_chunks/{ListPage-98s5i8Xi.mjs → ListPage-9qAYgALl.mjs} +4 -4
  84. package/dist/_chunks/{ListPage-98s5i8Xi.mjs.map → ListPage-9qAYgALl.mjs.map} +1 -1
  85. package/dist/_chunks/{ListPage-NW6Jib2e.mjs → ListPage-IK__4Lpf.mjs} +2 -2
  86. package/dist/_chunks/{ListPage-NW6Jib2e.mjs.map → ListPage-IK__4Lpf.mjs.map} +1 -1
  87. package/dist/_chunks/{ListPage-_lgSe68W.js → ListPage-PpuyFTj7.js} +2 -2
  88. package/dist/_chunks/{ListPage-_lgSe68W.js.map → ListPage-PpuyFTj7.js.map} +1 -1
  89. package/dist/_chunks/{ListPage-vnDwKizz.mjs → ListPage-TJvZ4Mf5.mjs} +6 -6
  90. package/dist/_chunks/{ListPage-vnDwKizz.mjs.map → ListPage-TJvZ4Mf5.mjs.map} +1 -1
  91. package/dist/_chunks/{ListPage-cznp__Dv.mjs → ListPage-X6S-Jwbi.mjs} +8 -8
  92. package/dist/_chunks/{ListPage-cznp__Dv.mjs.map → ListPage-X6S-Jwbi.mjs.map} +1 -1
  93. package/dist/_chunks/{ListPage-HZokVhqs.mjs → ListPage-hRUBs_lX.mjs} +7 -7
  94. package/dist/_chunks/{ListPage-HZokVhqs.mjs.map → ListPage-hRUBs_lX.mjs.map} +1 -1
  95. package/dist/_chunks/{ListPage-RhTdol-1.js → ListPage-jzaajX-e.js} +3 -3
  96. package/dist/_chunks/{ListPage-RhTdol-1.js.map → ListPage-jzaajX-e.js.map} +1 -1
  97. package/dist/_chunks/{ListPage-OQ2ywwby.mjs → ListPage-lXXuYlv5.mjs} +3 -3
  98. package/dist/_chunks/{ListPage-OQ2ywwby.mjs.map → ListPage-lXXuYlv5.mjs.map} +1 -1
  99. package/dist/_chunks/{ListPage-mauu1_HA.js → ListPage-oCa14URs.js} +6 -6
  100. package/dist/_chunks/{ListPage-mauu1_HA.js.map → ListPage-oCa14URs.js.map} +1 -1
  101. package/dist/_chunks/{ListPage-WYdwtsqM.js → ListPage-psHwJBW1.js} +8 -8
  102. package/dist/_chunks/{ListPage-WYdwtsqM.js.map → ListPage-psHwJBW1.js.map} +1 -1
  103. package/dist/_chunks/{ListPage-4ewT-BZW.js → ListPage-zhVYinNj.js} +4 -4
  104. package/dist/_chunks/{ListPage-4ewT-BZW.js.map → ListPage-zhVYinNj.js.map} +1 -1
  105. package/dist/_chunks/{ListView-lkCViZHB.js → ListView-3Fg7Y56o.js} +3 -3
  106. package/dist/_chunks/{ListView-lkCViZHB.js.map → ListView-3Fg7Y56o.js.map} +1 -1
  107. package/dist/_chunks/{ListView-7ZJcAipg.mjs → ListView-HLSZD4QG.mjs} +3 -3
  108. package/dist/_chunks/{ListView-7ZJcAipg.mjs.map → ListView-HLSZD4QG.mjs.map} +1 -1
  109. package/dist/_chunks/{ListView-Z7ammGeJ.mjs → ListView-LqnkQPSw.mjs} +3 -3
  110. package/dist/_chunks/{ListView-Z7ammGeJ.mjs.map → ListView-LqnkQPSw.mjs.map} +1 -1
  111. package/dist/_chunks/{ListView-hoXRhYAF.js → ListView-jQQs_cJl.js} +3 -3
  112. package/dist/_chunks/{ListView-hoXRhYAF.js.map → ListView-jQQs_cJl.js.map} +1 -1
  113. package/dist/_chunks/{Login-Ky9EqaPl.mjs → Login-sL4b-7I_.mjs} +2 -2
  114. package/dist/_chunks/{Login-Ky9EqaPl.mjs.map → Login-sL4b-7I_.mjs.map} +1 -1
  115. package/dist/_chunks/{Login-l_qX3rqd.js → Login-vU5BXAqP.js} +2 -2
  116. package/dist/_chunks/{Login-l_qX3rqd.js.map → Login-vU5BXAqP.js.map} +1 -1
  117. package/dist/_chunks/{MagicLinkEE-Zsz76VJd.js → MagicLinkEE-mupgFg4V.js} +4 -4
  118. package/dist/_chunks/{MagicLinkEE-Zsz76VJd.js.map → MagicLinkEE-mupgFg4V.js.map} +1 -1
  119. package/dist/_chunks/{MagicLinkEE-b5oKEMhb.mjs → MagicLinkEE-sBUcBylX.mjs} +4 -4
  120. package/dist/_chunks/{MagicLinkEE-b5oKEMhb.mjs.map → MagicLinkEE-sBUcBylX.mjs.map} +1 -1
  121. package/dist/_chunks/{MarketplacePage-p3jDY32K.js → MarketplacePage-IjKH_WKo.js} +3 -3
  122. package/dist/_chunks/{MarketplacePage-p3jDY32K.js.map → MarketplacePage-IjKH_WKo.js.map} +1 -1
  123. package/dist/_chunks/{MarketplacePage-bEBY0oMW.mjs → MarketplacePage-gM6Owfe4.mjs} +3 -3
  124. package/dist/_chunks/{MarketplacePage-bEBY0oMW.mjs.map → MarketplacePage-gM6Owfe4.mjs.map} +1 -1
  125. package/dist/_chunks/{Permissions-kUXaT_FG.mjs → Permissions-DcS4EUNN.mjs} +2 -2
  126. package/dist/_chunks/{Permissions-kUXaT_FG.mjs.map → Permissions-DcS4EUNN.mjs.map} +1 -1
  127. package/dist/_chunks/{Permissions-KmDO0rYL.js → Permissions-bKkzuzDV.js} +2 -2
  128. package/dist/_chunks/{Permissions-KmDO0rYL.js.map → Permissions-bKkzuzDV.js.map} +1 -1
  129. package/dist/_chunks/{ProfilePage-UKafmIQU.mjs → ProfilePage-1wRz5NN3.mjs} +3 -3
  130. package/dist/_chunks/{ProfilePage-UKafmIQU.mjs.map → ProfilePage-1wRz5NN3.mjs.map} +1 -1
  131. package/dist/_chunks/{ProfilePage-RAAMg9Wq.js → ProfilePage-BheU04B3.js} +3 -3
  132. package/dist/_chunks/{ProfilePage-RAAMg9Wq.js.map → ProfilePage-BheU04B3.js.map} +1 -1
  133. package/dist/_chunks/{ReviewWorkflowsColumn-4k7WyvRr.js → ReviewWorkflowsColumn-Bmm5pCUA.js} +2 -2
  134. package/dist/_chunks/{ReviewWorkflowsColumn-4k7WyvRr.js.map → ReviewWorkflowsColumn-Bmm5pCUA.js.map} +1 -1
  135. package/dist/_chunks/{ReviewWorkflowsColumn-8SKxr3qC.mjs → ReviewWorkflowsColumn-jL2QtJeb.mjs} +2 -2
  136. package/dist/_chunks/{ReviewWorkflowsColumn-8SKxr3qC.mjs.map → ReviewWorkflowsColumn-jL2QtJeb.mjs.map} +1 -1
  137. package/dist/_chunks/{SelectRoles-cdkdfqin.js → SelectRoles-8cZLkMEi.js} +3 -3
  138. package/dist/_chunks/{SelectRoles-cdkdfqin.js.map → SelectRoles-8cZLkMEi.js.map} +1 -1
  139. package/dist/_chunks/{SelectRoles-_XSAf07G.mjs → SelectRoles-avun6PVn.mjs} +3 -3
  140. package/dist/_chunks/{SelectRoles-_XSAf07G.mjs.map → SelectRoles-avun6PVn.mjs.map} +1 -1
  141. package/dist/_chunks/{SettingsPage-N9zitd6U.mjs → SettingsPage-Leij7RZb.mjs} +21 -21
  142. package/dist/_chunks/{SettingsPage-N9zitd6U.mjs.map → SettingsPage-Leij7RZb.mjs.map} +1 -1
  143. package/dist/_chunks/{SettingsPage-TWrwoiEG.js → SettingsPage-vNzZJ3ag.js} +21 -21
  144. package/dist/_chunks/{SettingsPage-TWrwoiEG.js.map → SettingsPage-vNzZJ3ag.js.map} +1 -1
  145. package/dist/_chunks/{SingleSignOnPage-WS3ulauT.mjs → SingleSignOnPage-PvhdP6KP.mjs} +3 -3
  146. package/dist/_chunks/{SingleSignOnPage-WS3ulauT.mjs.map → SingleSignOnPage-PvhdP6KP.mjs.map} +1 -1
  147. package/dist/_chunks/{SingleSignOnPage-sxTphba9.js → SingleSignOnPage-r9DBE6xY.js} +3 -3
  148. package/dist/_chunks/{SingleSignOnPage-sxTphba9.js.map → SingleSignOnPage-r9DBE6xY.js.map} +1 -1
  149. package/dist/_chunks/{TokenTypeSelect--3ay_72E.mjs → TokenTypeSelect-AIpez_wn.mjs} +2 -2
  150. package/dist/_chunks/{TokenTypeSelect--3ay_72E.mjs.map → TokenTypeSelect-AIpez_wn.mjs.map} +1 -1
  151. package/dist/_chunks/{TokenTypeSelect-Poj87TVd.js → TokenTypeSelect-q02cCXwZ.js} +2 -2
  152. package/dist/_chunks/{TokenTypeSelect-Poj87TVd.js.map → TokenTypeSelect-q02cCXwZ.js.map} +1 -1
  153. package/dist/_chunks/{apiTokens-1-g1z-xk.mjs → apiTokens-MDVd3qb9.mjs} +2 -2
  154. package/dist/_chunks/{apiTokens-1-g1z-xk.mjs.map → apiTokens-MDVd3qb9.mjs.map} +1 -1
  155. package/dist/_chunks/{apiTokens-f5VdDehM.js → apiTokens-cNgZGltX.js} +2 -2
  156. package/dist/_chunks/{apiTokens-f5VdDehM.js.map → apiTokens-cNgZGltX.js.map} +1 -1
  157. package/dist/_chunks/{constants-EKhu9sSP.mjs → constants-7MMo0xYE.mjs} +6 -6
  158. package/dist/_chunks/{constants-EKhu9sSP.mjs.map → constants-7MMo0xYE.mjs.map} +1 -1
  159. package/dist/_chunks/{constants-9hTO8CqH.js → constants-7my2QI_T.js} +2 -2
  160. package/dist/_chunks/{constants-9hTO8CqH.js.map → constants-7my2QI_T.js.map} +1 -1
  161. package/dist/_chunks/{constants-Ldyt_eKu.mjs → constants-HiPaWTSX.mjs} +4 -4
  162. package/dist/_chunks/{constants-Ldyt_eKu.mjs.map → constants-HiPaWTSX.mjs.map} +1 -1
  163. package/dist/_chunks/{constants-oz9VRBgp.js → constants-ODhwlQKw.js} +6 -6
  164. package/dist/_chunks/{constants-oz9VRBgp.js.map → constants-ODhwlQKw.js.map} +1 -1
  165. package/dist/_chunks/{constants-WADLbNZe.mjs → constants-W3sunVeW.mjs} +2 -2
  166. package/dist/_chunks/{constants-WADLbNZe.mjs.map → constants-W3sunVeW.mjs.map} +1 -1
  167. package/dist/_chunks/{constants-htFUWDmA.js → constants-X4ivu2Z3.js} +4 -4
  168. package/dist/_chunks/{constants-htFUWDmA.js.map → constants-X4ivu2Z3.js.map} +1 -1
  169. package/dist/_chunks/{constants-aqbguIyK.js → constants-eHUirbuN.js} +2 -2
  170. package/dist/_chunks/{constants-aqbguIyK.js.map → constants-eHUirbuN.js.map} +1 -1
  171. package/dist/_chunks/{constants-dWFltCWB.mjs → constants-rjmpwCpB.mjs} +2 -2
  172. package/dist/_chunks/{constants-dWFltCWB.mjs.map → constants-rjmpwCpB.mjs.map} +1 -1
  173. package/dist/_chunks/{index-Go7rNONx.mjs → index-5hP8C9h_.mjs} +10 -10
  174. package/dist/_chunks/{index-Go7rNONx.mjs.map → index-5hP8C9h_.mjs.map} +1 -1
  175. package/dist/_chunks/{index-Fnq9LxjS.js → index-hdB0LcQU.js} +10 -10
  176. package/dist/_chunks/{index-Fnq9LxjS.js.map → index-hdB0LcQU.js.map} +1 -1
  177. package/dist/_chunks/{reviewWorkflows-UTFLiCQ7.mjs → reviewWorkflows-NT8a9pbP.mjs} +2 -2
  178. package/dist/_chunks/{reviewWorkflows-UTFLiCQ7.mjs.map → reviewWorkflows-NT8a9pbP.mjs.map} +1 -1
  179. package/dist/_chunks/{reviewWorkflows-3LqmbaWU.js → reviewWorkflows-pvz0btjd.js} +2 -2
  180. package/dist/_chunks/{reviewWorkflows-3LqmbaWU.js.map → reviewWorkflows-pvz0btjd.js.map} +1 -1
  181. package/dist/_chunks/{transferTokens-vvFnOhfY.mjs → transferTokens-WJTQc-sG.mjs} +2 -2
  182. package/dist/_chunks/{transferTokens-vvFnOhfY.mjs.map → transferTokens-WJTQc-sG.mjs.map} +1 -1
  183. package/dist/_chunks/{transferTokens-rl4cws_7.js → transferTokens-n2fnxAr8.js} +2 -2
  184. package/dist/_chunks/{transferTokens-rl4cws_7.js.map → transferTokens-n2fnxAr8.js.map} +1 -1
  185. package/dist/_chunks/{useAdminRoles-jYK0Lxgt.mjs → useAdminRoles-GLrN6UE1.mjs} +2 -2
  186. package/dist/_chunks/{useAdminRoles-jYK0Lxgt.mjs.map → useAdminRoles-GLrN6UE1.mjs.map} +1 -1
  187. package/dist/_chunks/{useAdminRoles-eeaWQ2Rw.js → useAdminRoles-MXgNiQEp.js} +2 -2
  188. package/dist/_chunks/{useAdminRoles-eeaWQ2Rw.js.map → useAdminRoles-MXgNiQEp.js.map} +1 -1
  189. package/dist/_chunks/{useContentTypes-0aVH8324.mjs → useContentTypes-3V7R5Vlq.mjs} +2 -2
  190. package/dist/_chunks/{useContentTypes-0aVH8324.mjs.map → useContentTypes-3V7R5Vlq.mjs.map} +1 -1
  191. package/dist/_chunks/{useContentTypes-i8rQ45xv.js → useContentTypes-lP8pXI_b.js} +2 -2
  192. package/dist/_chunks/{useContentTypes-i8rQ45xv.js.map → useContentTypes-lP8pXI_b.js.map} +1 -1
  193. package/dist/_chunks/{useLicenseLimitNotification-CetQFd8w.js → useLicenseLimitNotification-BF8lNWgZ.js} +2 -2
  194. package/dist/_chunks/{useLicenseLimitNotification-CetQFd8w.js.map → useLicenseLimitNotification-BF8lNWgZ.js.map} +1 -1
  195. package/dist/_chunks/{useLicenseLimitNotification-HiIBpsf0.mjs → useLicenseLimitNotification-_Isg3hBw.mjs} +2 -2
  196. package/dist/_chunks/{useLicenseLimitNotification-HiIBpsf0.mjs.map → useLicenseLimitNotification-_Isg3hBw.mjs.map} +1 -1
  197. package/dist/_chunks/{useReviewWorkflows-FmX2X--T.mjs → useReviewWorkflows-c_5Ue4p0.mjs} +2 -2
  198. package/dist/_chunks/{useReviewWorkflows-FmX2X--T.mjs.map → useReviewWorkflows-c_5Ue4p0.mjs.map} +1 -1
  199. package/dist/_chunks/{useReviewWorkflows-3V4AXqOe.js → useReviewWorkflows-sUSNw5FU.js} +2 -2
  200. package/dist/_chunks/{useReviewWorkflows-3V4AXqOe.js.map → useReviewWorkflows-sUSNw5FU.js.map} +1 -1
  201. package/dist/_chunks/{useWebhooks-2WUKsATN.mjs → useWebhooks-NEbJu8zy.mjs} +2 -2
  202. package/dist/_chunks/{useWebhooks-2WUKsATN.mjs.map → useWebhooks-NEbJu8zy.mjs.map} +1 -1
  203. package/dist/_chunks/{useWebhooks-mLbKEm8B.js → useWebhooks-rUXZtGhD.js} +2 -2
  204. package/dist/_chunks/{useWebhooks-mLbKEm8B.js.map → useWebhooks-rUXZtGhD.js.map} +1 -1
  205. package/dist/_chunks/{validateWorkflow-6UTLT992.js → validateWorkflow-UickdeaD.js} +2 -2
  206. package/dist/_chunks/{validateWorkflow-6UTLT992.js.map → validateWorkflow-UickdeaD.js.map} +1 -1
  207. package/dist/_chunks/{validateWorkflow-ENE3UKDG.mjs → validateWorkflow-g9vIjmAt.mjs} +2 -2
  208. package/dist/_chunks/{validateWorkflow-ENE3UKDG.mjs.map → validateWorkflow-g9vIjmAt.mjs.map} +1 -1
  209. package/dist/admin/index.js +1 -1
  210. package/dist/admin/index.mjs +1 -1
  211. package/package.json +14 -14
@@ -5,8 +5,8 @@ import { useNotification, useAPIErrorHandler, useFocusWhenNavigate, LoadingIndic
5
5
  import { Helmet } from "react-helmet";
6
6
  import { useIntl } from "react-intl";
7
7
  import { useSelector } from "react-redux";
8
- import { s as selectAdminPermissions } from "./AuthenticatedApp-JlSCDE9m.mjs";
9
- import { q as useGetPluginsQuery } from "./index-Go7rNONx.mjs";
8
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-Bfl9hK_h.mjs";
9
+ import { q as useGetPluginsQuery } from "./index-5hP8C9h_.mjs";
10
10
  import "semver/functions/lt";
11
11
  import "semver/functions/valid";
12
12
  import "immer";
@@ -166,4 +166,4 @@ export {
166
166
  InstalledPluginsPage,
167
167
  ProtectedInstalledPluginsPage
168
168
  };
169
- //# sourceMappingURL=InstalledPluginsPage-9wzLhUvI.mjs.map
169
+ //# sourceMappingURL=InstalledPluginsPage-bwx1FfBD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstalledPluginsPage-9wzLhUvI.mjs","sources":["../../admin/src/pages/InstalledPluginsPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../selectors';\nimport { useGetPluginsQuery } from '../services/admin';\n\nconst InstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n useFocusWhenNavigate();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return (\n <Layout>\n <Main aria-busy>\n <LoadingIndicatorPage />\n </Main>\n </Layout>\n );\n }\n\n return (\n <Layout>\n <Main>\n <HeaderLayout\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <ContentLayout>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'description',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </ContentLayout>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedInstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.marketplace?.main}>\n <Helmet\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n />\n <InstalledPluginsPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedInstalledPluginsPage, InstalledPluginsPage };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InstalledPluginsPage-bwx1FfBD.mjs","sources":["../../admin/src/pages/InstalledPluginsPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n Table,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n Typography,\n useNotifyAT,\n} from '@strapi/design-system';\nimport {\n CheckPagePermissions,\n LoadingIndicatorPage,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useNotification,\n} from '@strapi/helper-plugin';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../selectors';\nimport { useGetPluginsQuery } from '../services/admin';\n\nconst InstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const toggleNotification = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n useFocusWhenNavigate();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return (\n <Layout>\n <Main aria-busy>\n <LoadingIndicatorPage />\n </Main>\n </Layout>\n );\n }\n\n return (\n <Layout>\n <Main>\n <HeaderLayout\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <ContentLayout>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'description',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </ContentLayout>\n </Main>\n </Layout>\n );\n};\n\nconst ProtectedInstalledPluginsPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.marketplace?.main}>\n <Helmet\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n />\n <InstalledPluginsPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedInstalledPluginsPage, InstalledPluginsPage };\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const designSystem = require("@strapi/design-system");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
5
  const Icons = require("@strapi/icons");
6
6
  const reactIntl = require("react-intl");
7
- const index = require("./index-Fnq9LxjS.js");
7
+ const index = require("./index-hdB0LcQU.js");
8
8
  const constants = require("./constants-L1I-Y-RJ.js");
9
9
  const styled = require("styled-components");
10
10
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
@@ -85,4 +85,4 @@ exports.Back = Back;
85
85
  exports.DragLayerRendered = DragLayerRendered;
86
86
  exports.Header = Header;
87
87
  exports.Root = Root;
88
- //# sourceMappingURL=Layout--0fQX_O4.js.map
88
+ //# sourceMappingURL=Layout-3Lv7Nso2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout--0fQX_O4.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":["styled","Flex","jsxs","pxToRem","jsx","CarretDown","Typography","DragLayer","DRAG_DROP_TYPES","Layout","Main","ContentLayout","useIntl","Link","ArrowLeft","Fragment","SettingsPageTitle","HeaderLayout"],"mappings":";;;;;;;;;;;AAKA,MAAM,SAASA,gBAAAA,QAAOC,aAAAA,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAAC,2BAAA;AAAA,IAACD,aAAA;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAOE,qBAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAAC,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,yCAACC,MAAW,YAAA,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAECD,2BAAA,IAAAE,aAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAAF,2BAAA;AAAA,IAACG,MAAA;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAASC,UAAA,gBAAgB,OAAO;AAChC,iBAAAJ,+BAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAAA,2BAAAA,IAACK,aAAAA,QACC,EAAA,UAAAL,2BAAAA,IAACM,aAAAA,MAAK,EAAA,UAAU,IACd,UAACN,2BAAA,IAAAO,4BAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkBC,UAAAA;AAGxB,SAAAR,+BAACS,aAAAA,QAAK,WAAWT,2BAAAA,IAACU,MAAAA,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEIZ,2BAAA,KAAAa,qBAAA,EAAA,UAAA;AAAA,IAACX,2BAAAA,IAAAY,aAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChCZ,2BAAA;AAAA,MAACa,aAAA;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;;;;;"}
1
+ {"version":3,"file":"Layout-3Lv7Nso2.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":["styled","Flex","jsxs","pxToRem","jsx","CarretDown","Typography","DragLayer","DRAG_DROP_TYPES","Layout","Main","ContentLayout","useIntl","Link","ArrowLeft","Fragment","SettingsPageTitle","HeaderLayout"],"mappings":";;;;;;;;;;;AAKA,MAAM,SAASA,gBAAAA,QAAOC,aAAAA,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAAC,2BAAA;AAAA,IAACD,aAAA;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAOE,qBAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAAC,2BAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,yCAACC,MAAW,YAAA,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAECD,2BAAA,IAAAE,aAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAAF,2BAAA;AAAA,IAACG,MAAA;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAASC,UAAA,gBAAgB,OAAO;AAChC,iBAAAJ,+BAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAAA,2BAAAA,IAACK,aAAAA,QACC,EAAA,UAAAL,2BAAAA,IAACM,aAAAA,MAAK,EAAA,UAAU,IACd,UAACN,2BAAA,IAAAO,4BAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkBC,UAAAA;AAGxB,SAAAR,+BAACS,aAAAA,QAAK,WAAWT,2BAAAA,IAACU,MAAAA,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEIZ,2BAAA,KAAAa,qBAAA,EAAA,UAAA;AAAA,IAACX,2BAAAA,IAAAY,aAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChCZ,2BAAA;AAAA,MAACa,aAAA;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;;;;;"}
@@ -3,7 +3,7 @@ import { Flex, Typography, Layout, Main, ContentLayout, HeaderLayout } from "@st
3
3
  import { pxToRem, Link, SettingsPageTitle } from "@strapi/helper-plugin";
4
4
  import { CarretDown, ArrowLeft } from "@strapi/icons";
5
5
  import { useIntl } from "react-intl";
6
- import { P as DragLayer } from "./index-Go7rNONx.mjs";
6
+ import { P as DragLayer } from "./index-5hP8C9h_.mjs";
7
7
  import { D as DRAG_DROP_TYPES } from "./constants-8sAt6dKz.mjs";
8
8
  import styled from "styled-components";
9
9
  const Toggle = styled(Flex)`
@@ -84,4 +84,4 @@ export {
84
84
  Header as H,
85
85
  Root as R
86
86
  };
87
- //# sourceMappingURL=Layout-QMOA8ZMB.mjs.map
87
+ //# sourceMappingURL=Layout-Z16aTYpZ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Layout-QMOA8ZMB.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,SAAS,OAAO,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAO,QAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,8BAAC,YAAW,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAEC,oBAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAAS,gBAAgB,OAAO;AAChC,iBAAA,oBAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAA,oBAAC,QACC,EAAA,UAAA,oBAAC,MAAK,EAAA,UAAU,IACd,UAAC,oBAAA,eAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkB;AAGxB,SAAA,oBAAC,QAAK,WAAW,oBAAC,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"Layout-Z16aTYpZ.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview.tsx","../../ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/components/Layout.tsx"],"sourcesContent":["import { Flex, Typography } from '@strapi/design-system';\nimport { pxToRem } from '@strapi/helper-plugin';\nimport { CarretDown } from '@strapi/icons';\nimport styled from 'styled-components';\n\nconst Toggle = styled(Flex)`\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n`;\n\nexport type StageDragPreviewType = {\n name: string | null;\n};\n\nexport const StageDragPreview = ({ name }: StageDragPreviewType) => {\n return (\n <Flex\n background=\"primary100\"\n borderStyle=\"dashed\"\n borderColor=\"primary600\"\n borderWidth=\"1px\"\n gap={3}\n hasRadius\n padding={3}\n shadow=\"tableShadow\"\n width={pxToRem(300)}\n >\n <Toggle\n alignItems=\"center\"\n background=\"neutral200\"\n borderRadius=\"50%\"\n height={6}\n justifyContent=\"center\"\n width={6}\n >\n <CarretDown width={`${8 / 16}rem`} />\n </Toggle>\n\n <Typography fontWeight=\"bold\">{name}</Typography>\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\n\nimport { ContentLayout, HeaderLayout, Layout, Main } from '@strapi/design-system';\nimport { Link, SettingsPageTitle } from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { DragLayer } from '../../../../../../../../admin/src/components/DragLayer';\nimport { DRAG_DROP_TYPES } from '../constants';\n\nimport { StageDragPreview } from './StageDragPreview';\n\nconst DragLayerRendered = () => {\n return (\n <DragLayer\n renderItem={(item) => {\n if (item.type === DRAG_DROP_TYPES.STAGE) {\n return <StageDragPreview name={typeof item.item === 'string' ? item.item : null} />;\n }\n }}\n />\n );\n};\n\nconst Root: React.FC<PropsWithChildren> = ({ children }) => {\n return (\n <Layout>\n <Main tabIndex={-1}>\n <ContentLayout>{children}</ContentLayout>\n </Main>\n </Layout>\n );\n};\n\ntype BackProps = {\n href: string;\n};\nconst Back: React.FC<BackProps> = ({ href }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Link startIcon={<ArrowLeft />} to={href}>\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n );\n};\n\ntype HeaderProps = {\n title: string;\n navigationAction?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n subtitle?: React.ReactNode;\n};\nconst Header: React.FC<HeaderProps> = ({ title, subtitle, navigationAction, primaryAction }) => {\n return (\n <>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n navigationAction={navigationAction}\n primaryAction={primaryAction}\n title={title}\n subtitle={subtitle}\n />\n </>\n );\n};\n\nexport { Back, DragLayerRendered, Header, Root };\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,SAAS,OAAO,IAAI;AAAA;AAAA,YAEd,CAAC,EAAE,MAAA,MAAY,MAAM,OAAO,UAAU;AAAA;AAAA;AAQ3C,MAAM,mBAAmB,CAAC,EAAE,WAAiC;AAEhE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAW;AAAA,MACX,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL,WAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAO;AAAA,MACP,OAAO,QAAQ,GAAG;AAAA,MAElB,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,YAAW;AAAA,YACX,YAAW;AAAA,YACX,cAAa;AAAA,YACb,QAAQ;AAAA,YACR,gBAAe;AAAA,YACf,OAAO;AAAA,YAEP,8BAAC,YAAW,EAAA,OAAO,GAAG,IAAI,EAAE,OAAO;AAAA,UAAA;AAAA,QACrC;AAAA,QAEC,oBAAA,YAAA,EAAW,YAAW,QAAQ,UAAK,MAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAG1C;AC9BA,MAAM,oBAAoB,MAAM;AAE5B,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,YAAY,CAAC,SAAS;AAChB,YAAA,KAAK,SAAS,gBAAgB,OAAO;AAChC,iBAAA,oBAAC,oBAAiB,MAAM,OAAO,KAAK,SAAS,WAAW,KAAK,OAAO,KAAM,CAAA;AAAA,QACnF;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;AAEA,MAAM,OAAoC,CAAC,EAAE,eAAe;AAExD,SAAA,oBAAC,QACC,EAAA,UAAA,oBAAC,MAAK,EAAA,UAAU,IACd,UAAC,oBAAA,eAAA,EAAe,SAAS,CAAA,EAAA,CAC3B,EACF,CAAA;AAEJ;AAKA,MAAM,OAA4B,CAAC,EAAE,WAAW;AACxC,QAAA,EAAE,kBAAkB;AAGxB,SAAA,oBAAC,QAAK,WAAW,oBAAC,YAAU,CAAA,GAAI,IAAI,MACjC,UAAc,cAAA;AAAA,IACb,IAAI;AAAA,IACJ,gBAAgB;AAAA,EACjB,CAAA,EACH,CAAA;AAEJ;AASA,MAAM,SAAgC,CAAC,EAAE,OAAO,UAAU,kBAAkB,oBAAoB;AAC9F,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,mBAAA,EAAkB,MAAM,MAAO,CAAA;AAAA,IAChC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;"}
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const ListPage = require("./ListPage-WYdwtsqM.js");
5
- const useLicenseLimitNotification = require("./useLicenseLimitNotification-CetQFd8w.js");
4
+ const ListPage = require("./ListPage-psHwJBW1.js");
5
+ const useLicenseLimitNotification = require("./useLicenseLimitNotification-BF8lNWgZ.js");
6
6
  require("react");
7
7
  require("@strapi/design-system");
8
8
  require("@strapi/helper-plugin");
9
9
  require("qs");
10
10
  require("react-intl");
11
11
  require("react-router-dom");
12
- require("./index-Fnq9LxjS.js");
12
+ require("./index-hdB0LcQU.js");
13
13
  require("react-dom/client");
14
14
  require("invariant");
15
15
  require("lodash/isFunction");
@@ -74,9 +74,9 @@ require("lodash/unset");
74
74
  require("lodash/isArray");
75
75
  require("date-fns/parseISO");
76
76
  require("./Filters-Gdnt7qft.js");
77
- require("./SelectRoles-cdkdfqin.js");
78
- require("./useAdminRoles-eeaWQ2Rw.js");
79
- require("./AuthenticatedApp-QDCywiaA.js");
77
+ require("./SelectRoles-8cZLkMEi.js");
78
+ require("./useAdminRoles-MXgNiQEp.js");
79
+ require("./AuthenticatedApp-BhDorlD8.js");
80
80
  require("semver/functions/lt");
81
81
  require("semver/functions/valid");
82
82
  require("lodash/isNil");
@@ -85,4 +85,4 @@ const UserListPageEE = () => {
85
85
  return /* @__PURE__ */ jsxRuntime.jsx(ListPage.ListPageCE, {});
86
86
  };
87
87
  exports.UserListPageEE = UserListPageEE;
88
- //# sourceMappingURL=ListPage-m6p6QnZU.js.map
88
+ //# sourceMappingURL=ListPage-5xEl9tYB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-m6p6QnZU.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":["useLicenseLimitNotification","ListPageCE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,iBAAiB,MAAM;AACNA,8BAAAA;AAE5B,wCAAQC,qBAAW,CAAA,CAAA;AACrB;;"}
1
+ {"version":3,"file":"ListPage-5xEl9tYB.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage.tsx"],"sourcesContent":["import { ListPageCE } from '../../../../../../../admin/src/pages/Settings/pages/Users/ListPage';\nimport { useLicenseLimitNotification } from '../../../../hooks/useLicenseLimitNotification';\n\nexport const UserListPageEE = () => {\n useLicenseLimitNotification();\n\n return <ListPageCE />;\n};\n"],"names":["useLicenseLimitNotification","ListPageCE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,iBAAiB,MAAM;AACNA,8BAAAA;AAE5B,wCAAQC,qBAAW,CAAA,CAAA;AACrB;;"}
@@ -7,9 +7,9 @@ import { AxiosError } from "axios";
7
7
  import produce from "immer";
8
8
  import { useIntl } from "react-intl";
9
9
  import { useHistory } from "react-router-dom";
10
- import { j as useTypedSelector } from "./index-Go7rNONx.mjs";
11
- import { u as useAdminRoles } from "./useAdminRoles-jYK0Lxgt.mjs";
12
- import { s as selectAdminPermissions } from "./AuthenticatedApp-JlSCDE9m.mjs";
10
+ import { j as useTypedSelector } from "./index-5hP8C9h_.mjs";
11
+ import { u as useAdminRoles } from "./useAdminRoles-GLrN6UE1.mjs";
12
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-Bfl9hK_h.mjs";
13
13
  import "react-dom/client";
14
14
  import "invariant";
15
15
  import "lodash/isFunction";
@@ -345,4 +345,4 @@ export {
345
345
  ListPage,
346
346
  ProtectedListPage
347
347
  };
348
- //# sourceMappingURL=ListPage-98s5i8Xi.mjs.map
348
+ //# sourceMappingURL=ListPage-9qAYgALl.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-98s5i8Xi.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, pxToRem, stopPropagation } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'icon' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton\n onClick={icon.onClick}\n label={icon.label}\n borderWidth={0}\n icon={icon.icon}\n />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (error instanceof AxiosError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }\n handleToggleModal();\n };\n\n const handleNewRoleClick = () => push('/settings/roles/new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n icon: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => push(`/settings/roles/${role.id}`),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={handleToggleModal}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-9qAYgALl.mjs","sources":["../../admin/src/pages/Settings/pages/Roles/components/RoleRow.tsx","../../admin/src/pages/Settings/pages/Roles/ListPage.tsx"],"sourcesContent":["import { Box, Flex, IconButton, IconButtonProps, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, pxToRem, stopPropagation } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport type { AdminRole } from '../../../../../hooks/useAdminRoles';\n\ninterface RoleRowProps extends Pick<AdminRole, 'id' | 'name' | 'description' | 'usersCount'> {\n icons: Array<Required<Pick<IconButtonProps, 'icon' | 'label' | 'onClick'>>>;\n rowIndex: number;\n canUpdate?: boolean;\n}\n\nconst RoleRow = ({\n id,\n name,\n description,\n usersCount,\n icons,\n rowIndex,\n canUpdate,\n}: RoleRowProps) => {\n const { formatMessage } = useIntl();\n const [, editObject] = icons;\n\n const usersCountText = formatMessage(\n {\n id: `Roles.RoleRow.user-count`,\n defaultMessage: '{number, plural, =0 {# user} one {# user} other {# users}}',\n },\n { number: usersCount }\n );\n\n return (\n <Tr\n aria-rowindex={rowIndex}\n key={id}\n {...(canUpdate\n ? onRowClick({\n // @ts-expect-error – the prop uses `HTMLButtonElement` but we just specify `HTMLElement`\n fn: editObject.onClick,\n })\n : {})}\n >\n <Td maxWidth={pxToRem(130)}>\n <Typography ellipsis textColor=\"neutral800\">\n {name}\n </Typography>\n </Td>\n <Td maxWidth={pxToRem(250)}>\n <Typography ellipsis textColor=\"neutral800\">\n {description}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{usersCountText}</Typography>\n </Td>\n <Td>\n <Flex justifyContent=\"flex-end\" {...stopPropagation}>\n {icons.map((icon, i) =>\n icon ? (\n <Box key={icon.label} paddingLeft={i === 0 ? 0 : 1}>\n <IconButton\n onClick={icon.onClick}\n label={icon.label}\n borderWidth={0}\n icon={icon.icon}\n />\n </Box>\n ) : null\n )}\n </Flex>\n </Td>\n </Tr>\n );\n};\n\nexport { RoleRow };\nexport type { RoleRowProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Main,\n Table,\n Tbody,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n} from '@strapi/design-system';\nimport {\n ConfirmDialog,\n getFetchClient,\n LoadingIndicatorPage,\n SearchURLQuery,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFocusWhenNavigate,\n useQueryParams,\n useNotification,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';\nimport { AxiosError } from 'axios';\nimport produce from 'immer';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAdminRoles, AdminRole } from '../../../../hooks/useAdminRoles';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { RoleRow, RoleRowProps } from './components/RoleRow';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n useFocusWhenNavigate();\n const permissions = useTypedSelector(selectAdminPermissions);\n const { formatAPIError } = useAPIErrorHandler();\n const toggleNotification = useNotification();\n const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = React.useState(false);\n const [{ query }] = useQueryParams<{ _q?: string }>();\n const {\n isLoading: isLoadingForPermissions,\n allowedActions: { canCreate, canDelete, canRead, canUpdate },\n } = useRBAC(permissions.settings?.roles);\n\n const { roles, refetch: refetchRoles } = useAdminRoles(\n { filters: query?._q ? { name: { $containsi: query._q } } : undefined },\n {\n refetchOnMountOrArgChange: true,\n skip: isLoadingForPermissions || !canRead,\n }\n );\n\n const { push } = useHistory();\n const [{ showModalConfirmButtonLoading, roleToDelete }, dispatch] = React.useReducer(\n reducer,\n initialState\n );\n\n const { post } = getFetchClient();\n\n const handleDeleteData = async () => {\n try {\n dispatch({\n type: 'ON_REMOVE_ROLES',\n });\n\n await post('/admin/roles/batch-delete', {\n ids: [roleToDelete],\n });\n\n await refetchRoles();\n\n dispatch({\n type: 'RESET_DATA_TO_DELETE',\n });\n } catch (error) {\n if (error instanceof AxiosError) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n }\n }\n handleToggleModal();\n };\n\n const handleNewRoleClick = () => push('/settings/roles/new');\n\n const handleToggleModal = () => setIsWarningDeleteAllOpenend((prev) => !prev);\n\n const handleClickDelete = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (role.usersCount) {\n toggleNotification({\n type: 'info',\n message: { id: 'Roles.ListPage.notification.delete-not-allowed' },\n });\n } else {\n dispatch({\n type: 'SET_ROLE_TO_DELETE',\n id: role.id,\n });\n\n handleToggleModal();\n }\n };\n\n const handleClickDuplicate = (role: AdminRole) => (e: React.MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n push(`/settings/roles/duplicate/${role.id}`);\n };\n\n const rowCount = roles.length + 1;\n const colCount = 6;\n\n if (isLoadingForPermissions) {\n return (\n <Main>\n <LoadingIndicatorPage />\n </Main>\n );\n }\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <HeaderLayout\n primaryAction={\n canCreate ? (\n <Button onClick={handleNewRoleClick} startIcon={<Plus />} size=\"S\">\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </Button>\n ) : null\n }\n title={formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.list.description',\n defaultMessage: 'List of roles',\n })}\n as=\"h2\"\n />\n {canRead && (\n <ActionLayout\n startActions={\n <SearchURLQuery\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n {\n target: formatMessage({\n id: 'global.roles',\n defaultMessage: 'roles',\n }),\n }\n )}\n />\n }\n />\n )}\n {canRead && (\n <ContentLayout>\n <Table\n colCount={colCount}\n rowCount={rowCount}\n footer={\n canCreate ? (\n <TFooter onClick={handleNewRoleClick} icon={<Plus />}>\n {formatMessage({\n id: 'Settings.roles.list.button.add',\n defaultMessage: 'Add new role',\n })}\n </TFooter>\n ) : null\n }\n >\n <Thead>\n <Tr aria-rowindex={1}>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'global.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {roles?.map((role, index) => (\n <RoleRow\n key={role.id}\n id={role.id}\n name={role.name}\n description={role.description}\n usersCount={role.usersCount}\n icons={\n [\n canCreate &&\n ({\n onClick: handleClickDuplicate(role),\n label: formatMessage({\n id: 'app.utils.duplicate',\n defaultMessage: 'Duplicate',\n }),\n icon: <Duplicate />,\n } satisfies RoleRowProps['icons'][number]),\n canUpdate &&\n ({\n onClick: () => push(`/settings/roles/${role.id}`),\n label: formatMessage({ id: 'app.utils.edit', defaultMessage: 'Edit' }),\n icon: <Pencil />,\n } satisfies RoleRowProps['icons'][number]),\n canDelete &&\n ({\n onClick: handleClickDelete(role),\n label: formatMessage({ id: 'global.delete', defaultMessage: 'Delete' }),\n icon: <Trash />,\n } satisfies RoleRowProps['icons'][number]),\n ].filter(Boolean) as RoleRowProps['icons']\n }\n rowIndex={index + 2}\n canUpdate={canUpdate}\n />\n ))}\n </Tbody>\n </Table>\n </ContentLayout>\n )}\n <ConfirmDialog\n isOpen={isWarningDeleteAllOpened}\n onConfirm={handleDeleteData}\n isConfirmButtonLoading={showModalConfirmButtonLoading}\n onToggleDialog={handleToggleModal}\n />\n </Main>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Reducer\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * TODO: do we actually need this reducer? It's not doing a lot...\n */\n\ninterface State {\n roleToDelete: null | AdminRole['id'];\n showModalConfirmButtonLoading: boolean;\n shouldRefetchData: boolean;\n}\n\nconst initialState = {\n roleToDelete: null,\n showModalConfirmButtonLoading: false,\n shouldRefetchData: false,\n} satisfies State;\n\ninterface SetRoleToDeleteAction extends Pick<AdminRole, 'id'> {\n type: 'SET_ROLE_TO_DELETE';\n}\n\ninterface ResetDataToDeleteAction {\n type: 'RESET_DATA_TO_DELETE';\n}\n\ninterface OnRemoveRolesAction {\n type: 'ON_REMOVE_ROLES';\n}\n\ninterface OnRemoveRolesSucceededAction {\n type: 'ON_REMOVE_ROLES_SUCCEEDED';\n}\n\ntype Action =\n | SetRoleToDeleteAction\n | ResetDataToDeleteAction\n | OnRemoveRolesAction\n | OnRemoveRolesSucceededAction;\n\nconst reducer = (state: State, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'ON_REMOVE_ROLES': {\n draftState.showModalConfirmButtonLoading = true;\n break;\n }\n case 'ON_REMOVE_ROLES_SUCCEEDED': {\n draftState.shouldRefetchData = true;\n draftState.roleToDelete = null;\n break;\n }\n case 'RESET_DATA_TO_DELETE': {\n draftState.shouldRefetchData = false;\n draftState.roleToDelete = null;\n draftState.showModalConfirmButtonLoading = false;\n break;\n }\n case 'SET_ROLE_TO_DELETE': {\n draftState.roleToDelete = action.id;\n\n break;\n }\n default:\n return draftState;\n }\n });\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings?.roles.main}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ProtectedListPage, ListPage };\n"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
2
  import { ModalLayout, ModalHeader, ModalBody, Flex, Loader, Box, Typography, Grid, JSONInput, Tbody, Tr, Td, IconButton, Combobox, ComboboxOption, Layout, ContentLayout, Main, HeaderLayout, ActionLayout } from "@strapi/design-system";
3
3
  import { useNotification, useAPIErrorHandler, PageSizeURLQuery, PaginationURLQuery, onRowClick, stopPropagation, useQueryParams, CheckPagePermissions, useRBAC, useFocusWhenNavigate, AnErrorOccurred, SettingsPageTitle, DynamicTable } from "@strapi/helper-plugin";
4
4
  import { useIntl } from "react-intl";
5
- import { n as adminApi, k as useAdminUsers, j as useTypedSelector } from "./index-Go7rNONx.mjs";
5
+ import { n as adminApi, k as useAdminUsers, j as useTypedSelector } from "./index-5hP8C9h_.mjs";
6
6
  import { F as Filters } from "./Filters-dLXfVnI0.mjs";
7
7
  import * as React from "react";
8
8
  import { Breadcrumbs, Crumb } from "@strapi/design-system/v2";
@@ -592,4 +592,4 @@ export {
592
592
  ListPage,
593
593
  ProtectedListPage
594
594
  };
595
- //# sourceMappingURL=ListPage-NW6Jib2e.mjs.map
595
+ //# sourceMappingURL=ListPage-IK__4Lpf.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage-NW6Jib2e.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/PaginationFooter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/TableRows.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 ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useNotification, useAPIErrorHandler } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\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: 'warning',\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 <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\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 </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\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\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>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\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 React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\n\nimport { Pagination } from '../../../../../../../../shared/contracts/shared';\n\ntype PaginationFooterProps = {\n pagination: Pagination;\n};\n\nexport const PaginationFooter = (\n { pagination }: PaginationFooterProps = {\n pagination: {\n page: 1,\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n }\n) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n","import React from 'react';\n\nimport { Flex, IconButton, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport { Attribute, Entity } from '@strapi/types';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { ListLayoutRow } from '../../../../../../../../admin/src/content-manager/utils/layouts';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nexport interface TableHeader extends Omit<ListLayoutRow, 'metadatas' | 'fieldSchema' | 'name'> {\n metadatas: Omit<ListLayoutRow['metadatas'], 'label'> & {\n label: string;\n };\n name: keyof AuditLog;\n fieldSchema?: Attribute.Any | { type: 'custom' };\n cellFormatter?: (data?: AuditLog[keyof AuditLog]) => React.ReactNode;\n}\n\ntype TableRowsProps = {\n headers: TableHeader[];\n rows: AuditLog[];\n onOpenModal: (id: Entity.ID) => void;\n};\n\nexport const TableRows = ({ headers, rows, onOpenModal }: TableRowsProps) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n // Not sure that 'value' can be typed properly\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCellValue = ({ type, value, model }: { type: string; value: any; model: unknown }) => {\n if (type === 'date') {\n return formatTimeStamp(value);\n }\n\n if (type === 'action') {\n return formatMessage(\n {\n id: `Settings.permissions.auditLogs.${value}`,\n defaultMessage: getDefaultMessage(value),\n },\n // @ts-expect-error - Model\n { model }\n );\n }\n\n return value || '-';\n };\n\n return (\n <Tbody>\n {rows.map((data) => {\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => onOpenModal(data.id),\n })}\n >\n {headers?.map(({ key, name, cellFormatter }) => {\n const rowValue = data[name];\n\n return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(rowValue) : rowValue,\n model: data.payload?.model,\n })}\n </Typography>\n </Td>\n );\n })}\n <Td {...stopPropagation}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => onOpenModal(data.id)}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${data.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n rows: [],\n};\n\nTableRows.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array,\n onOpenModal: PropTypes.func.isRequired,\n};\n","import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification, useQueryParams } from '@strapi/helper-plugin';\n\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: 'warning', 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: 'warning', 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, ComboboxProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ntype ComboboxFilterProps = {\n value?: string;\n options?: { label: string; customValue: string }[];\n onChange?: ComboboxProps['onChange'];\n};\n\nexport const ComboboxFilter = (\n { value, options, onChange }: ComboboxFilterProps = {\n value: undefined,\n }\n) => {\n const { formatMessage } = useIntl();\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n return (\n <Combobox aria-label={ariaLabel} value={value} onChange={onChange}>\n {options?.map(({ label, customValue }) => {\n return (\n <ComboboxOption key={customValue} value={customValue}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { FilterData } from '@strapi/helper-plugin';\nimport { IntlShape } from 'react-intl';\n\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nconst customOperators = [\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$eq', defaultMessage: 'is' },\n value: '$eq',\n },\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' },\n value: '$ne',\n },\n];\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): FilterData[] => {\n const filters = [\n {\n name: 'action',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n customInput: ComboboxFilter,\n // Default return of Object.keys function is string\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 customValue: action,\n })),\n },\n fieldSchema: { type: 'enumeration' },\n },\n {\n name: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n },\n fieldSchema: { type: 'datetime' },\n },\n ] satisfies FilterData[];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user: SanitizedAdminUser) => {\n if (user.username) {\n return user.username;\n }\n\n if (user.firstname && user.lastname) {\n return formatMessage(\n {\n id: 'Settings.permissions.auditLogs.user.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname: user.firstname,\n lastname: user.lastname,\n }\n );\n }\n\n return user.email;\n };\n\n return [\n ...filters,\n {\n name: 'user',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n options: users.map((user) => ({\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n })),\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n } satisfies FilterData,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n Box,\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n} from '@strapi/design-system';\nimport {\n AnErrorOccurred,\n DynamicTable,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useQueryParams,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { Filters } from '../../../../../../../admin/src/pages/Settings/components/Filters';\nimport { SanitizedAdminUserForAuditLogs } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { PaginationFooter } from './components/PaginationFooter';\nimport { TableHeader, TableRows } from './components/TableRows';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\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?: string | null }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n },\n {\n name: 'date',\n key: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n },\n {\n key: 'user',\n name: 'user',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n },\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: (user) => (user ? (user as SanitizedAdminUserForAuditLogs).displayName : ''),\n },\n ] satisfies TableHeader[];\n\n if (hasError) {\n return (\n <Layout>\n <ContentLayout>\n <Box paddingTop={8}>\n <AnErrorOccurred />\n </Box>\n </ContentLayout>\n </Layout>\n );\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle\n name={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n />\n <HeaderLayout\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 <ActionLayout startActions={<Filters displayedFilters={displayedFilters} />} />\n <ContentLayout>\n <DynamicTable\n contentType=\"Audit logs\"\n headers={headers}\n rows={auditLogs?.results || []}\n withBulkActions\n isLoading={isLoading}\n >\n <TableRows\n headers={headers}\n rows={auditLogs?.results || []}\n onOpenModal={(id) => setQuery({ id: `${id}` })}\n />\n </DynamicTable>\n {auditLogs?.pagination && <PaginationFooter pagination={auditLogs.pagination} />}\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ListPage-IK__4Lpf.mjs","sources":["../../ee/admin/src/services/auditLogs.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.ts","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/PaginationFooter.tsx","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/TableRows.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 ModalBody,\n ModalHeader,\n ModalLayout,\n Typography,\n} from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useNotification, useAPIErrorHandler } from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\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: 'warning',\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 <ModalLayout onClose={handleClose} labelledBy=\"title\">\n <ModalHeader>\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 </ModalHeader>\n <ModalBody>\n <ActionBody isLoading={isLoading} data={data as AuditLog} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\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\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>\n <JSONInput\n value={JSON.stringify(payload, null, 2)}\n disabled\n label={formatMessage({\n id: 'Settings.permissions.auditLogs.payload',\n defaultMessage: 'Payload',\n })}\n />\n </>\n );\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 React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\n\nimport { Pagination } from '../../../../../../../../shared/contracts/shared';\n\ntype PaginationFooterProps = {\n pagination: Pagination;\n};\n\nexport const PaginationFooter = (\n { pagination }: PaginationFooterProps = {\n pagination: {\n page: 1,\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n }\n) => {\n return (\n <Box paddingTop={4}>\n <Flex alignItems=\"flex-end\" justifyContent=\"space-between\">\n <PageSizeURLQuery />\n <PaginationURLQuery pagination={pagination} />\n </Flex>\n </Box>\n );\n};\n","import React from 'react';\n\nimport { Flex, IconButton, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { onRowClick, stopPropagation } from '@strapi/helper-plugin';\nimport { Eye } from '@strapi/icons';\nimport { Attribute, Entity } from '@strapi/types';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { ListLayoutRow } from '../../../../../../../../admin/src/content-manager/utils/layouts';\nimport { AuditLog } from '../../../../../../../../shared/contracts/audit-logs';\nimport { useFormatTimeStamp } from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nexport interface TableHeader extends Omit<ListLayoutRow, 'metadatas' | 'fieldSchema' | 'name'> {\n metadatas: Omit<ListLayoutRow['metadatas'], 'label'> & {\n label: string;\n };\n name: keyof AuditLog;\n fieldSchema?: Attribute.Any | { type: 'custom' };\n cellFormatter?: (data?: AuditLog[keyof AuditLog]) => React.ReactNode;\n}\n\ntype TableRowsProps = {\n headers: TableHeader[];\n rows: AuditLog[];\n onOpenModal: (id: Entity.ID) => void;\n};\n\nexport const TableRows = ({ headers, rows, onOpenModal }: TableRowsProps) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n // Not sure that 'value' can be typed properly\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCellValue = ({ type, value, model }: { type: string; value: any; model: unknown }) => {\n if (type === 'date') {\n return formatTimeStamp(value);\n }\n\n if (type === 'action') {\n return formatMessage(\n {\n id: `Settings.permissions.auditLogs.${value}`,\n defaultMessage: getDefaultMessage(value),\n },\n // @ts-expect-error - Model\n { model }\n );\n }\n\n return value || '-';\n };\n\n return (\n <Tbody>\n {rows.map((data) => {\n return (\n <Tr\n key={data.id}\n {...onRowClick({\n fn: () => onOpenModal(data.id),\n })}\n >\n {headers?.map(({ key, name, cellFormatter }) => {\n const rowValue = data[name];\n\n return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(rowValue) : rowValue,\n model: data.payload?.model,\n })}\n </Typography>\n </Td>\n );\n })}\n <Td {...stopPropagation}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => onOpenModal(data.id)}\n aria-label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${data.action} action` }\n )}\n noBorder\n icon={<Eye />}\n />\n </Flex>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n );\n};\n\nTableRows.defaultProps = {\n rows: [],\n};\n\nTableRows.propTypes = {\n headers: PropTypes.array.isRequired,\n rows: PropTypes.array,\n onOpenModal: PropTypes.func.isRequired,\n};\n","import * as React from 'react';\n\nimport { useAPIErrorHandler, useNotification, useQueryParams } from '@strapi/helper-plugin';\n\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: 'warning', 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: 'warning', 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, ComboboxProps } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ntype ComboboxFilterProps = {\n value?: string;\n options?: { label: string; customValue: string }[];\n onChange?: ComboboxProps['onChange'];\n};\n\nexport const ComboboxFilter = (\n { value, options, onChange }: ComboboxFilterProps = {\n value: undefined,\n }\n) => {\n const { formatMessage } = useIntl();\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n return (\n <Combobox aria-label={ariaLabel} value={value} onChange={onChange}>\n {options?.map(({ label, customValue }) => {\n return (\n <ComboboxOption key={customValue} value={customValue}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n","import { FilterData } from '@strapi/helper-plugin';\nimport { IntlShape } from 'react-intl';\n\nimport { SanitizedAdminUser } from '../../../../../../../../shared/contracts/shared';\nimport { ComboboxFilter } from '../components/ComboboxFilter';\n\nimport { actionTypes, getDefaultMessage } from './getActionTypesDefaultMessages';\n\nconst customOperators = [\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$eq', defaultMessage: 'is' },\n value: '$eq',\n },\n {\n intlLabel: { id: 'components.FilterOptions.FILTER_TYPES.$ne', defaultMessage: 'is not' },\n value: '$ne',\n },\n];\n\nexport const getDisplayedFilters = ({\n formatMessage,\n users,\n canReadUsers,\n}: {\n formatMessage: IntlShape['formatMessage'];\n users: SanitizedAdminUser[];\n canReadUsers: boolean;\n}): FilterData[] => {\n const filters = [\n {\n name: 'action',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n customInput: ComboboxFilter,\n // Default return of Object.keys function is string\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 customValue: action,\n })),\n },\n fieldSchema: { type: 'enumeration' },\n },\n {\n name: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n },\n fieldSchema: { type: 'datetime' },\n },\n ] satisfies FilterData[];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user: SanitizedAdminUser) => {\n if (user.username) {\n return user.username;\n }\n\n if (user.firstname && user.lastname) {\n return formatMessage(\n {\n id: 'Settings.permissions.auditLogs.user.fullname',\n defaultMessage: '{firstname} {lastname}',\n },\n {\n firstname: user.firstname,\n lastname: user.lastname,\n }\n );\n }\n\n return user.email;\n };\n\n return [\n ...filters,\n {\n name: 'user',\n metadatas: {\n customOperators,\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n options: users.map((user) => ({\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n })),\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n } satisfies FilterData,\n ];\n }\n\n return filters;\n};\n","import {\n ActionLayout,\n Box,\n ContentLayout,\n HeaderLayout,\n Layout,\n Main,\n} from '@strapi/design-system';\nimport {\n AnErrorOccurred,\n DynamicTable,\n SettingsPageTitle,\n useFocusWhenNavigate,\n useQueryParams,\n useRBAC,\n CheckPagePermissions,\n} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\n\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { Filters } from '../../../../../../../admin/src/pages/Settings/components/Filters';\nimport { SanitizedAdminUserForAuditLogs } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { PaginationFooter } from './components/PaginationFooter';\nimport { TableHeader, TableRows } from './components/TableRows';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\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?: string | null }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n },\n {\n name: 'date',\n key: 'date',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n },\n {\n key: 'user',\n name: 'user',\n metadatas: {\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n },\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: (user) => (user ? (user as SanitizedAdminUserForAuditLogs).displayName : ''),\n },\n ] satisfies TableHeader[];\n\n if (hasError) {\n return (\n <Layout>\n <ContentLayout>\n <Box paddingTop={8}>\n <AnErrorOccurred />\n </Box>\n </ContentLayout>\n </Layout>\n );\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle\n name={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n />\n <HeaderLayout\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 <ActionLayout startActions={<Filters displayedFilters={displayedFilters} />} />\n <ContentLayout>\n <DynamicTable\n contentType=\"Audit logs\"\n headers={headers}\n rows={auditLogs?.results || []}\n withBulkActions\n isLoading={isLoading}\n >\n <TableRows\n headers={headers}\n rows={auditLogs?.results || []}\n onOpenModal={(id) => setQuery({ id: `${id}` })}\n />\n </DynamicTable>\n {auditLogs?.pagination && <PaginationFooter pagination={auditLogs.pagination} />}\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <CheckPagePermissions permissions={permissions}>\n <ListPage />\n </CheckPagePermissions>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const designSystem = require("@strapi/design-system");
5
5
  const helperPlugin = require("@strapi/helper-plugin");
6
6
  const reactIntl = require("react-intl");
7
- const index = require("./index-Fnq9LxjS.js");
7
+ const index = require("./index-hdB0LcQU.js");
8
8
  const Filters = require("./Filters-Gdnt7qft.js");
9
9
  const React = require("react");
10
10
  const v2 = require("@strapi/design-system/v2");
@@ -614,4 +614,4 @@ const ProtectedListPage = () => {
614
614
  };
615
615
  exports.ListPage = ListPage;
616
616
  exports.ProtectedListPage = ProtectedListPage;
617
- //# sourceMappingURL=ListPage-_lgSe68W.js.map
617
+ //# sourceMappingURL=ListPage-PpuyFTj7.js.map