@strapi/admin 4.15.3-alpha.2 → 4.15.3-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/_chunks/{AuthenticatedApp-4045caae.js → AuthenticatedApp-732676f8.js} +21 -21
  2. package/dist/_chunks/{AuthenticatedApp-4045caae.js.map → AuthenticatedApp-732676f8.js.map} +1 -1
  3. package/dist/_chunks/{AuthenticatedApp-f24f321f.mjs → AuthenticatedApp-f7cd7740.mjs} +21 -21
  4. package/dist/_chunks/{AuthenticatedApp-f24f321f.mjs.map → AuthenticatedApp-f7cd7740.mjs.map} +1 -1
  5. package/dist/_chunks/{HomePage-04ec4032.mjs → HomePage-08496460.mjs} +4 -4
  6. package/dist/_chunks/{HomePage-04ec4032.mjs.map → HomePage-08496460.mjs.map} +1 -1
  7. package/dist/_chunks/{HomePage-33cab09d.js → HomePage-3db125c5.js} +4 -4
  8. package/dist/_chunks/{HomePage-33cab09d.js.map → HomePage-3db125c5.js.map} +1 -1
  9. package/dist/_chunks/{HomePage-b1c06062.js → HomePage-6334e63e.js} +4 -4
  10. package/dist/_chunks/{HomePage-b1c06062.js.map → HomePage-6334e63e.js.map} +1 -1
  11. package/dist/_chunks/{HomePage-b823c307.mjs → HomePage-ef2007da.mjs} +4 -4
  12. package/dist/_chunks/{HomePage-b823c307.mjs.map → HomePage-ef2007da.mjs.map} +1 -1
  13. package/dist/_chunks/{InstalledPluginsPage-fa047d30.mjs → InstalledPluginsPage-34c3ff11.mjs} +3 -3
  14. package/dist/_chunks/{InstalledPluginsPage-fa047d30.mjs.map → InstalledPluginsPage-34c3ff11.mjs.map} +1 -1
  15. package/dist/_chunks/{InstalledPluginsPage-9c637cc4.js → InstalledPluginsPage-4b69808f.js} +3 -3
  16. package/dist/_chunks/{InstalledPluginsPage-9c637cc4.js.map → InstalledPluginsPage-4b69808f.js.map} +1 -1
  17. package/dist/_chunks/{Login-2b9cf5b5.mjs → Login-26fb3f61.mjs} +2 -2
  18. package/dist/_chunks/{Login-2b9cf5b5.mjs.map → Login-26fb3f61.mjs.map} +1 -1
  19. package/dist/_chunks/{Login-b5fa7d29.js → Login-e1d9c1b6.js} +2 -2
  20. package/dist/_chunks/{Login-b5fa7d29.js.map → Login-e1d9c1b6.js.map} +1 -1
  21. package/dist/_chunks/{MarketplacePage-8fa435bb.js → MarketplacePage-623d8f49.js} +3 -3
  22. package/dist/_chunks/{MarketplacePage-8fa435bb.js.map → MarketplacePage-623d8f49.js.map} +1 -1
  23. package/dist/_chunks/{MarketplacePage-b369a20a.mjs → MarketplacePage-d9f38686.mjs} +3 -3
  24. package/dist/_chunks/{MarketplacePage-b369a20a.mjs.map → MarketplacePage-d9f38686.mjs.map} +1 -1
  25. package/dist/_chunks/{ProfilePage-b34e12b8.js → ProfilePage-c881cd02.js} +3 -3
  26. package/dist/_chunks/{ProfilePage-b34e12b8.js.map → ProfilePage-c881cd02.js.map} +1 -1
  27. package/dist/_chunks/{ProfilePage-8001a7f1.mjs → ProfilePage-e767dbed.mjs} +3 -3
  28. package/dist/_chunks/{ProfilePage-8001a7f1.mjs.map → ProfilePage-e767dbed.mjs.map} +1 -1
  29. package/dist/_chunks/{constants-c8a5b818.mjs → constants-0f990cf9.mjs} +2 -2
  30. package/dist/_chunks/{constants-c8a5b818.mjs.map → constants-0f990cf9.mjs.map} +1 -1
  31. package/dist/_chunks/{constants-31704c5f.mjs → constants-4a139a28.mjs} +5 -5
  32. package/dist/_chunks/{constants-31704c5f.mjs.map → constants-4a139a28.mjs.map} +1 -1
  33. package/dist/_chunks/{constants-fd27075d.mjs → constants-52a46e11.mjs} +6 -6
  34. package/dist/_chunks/{constants-fd27075d.mjs.map → constants-52a46e11.mjs.map} +1 -1
  35. package/dist/_chunks/{constants-8df3b52e.js → constants-7acf8ebd.js} +2 -2
  36. package/dist/_chunks/{constants-8df3b52e.js.map → constants-7acf8ebd.js.map} +1 -1
  37. package/dist/_chunks/{constants-fcdceeaa.js → constants-8a54f247.js} +3 -3
  38. package/dist/_chunks/{constants-fcdceeaa.js.map → constants-8a54f247.js.map} +1 -1
  39. package/dist/_chunks/{constants-8cd1cfee.mjs → constants-99c11ca4.mjs} +3 -3
  40. package/dist/_chunks/{constants-8cd1cfee.mjs.map → constants-99c11ca4.mjs.map} +1 -1
  41. package/dist/_chunks/{constants-b4d73802.js → constants-bdeb8843.js} +5 -5
  42. package/dist/_chunks/{constants-b4d73802.js.map → constants-bdeb8843.js.map} +1 -1
  43. package/dist/_chunks/{constants-c051e0d5.js → constants-ee9ffdba.js} +6 -6
  44. package/dist/_chunks/{constants-c051e0d5.js.map → constants-ee9ffdba.js.map} +1 -1
  45. package/dist/_chunks/{index-5b38e224.mjs → index-03436d85.mjs} +3 -3
  46. package/dist/_chunks/{index-5b38e224.mjs.map → index-03436d85.mjs.map} +1 -1
  47. package/dist/_chunks/{index-feefb2d2.mjs → index-0cb3175e.mjs} +3 -3
  48. package/dist/_chunks/{index-feefb2d2.mjs.map → index-0cb3175e.mjs.map} +1 -1
  49. package/dist/_chunks/{index-3ba088fb.js → index-0de12f9b.js} +3 -3
  50. package/dist/_chunks/{index-3ba088fb.js.map → index-0de12f9b.js.map} +1 -1
  51. package/dist/_chunks/{index-b781106d.mjs → index-1129aa87.mjs} +5 -5
  52. package/dist/_chunks/{index-b781106d.mjs.map → index-1129aa87.mjs.map} +1 -1
  53. package/dist/_chunks/{index-9df9ea46.js → index-113a04f3.js} +3 -3
  54. package/dist/_chunks/{index-9df9ea46.js.map → index-113a04f3.js.map} +1 -1
  55. package/dist/_chunks/{index-4c2ebc25.mjs → index-146e9340.mjs} +3 -3
  56. package/dist/_chunks/{index-4c2ebc25.mjs.map → index-146e9340.mjs.map} +1 -1
  57. package/dist/_chunks/{index-701729ff.js → index-1af72b45.js} +4 -4
  58. package/dist/_chunks/{index-701729ff.js.map → index-1af72b45.js.map} +1 -1
  59. package/dist/_chunks/{index-c0e40c84.mjs → index-1e111031.mjs} +5 -5
  60. package/dist/_chunks/{index-c0e40c84.mjs.map → index-1e111031.mjs.map} +1 -1
  61. package/dist/_chunks/{index-70fff1ea.js → index-20c61a20.js} +3 -3
  62. package/dist/_chunks/{index-70fff1ea.js.map → index-20c61a20.js.map} +1 -1
  63. package/dist/_chunks/{index-85709d8c.js → index-2997932a.js} +4 -4
  64. package/dist/_chunks/{index-85709d8c.js.map → index-2997932a.js.map} +1 -1
  65. package/dist/_chunks/{index-ca37bfb3.mjs → index-35a92909.mjs} +5 -5
  66. package/dist/_chunks/{index-ca37bfb3.mjs.map → index-35a92909.mjs.map} +1 -1
  67. package/dist/_chunks/{index-e678495b.js → index-37826ae0.js} +4 -4
  68. package/dist/_chunks/{index-e678495b.js.map → index-37826ae0.js.map} +1 -1
  69. package/dist/_chunks/{index-9841c472.mjs → index-42478bbd.mjs} +3 -3
  70. package/dist/_chunks/{index-9841c472.mjs.map → index-42478bbd.mjs.map} +1 -1
  71. package/dist/_chunks/{index-84367690.mjs → index-43453997.mjs} +3 -3
  72. package/dist/_chunks/{index-84367690.mjs.map → index-43453997.mjs.map} +1 -1
  73. package/dist/_chunks/{index-8327720a.mjs → index-4ffd374a.mjs} +5 -5
  74. package/dist/_chunks/{index-8327720a.mjs.map → index-4ffd374a.mjs.map} +1 -1
  75. package/dist/_chunks/{index-1d771689.mjs → index-57f5316c.mjs} +3 -3
  76. package/dist/_chunks/{index-1d771689.mjs.map → index-57f5316c.mjs.map} +1 -1
  77. package/dist/_chunks/{index-3f08a869.js → index-58bcca54.js} +3 -3
  78. package/dist/_chunks/{index-3f08a869.js.map → index-58bcca54.js.map} +1 -1
  79. package/dist/_chunks/{index-ea3d5e1d.mjs → index-5a079422.mjs} +3 -3
  80. package/dist/_chunks/{index-ea3d5e1d.mjs.map → index-5a079422.mjs.map} +1 -1
  81. package/dist/_chunks/{index-fe8836c5.mjs → index-5a890d37.mjs} +4 -4
  82. package/dist/_chunks/{index-fe8836c5.mjs.map → index-5a890d37.mjs.map} +1 -1
  83. package/dist/_chunks/{index-10472775.js → index-5aabaf9f.js} +3 -3
  84. package/dist/_chunks/{index-10472775.js.map → index-5aabaf9f.js.map} +1 -1
  85. package/dist/_chunks/{index-fbf4f310.js → index-6492abdf.js} +8 -8
  86. package/dist/_chunks/{index-fbf4f310.js.map → index-6492abdf.js.map} +1 -1
  87. package/dist/_chunks/{index-b13d90e7.js → index-69fbff89.js} +3 -3
  88. package/dist/_chunks/{index-b13d90e7.js.map → index-69fbff89.js.map} +1 -1
  89. package/dist/_chunks/{index-51abf431.js → index-7595978f.js} +3 -3
  90. package/dist/_chunks/{index-51abf431.js.map → index-7595978f.js.map} +1 -1
  91. package/dist/_chunks/{index-b101325c.js → index-79bdcf33.js} +5 -5
  92. package/dist/_chunks/{index-b101325c.js.map → index-79bdcf33.js.map} +1 -1
  93. package/dist/_chunks/{index-f2291a58.js → index-7a231fae.js} +6 -6
  94. package/dist/_chunks/{index-f2291a58.js.map → index-7a231fae.js.map} +1 -1
  95. package/dist/_chunks/{index-cb4cbdeb.js → index-7fad37a1.js} +2 -2
  96. package/dist/_chunks/{index-cb4cbdeb.js.map → index-7fad37a1.js.map} +1 -1
  97. package/dist/_chunks/{index-231d316d.js → index-8110943c.js} +20 -20
  98. package/dist/_chunks/{index-231d316d.js.map → index-8110943c.js.map} +1 -1
  99. package/dist/_chunks/{index-7ecebfb0.mjs → index-837c6050.mjs} +3 -3
  100. package/dist/_chunks/{index-7ecebfb0.mjs.map → index-837c6050.mjs.map} +1 -1
  101. package/dist/_chunks/{index-f8753ba6.mjs → index-86010319.mjs} +8 -8
  102. package/dist/_chunks/{index-f8753ba6.mjs.map → index-86010319.mjs.map} +1 -1
  103. package/dist/_chunks/{index-d1c2c8c4.mjs → index-8c1b6735.mjs} +3 -3
  104. package/dist/_chunks/{index-d1c2c8c4.mjs.map → index-8c1b6735.mjs.map} +1 -1
  105. package/dist/_chunks/{index-6fd665d2.js → index-8f3e09e1.js} +3 -3
  106. package/dist/_chunks/{index-6fd665d2.js.map → index-8f3e09e1.js.map} +1 -1
  107. package/dist/_chunks/{index-9805fcc7.js → index-944a4552.js} +5 -5
  108. package/dist/_chunks/{index-9805fcc7.js.map → index-944a4552.js.map} +1 -1
  109. package/dist/_chunks/{index-ae8d84d3.js → index-97507bd1.js} +3 -3
  110. package/dist/_chunks/{index-ae8d84d3.js.map → index-97507bd1.js.map} +1 -1
  111. package/dist/_chunks/{index-7368090c.mjs → index-9ce19c23.mjs} +4 -4
  112. package/dist/_chunks/{index-7368090c.mjs.map → index-9ce19c23.mjs.map} +1 -1
  113. package/dist/_chunks/{index-b3197a23.mjs → index-a0e45da0.mjs} +4 -4
  114. package/dist/_chunks/{index-b3197a23.mjs.map → index-a0e45da0.mjs.map} +1 -1
  115. package/dist/_chunks/{index-6aa0150d.mjs → index-a3f12c0d.mjs} +4 -4
  116. package/dist/_chunks/{index-6aa0150d.mjs.map → index-a3f12c0d.mjs.map} +1 -1
  117. package/dist/_chunks/{index-b218e597.mjs → index-a534679d.mjs} +6 -6
  118. package/dist/_chunks/{index-b218e597.mjs.map → index-a534679d.mjs.map} +1 -1
  119. package/dist/_chunks/{index-b65f2a5e.mjs → index-aad3ffae.mjs} +5 -5
  120. package/dist/_chunks/{index-b65f2a5e.mjs.map → index-aad3ffae.mjs.map} +1 -1
  121. package/dist/_chunks/{index-8609157c.js → index-ab75b097.js} +5 -5
  122. package/dist/_chunks/{index-8609157c.js.map → index-ab75b097.js.map} +1 -1
  123. package/dist/_chunks/{index-3837b503.mjs → index-b026c6c1.mjs} +2 -2
  124. package/dist/_chunks/{index-3837b503.mjs.map → index-b026c6c1.mjs.map} +1 -1
  125. package/dist/_chunks/{index-5215d60d.js → index-b0a2c097.js} +3 -3
  126. package/dist/_chunks/{index-5215d60d.js.map → index-b0a2c097.js.map} +1 -1
  127. package/dist/_chunks/{index-e2f7197e.mjs → index-b2613666.mjs} +20 -20
  128. package/dist/_chunks/{index-e2f7197e.mjs.map → index-b2613666.mjs.map} +1 -1
  129. package/dist/_chunks/{index-73f3b79b.mjs → index-b2c380fe.mjs} +2 -2
  130. package/dist/_chunks/{index-73f3b79b.mjs.map → index-b2c380fe.mjs.map} +1 -1
  131. package/dist/_chunks/{index-3eae1349.js → index-c10f36b7.js} +4 -4
  132. package/dist/_chunks/{index-3eae1349.js.map → index-c10f36b7.js.map} +1 -1
  133. package/dist/_chunks/{index-e9875b61.js → index-c195d4f7.js} +4 -4
  134. package/dist/_chunks/{index-e9875b61.js.map → index-c195d4f7.js.map} +1 -1
  135. package/dist/_chunks/{index-6ea05c8f.mjs → index-c3d9d030.mjs} +4 -4
  136. package/dist/_chunks/{index-6ea05c8f.mjs.map → index-c3d9d030.mjs.map} +1 -1
  137. package/dist/_chunks/{index-ffd394eb.js → index-ca690343.js} +4 -4
  138. package/dist/_chunks/{index-ffd394eb.js.map → index-ca690343.js.map} +1 -1
  139. package/dist/_chunks/{index-fffa8f97.js → index-cb752a75.js} +2 -2
  140. package/dist/_chunks/{index-fffa8f97.js.map → index-cb752a75.js.map} +1 -1
  141. package/dist/_chunks/{index-da70193f.js → index-ce6b3c99.js} +2 -2
  142. package/dist/_chunks/{index-da70193f.js.map → index-ce6b3c99.js.map} +1 -1
  143. package/dist/_chunks/{index-f32d3d61.mjs → index-d57e2c0d.mjs} +4 -4
  144. package/dist/_chunks/{index-f32d3d61.mjs.map → index-d57e2c0d.mjs.map} +1 -1
  145. package/dist/_chunks/{index-53830803.js → index-daa03795.js} +5 -5
  146. package/dist/_chunks/{index-53830803.js.map → index-daa03795.js.map} +1 -1
  147. package/dist/_chunks/{index-a09c5d95.mjs → index-dc565615.mjs} +4 -4
  148. package/dist/_chunks/{index-a09c5d95.mjs.map → index-dc565615.mjs.map} +1 -1
  149. package/dist/_chunks/{index-f5ca7d46.mjs → index-e16877ab.mjs} +3 -3
  150. package/dist/_chunks/{index-f5ca7d46.mjs.map → index-e16877ab.mjs.map} +1 -1
  151. package/dist/_chunks/{index-68f7d4f8.js → index-e29e4569.js} +4 -4
  152. package/dist/_chunks/{index-68f7d4f8.js.map → index-e29e4569.js.map} +1 -1
  153. package/dist/_chunks/{index-471ce13f.js → index-e4fb2fc4.js} +5 -5
  154. package/dist/_chunks/{index-471ce13f.js.map → index-e4fb2fc4.js.map} +1 -1
  155. package/dist/_chunks/{index-7fbdc60f.js → index-e51db7bc.js} +3 -3
  156. package/dist/_chunks/{index-7fbdc60f.js.map → index-e51db7bc.js.map} +1 -1
  157. package/dist/_chunks/{index-27ce57a1.js → index-e8a9d281.js} +3 -3
  158. package/dist/_chunks/{index-27ce57a1.js.map → index-e8a9d281.js.map} +1 -1
  159. package/dist/_chunks/{index-fe6abbd8.mjs → index-f0dade4f.mjs} +5 -5
  160. package/dist/_chunks/{index-fe6abbd8.mjs.map → index-f0dade4f.mjs.map} +1 -1
  161. package/dist/_chunks/{index-6cde3416.mjs → index-f39f6a6b.mjs} +3 -3
  162. package/dist/_chunks/{index-6cde3416.mjs.map → index-f39f6a6b.mjs.map} +1 -1
  163. package/dist/_chunks/{index-3c715269.mjs → index-f803150c.mjs} +3 -3
  164. package/dist/_chunks/{index-3c715269.mjs.map → index-f803150c.mjs.map} +1 -1
  165. package/dist/_chunks/{index-711f7298.mjs → index-fa1bb3bb.mjs} +2 -2
  166. package/dist/_chunks/{index-711f7298.mjs.map → index-fa1bb3bb.mjs.map} +1 -1
  167. package/dist/_chunks/{index-865b6d8c.mjs → index-faca9325.mjs} +3 -3
  168. package/dist/_chunks/{index-865b6d8c.mjs.map → index-faca9325.mjs.map} +1 -1
  169. package/dist/_chunks/{index-587ac367.js → index-fce43a6e.js} +3 -3
  170. package/dist/_chunks/{index-587ac367.js.map → index-fce43a6e.js.map} +1 -1
  171. package/dist/_chunks/{index-b5087350.js → index-fff2189d.js} +5 -5
  172. package/dist/_chunks/{index-b5087350.js.map → index-fff2189d.js.map} +1 -1
  173. package/dist/_chunks/{schema-b5882935.js → schema-08e285a2.js} +2 -2
  174. package/dist/_chunks/{schema-b5882935.js.map → schema-08e285a2.js.map} +1 -1
  175. package/dist/_chunks/{schema-65dcecf7.mjs → schema-efffd6be.mjs} +2 -2
  176. package/dist/_chunks/{schema-65dcecf7.mjs.map → schema-efffd6be.mjs.map} +1 -1
  177. package/dist/_chunks/{validateWorkflow-da8d22a8.js → validateWorkflow-389d151e.js} +3 -3
  178. package/dist/_chunks/{validateWorkflow-da8d22a8.js.map → validateWorkflow-389d151e.js.map} +1 -1
  179. package/dist/_chunks/{validateWorkflow-1ace6175.mjs → validateWorkflow-c6f1d9b2.mjs} +3 -3
  180. package/dist/_chunks/{validateWorkflow-1ace6175.mjs.map → validateWorkflow-c6f1d9b2.mjs.map} +1 -1
  181. package/dist/admin/index.js +1 -1
  182. package/dist/admin/index.mjs +1 -1
  183. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"index-1d771689.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useFormatTimeStamp.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ProtectedListPage/index.js"],"sourcesContent":["import { useFetchClient, useNotification, useQueryParams } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\n\nconst useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {\n const { get } = useFetchClient();\n const { search } = useLocation();\n const toggleNotification = useNotification();\n const [{ query }] = useQueryParams();\n\n const queryOptions = {\n keepPreviousData: true,\n retry: false,\n staleTime: 1000 * 20, // 20 seconds\n onError: (error) => toggleNotification({ type: 'warning', message: error.message }),\n };\n\n const {\n users,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n ...queryOptions,\n enabled: canReadUsers,\n staleTime: 2 * (1000 * 60), // 2 minutes\n }\n );\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n } = useQuery(\n ['auditLogs', search],\n async () => {\n const { data } = await get(`/admin/audit-logs`, {\n params: query,\n });\n\n return data;\n },\n {\n ...queryOptions,\n enabled: canReadAuditLogs,\n }\n );\n\n return {\n auditLogs,\n users,\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n\nexport default useAuditLogsData;\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nconst useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value) => {\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\nexport default useFormatTimeStamp;\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) => {\n return actionTypes[value] || value;\n};\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nconst ActionItem = ({ actionLabel, actionName }) => {\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\nActionItem.propTypes = {\n actionLabel: PropTypes.string.isRequired,\n actionName: PropTypes.string.isRequired,\n};\n\nexport default ActionItem;\n","import React from 'react';\n\nimport { Box, Flex, Grid, JSONInput, Loader, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nimport ActionItem from './ActionItem';\n\nconst ActionBody = ({ status, data, formattedDate }) => {\n const { formatMessage } = useIntl();\n\n if (status === 'loading') {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\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),\n },\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\nActionBody.defaultProps = {\n data: {},\n};\n\nActionBody.propTypes = {\n status: PropTypes.oneOf(['idle', 'loading', 'error', 'success']).isRequired,\n data: PropTypes.shape({\n action: PropTypes.string,\n date: PropTypes.string,\n payload: PropTypes.object,\n user: PropTypes.object,\n }),\n formattedDate: PropTypes.string.isRequired,\n};\n\nexport default ActionBody;\n","import React from 'react';\n\nimport { ModalBody, ModalHeader, ModalLayout } from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useFetchClient, useNotification } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-query';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\n\nimport ActionBody from './ActionBody';\n\nconst Modal = ({ handleClose, logId }) => {\n const { get } = useFetchClient();\n const toggleNotification = useNotification();\n\n const fetchAuditLog = async (id) => {\n const { data } = await get(`/admin/audit-logs/${id}`);\n\n if (!data) {\n throw new Error('Audit log not found');\n }\n\n return data;\n };\n\n const { data, status } = useQuery(['audit-log', logId], () => fetchAuditLog(logId), {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n handleClose();\n },\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = 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 status={status} data={data} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\nModal.propTypes = {\n handleClose: PropTypes.func.isRequired,\n logId: PropTypes.string.isRequired,\n};\n\nexport default Modal;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\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\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\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 PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nconst TableRows = ({ headers, rows, onOpenModal }) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n const getCellValue = ({ type, value, model }) => {\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 { 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 return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(data[name]) : data[name],\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\nexport default TableRows;\n","import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst ComboboxFilter = ({ value, options, onChange }) => {\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\nComboboxFilter.defaultProps = {\n value: null,\n};\n\nComboboxFilter.propTypes = {\n value: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n customValue: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ComboboxFilter;\n","import ComboboxFilter from '../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\nconst getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {\n const actionOptions = Object.keys(actionTypes).map((action) => {\n return {\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\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 options: actionOptions,\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 ];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user) => {\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 const userOptions = users.map((user) => {\n return {\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n };\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: userOptions,\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n },\n ];\n }\n\n return filters;\n};\n\nexport default getDisplayedFilters;\n","const tableHeaders = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: {\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: {\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: {\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n },\n sortable: false,\n },\n cellFormatter: (user) => (user ? user.displayName : ''),\n },\n];\n\nexport default tableHeaders;\n","import React from 'react';\n\nimport {\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} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport Filters from '../../../../../../../../admin/src/pages/SettingsPage/components/Filters';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\n\nimport useAuditLogsData from './hooks/useAuditLogsData';\nimport Modal from './Modal';\nimport PaginationFooter from './PaginationFooter';\nimport TableRows from './TableRows';\nimport getDisplayedFilters from './utils/getDisplayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n } = useRBAC({\n ...permissions.settings.auditLogs,\n readUsers: permissions.settings.users.read,\n });\n\n const [{ query }, setQuery] = useQueryParams();\n const { auditLogs, users, isLoading, hasError } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const title = formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\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 return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n title={title}\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 canRead={canReadAuditLogs}>\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 })}\n />\n </DynamicTable>\n <PaginationFooter pagination={auditLogs?.pagination} />\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nexport default ListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport ListView from '../ListView';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.auditLogs.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["data"],"mappings":"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"}
1
+ {"version":3,"file":"index-57f5316c.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useFormatTimeStamp.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getActionTypesDefaultMessages.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionItem.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/ActionBody.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/Modal/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/PaginationFooter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/TableRows/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/ComboboxFilter/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/utils/tableHeaders.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListView/index.js","../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ProtectedListPage/index.js"],"sourcesContent":["import { useFetchClient, useNotification, useQueryParams } from '@strapi/helper-plugin';\nimport { useQuery } from 'react-query';\nimport { useLocation } from 'react-router-dom';\n\nimport { useAdminUsers } from '../../../../../../../../../admin/src/hooks/useAdminUsers';\n\nconst useAuditLogsData = ({ canReadAuditLogs, canReadUsers }) => {\n const { get } = useFetchClient();\n const { search } = useLocation();\n const toggleNotification = useNotification();\n const [{ query }] = useQueryParams();\n\n const queryOptions = {\n keepPreviousData: true,\n retry: false,\n staleTime: 1000 * 20, // 20 seconds\n onError: (error) => toggleNotification({ type: 'warning', message: error.message }),\n };\n\n const {\n users,\n isError: isUsersError,\n isLoading: isLoadingUsers,\n } = useAdminUsers(\n {},\n {\n ...queryOptions,\n enabled: canReadUsers,\n staleTime: 2 * (1000 * 60), // 2 minutes\n }\n );\n\n const {\n data: auditLogs,\n isLoading: isLoadingAuditLogs,\n isError: isAuditLogsError,\n } = useQuery(\n ['auditLogs', search],\n async () => {\n const { data } = await get(`/admin/audit-logs`, {\n params: query,\n });\n\n return data;\n },\n {\n ...queryOptions,\n enabled: canReadAuditLogs,\n }\n );\n\n return {\n auditLogs,\n users,\n isLoading: isLoadingUsers || isLoadingAuditLogs,\n hasError: isAuditLogsError || isUsersError,\n };\n};\n\nexport default useAuditLogsData;\n","import parseISO from 'date-fns/parseISO';\nimport { useIntl } from 'react-intl';\n\nconst useFormatTimeStamp = () => {\n const { formatDate } = useIntl();\n\n const formatTimeStamp = (value) => {\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\nexport default useFormatTimeStamp;\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) => {\n return actionTypes[value] || value;\n};\n","import React from 'react';\n\nimport { Flex, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\n\nconst ActionItem = ({ actionLabel, actionName }) => {\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\nActionItem.propTypes = {\n actionLabel: PropTypes.string.isRequired,\n actionName: PropTypes.string.isRequired,\n};\n\nexport default ActionItem;\n","import React from 'react';\n\nimport { Box, Flex, Grid, JSONInput, Loader, Typography } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nimport ActionItem from './ActionItem';\n\nconst ActionBody = ({ status, data, formattedDate }) => {\n const { formatMessage } = useIntl();\n\n if (status === 'loading') {\n return (\n <Flex padding={7} justifyContent=\"center\" alignItems=\"center\">\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),\n },\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\nActionBody.defaultProps = {\n data: {},\n};\n\nActionBody.propTypes = {\n status: PropTypes.oneOf(['idle', 'loading', 'error', 'success']).isRequired,\n data: PropTypes.shape({\n action: PropTypes.string,\n date: PropTypes.string,\n payload: PropTypes.object,\n user: PropTypes.object,\n }),\n formattedDate: PropTypes.string.isRequired,\n};\n\nexport default ActionBody;\n","import React from 'react';\n\nimport { ModalBody, ModalHeader, ModalLayout } from '@strapi/design-system';\nimport { Breadcrumbs, Crumb } from '@strapi/design-system/v2';\nimport { useFetchClient, useNotification } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-query';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\n\nimport ActionBody from './ActionBody';\n\nconst Modal = ({ handleClose, logId }) => {\n const { get } = useFetchClient();\n const toggleNotification = useNotification();\n\n const fetchAuditLog = async (id) => {\n const { data } = await get(`/admin/audit-logs/${id}`);\n\n if (!data) {\n throw new Error('Audit log not found');\n }\n\n return data;\n };\n\n const { data, status } = useQuery(['audit-log', logId], () => fetchAuditLog(logId), {\n onError() {\n toggleNotification({\n type: 'warning',\n message: { id: 'notification.error', defaultMessage: 'An error occured' },\n });\n handleClose();\n },\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n const formattedDate = 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 status={status} data={data} formattedDate={formattedDate} />\n </ModalBody>\n </ModalLayout>\n );\n};\n\nModal.propTypes = {\n handleClose: PropTypes.func.isRequired,\n logId: PropTypes.string.isRequired,\n};\n\nexport default Modal;\n","import React from 'react';\n\nimport { Box, Flex } from '@strapi/design-system';\nimport { PageSizeURLQuery, PaginationURLQuery } from '@strapi/helper-plugin';\nimport PropTypes from 'prop-types';\n\nconst PaginationFooter = ({ pagination }) => {\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\nPaginationFooter.defaultProps = {\n pagination: {\n pageCount: 0,\n pageSize: 50,\n total: 0,\n },\n};\n\nPaginationFooter.propTypes = {\n pagination: PropTypes.shape({\n page: PropTypes.number,\n pageCount: PropTypes.number,\n pageSize: PropTypes.number,\n total: PropTypes.number,\n }),\n};\n\nexport default PaginationFooter;\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 PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nimport useFormatTimeStamp from '../hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from '../utils/getActionTypesDefaultMessages';\n\nconst TableRows = ({ headers, rows, onOpenModal }) => {\n const { formatMessage } = useIntl();\n const formatTimeStamp = useFormatTimeStamp();\n\n const getCellValue = ({ type, value, model }) => {\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 { 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 return (\n <Td key={key}>\n <Typography textColor=\"neutral800\">\n {getCellValue({\n type: key,\n value: cellFormatter ? cellFormatter(data[name]) : data[name],\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\nexport default TableRows;\n","import React from 'react';\n\nimport { Combobox, ComboboxOption } from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst ComboboxFilter = ({ value, options, onChange }) => {\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\nComboboxFilter.defaultProps = {\n value: null,\n};\n\nComboboxFilter.propTypes = {\n value: PropTypes.string,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string.isRequired,\n customValue: PropTypes.string.isRequired,\n }).isRequired\n ).isRequired,\n onChange: PropTypes.func.isRequired,\n};\n\nexport default ComboboxFilter;\n","import ComboboxFilter from '../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\nconst getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {\n const actionOptions = Object.keys(actionTypes).map((action) => {\n return {\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\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 options: actionOptions,\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 ];\n\n if (canReadUsers && users) {\n const getDisplayNameFromUser = (user) => {\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 const userOptions = users.map((user) => {\n return {\n label: getDisplayNameFromUser(user),\n // Combobox expects a string value\n customValue: user.id.toString(),\n };\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: userOptions,\n customInput: ComboboxFilter,\n },\n fieldSchema: { type: 'relation', mainField: { name: 'id' } },\n },\n ];\n }\n\n return filters;\n};\n\nexport default getDisplayedFilters;\n","const tableHeaders = [\n {\n name: 'action',\n key: 'action',\n metadatas: {\n label: {\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: {\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: {\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n },\n sortable: false,\n },\n cellFormatter: (user) => (user ? user.displayName : ''),\n },\n];\n\nexport default tableHeaders;\n","import React from 'react';\n\nimport {\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} from '@strapi/helper-plugin';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport Filters from '../../../../../../../../admin/src/pages/SettingsPage/components/Filters';\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\n\nimport useAuditLogsData from './hooks/useAuditLogsData';\nimport Modal from './Modal';\nimport PaginationFooter from './PaginationFooter';\nimport TableRows from './TableRows';\nimport getDisplayedFilters from './utils/getDisplayedFilters';\nimport tableHeaders from './utils/tableHeaders';\n\nconst ListView = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n } = useRBAC({\n ...permissions.settings.auditLogs,\n readUsers: permissions.settings.users.read,\n });\n\n const [{ query }, setQuery] = useQueryParams();\n const { auditLogs, users, isLoading, hasError } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n useFocusWhenNavigate();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const title = formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n });\n\n const headers = tableHeaders.map((header) => ({\n ...header,\n metadatas: {\n ...header.metadatas,\n label: formatMessage(header.metadatas.label),\n },\n }));\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 return (\n <Main aria-busy={isLoading}>\n <SettingsPageTitle name={title} />\n <HeaderLayout\n title={title}\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 canRead={canReadAuditLogs}>\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 })}\n />\n </DynamicTable>\n <PaginationFooter pagination={auditLogs?.pagination} />\n </ContentLayout>\n {query?.id && <Modal handleClose={() => setQuery({ id: null }, 'remove')} logId={query.id} />}\n </Main>\n );\n};\n\nexport default ListView;\n","import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../admin/src/selectors';\nimport ListView from '../ListView';\n\nconst ProtectedListPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.auditLogs.main}>\n <ListView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedListPage;\n"],"names":["data"],"mappings":"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"}
@@ -7,13 +7,13 @@ const helperPlugin = require("@strapi/helper-plugin");
7
7
  const Icons = require("@strapi/icons");
8
8
  const reactIntl = require("react-intl");
9
9
  const reactRedux = require("react-redux");
10
- const AuthenticatedApp = require("./AuthenticatedApp-4045caae.js");
10
+ const AuthenticatedApp = require("./AuthenticatedApp-732676f8.js");
11
11
  const useLicenseLimits = require("./useLicenseLimits-81ef3cce.js");
12
12
  require("react");
13
13
  require("react-query");
14
14
  require("semver/functions/lt");
15
15
  require("semver/functions/valid");
16
- require("./index-e9875b61.js");
16
+ require("./index-c195d4f7.js");
17
17
  require("react-dom/client");
18
18
  require("invariant");
19
19
  require("lodash/isFunction");
@@ -122,4 +122,4 @@ const AdminSeatInfoEE = () => {
122
122
  ] });
123
123
  };
124
124
  exports.AdminSeatInfoEE = AdminSeatInfoEE;
125
- //# sourceMappingURL=index-3f08a869.js.map
125
+ //# sourceMappingURL=index-58bcca54.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-3f08a869.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { pxToRem, useRBAC } from '@strapi/helper-plugin';\nimport { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.users);\n const {\n license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !permittedSeats) {\n return null;\n }\n\n return (\n <GridItem col={6} s={12}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography as=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n // eslint-disable-next-line react/no-unstable-nested-components\n text: (chunks) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : null}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <Icon\n width={`${pxToRem(14)}rem`}\n height={`${pxToRem(14)}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n </Flex>\n <Link\n href={isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL}\n isExternal\n endIcon={<ExternalLink />}\n >\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}',\n },\n { isHostedOnStrapiCloud }\n )}\n </Link>\n </GridItem>\n );\n};\n"],"names":["useIntl","useSelector","selectAdminPermissions","useRBAC","useLicenseLimits","jsxs","GridItem","jsx","Typography","Flex","Tooltip","Icon","pxToRem","ExclamationMarkCircle","Link","ExternalLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B;AACjC,MAAM,0BAA0B;AAEzB,MAAM,kBAAkB,MAAM;AAC7B,QAAA,EAAE,kBAAkBA,UAAAA;AACpB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAChD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,SAAS,WAAW,WAAW,UAAU;AAAA,EACzD,IAAAC,qBAAQ,YAAY,SAAS,KAAK;AAChC,QAAA;AAAA,IACJ,SAAS,EAAE,oBAAoB,sBAAsB,gBAAgB,sBAAsB;AAAA,IAC3F;AAAA,IACA,WAAW;AAAA,MACTC,kCAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnB,SAAS,CAAC,iBAAiB,WAAW,aAAa,aAAa;AAAA,EAAA,CACjE;AAED,QAAM,YAAY,iBAAiB;AAE/B,MAAA,WAAW,aAAa,CAAC,gBAAgB;AACpC,WAAA;AAAA,EACT;AAEA,SACGC,2BAAAA,KAAAC,aAAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAA;AAAA,IAAAC,+BAACC,aAAAA,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,MACb,IAAI;AAAA,MACJ,gBAAgB;AAAA,IACjB,CAAA,GACH;AAAA,IACAH,2BAAAA,KAACI,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAAAF,+BAACE,aAAAA,MACC,EAAA,UAAAF,2BAAA,IAACC,aAAW,YAAA,EAAA,IAAG,KACZ,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA,MAAM,CAAC,WACLD,2BAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,YAAW;AAAA,cACX,WAAW,uBAAuB,iBAAiB,cAAc;AAAA,cAEhE,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAEJ;AAAA,SAEJ,EACF,CAAA;AAAA,MACC,uBAAuB,gBACtBD,2BAAA;AAAA,QAACG,aAAA;AAAA,QAAA;AAAA,UACC,aAAa,cAAc;AAAA,YACzB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UAED,UAAAH,2BAAA;AAAA,YAACI,aAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAGC,aAAAA,QAAQ,EAAE,CAAC;AAAA,cACrB,QAAQ,GAAGA,aAAAA,QAAQ,EAAE,CAAC;AAAA,cACtB,OAAM;AAAA,cACN,IAAIC,MAAA;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACAN,2BAAA;AAAA,MAACO,GAAA;AAAA,MAAA;AAAA,QACC,MAAM,wBAAwB,2BAA2B;AAAA,QACzD,YAAU;AAAA,QACV,wCAAUC,MAAa,cAAA,EAAA;AAAA,QAEtB,UAAA;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,EAAE,sBAAsB;AAAA,QAC1B;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;;"}
1
+ {"version":3,"file":"index-58bcca54.js","sources":["../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/AdminSeatInfo/index.js"],"sourcesContent":["import React from 'react';\n\nimport { Flex, GridItem, Icon, Tooltip, Typography } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { pxToRem, useRBAC } from '@strapi/helper-plugin';\nimport { ExclamationMarkCircle, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../../../../../admin/src/selectors';\nimport { useLicenseLimits } from '../../../../../../hooks/useLicenseLimits';\n\nconst BILLING_STRAPI_CLOUD_URL = 'https://cloud.strapi.io/profile/billing';\nconst BILLING_SELF_HOSTED_URL = 'https://strapi.io/billing/request-seats';\n\nexport const AdminSeatInfoEE = () => {\n const { formatMessage } = useIntl();\n const permissions = useSelector(selectAdminPermissions);\n const {\n isLoading: isRBACLoading,\n allowedActions: { canRead, canCreate, canUpdate, canDelete },\n } = useRBAC(permissions.settings.users);\n const {\n license: { licenseLimitStatus, enforcementUserCount, permittedSeats, isHostedOnStrapiCloud },\n isError,\n isLoading: isLicenseLoading,\n } = useLicenseLimits({\n // TODO: this creates a waterfall which we should avoid to render earlier, but for that\n // we will have to move away from data-fetching hooks to query functions.\n // Short-term we could at least implement a loader, for the user to have visual feedback\n // in case the requests take a while\n enabled: !isRBACLoading && canRead && canCreate && canUpdate && canDelete,\n });\n\n const isLoading = isRBACLoading || isLicenseLoading;\n\n if (isError || isLoading || !permittedSeats) {\n return null;\n }\n\n return (\n <GridItem col={6} s={12}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.application.admin-seats',\n defaultMessage: 'Admin seats',\n })}\n </Typography>\n <Flex gap={2}>\n <Flex>\n <Typography as=\"p\">\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.count',\n defaultMessage: '<text>{enforcementUserCount}</text>/{permittedSeats}',\n },\n {\n permittedSeats,\n enforcementUserCount,\n // eslint-disable-next-line react/no-unstable-nested-components\n text: (chunks) => (\n <Typography\n fontWeight=\"semiBold\"\n textColor={enforcementUserCount > permittedSeats ? 'danger500' : null}\n >\n {chunks}\n </Typography>\n ),\n }\n )}\n </Typography>\n </Flex>\n {licenseLimitStatus === 'OVER_LIMIT' && (\n <Tooltip\n description={formatMessage({\n id: 'Settings.application.ee.admin-seats.at-limit-tooltip',\n defaultMessage: 'At limit: add seats to invite more users',\n })}\n >\n <Icon\n width={`${pxToRem(14)}rem`}\n height={`${pxToRem(14)}rem`}\n color=\"danger500\"\n as={ExclamationMarkCircle}\n />\n </Tooltip>\n )}\n </Flex>\n <Link\n href={isHostedOnStrapiCloud ? BILLING_STRAPI_CLOUD_URL : BILLING_SELF_HOSTED_URL}\n isExternal\n endIcon={<ExternalLink />}\n >\n {formatMessage(\n {\n id: 'Settings.application.ee.admin-seats.add-seats',\n defaultMessage:\n '{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}',\n },\n { isHostedOnStrapiCloud }\n )}\n </Link>\n </GridItem>\n );\n};\n"],"names":["useIntl","useSelector","selectAdminPermissions","useRBAC","useLicenseLimits","jsxs","GridItem","jsx","Typography","Flex","Tooltip","Icon","pxToRem","ExclamationMarkCircle","Link","ExternalLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,MAAM,2BAA2B;AACjC,MAAM,0BAA0B;AAEzB,MAAM,kBAAkB,MAAM;AAC7B,QAAA,EAAE,kBAAkBA,UAAAA;AACpB,QAAA,cAAcC,uBAAYC,iBAAAA,sBAAsB;AAChD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,gBAAgB,EAAE,SAAS,WAAW,WAAW,UAAU;AAAA,EACzD,IAAAC,qBAAQ,YAAY,SAAS,KAAK;AAChC,QAAA;AAAA,IACJ,SAAS,EAAE,oBAAoB,sBAAsB,gBAAgB,sBAAsB;AAAA,IAC3F;AAAA,IACA,WAAW;AAAA,MACTC,kCAAiB;AAAA;AAAA;AAAA;AAAA;AAAA,IAKnB,SAAS,CAAC,iBAAiB,WAAW,aAAa,aAAa;AAAA,EAAA,CACjE;AAED,QAAM,YAAY,iBAAiB;AAE/B,MAAA,WAAW,aAAa,CAAC,gBAAgB;AACpC,WAAA;AAAA,EACT;AAEA,SACGC,2BAAAA,KAAAC,aAAAA,UAAA,EAAS,KAAK,GAAG,GAAG,IACnB,UAAA;AAAA,IAAAC,+BAACC,aAAAA,YAAW,EAAA,SAAQ,SAAQ,WAAU,cACnC,UAAc,cAAA;AAAA,MACb,IAAI;AAAA,MACJ,gBAAgB;AAAA,IACjB,CAAA,GACH;AAAA,IACAH,2BAAAA,KAACI,aAAAA,MAAK,EAAA,KAAK,GACT,UAAA;AAAA,MAAAF,+BAACE,aAAAA,MACC,EAAA,UAAAF,2BAAA,IAACC,aAAW,YAAA,EAAA,IAAG,KACZ,UAAA;AAAA,QACC;AAAA,UACE,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAClB;AAAA,QACA;AAAA,UACE;AAAA,UACA;AAAA;AAAA,UAEA,MAAM,CAAC,WACLD,2BAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,YAAW;AAAA,cACX,WAAW,uBAAuB,iBAAiB,cAAc;AAAA,cAEhE,UAAA;AAAA,YAAA;AAAA,UACH;AAAA,QAEJ;AAAA,SAEJ,EACF,CAAA;AAAA,MACC,uBAAuB,gBACtBD,2BAAA;AAAA,QAACG,aAAA;AAAA,QAAA;AAAA,UACC,aAAa,cAAc;AAAA,YACzB,IAAI;AAAA,YACJ,gBAAgB;AAAA,UAAA,CACjB;AAAA,UAED,UAAAH,2BAAA;AAAA,YAACI,aAAA;AAAA,YAAA;AAAA,cACC,OAAO,GAAGC,aAAAA,QAAQ,EAAE,CAAC;AAAA,cACrB,QAAQ,GAAGA,aAAAA,QAAQ,EAAE,CAAC;AAAA,cACtB,OAAM;AAAA,cACN,IAAIC,MAAA;AAAA,YAAA;AAAA,UACN;AAAA,QAAA;AAAA,MACF;AAAA,IAAA,GAEJ;AAAA,IACAN,2BAAA;AAAA,MAACO,GAAA;AAAA,MAAA;AAAA,QACC,MAAM,wBAAwB,2BAA2B;AAAA,QACzD,YAAU;AAAA,QACV,wCAAUC,MAAa,cAAA,EAAA;AAAA,QAEtB,UAAA;AAAA,UACC;AAAA,YACE,IAAI;AAAA,YACJ,gBACE;AAAA,UACJ;AAAA,UACA,EAAE,sBAAsB;AAAA,QAC1B;AAAA,MAAA;AAAA,IACF;AAAA,EACF,EAAA,CAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
- import { a as EventTable } from "./index-9841c472.mjs";
2
+ import { a as EventTable } from "./index-42478bbd.mjs";
3
3
  import "react";
4
4
  import "@strapi/design-system";
5
5
  import "@strapi/helper-plugin";
@@ -11,7 +11,7 @@ import "@strapi/icons";
11
11
  import "formik";
12
12
  import "prop-types";
13
13
  import "react-intl";
14
- import "./index-b3197a23.mjs";
14
+ import "./index-a0e45da0.mjs";
15
15
  import "react-dom/client";
16
16
  import "invariant";
17
17
  import "lodash/isFunction";
@@ -48,4 +48,4 @@ function EventTableEE() {
48
48
  export {
49
49
  EventTableEE
50
50
  };
51
- //# sourceMappingURL=index-ea3d5e1d.mjs.map
51
+ //# sourceMappingURL=index-5a079422.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-ea3d5e1d.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/EventTableEE.js"],"sourcesContent":["import React from 'react';\n\nimport EventTable from '../../../../../../../../../../admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/Events';\n\nconst events = {\n 'review-workflows': ['review-workflows.updateEntryStage'],\n};\n\nconst getHeaders = () => {\n return [{ id: 'review-workflows.updateEntryStage', defaultMessage: 'Stage Change' }];\n};\n\nexport function EventTableEE() {\n return (\n <EventTable.Root>\n <EventTable.Headers />\n <EventTable.Body />\n <EventTable.Headers getHeaders={getHeaders} />\n <EventTable.Body providedEvents={events} />\n </EventTable.Root>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,SAAS;AAAA,EACb,oBAAoB,CAAC,mCAAmC;AAC1D;AAEA,MAAM,aAAa,MAAM;AACvB,SAAO,CAAC,EAAE,IAAI,qCAAqC,gBAAgB,eAAgB,CAAA;AACrF;AAEO,SAAS,eAAe;AAE3B,SAAA,qBAAC,WAAW,MAAX,EACC,UAAA;AAAA,IAAC,oBAAA,WAAW,SAAX,EAAmB;AAAA,IACpB,oBAAC,WAAW,MAAX,EAAgB;AAAA,IAChB,oBAAA,WAAW,SAAX,EAAmB,WAAwB,CAAA;AAAA,IAC3C,oBAAA,WAAW,MAAX,EAAgB,gBAAgB,OAAQ,CAAA;AAAA,EAC3C,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index-5a079422.mjs","sources":["../../ee/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/EventTable/EventTableEE.js"],"sourcesContent":["import React from 'react';\n\nimport EventTable from '../../../../../../../../../../admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/Events';\n\nconst events = {\n 'review-workflows': ['review-workflows.updateEntryStage'],\n};\n\nconst getHeaders = () => {\n return [{ id: 'review-workflows.updateEntryStage', defaultMessage: 'Stage Change' }];\n};\n\nexport function EventTableEE() {\n return (\n <EventTable.Root>\n <EventTable.Headers />\n <EventTable.Body />\n <EventTable.Headers getHeaders={getHeaders} />\n <EventTable.Body providedEvents={events} />\n </EventTable.Root>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,SAAS;AAAA,EACb,oBAAoB,CAAC,mCAAmC;AAC1D;AAEA,MAAM,aAAa,MAAM;AACvB,SAAO,CAAC,EAAE,IAAI,qCAAqC,gBAAgB,eAAgB,CAAA;AACrF;AAEO,SAAS,eAAe;AAE3B,SAAA,qBAAC,WAAW,MAAX,EACC,UAAA;AAAA,IAAC,oBAAA,WAAW,SAAX,EAAmB;AAAA,IACpB,oBAAC,WAAW,MAAX,EAAgB;AAAA,IAChB,oBAAA,WAAW,SAAX,EAAmB,WAAwB,CAAA;AAAA,IAC3C,oBAAA,WAAW,MAAX,EAAgB,gBAAgB,OAAQ,CAAA;AAAA,EAC3C,EAAA,CAAA;AAEJ;"}
@@ -1,13 +1,13 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { CheckPagePermissions } from "@strapi/helper-plugin";
3
3
  import { useSelector } from "react-redux";
4
- import { s as selectAdminPermissions } from "./AuthenticatedApp-f24f321f.mjs";
5
- import { E as EditView } from "./index-9841c472.mjs";
4
+ import { s as selectAdminPermissions } from "./AuthenticatedApp-f7cd7740.mjs";
5
+ import { E as EditView } from "./index-42478bbd.mjs";
6
6
  import "react";
7
7
  import "react-query";
8
8
  import "semver/functions/lt";
9
9
  import "semver/functions/valid";
10
- import "./index-b3197a23.mjs";
10
+ import "./index-a0e45da0.mjs";
11
11
  import "react-dom/client";
12
12
  import "@strapi/design-system";
13
13
  import "invariant";
@@ -44,4 +44,4 @@ const ProtectedEditView = () => {
44
44
  export {
45
45
  ProtectedEditView as default
46
46
  };
47
- //# sourceMappingURL=index-fe8836c5.mjs.map
47
+ //# sourceMappingURL=index-5a890d37.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-fe8836c5.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,wBAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAAC,oBAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
1
+ {"version":3,"file":"index-5a890d37.mjs","sources":["../../admin/src/pages/SettingsPage/pages/Webhooks/ProtectedEditView/index.js"],"sourcesContent":["import React from 'react';\n\nimport { CheckPagePermissions } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditView from '../EditView';\n\nconst ProtectedEditView = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n return (\n <CheckPagePermissions permissions={permissions.settings.webhooks.update}>\n <EditView />\n </CheckPagePermissions>\n );\n};\n\nexport default ProtectedEditView;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAM,oBAAoB,MAAM;AACxB,QAAA,cAAc,YAAY,sBAAsB;AAGpD,SAAA,oBAAC,wBAAqB,aAAa,YAAY,SAAS,SAAS,QAC/D,UAAC,oBAAA,UAAA,CAAS,CAAA,EACZ,CAAA;AAEJ;"}
@@ -4,7 +4,7 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const helperPlugin = require("@strapi/helper-plugin");
5
5
  const reactRedux = require("react-redux");
6
6
  const reactRouterDom = require("react-router-dom");
7
- const AuthenticatedApp = require("./AuthenticatedApp-4045caae.js");
7
+ const AuthenticatedApp = require("./AuthenticatedApp-732676f8.js");
8
8
  const React = require("react");
9
9
  const designSystem = require("@strapi/design-system");
10
10
  const Icons = require("@strapi/icons");
@@ -17,7 +17,7 @@ const yup = require("yup");
17
17
  require("react-query");
18
18
  require("semver/functions/lt");
19
19
  require("semver/functions/valid");
20
- require("./index-e9875b61.js");
20
+ require("./index-c195d4f7.js");
21
21
  require("react-dom/client");
22
22
  require("invariant");
23
23
  require("lodash/isFunction");
@@ -291,4 +291,4 @@ const ProtectedEditPage = () => {
291
291
  return /* @__PURE__ */ jsxRuntime.jsx(EditPage, {});
292
292
  };
293
293
  exports.default = ProtectedEditPage;
294
- //# sourceMappingURL=index-10472775.js.map
294
+ //# sourceMappingURL=index-5aabaf9f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-10472775.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":"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"}
1
+ {"version":3,"file":"index-5aabaf9f.js","sources":["../../admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/utils/schema.js","../../admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js","../../admin/src/pages/SettingsPage/pages/Roles/ProtectedEditPage/index.js"],"sourcesContent":["import React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n GridItem,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\n\nconst RoleForm = ({ disabled, role, values, errors, onChange, onBlur }) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {role\n ? role.name\n : formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography textColor=\"neutral500\" variant=\"pi\">\n {role\n ? role.description\n : formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <Button disabled variant=\"secondary\">\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: role.usersCount }\n )}\n </Button>\n </Flex>\n <Grid gap={4}>\n <GridItem col={6}>\n <TextInput\n disabled={disabled}\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n label={formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n onBlur={onBlur}\n required\n value={values.name || ''}\n />\n </GridItem>\n <GridItem col={6}>\n <Textarea\n disabled={disabled}\n label={formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={errors.name && formatMessage({ id: errors.name })}\n onChange={onChange}\n onBlur={onBlur}\n >\n {values.description || ''}\n </Textarea>\n </GridItem>\n </Grid>\n </Flex>\n </Box>\n );\n};\n\nRoleForm.defaultProps = {\n disabled: false,\n role: null,\n values: { name: '', description: '' },\n};\nRoleForm.propTypes = {\n disabled: PropTypes.bool,\n errors: PropTypes.object.isRequired,\n onBlur: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n role: PropTypes.object,\n values: PropTypes.object,\n};\n\nexport default RoleForm;\n","import { translatedErrors } from '@strapi/helper-plugin';\nimport * as yup from 'yup';\n\nconst schema = yup.object().shape({\n name: yup.string().required(translatedErrors.required),\n});\n\nexport default schema;\n","import React, { useRef, useState } from 'react';\n\nimport { Box, Button, ContentLayout, Flex, HeaderLayout, Main } from '@strapi/design-system';\nimport {\n Link,\n LoadingIndicatorPage,\n SettingsPageTitle,\n useAPIErrorHandler,\n useFetchClient,\n useNotification,\n useOverlayBlocker,\n useTracking,\n} from '@strapi/helper-plugin';\nimport { ArrowLeft } from '@strapi/icons';\nimport { Formik } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useRouteMatch } from 'react-router-dom';\n\nimport { useAdminRoles } from '../../../../../hooks/useAdminRoles';\nimport { useAdminRolePermissionLayout } from '../hooks/useAdminRolePermissionLayout';\nimport { useAdminRolePermissions } from '../hooks/useAdminRolePermissions';\n\nimport { Permissions, RoleForm } from './components';\nimport schema from './utils/schema';\n\nconst EditPage = () => {\n const toggleNotification = useNotification();\n const { formatMessage } = useIntl();\n const {\n params: { id },\n } = useRouteMatch('/settings/roles/:id');\n const { put } = useFetchClient();\n const [isSubmitting, setIsSubmiting] = useState(false);\n const permissionsRef = useRef();\n const { lockApp, unlockApp } = useOverlayBlocker();\n const { trackUsage } = useTracking();\n const { formatAPIError } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, data: permissionsLayout } =\n useAdminRolePermissionLayout(id, {\n cacheTime: 0,\n });\n\n const {\n roles: [role = {}],\n isLoading: isRoleLoading,\n refetch: refetchRole,\n } = useAdminRoles(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n const { permissions, isLoading: isLoadingPermissions } = useAdminRolePermissions(\n { id },\n {\n cacheTime: 0,\n }\n );\n\n // TODO: this should use a react-query mutation\n const handleEditRoleSubmit = async (data) => {\n try {\n lockApp();\n setIsSubmiting(true);\n\n const { permissionsToSend, didUpdateConditions } = permissionsRef.current.getPermissions();\n\n await put(`/admin/roles/${id}`, data);\n\n if (role.code !== 'strapi-super-admin') {\n await put(`/admin/roles/${id}/permissions`, {\n permissions: permissionsToSend,\n });\n\n if (didUpdateConditions) {\n trackUsage('didUpdateConditions');\n }\n }\n\n permissionsRef.current.setFormAfterSubmit();\n\n await refetchRole();\n\n toggleNotification({\n type: 'success',\n message: { id: 'notification.success.saved' },\n });\n } catch (error) {\n toggleNotification({\n type: 'warning',\n message: formatAPIError(error),\n });\n } finally {\n setIsSubmiting(false);\n unlockApp();\n }\n };\n\n const isFormDisabled = !isRoleLoading && role.code === 'strapi-super-admin';\n\n return (\n <Main>\n <SettingsPageTitle name=\"Roles\" />\n <Formik\n enableReinitialize\n initialValues={{\n name: role.name,\n description: role.description,\n }}\n onSubmit={handleEditRoleSubmit}\n validationSchema={schema}\n validateOnChange={false}\n >\n {({ handleSubmit, values, errors, handleChange, handleBlur }) => (\n <form onSubmit={handleSubmit}>\n <HeaderLayout\n primaryAction={\n <Flex gap={2}>\n <Button\n disabled={role.code === 'strapi-super-admin'}\n onClick={handleSubmit}\n loading={isSubmitting}\n size=\"L\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.edit.title',\n defaultMessage: 'Edit a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n <Link startIcon={<ArrowLeft />} to=\"/settings/roles\">\n {formatMessage({\n id: 'global.back',\n defaultMessage: 'Back',\n })}\n </Link>\n }\n />\n <ContentLayout>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <RoleForm\n isLoading={isRoleLoading || isLoadingPermissions}\n disabled={isFormDisabled}\n errors={errors}\n values={values}\n onChange={handleChange}\n onBlur={handleBlur}\n role={role}\n />\n {!isLoadingPermissionsLayout && !isRoleLoading && !isLoadingPermissions ? (\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={isFormDisabled}\n permissions={permissions}\n ref={permissionsRef}\n layout={permissionsLayout}\n />\n </Box>\n ) : (\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <LoadingIndicatorPage />\n </Box>\n )}\n </Flex>\n </ContentLayout>\n </form>\n )}\n </Formik>\n </Main>\n );\n};\n\nexport default EditPage;\n","import React from 'react';\n\nimport { LoadingIndicatorPage, useRBAC } from '@strapi/helper-plugin';\nimport { useSelector } from 'react-redux';\nimport { Redirect } from 'react-router-dom';\n\nimport { selectAdminPermissions } from '../../../../../selectors';\nimport EditPage from '../EditPage';\n\nconst ProtectedEditPage = () => {\n const permissions = useSelector(selectAdminPermissions);\n\n const {\n isLoading,\n allowedActions: { canRead, canUpdate },\n } = useRBAC({\n read: permissions.settings.roles.read,\n update: permissions.settings.roles.update,\n });\n\n if (isLoading) {\n return <LoadingIndicatorPage />;\n }\n\n if (!canRead && !canUpdate) {\n return <Redirect to=\"/\" />;\n }\n\n return <EditPage />;\n};\n\nexport default ProtectedEditPage;\n"],"names":["useIntl","Box","Flex","jsxs","jsx","Typography","Button","Grid","GridItem","TextInput","Textarea","PropTypes","yup","translatedErrors","useNotification","useRouteMatch","useFetchClient","useState","useRef","useOverlayBlocker","useTracking","useAPIErrorHandler","useAdminRolePermissionLayout","useAdminRoles","useAdminRolePermissions","Main","SettingsPageTitle","Formik","HeaderLayout","Link","ArrowLeft","ContentLayout","Permissions","LoadingIndicatorPage","useSelector","selectAdminPermissions","useRBAC","Redirect"],"mappings":"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"}
@@ -31,8 +31,8 @@ const reactIntl = require("react-intl");
31
31
  const reactRedux = require("react-redux");
32
32
  const reactRouterDom = require("react-router-dom");
33
33
  const DragLayer = require("./DragLayer-f07eee6c.js");
34
- const AuthenticatedApp = require("./AuthenticatedApp-4045caae.js");
35
- const schema = require("./schema-b5882935.js");
34
+ const AuthenticatedApp = require("./AuthenticatedApp-732676f8.js");
35
+ const schema = require("./schema-08e285a2.js");
36
36
  const PropTypes = require("prop-types");
37
37
  const reactErrorBoundary = require("react-error-boundary");
38
38
  const reactDnd = require("react-dnd");
@@ -53,7 +53,7 @@ const reactQuery = require("react-query");
53
53
  const v2 = require("@strapi/design-system/v2");
54
54
  const reactDndHtml5Backend = require("react-dnd-html5-backend");
55
55
  const styled = require("styled-components");
56
- const index$2 = require("./index-e9875b61.js");
56
+ const index$2 = require("./index-c195d4f7.js");
57
57
  const size = require("lodash/size");
58
58
  const take = require("lodash/take");
59
59
  const slate = require("slate");
@@ -11200,7 +11200,7 @@ const EditView = ({ allowedActions, isSingleType, goBack, slug, id, origin, user
11200
11200
  const toggleNotification = helperPlugin.useNotification();
11201
11201
  const Information2 = index$2.useEnterprise(
11202
11202
  InformationBoxCE,
11203
- async () => (await Promise.resolve().then(() => require("./index-471ce13f.js"))).InformationBoxEE
11203
+ async () => (await Promise.resolve().then(() => require("./index-e4fb2fc4.js"))).InformationBoxEE
11204
11204
  );
11205
11205
  useOnce(() => {
11206
11206
  if (location?.state && "error" in location.state) {
@@ -14046,7 +14046,7 @@ function ListView({ canCreate, canDelete, canRead, canPublish, layout, slug }) {
14046
14046
  const hasReviewWorkflows = options2?.reviewWorkflows ?? false;
14047
14047
  const reviewWorkflowColumns = index$2.useEnterprise(
14048
14048
  REVIEW_WORKFLOW_COLUMNS_CE,
14049
- async () => (await Promise.resolve().then(() => require("./constants-fcdceeaa.js"))).REVIEW_WORKFLOW_COLUMNS_EE,
14049
+ async () => (await Promise.resolve().then(() => require("./constants-8a54f247.js"))).REVIEW_WORKFLOW_COLUMNS_EE,
14050
14050
  {
14051
14051
  enabled: !!options2?.reviewWorkflows
14052
14052
  }
@@ -14054,7 +14054,7 @@ function ListView({ canCreate, canDelete, canRead, canPublish, layout, slug }) {
14054
14054
  const ReviewWorkflowsColumns = index$2.useEnterprise(
14055
14055
  REVIEW_WORKFLOW_COLUMNS_CELL_CE,
14056
14056
  async () => {
14057
- const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await Promise.resolve().then(() => require("./index-b101325c.js"));
14057
+ const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await Promise.resolve().then(() => require("./index-79bdcf33.js"));
14058
14058
  return { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE };
14059
14059
  },
14060
14060
  {
@@ -14063,7 +14063,7 @@ function ListView({ canCreate, canDelete, canRead, canPublish, layout, slug }) {
14063
14063
  );
14064
14064
  const reviewWorkflowFilter = index$2.useEnterprise(
14065
14065
  REVIEW_WORKFLOW_FILTER_CE,
14066
- async () => (await Promise.resolve().then(() => require("./constants-b4d73802.js"))).REVIEW_WORKFLOW_FILTERS,
14066
+ async () => (await Promise.resolve().then(() => require("./constants-bdeb8843.js"))).REVIEW_WORKFLOW_FILTERS,
14067
14067
  {
14068
14068
  combine(ceFilters, eeFilters) {
14069
14069
  return [
@@ -15362,4 +15362,4 @@ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
15362
15362
  exports.Information = Information;
15363
15363
  exports.getDisplayName = getDisplayName;
15364
15364
  exports.index = index$1;
15365
- //# sourceMappingURL=index-fbf4f310.js.map
15365
+ //# sourceMappingURL=index-6492abdf.js.map