@strapi/admin 5.50.2 → 5.51.1

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 (169) hide show
  1. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +14 -6
  2. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  3. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +14 -6
  4. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  5. package/dist/admin/admin/src/utils/cookies.js +77 -2
  6. package/dist/admin/admin/src/utils/cookies.js.map +1 -1
  7. package/dist/admin/admin/src/utils/cookies.mjs +76 -3
  8. package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
  9. package/dist/admin/admin/tests/server.js +23 -1
  10. package/dist/admin/admin/tests/server.js.map +1 -1
  11. package/dist/admin/admin/tests/server.mjs +23 -1
  12. package/dist/admin/admin/tests/server.mjs.map +1 -1
  13. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +38 -7
  14. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  15. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +18 -7
  16. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  17. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js +4 -1
  18. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
  19. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs +4 -1
  20. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
  21. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +17 -6
  22. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
  23. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs +18 -7
  24. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
  25. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js +23 -26
  26. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
  27. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs +23 -26
  28. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
  29. package/dist/admin/ee/admin/src/services/auditLogs.js +10 -1
  30. package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
  31. package/dist/admin/ee/admin/src/services/auditLogs.mjs +10 -2
  32. package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
  33. package/dist/admin/shared/utils/auth-cookie-domain.js +42 -0
  34. package/dist/admin/shared/utils/auth-cookie-domain.js.map +1 -0
  35. package/dist/admin/shared/utils/auth-cookie-domain.mjs +39 -0
  36. package/dist/admin/shared/utils/auth-cookie-domain.mjs.map +1 -0
  37. package/dist/admin/shared/utils/auth-cookie-name.js +2 -2
  38. package/dist/admin/shared/utils/auth-cookie-name.js.map +1 -1
  39. package/dist/admin/shared/utils/auth-cookie-name.mjs +2 -2
  40. package/dist/admin/shared/utils/auth-cookie-name.mjs.map +1 -1
  41. package/dist/admin/shared/utils/auth-cookie-path.js +40 -0
  42. package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -0
  43. package/dist/admin/shared/utils/auth-cookie-path.mjs +37 -0
  44. package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -0
  45. package/dist/admin/src/utils/cookies.d.ts +21 -0
  46. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.d.ts +6 -1
  47. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +5 -3
  48. package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +8 -4
  49. package/dist/ee/admin/src/services/auditLogs.d.ts +5 -2
  50. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts +1 -0
  51. package/dist/ee/server/src/audit-logs/controllers/audit-logs.d.ts.map +1 -1
  52. package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts.map +1 -1
  53. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +16 -0
  54. package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
  55. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -0
  56. package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
  57. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  58. package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
  59. package/dist/ee/server/src/index.d.ts +1 -0
  60. package/dist/ee/server/src/index.d.ts.map +1 -1
  61. package/dist/ee/server/src/services/auth.d.ts.map +1 -1
  62. package/dist/ee/server/src/services/user.d.ts.map +1 -1
  63. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js +10 -0
  64. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
  65. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs +11 -1
  66. package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
  67. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js +24 -32
  68. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
  69. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs +24 -32
  70. package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
  71. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js +33 -1
  72. package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
  73. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs +33 -1
  74. package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
  75. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js +8 -0
  76. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
  77. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs +8 -1
  78. package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
  79. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  80. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  81. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +9 -3
  82. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
  83. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +10 -4
  84. package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
  85. package/dist/server/ee/server/src/services/auth.js +5 -5
  86. package/dist/server/ee/server/src/services/auth.js.map +1 -1
  87. package/dist/server/ee/server/src/services/auth.mjs +5 -5
  88. package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
  89. package/dist/server/ee/server/src/services/user.js +1 -0
  90. package/dist/server/ee/server/src/services/user.js.map +1 -1
  91. package/dist/server/ee/server/src/services/user.mjs +1 -0
  92. package/dist/server/ee/server/src/services/user.mjs.map +1 -1
  93. package/dist/server/server/src/content-types/User.js +6 -0
  94. package/dist/server/server/src/content-types/User.js.map +1 -1
  95. package/dist/server/server/src/content-types/User.mjs +6 -0
  96. package/dist/server/server/src/content-types/User.mjs.map +1 -1
  97. package/dist/server/server/src/controllers/authentication.js +12 -10
  98. package/dist/server/server/src/controllers/authentication.js.map +1 -1
  99. package/dist/server/server/src/controllers/authentication.mjs +10 -8
  100. package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
  101. package/dist/server/server/src/routes/serve-admin-panel.js +17 -4
  102. package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
  103. package/dist/server/server/src/routes/serve-admin-panel.mjs +17 -4
  104. package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
  105. package/dist/server/server/src/services/auth.js +51 -6
  106. package/dist/server/server/src/services/auth.js.map +1 -1
  107. package/dist/server/server/src/services/auth.mjs +46 -6
  108. package/dist/server/server/src/services/auth.mjs.map +1 -1
  109. package/dist/server/server/src/services/index.js +1 -1
  110. package/dist/server/server/src/services/index.js.map +1 -1
  111. package/dist/server/server/src/services/user.js +1 -0
  112. package/dist/server/server/src/services/user.js.map +1 -1
  113. package/dist/server/server/src/services/user.mjs +1 -0
  114. package/dist/server/server/src/services/user.mjs.map +1 -1
  115. package/dist/server/shared/utils/auth-cookie-domain.js +42 -0
  116. package/dist/server/shared/utils/auth-cookie-domain.js.map +1 -0
  117. package/dist/server/shared/utils/auth-cookie-domain.mjs +39 -0
  118. package/dist/server/shared/utils/auth-cookie-domain.mjs.map +1 -0
  119. package/dist/server/shared/utils/auth-cookie-name.js +2 -2
  120. package/dist/server/shared/utils/auth-cookie-name.js.map +1 -1
  121. package/dist/server/shared/utils/auth-cookie-name.mjs +2 -2
  122. package/dist/server/shared/utils/auth-cookie-name.mjs.map +1 -1
  123. package/dist/server/shared/utils/auth-cookie-path.js +40 -0
  124. package/dist/server/shared/utils/auth-cookie-path.js.map +1 -0
  125. package/dist/server/shared/utils/auth-cookie-path.mjs +37 -0
  126. package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -0
  127. package/dist/server/shared/utils/session-auth.js +54 -3
  128. package/dist/server/shared/utils/session-auth.js.map +1 -1
  129. package/dist/server/shared/utils/session-auth.mjs +51 -4
  130. package/dist/server/shared/utils/session-auth.mjs.map +1 -1
  131. package/dist/server/src/content-types/User.d.ts +6 -0
  132. package/dist/server/src/content-types/User.d.ts.map +1 -1
  133. package/dist/server/src/content-types/index.d.ts +6 -0
  134. package/dist/server/src/content-types/index.d.ts.map +1 -1
  135. package/dist/server/src/controllers/authentication.d.ts.map +1 -1
  136. package/dist/server/src/domain/user.d.ts +1 -0
  137. package/dist/server/src/domain/user.d.ts.map +1 -1
  138. package/dist/server/src/index.d.ts +6 -0
  139. package/dist/server/src/index.d.ts.map +1 -1
  140. package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
  141. package/dist/server/src/services/auth.d.ts +18 -0
  142. package/dist/server/src/services/auth.d.ts.map +1 -1
  143. package/dist/server/src/services/index.d.ts.map +1 -1
  144. package/dist/server/src/services/user.d.ts.map +1 -1
  145. package/dist/shared/contracts/api-token.d.ts +2 -2
  146. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  147. package/dist/shared/contracts/audit-logs.d.ts +19 -1
  148. package/dist/shared/contracts/audit-logs.d.ts.map +1 -1
  149. package/dist/shared/contracts/authentication.d.ts +1 -1
  150. package/dist/shared/contracts/authentication.d.ts.map +1 -1
  151. package/dist/shared/contracts/homepage.d.ts +2 -2
  152. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  153. package/dist/shared/contracts/shared.d.ts +2 -1
  154. package/dist/shared/contracts/shared.d.ts.map +1 -1
  155. package/dist/shared/contracts/user.d.ts +1 -1
  156. package/dist/shared/contracts/user.d.ts.map +1 -1
  157. package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts +1 -0
  158. package/dist/shared/utils/__tests__/auth-cookie-domain.test.d.ts.map +1 -0
  159. package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts +1 -0
  160. package/dist/shared/utils/__tests__/auth-cookie-path.test.d.ts.map +1 -0
  161. package/dist/shared/utils/auth-cookie-domain.d.ts +21 -0
  162. package/dist/shared/utils/auth-cookie-domain.d.ts.map +1 -0
  163. package/dist/shared/utils/auth-cookie-name.d.ts +1 -1
  164. package/dist/shared/utils/auth-cookie-name.d.ts.map +1 -1
  165. package/dist/shared/utils/auth-cookie-path.d.ts +17 -0
  166. package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -0
  167. package/dist/shared/utils/session-auth.d.ts +15 -0
  168. package/dist/shared/utils/session-auth.d.ts.map +1 -1
  169. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"server.mjs","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n http.post('https://analytics.strapi.io/api/v2/track', () => {\n return new HttpResponse();\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n http.get('/admin/roles', () =>\n HttpResponse.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n ),\n\n http.get('/admin/roles/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n })\n ),\n http.get('/admin/roles/:id/permissions', ({ request }) => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n ],\n });\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n http.get('/admin/users', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n });\n }),\n http.get('/admin/users/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: new URL(request.url).searchParams.get('some'),\n },\n },\n })\n ),\n http.get('/admin/users/me', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n });\n }),\n http.get('/admin/users/me/permissions', () => HttpResponse.json({ data: [] })),\n http.get('/admin/users/me/sessions', () =>\n HttpResponse.json({\n data: [\n {\n id: 'session-current',\n deviceId: 'device-aaaaaaaa',\n deviceName: 'Chrome on macOS',\n current: true,\n loginAt: '2026-06-12T08:00:00.000Z',\n lastActiveAt: '2026-06-12T10:00:00.000Z',\n },\n {\n id: 'session-other',\n deviceId: 'device-bbbbbbbb',\n current: false,\n loginAt: '2026-06-10T08:00:00.000Z',\n lastActiveAt: '2026-06-11T09:00:00.000Z',\n },\n ],\n })\n ),\n http.delete('/admin/users/me/sessions/:sessionId', () => HttpResponse.json({ data: {} })),\n http.delete('/admin/users/me/sessions', () => HttpResponse.json({ data: {} })),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n http.get('/admin/providers/isSSOLocked', () => {\n return HttpResponse.json({\n data: {\n isSSOLocked: false,\n },\n });\n }),\n http.put('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n ),\n http.get('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n http.get('/admin/permissions', ({ request }) => {\n const role = new URL(request.url).searchParams.get('role');\n\n const permissionsData = {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n collectionTypes: {\n actions: [],\n subjects: [],\n },\n singleTypes: {\n actions: [],\n subjects: [],\n },\n plugins: [],\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n };\n\n // role === '' used by AdminPermissions (token permission layout, no role scoping)\n if (role === '1' || role === '') {\n return HttpResponse.json({ data: permissionsData });\n }\n\n return new HttpResponse(null, { status: 404 });\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n http.get('/admin/init', () => {\n return HttpResponse.json({\n data: {},\n });\n }),\n http.get('/admin/information', () =>\n HttpResponse.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n ),\n http.get('/admin/license-limit-information', () => {\n return HttpResponse.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n });\n }),\n http.get('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.post('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.get('/admin/transfer/tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/transfer/tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n http.get('/admin/registration-info', ({ request }) => {\n const token = new URL(request.url).searchParams.get('registrationToken');\n\n if (token === 'error') {\n return HttpResponse.json({}, { status: 500 });\n }\n\n return HttpResponse.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n });\n }),\n http.post('/admin/renew-token', () => {\n return HttpResponse.json({\n data: {\n token: 'renewed-test-token',\n },\n });\n }),\n http.get('/admin/guided-tour-meta', () => {\n return HttpResponse.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n });\n }),\n /**\n * WEBHOOKS\n */\n http.get('/admin/webhooks', () => {\n return HttpResponse.json({\n data: mockData.webhooks,\n });\n }),\n http.post<Record<string, never>, { ids: number[] }>(\n '/admin/webhooks/batch-delete',\n async ({ request }) => {\n const { ids } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n });\n }\n ),\n http.put<{ id: string }, { isEnabled: boolean }>(\n '/admin/webhooks/:id',\n async ({ request, params }) => {\n const { id } = params;\n const { isEnabled } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n });\n }\n ),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n http.get('/content-manager/content-types', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n ),\n http.get('/content-manager/components', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n http.post('https://analytics.strapi.io/submit-nps', () => {\n return new HttpResponse();\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n http.get('/admin/content-api/permissions', () => {\n return HttpResponse.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n });\n }),\n http.get('/admin/content-api/routes', () => {\n return HttpResponse.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n });\n }),\n /**\n * API TOKENS\n */\n http.get('/admin/api-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/api-tokens/:id', ({ params }) => {\n const { id } = params;\n\n if (id === '2') {\n return HttpResponse.json({\n data: {\n id: '2',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }\n\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n /**\n * ADMIN TOKENS\n */\n http.get('/admin/admin-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n ],\n });\n }),\n http.get('/admin/admin-tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }),\n http.get('/admin/admin-tokens/:id/owner-permissions', () => {\n return HttpResponse.json({ data: [] });\n }),\n /**\n * Audit Logs\n */\n http.get('/admin/audit-logs', () => {\n return HttpResponse.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs/:id', () => {\n return HttpResponse.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n });\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n http.get('/use-fetch-client-test', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n });\n }),\n http.get('/test-fetch-client', () => {\n return new HttpResponse();\n }),\n ]\n);\n"],"names":["server","setupServer","http","post","HttpResponse","get","json","data","id","code","name","request","params","filters","URL","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","deviceId","deviceName","current","loginAt","lastActiveAt","delete","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","permissionsData","displayName","category","sections","collectionTypes","actions","subjects","singleTypes","plugins","settings","subCategory","status","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","adminPermissions","adminUserOwner","date","payload","user","isActive","blocked","updatedAt","pageSize","pageCount","total","publishedAt"],"mappings":"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"}
1
+ {"version":3,"file":"server.mjs","sources":["../../../../admin/tests/server.ts"],"sourcesContent":["import { http, HttpResponse } from 'msw';\nimport { type SetupServer, setupServer } from 'msw/node';\n\nimport { mockData } from './mockData';\n\nexport const server: SetupServer = setupServer(\n ...[\n /**\n * TRACKING\n */\n http.post('https://analytics.strapi.io/api/v2/track', () => {\n return new HttpResponse();\n }),\n /**\n *\n * ADMIN ROLES\n *\n */\n http.get('/admin/roles', () =>\n HttpResponse.json({\n data: [\n {\n id: 1,\n code: 'strapi-editor',\n name: 'Editor',\n },\n {\n id: 2,\n code: 'strapi-author',\n name: 'Author',\n },\n ],\n })\n ),\n\n http.get('/admin/roles/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n code: 'strapi-editor',\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n })\n ),\n http.get('/admin/roles/:id/permissions', ({ request }) => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n action: 'plugin::content-manager.explorer.create',\n subject: 'api::address.address',\n properties: {\n fields: ['postal_code', 'categories'],\n },\n conditions: [],\n\n params: {\n filters: new URL(request.url).searchParams.get('filters'),\n },\n },\n ],\n });\n }),\n /**\n *\n * ADMIN USERS\n *\n */\n http.get('/admin/users', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 1, firstname: 'John', lastname: 'Doe', roles: [] },\n { id: 2, firstname: 'Kai', lastname: 'Doe', roles: [] },\n ],\n pagination: {\n page: 1,\n },\n },\n });\n }),\n http.get('/admin/users/1', ({ request }) =>\n HttpResponse.json({\n data: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n emai: 'test@testing.com',\n roles: [\n { id: 1, code: 'strapi-editor', name: 'Editor' },\n { id: 2, code: 'strapi-super-admin', name: 'Super Admin' },\n ],\n params: {\n some: new URL(request.url).searchParams.get('some'),\n },\n },\n })\n ),\n http.get('/admin/users/me', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n email: 'michka@michka.fr',\n firstname: 'michoko',\n lastname: 'ronronscelestes',\n username: 'yolo',\n preferedLanguage: 'en',\n roles: [\n {\n id: 2,\n },\n ],\n },\n });\n }),\n http.get('/admin/users/me/permissions', () => HttpResponse.json({ data: [] })),\n http.get('/admin/users/me/sessions', () =>\n HttpResponse.json({\n data: [\n {\n id: 'session-current',\n deviceId: 'device-aaaaaaaa',\n deviceName: 'Chrome on macOS',\n current: true,\n loginAt: '2026-06-12T08:00:00.000Z',\n lastActiveAt: '2026-06-12T10:00:00.000Z',\n },\n {\n id: 'session-other',\n deviceId: 'device-bbbbbbbb',\n current: false,\n loginAt: '2026-06-10T08:00:00.000Z',\n lastActiveAt: '2026-06-11T09:00:00.000Z',\n },\n ],\n })\n ),\n http.delete('/admin/users/me/sessions/:sessionId', () => HttpResponse.json({ data: {} })),\n http.delete('/admin/users/me/sessions', () => HttpResponse.json({ data: {} })),\n /**\n *\n * ADMIN PROVIDERS\n *\n */\n http.get('/admin/providers/isSSOLocked', () => {\n return HttpResponse.json({\n data: {\n isSSOLocked: false,\n },\n });\n }),\n http.put('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2', '3'],\n },\n })\n ),\n http.get('/admin/providers/options', () =>\n HttpResponse.json({\n data: {\n autoRegister: false,\n defaultRole: '1',\n ssoLockedRoles: ['1', '2'],\n },\n })\n ),\n /**\n *\n * ADMIN PERMISSIONS\n *\n */\n http.get('/admin/permissions', ({ request }) => {\n const role = new URL(request.url).searchParams.get('role');\n\n const permissionsData = {\n conditions: [\n {\n id: 'admin::is-creator',\n displayName: 'Is creator',\n category: 'default',\n },\n ],\n sections: {\n collectionTypes: {\n actions: [],\n subjects: [],\n },\n singleTypes: {\n actions: [],\n subjects: [],\n },\n plugins: [],\n settings: [\n {\n displayName: 'Access the Email Settings page',\n category: 'email',\n subCategory: 'general',\n action: 'plugin::email.settings.read',\n },\n ],\n },\n };\n\n // role === '' used by AdminPermissions (token permission layout, no role scoping)\n if (role === '1' || role === '') {\n return HttpResponse.json({ data: permissionsData });\n }\n\n return new HttpResponse(null, { status: 404 });\n }),\n /**\n *\n * ADMIN MISC\n *\n */\n http.get('/admin/init', () => {\n return HttpResponse.json({\n data: {},\n });\n }),\n http.get('/admin/information', () =>\n HttpResponse.json({\n autoReload: true,\n communityEdition: false,\n currentEnvironment: 'development',\n nodeVersion: 'v14.13.1',\n strapiVersion: '3.6.0',\n })\n ),\n http.get('/admin/license-limit-information', () => {\n return HttpResponse.json({\n data: {\n attribute: 1,\n\n features: [{ name: 'sso' }, { name: 'audit-logs', options: { retentionDays: 1 } }],\n },\n });\n }),\n http.get('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.post('/admin/project-settings', () => {\n return HttpResponse.json({\n menuLogo: {\n ext: '.svg',\n height: 256,\n name: 'michka.svg',\n size: 1.3,\n url: '/uploads/michka.svg',\n width: 256,\n },\n });\n }),\n http.get('/admin/transfer/tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/transfer/tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: 1,\n name: 'My super token',\n description: 'This describe my super token',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n http.get('/admin/registration-info', ({ request }) => {\n const token = new URL(request.url).searchParams.get('registrationToken');\n\n if (token === 'error') {\n return HttpResponse.json({}, { status: 500 });\n }\n\n return HttpResponse.json({\n data: {\n firstname: 'Token firstname',\n lastname: 'Token lastname',\n email: 'test+register-token@strapi.io',\n },\n });\n }),\n http.post('/admin/renew-token', () => {\n return HttpResponse.json({\n data: {\n token: 'renewed-test-token',\n },\n });\n }),\n http.get('/admin/guided-tour-meta', () => {\n return HttpResponse.json({\n data: {\n isFirstSuperAdminUser: false,\n completedActions: [],\n },\n });\n }),\n /**\n * WEBHOOKS\n */\n http.get('/admin/webhooks', () => {\n return HttpResponse.json({\n data: mockData.webhooks,\n });\n }),\n http.post<Record<string, never>, { ids: number[] }>(\n '/admin/webhooks/batch-delete',\n async ({ request }) => {\n const { ids } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.filter((webhook) => !ids.includes(webhook.id)),\n });\n }\n ),\n http.put<{ id: string }, { isEnabled: boolean }>(\n '/admin/webhooks/:id',\n async ({ request, params }) => {\n const { id } = params;\n const { isEnabled } = await request.json();\n\n return HttpResponse.json({\n data: mockData.webhooks.map((webhook) =>\n webhook.id === Number(id) ? { ...webhook, isEnabled } : webhook\n ),\n });\n }\n ),\n /**\n *\n * CONTENT_MANAGER\n *\n */\n http.get('/content-manager/content-types', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'admin::collectionType',\n isDisplayed: true,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::collectionTypeNotDispalyed',\n isDisplayed: false,\n apiID: 'permission',\n kind: 'collectionType',\n },\n\n {\n uid: 'admin::singleType',\n isDisplayed: true,\n kind: 'singleType',\n },\n\n {\n uid: 'admin::singleTypeNotDispalyed',\n isDisplayed: false,\n kind: 'singleType',\n },\n ],\n })\n ),\n http.get('/content-manager/components', () =>\n HttpResponse.json({\n data: [\n {\n uid: 'basic.relation',\n isDisplayed: true,\n apiID: 'relation',\n category: 'basic',\n info: {\n displayName: 'Relation',\n },\n options: {},\n attributes: {\n id: {\n type: 'integer',\n },\n categories: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'api::category.category',\n targetModel: 'api::category.category',\n relationType: 'oneToMany',\n },\n },\n },\n ],\n })\n ),\n /**\n *\n * NPS SURVEY\n *\n */\n http.post('https://analytics.strapi.io/submit-nps', () => {\n return new HttpResponse();\n }),\n /**\n * CONTENT-API (API TOKENS)\n */\n http.get('/admin/content-api/permissions', () => {\n return HttpResponse.json({\n data: {\n 'api::address': {\n controllers: {\n address: ['find', 'findOne'],\n },\n },\n 'plugin::myplugin': {\n controllers: {\n test: ['findOne', 'find'],\n },\n },\n },\n });\n }),\n http.get('/admin/content-api/routes', () => {\n return HttpResponse.json({\n data: {\n 'api::address': [\n {\n method: 'GET',\n path: '/api/addresses',\n handler: 'api::address.address.find',\n config: {\n auth: {\n scope: ['api::address.address.find'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/addresses/:id',\n handler: 'api::address.address.findOne',\n config: {\n auth: {\n scope: ['api::address.address.findOne'],\n },\n },\n info: {\n apiName: 'address',\n type: 'content-api',\n },\n },\n ],\n 'plugin::myplugin': [\n {\n method: 'GET',\n path: '/api/myplugin/tests',\n handler: 'plugin::myplugin.test.find',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.find'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n {\n method: 'GET',\n path: '/api/myplugin/tests/:id',\n handler: 'plugin::myplugin.test.findOne',\n config: {\n auth: {\n scope: ['plugin::myplugin.test.findOne'],\n },\n },\n info: {\n pluginName: 'myplugin',\n type: 'content-api',\n },\n },\n ],\n },\n });\n }),\n /**\n * API TOKENS\n */\n http.get('/admin/api-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n ],\n });\n }),\n http.get('/admin/api-tokens/:id', ({ params }) => {\n const { id } = params;\n\n if (id === '2') {\n return HttpResponse.json({\n data: {\n id: '2',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }\n\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My super token',\n description: 'This describe my super token',\n kind: 'content-api',\n type: 'read-only',\n createdAt: '2021-11-15T00:00:00.000Z',\n permissions: [],\n },\n });\n }),\n /**\n * ADMIN TOKENS\n */\n http.get('/admin/admin-tokens', () => {\n return HttpResponse.json({\n data: [\n {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n ],\n });\n }),\n http.get('/admin/admin-tokens/:id', () => {\n return HttpResponse.json({\n data: {\n id: '1',\n name: 'My admin token',\n description: 'This is an admin token',\n kind: 'admin',\n adminPermissions: [],\n adminUserOwner: {\n id: 1,\n firstname: 'John',\n lastname: 'Doe',\n email: 'john@example.com',\n },\n createdAt: '2021-11-15T00:00:00.000Z',\n },\n });\n }),\n http.get('/admin/admin-tokens/:id/owner-permissions', () => {\n return HttpResponse.json({ data: [] });\n }),\n /**\n * Audit Logs\n */\n http.get('/admin/audit-logs/users', () => {\n return HttpResponse.json({\n results: [\n { id: 1, email: 'john@testing.com', displayName: 'John Doe' },\n { id: 2, email: 'kai@testing.com', displayName: 'Kai Doe' },\n ],\n pagination: {\n page: 1,\n pageSize: 10,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs', () => {\n return HttpResponse.json({\n results: [\n {\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n {\n id: 2,\n action: 'user.create',\n date: '2023-10-31T15:57:38.957Z',\n payload: {\n user: {\n id: 2,\n firstname: 'editor',\n lastname: 'test',\n username: null,\n email: 'editor@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-31T15:57:38.948Z',\n updatedAt: '2023-10-31T15:57:38.948Z',\n roles: [\n {\n id: 2,\n name: 'Editor',\n description:\n 'Editors can manage and publish contents including those of other users.',\n code: 'strapi-editor',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n },\n ],\n pagination: {\n page: 1,\n pageSize: 2,\n pageCount: 1,\n total: 2,\n },\n });\n }),\n http.get('/admin/audit-logs/:id', () => {\n return HttpResponse.json({\n id: 1,\n action: 'admin.logout',\n date: '2023-10-31T15:56:54.873Z',\n payload: {\n user: {\n id: 1,\n firstname: 'test',\n lastname: 'testing',\n username: null,\n email: 'test@testing.com',\n isActive: true,\n blocked: false,\n preferedLanguage: null,\n createdAt: '2023-10-26T19:19:38.245Z',\n updatedAt: '2023-10-26T19:19:38.245Z',\n roles: [\n {\n id: 1,\n name: 'Super Admin',\n description: 'Super Admins can access and manage all features and settings.',\n code: 'strapi-super-admin',\n },\n ],\n },\n },\n user: {\n id: 1,\n email: 'test@testing.com',\n displayName: 'test testing',\n },\n });\n }),\n /**\n *\n * fetchClient, useFetchClient and getFetchClient\n *\n */\n http.get('/use-fetch-client-test', () => {\n return HttpResponse.json({\n data: {\n results: [\n { id: 2, name: 'newest', publishedAt: null },\n { id: 1, name: 'oldest', publishedAt: null },\n ],\n pagination: { page: 1, pageCount: 10 },\n },\n });\n }),\n http.get('/test-fetch-client', () => {\n return new HttpResponse();\n }),\n ]\n);\n"],"names":["server","setupServer","http","post","HttpResponse","get","json","data","id","code","name","request","params","filters","URL","url","searchParams","action","subject","properties","fields","conditions","results","firstname","lastname","roles","pagination","page","emai","some","email","username","preferedLanguage","deviceId","deviceName","current","loginAt","lastActiveAt","delete","isSSOLocked","put","autoRegister","defaultRole","ssoLockedRoles","role","permissionsData","displayName","category","sections","collectionTypes","actions","subjects","singleTypes","plugins","settings","subCategory","status","autoReload","communityEdition","currentEnvironment","nodeVersion","strapiVersion","attribute","features","options","retentionDays","menuLogo","ext","height","size","width","description","type","createdAt","permissions","token","isFirstSuperAdminUser","completedActions","mockData","webhooks","ids","filter","webhook","includes","isEnabled","map","Number","uid","isDisplayed","apiID","kind","info","attributes","categories","relation","target","targetModel","relationType","controllers","address","test","method","path","handler","config","auth","scope","apiName","pluginName","adminPermissions","adminUserOwner","pageSize","pageCount","total","date","payload","user","isActive","blocked","updatedAt","publishedAt"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
4
5
  var designSystem = require('@strapi/design-system');
5
6
  var icons = require('@strapi/icons');
6
7
  var reactIntl = require('react-intl');
@@ -18,23 +19,53 @@ var useFormatTimeStamp = require('./hooks/useFormatTimeStamp.js');
18
19
  var getActionTypesDefaultMessages = require('./utils/getActionTypesDefaultMessages.js');
19
20
  var getDisplayedFilters = require('./utils/getDisplayedFilters.js');
20
21
 
22
+ function _interopNamespace(e) {
23
+ if (e && e.__esModule) return e;
24
+ var n = Object.create(null);
25
+ if (e) {
26
+ Object.keys(e).forEach(function (k) {
27
+ if (k !== 'default') {
28
+ var d = Object.getOwnPropertyDescriptor(e, k);
29
+ Object.defineProperty(n, k, d.get ? d : {
30
+ enumerable: true,
31
+ get: function () { return e[k]; }
32
+ });
33
+ }
34
+ });
35
+ }
36
+ n.default = e;
37
+ return Object.freeze(n);
38
+ }
39
+
40
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
41
+
42
+ const USERS_PAGE_SIZE = 10;
21
43
  const ListPage = ()=>{
22
44
  const { formatMessage } = reactIntl.useIntl();
23
45
  const permissions = hooks.useTypedSelector((state)=>state.admin_app.permissions.settings);
24
- const { allowedActions: { canRead: canReadAuditLogs, canReadUsers }, isLoading: isLoadingRBAC } = useRBAC.useRBAC({
25
- ...permissions?.auditLogs,
26
- readUsers: permissions?.users.read || []
27
- });
46
+ const { allowedActions: { canRead: canReadAuditLogs }, isLoading: isLoadingRBAC } = useRBAC.useRBAC(permissions?.auditLogs?.read || []);
28
47
  const [{ query }, setQuery] = useQueryParams.useQueryParams();
29
- const { auditLogs, users, isLoading: isLoadingData, hasError } = useAuditLogsData.useAuditLogsData({
48
+ const [usersPageSize, setUsersPageSize] = React__namespace.useState(USERS_PAGE_SIZE);
49
+ const { auditLogs, users, usersPagination, isLoadingUsers, isLoading: isLoadingData, hasError } = useAuditLogsData.useAuditLogsData({
30
50
  canReadAuditLogs,
31
- canReadUsers
51
+ usersPageSize
32
52
  });
53
+ const { page = 1, pageCount = 1 } = usersPagination ?? {};
54
+ const hasMoreUsers = page < pageCount;
55
+ const handleLoadMoreUsers = ()=>{
56
+ if (hasMoreUsers) {
57
+ setUsersPageSize((prevPageSize)=>prevPageSize + USERS_PAGE_SIZE);
58
+ }
59
+ };
33
60
  const formatTimeStamp = useFormatTimeStamp.useFormatTimeStamp();
34
61
  const displayedFilters = getDisplayedFilters.getDisplayedFilters({
35
62
  formatMessage,
36
63
  users,
37
- canReadUsers
64
+ usersFilter: {
65
+ loading: isLoadingUsers,
66
+ hasMoreItems: hasMoreUsers,
67
+ onLoadMore: handleLoadMoreUsers
68
+ }
38
69
  });
39
70
  const headers = [
40
71
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.js","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id }, 'push', true)}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id }, 'push', true)}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal\n handleClose={() => setQuery({ id: '' }, 'remove', true)}\n logId={query.id.toString()}\n />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","canReadUsers","isLoading","isLoadingRBAC","useRBAC","auditLogs","readUsers","users","read","query","setQuery","useQueryParams","isLoadingData","hasError","useAuditLogsData","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.js","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst USERS_PAGE_SIZE = 10;\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs },\n isLoading: isLoadingRBAC,\n } = useRBAC(permissions?.auditLogs?.read || []);\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const [usersPageSize, setUsersPageSize] = React.useState(USERS_PAGE_SIZE);\n const {\n auditLogs,\n users,\n usersPagination,\n isLoadingUsers,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n usersPageSize,\n });\n\n const { page = 1, pageCount = 1 } = usersPagination ?? {};\n const hasMoreUsers = page < pageCount;\n\n const handleLoadMoreUsers = () => {\n if (hasMoreUsers) {\n setUsersPageSize((prevPageSize) => prevPageSize + USERS_PAGE_SIZE);\n }\n };\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({\n formatMessage,\n users,\n usersFilter: {\n loading: isLoadingUsers,\n hasMoreItems: hasMoreUsers,\n onLoadMore: handleLoadMoreUsers,\n },\n });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id }, 'push', true)}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id }, 'push', true)}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal\n handleClose={() => setQuery({ id: '' }, 'remove', true)}\n logId={query.id.toString()}\n />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["USERS_PAGE_SIZE","ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","isLoading","isLoadingRBAC","useRBAC","auditLogs","read","query","setQuery","useQueryParams","usersPageSize","setUsersPageSize","React","useState","users","usersPagination","isLoadingUsers","isLoadingData","hasError","useAuditLogsData","page","pageCount","hasMoreUsers","handleLoadMoreUsers","prevPageSize","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","usersFilter","loading","hasMoreItems","onLoadMore","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
2
3
  import { Typography, Flex, IconButton } from '@strapi/design-system';
3
4
  import { Eye } from '@strapi/icons';
4
5
  import { useIntl } from 'react-intl';
@@ -16,23 +17,33 @@ import { useFormatTimeStamp } from './hooks/useFormatTimeStamp.mjs';
16
17
  import { getDefaultMessage } from './utils/getActionTypesDefaultMessages.mjs';
17
18
  import { getDisplayedFilters } from './utils/getDisplayedFilters.mjs';
18
19
 
20
+ const USERS_PAGE_SIZE = 10;
19
21
  const ListPage = ()=>{
20
22
  const { formatMessage } = useIntl();
21
23
  const permissions = useTypedSelector((state)=>state.admin_app.permissions.settings);
22
- const { allowedActions: { canRead: canReadAuditLogs, canReadUsers }, isLoading: isLoadingRBAC } = useRBAC({
23
- ...permissions?.auditLogs,
24
- readUsers: permissions?.users.read || []
25
- });
24
+ const { allowedActions: { canRead: canReadAuditLogs }, isLoading: isLoadingRBAC } = useRBAC(permissions?.auditLogs?.read || []);
26
25
  const [{ query }, setQuery] = useQueryParams();
27
- const { auditLogs, users, isLoading: isLoadingData, hasError } = useAuditLogsData({
26
+ const [usersPageSize, setUsersPageSize] = React.useState(USERS_PAGE_SIZE);
27
+ const { auditLogs, users, usersPagination, isLoadingUsers, isLoading: isLoadingData, hasError } = useAuditLogsData({
28
28
  canReadAuditLogs,
29
- canReadUsers
29
+ usersPageSize
30
30
  });
31
+ const { page = 1, pageCount = 1 } = usersPagination ?? {};
32
+ const hasMoreUsers = page < pageCount;
33
+ const handleLoadMoreUsers = ()=>{
34
+ if (hasMoreUsers) {
35
+ setUsersPageSize((prevPageSize)=>prevPageSize + USERS_PAGE_SIZE);
36
+ }
37
+ };
31
38
  const formatTimeStamp = useFormatTimeStamp();
32
39
  const displayedFilters = getDisplayedFilters({
33
40
  formatMessage,
34
41
  users,
35
- canReadUsers
42
+ usersFilter: {
43
+ loading: isLoadingUsers,
44
+ hasMoreItems: hasMoreUsers,
45
+ onLoadMore: handleLoadMoreUsers
46
+ }
36
47
  });
37
48
  const headers = [
38
49
  {
@@ -1 +1 @@
1
- {"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs, canReadUsers },\n isLoading: isLoadingRBAC,\n } = useRBAC({\n ...permissions?.auditLogs,\n readUsers: permissions?.users.read || [],\n });\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const {\n auditLogs,\n users,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n canReadUsers,\n });\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({ formatMessage, users, canReadUsers });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id }, 'push', true)}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id }, 'push', true)}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal\n handleClose={() => setQuery({ id: '' }, 'remove', true)}\n logId={query.id.toString()}\n />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","canReadUsers","isLoading","isLoadingRBAC","useRBAC","auditLogs","readUsers","users","read","query","setQuery","useQueryParams","isLoadingData","hasError","useAuditLogsData","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":"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"}
1
+ {"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, IconButton, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../admin/src/components/Filters';\nimport { Layouts } from '../../../../../../../admin/src/components/Layouts/Layout';\nimport { Page } from '../../../../../../../admin/src/components/PageHelpers';\nimport { Pagination } from '../../../../../../../admin/src/components/Pagination';\nimport { Table } from '../../../../../../../admin/src/components/Table';\nimport { useTypedSelector } from '../../../../../../../admin/src/core/store/hooks';\nimport { useQueryParams } from '../../../../../../../admin/src/hooks/useQueryParams';\nimport { useRBAC } from '../../../../../../../admin/src/hooks/useRBAC';\nimport { AuditLog } from '../../../../../../../shared/contracts/audit-logs';\n\nimport { Modal } from './components/Modal';\nimport { useAuditLogsData } from './hooks/useAuditLogsData';\nimport { useFormatTimeStamp } from './hooks/useFormatTimeStamp';\nimport { getDefaultMessage } from './utils/getActionTypesDefaultMessages';\nimport { getDisplayedFilters } from './utils/getDisplayedFilters';\n\nconst USERS_PAGE_SIZE = 10;\n\nconst ListPage = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings);\n\n const {\n allowedActions: { canRead: canReadAuditLogs },\n isLoading: isLoadingRBAC,\n } = useRBAC(permissions?.auditLogs?.read || []);\n\n const [{ query }, setQuery] = useQueryParams<{ id?: AuditLog['id'] }>();\n const [usersPageSize, setUsersPageSize] = React.useState(USERS_PAGE_SIZE);\n const {\n auditLogs,\n users,\n usersPagination,\n isLoadingUsers,\n isLoading: isLoadingData,\n hasError,\n } = useAuditLogsData({\n canReadAuditLogs,\n usersPageSize,\n });\n\n const { page = 1, pageCount = 1 } = usersPagination ?? {};\n const hasMoreUsers = page < pageCount;\n\n const handleLoadMoreUsers = () => {\n if (hasMoreUsers) {\n setUsersPageSize((prevPageSize) => prevPageSize + USERS_PAGE_SIZE);\n }\n };\n\n const formatTimeStamp = useFormatTimeStamp();\n\n const displayedFilters = getDisplayedFilters({\n formatMessage,\n users,\n usersFilter: {\n loading: isLoadingUsers,\n hasMoreItems: hasMoreUsers,\n onLoadMore: handleLoadMoreUsers,\n },\n });\n\n const headers: Table.Header<AuditLog, object>[] = [\n {\n name: 'action',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.action',\n defaultMessage: 'Action',\n }),\n sortable: true,\n },\n {\n name: 'date',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.date',\n defaultMessage: 'Date',\n }),\n sortable: true,\n },\n {\n name: 'user',\n label: formatMessage({\n id: 'Settings.permissions.auditLogs.user',\n defaultMessage: 'User',\n }),\n sortable: false,\n // In this case, the passed parameter cannot and shouldn't be something else than User\n cellFormatter: ({ user }) => (user ? user.displayName : ''),\n },\n ];\n\n if (hasError) {\n return <Page.Error />;\n }\n\n const isLoading = isLoadingData || isLoadingRBAC;\n\n const { results = [] } = auditLogs ?? {};\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n }),\n }\n )}\n </Page.Title>\n <Layouts.Header\n title={formatMessage({\n id: 'global.auditLogs',\n defaultMessage: 'Audit Logs',\n })}\n subtitle={formatMessage({\n id: 'Settings.permissions.auditLogs.listview.header.subtitle',\n defaultMessage: 'Logs of all the activities that happened in your environment',\n })}\n />\n <Layouts.Action\n startActions={\n <Filters.Root options={displayedFilters}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n }\n />\n <Layouts.Content>\n <Table.Root rows={results} headers={headers} isLoading={isLoading}>\n <Table.Content>\n <Table.Head>\n {headers.map((header) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Empty />\n <Table.Loading />\n <Table.Body>\n {results.map((log) => (\n <Table.Row key={log.id} onClick={() => setQuery({ id: log.id }, 'push', true)}>\n {headers.map((header) => {\n const { name, cellFormatter } = header;\n\n switch (name) {\n case 'action':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatMessage(\n {\n id: `Settings.permissions.auditLogs.${log.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(log.action),\n },\n { model: (log.payload?.model as string) ?? '' }\n )}\n </Typography>\n </Table.Cell>\n );\n case 'date':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {formatTimeStamp(log.date)}\n </Typography>\n </Table.Cell>\n );\n case 'user':\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {cellFormatter ? cellFormatter(log, header) : '-'}\n </Typography>\n </Table.Cell>\n );\n default:\n return (\n <Table.Cell key={name}>\n <Typography textColor=\"neutral800\">\n {(log[name as keyof AuditLog] as string) || '-'}\n </Typography>\n </Table.Cell>\n );\n }\n })}\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n <IconButton\n onClick={() => setQuery({ id: log.id }, 'push', true)}\n withTooltip={false}\n label={formatMessage(\n { id: 'app.component.table.view', defaultMessage: '{target} details' },\n { target: `${log.action} action` }\n )}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n\n <Pagination.Root {...auditLogs?.pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {query?.id && (\n <Modal\n handleClose={() => setQuery({ id: '' }, 'remove', true)}\n logId={query.id.toString()}\n />\n )}\n </Page.Main>\n );\n};\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.auditLogs?.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["USERS_PAGE_SIZE","ListPage","formatMessage","useIntl","permissions","useTypedSelector","state","admin_app","settings","allowedActions","canRead","canReadAuditLogs","isLoading","isLoadingRBAC","useRBAC","auditLogs","read","query","setQuery","useQueryParams","usersPageSize","setUsersPageSize","React","useState","users","usersPagination","isLoadingUsers","isLoadingData","hasError","useAuditLogsData","page","pageCount","hasMoreUsers","handleLoadMoreUsers","prevPageSize","formatTimeStamp","useFormatTimeStamp","displayedFilters","getDisplayedFilters","usersFilter","loading","hasMoreItems","onLoadMore","headers","name","label","id","defaultMessage","sortable","cellFormatter","user","displayName","_jsx","Page","Error","results","_jsxs","Main","aria-busy","Title","Layouts","Header","title","subtitle","Action","startActions","Filters","Root","options","Trigger","Popover","zIndex","List","Content","Table","rows","Head","map","header","HeaderCell","Empty","Loading","Body","log","Row","onClick","Cell","Typography","textColor","action","getDefaultMessage","model","payload","date","e","stopPropagation","Flex","justifyContent","IconButton","withTooltip","target","variant","Eye","Pagination","pagination","PageSize","Links","Modal","handleClose","logId","toString","ProtectedListPage","main","Protect"],"mappings":"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"}
@@ -5,7 +5,7 @@ var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
  var Form = require('../../../../../../../../admin/src/components/Form.js');
7
7
 
8
- const ComboboxFilter = (props)=>{
8
+ const ComboboxFilter = ({ loading, hasMoreItems, onLoadMore, ...props })=>{
9
9
  const { formatMessage } = reactIntl.useIntl();
10
10
  const field = Form.useField(props.name);
11
11
  const ariaLabel = formatMessage({
@@ -19,6 +19,9 @@ const ComboboxFilter = (props)=>{
19
19
  "aria-label": ariaLabel,
20
20
  value: field.value,
21
21
  onChange: handleChange,
22
+ loading: loading,
23
+ hasMoreItems: hasMoreItems,
24
+ onLoadMore: onLoadMore,
22
25
  children: props.options?.map((opt)=>{
23
26
  const value = typeof opt === 'string' ? opt : opt.value;
24
27
  const label = typeof opt === 'string' ? opt : opt.label;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxFilter.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,aAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,cAAA,CAACC,qBAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,cAAA,CAACO,2BAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"ComboboxFilter.js","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport interface ComboboxFilterProps extends Filters.ValueInputProps {\n loading?: boolean;\n hasMoreItems?: boolean;\n onLoadMore?: () => void;\n}\n\nexport const ComboboxFilter = ({\n loading,\n hasMoreItems,\n onLoadMore,\n ...props\n}: ComboboxFilterProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox\n aria-label={ariaLabel}\n value={field.value}\n onChange={handleChange}\n loading={loading}\n hasMoreItems={hasMoreItems}\n onLoadMore={onLoadMore}\n >\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","loading","hasMoreItems","onLoadMore","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;;;AAYO,MAAMA,cAAAA,GAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,UAAU,EACV,GAAGC,KAAAA,EACiB,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,aAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,cAAA,CAACC,qBAAAA,EAAAA;QACCC,YAAAA,EAAYR,SAAAA;AACZI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAClBC,QAAAA,EAAUF,YAAAA;QACVZ,OAAAA,EAASA,OAAAA;QACTC,YAAAA,EAAcA,YAAAA;QACdC,UAAAA,EAAYA,UAAAA;kBAEXC,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,cAAA,CAACO,2BAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
@@ -3,7 +3,7 @@ import { Combobox, ComboboxOption } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
4
  import { useField } from '../../../../../../../../admin/src/components/Form.mjs';
5
5
 
6
- const ComboboxFilter = (props)=>{
6
+ const ComboboxFilter = ({ loading, hasMoreItems, onLoadMore, ...props })=>{
7
7
  const { formatMessage } = useIntl();
8
8
  const field = useField(props.name);
9
9
  const ariaLabel = formatMessage({
@@ -17,6 +17,9 @@ const ComboboxFilter = (props)=>{
17
17
  "aria-label": ariaLabel,
18
18
  value: field.value,
19
19
  onChange: handleChange,
20
+ loading: loading,
21
+ hasMoreItems: hasMoreItems,
22
+ onLoadMore: onLoadMore,
20
23
  children: props.options?.map((opt)=>{
21
24
  const value = typeof opt === 'string' ? opt : opt.value;
22
25
  const label = typeof opt === 'string' ? opt : opt.label;
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxFilter.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport const ComboboxFilter = (props: Filters.ValueInputProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox aria-label={ariaLabel} value={field.value} onChange={handleChange}>\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;AAMO,MAAMA,iBAAiB,CAACC,KAAAA,GAAAA;IAC7B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,QAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,GAAA,CAACC,QAAAA,EAAAA;QAASC,YAAAA,EAAYR,SAAAA;AAAWI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAAEC,QAAAA,EAAUF,YAAAA;kBAC5DT,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,GAAA,CAACO,cAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"ComboboxFilter.mjs","sources":["../../../../../../../../../../ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.tsx"],"sourcesContent":["import { Combobox, ComboboxOption } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../../../../../admin/src/components/Filters';\nimport { useField } from '../../../../../../../../admin/src/components/Form';\n\nexport interface ComboboxFilterProps extends Filters.ValueInputProps {\n loading?: boolean;\n hasMoreItems?: boolean;\n onLoadMore?: () => void;\n}\n\nexport const ComboboxFilter = ({\n loading,\n hasMoreItems,\n onLoadMore,\n ...props\n}: ComboboxFilterProps) => {\n const { formatMessage } = useIntl();\n const field = useField<string>(props.name);\n const ariaLabel = formatMessage({\n id: 'Settings.permissions.auditLogs.filter.aria-label',\n defaultMessage: 'Search and select an option to filter',\n });\n\n const handleChange = (value?: string) => {\n field.onChange(props.name, value);\n };\n\n return (\n <Combobox\n aria-label={ariaLabel}\n value={field.value}\n onChange={handleChange}\n loading={loading}\n hasMoreItems={hasMoreItems}\n onLoadMore={onLoadMore}\n >\n {props.options?.map((opt) => {\n const value = typeof opt === 'string' ? opt : opt.value;\n const label = typeof opt === 'string' ? opt : opt.label;\n return (\n <ComboboxOption key={value} value={value}>\n {label}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n"],"names":["ComboboxFilter","loading","hasMoreItems","onLoadMore","props","formatMessage","useIntl","field","useField","name","ariaLabel","id","defaultMessage","handleChange","value","onChange","_jsx","Combobox","aria-label","options","map","opt","label","ComboboxOption"],"mappings":";;;;;AAYO,MAAMA,cAAAA,GAAiB,CAAC,EAC7BC,OAAO,EACPC,YAAY,EACZC,UAAU,EACV,GAAGC,KAAAA,EACiB,GAAA;IACpB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMC,KAAAA,GAAQC,QAAAA,CAAiBJ,KAAAA,CAAMK,IAAI,CAAA;AACzC,IAAA,MAAMC,YAAYL,aAAAA,CAAc;QAC9BM,EAAAA,EAAI,kDAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,eAAe,CAACC,KAAAA,GAAAA;AACpBP,QAAAA,KAAAA,CAAMQ,QAAQ,CAACX,KAAAA,CAAMK,IAAI,EAAEK,KAAAA,CAAAA;AAC7B,IAAA,CAAA;AAEA,IAAA,qBACEE,GAAA,CAACC,QAAAA,EAAAA;QACCC,YAAAA,EAAYR,SAAAA;AACZI,QAAAA,KAAAA,EAAOP,MAAMO,KAAK;QAClBC,QAAAA,EAAUF,YAAAA;QACVZ,OAAAA,EAASA,OAAAA;QACTC,YAAAA,EAAcA,YAAAA;QACdC,UAAAA,EAAYA,UAAAA;kBAEXC,KAAAA,CAAMe,OAAO,EAAEC,GAAAA,CAAI,CAACC,GAAAA,GAAAA;AACnB,YAAA,MAAMP,QAAQ,OAAOO,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIP,KAAK;AACvD,YAAA,MAAMQ,QAAQ,OAAOD,GAAAA,KAAQ,QAAA,GAAWA,GAAAA,GAAMA,IAAIC,KAAK;AACvD,YAAA,qBACEN,GAAA,CAACO,cAAAA,EAAAA;gBAA2BT,KAAAA,EAAOA,KAAAA;AAChCQ,gBAAAA,QAAAA,EAAAA;AADkBR,aAAAA,EAAAA,KAAAA,CAAAA;AAIzB,QAAA,CAAA;;AAGN;;;;"}