@strapi/admin 5.57.0 → 5.59.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.js +10 -9
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.mjs +10 -9
- package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +57 -12
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +57 -12
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +3 -1
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +3 -1
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +5 -1
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +5 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +2 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +2 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Pagination.js +7 -6
- package/dist/admin/admin/src/components/Pagination.js.map +1 -1
- package/dist/admin/admin/src/components/Pagination.mjs +7 -6
- package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +2 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +2 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +6 -12
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +7 -13
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +3 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +3 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js +14 -0
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs +14 -0
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +2 -1
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +2 -1
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +6 -12
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +6 -12
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +10 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +10 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js +4 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs +4 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js +2 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +6 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +6 -5
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs +4 -4
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +7 -58
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +7 -58
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js +217 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs +195 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js +185 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs +162 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js +342 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs +320 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +9 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +9 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +15 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +15 -9
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +5 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +5 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +4 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +4 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +18 -3
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +18 -3
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/admin.js +11 -1
- package/dist/admin/admin/src/services/admin.js.map +1 -1
- package/dist/admin/admin/src/services/admin.mjs +11 -2
- package/dist/admin/admin/src/services/admin.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +71 -4
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +71 -4
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/eu.json.js +1 -1
- package/dist/admin/admin/src/translations/eu.json.mjs +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.js +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.js.map +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.mjs +1 -1
- package/dist/admin/admin/src/utils/browserStrapi.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js +7 -6
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs +7 -6
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +24 -0
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +24 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +2 -1
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +2 -1
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +52 -22
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +53 -23
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js +16 -29
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs +18 -31
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js +473 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs +471 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js +2 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs +2 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
- package/dist/admin/index.js +1 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/shared/utils/auth-cookie-path.js +13 -10
- package/dist/admin/shared/utils/auth-cookie-path.js.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-path.mjs +13 -10
- package/dist/admin/shared/utils/auth-cookie-path.mjs.map +1 -1
- package/dist/admin/shared/utils/get-project-type.js +49 -0
- package/dist/admin/shared/utils/get-project-type.js.map +1 -0
- package/dist/admin/shared/utils/get-project-type.mjs +46 -0
- package/dist/admin/shared/utils/get-project-type.mjs.map +1 -0
- package/dist/admin/src/components/Filters.d.ts +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/constants.d.ts +10 -0
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/DiagnosticSnapshotModal.d.ts +12 -0
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.d.ts +14 -0
- package/dist/admin/src/pages/Settings/pages/ApplicationInfo/components/SupportCard.d.ts +2 -0
- package/dist/admin/src/services/admin.d.ts +2 -2
- package/dist/admin/src/types/permissions.d.ts +1 -0
- package/dist/admin/src/utils/cookies.d.ts +7 -6
- package/dist/admin/src/utils/getFetchClient.d.ts +25 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +29 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +6 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.d.ts +2 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.d.ts +2 -0
- package/dist/ee/server/src/audit-logs/entitlements.d.ts +8 -0
- package/dist/ee/server/src/audit-logs/entitlements.d.ts.map +1 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +16 -0
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/admin.d.ts +36 -10
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +36 -10
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +36 -10
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/services/seat-enforcement.d.ts.map +1 -1
- package/dist/ee/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/entitlements.js +25 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.js.map +1 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.mjs +23 -0
- package/dist/server/ee/server/src/audit-logs/entitlements.mjs.map +1 -0
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +20 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +19 -9
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/utils/csv.js +3 -3
- package/dist/server/ee/server/src/audit-logs/utils/csv.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/utils/csv.mjs +3 -3
- package/dist/server/ee/server/src/audit-logs/utils/csv.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js +76 -3
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +76 -3
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +28 -10
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +28 -10
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +2 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +2 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
- package/dist/server/ee/server/src/validation/role.js +4 -2
- package/dist/server/ee/server/src/validation/role.js.map +1 -1
- package/dist/server/ee/server/src/validation/role.mjs +4 -2
- package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
- package/dist/server/server/src/ai/services/ai.js.map +1 -1
- package/dist/server/server/src/ai/services/ai.mjs.map +1 -1
- package/dist/server/server/src/audit-logs/auth.js +72 -0
- package/dist/server/server/src/audit-logs/auth.js.map +1 -0
- package/dist/server/server/src/audit-logs/auth.mjs +67 -0
- package/dist/server/server/src/audit-logs/auth.mjs.map +1 -0
- package/dist/server/server/src/config/admin-actions.js +7 -0
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs +7 -0
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +17 -12
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +17 -12
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authentication.js +34 -8
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +34 -8
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/register.js +4 -0
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs +4 -0
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin.js +18 -0
- package/dist/server/server/src/routes/admin.js.map +1 -1
- package/dist/server/server/src/routes/admin.mjs +18 -0
- package/dist/server/server/src/routes/admin.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +4 -8
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs +4 -8
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js +4 -2
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs +4 -3
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js +4 -0
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs +4 -0
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/debug-dump.js +173 -0
- package/dist/server/server/src/services/debug-dump.js.map +1 -0
- package/dist/server/server/src/services/debug-dump.mjs +166 -0
- package/dist/server/server/src/services/debug-dump.mjs.map +1 -0
- package/dist/server/server/src/services/index.js +3 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +3 -1
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.js.map +1 -1
- package/dist/server/server/src/services/permission/rename-fields.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +8 -5
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +8 -5
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/utils/debug-dump/redact.js +197 -0
- package/dist/server/server/src/utils/debug-dump/redact.js.map +1 -0
- package/dist/server/server/src/utils/debug-dump/redact.mjs +194 -0
- package/dist/server/server/src/utils/debug-dump/redact.mjs.map +1 -0
- package/dist/server/server/src/validation/admin-tokens.js +4 -4
- package/dist/server/server/src/validation/admin-tokens.js.map +1 -1
- package/dist/server/server/src/validation/admin-tokens.mjs +4 -4
- package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/api-tokens.js +4 -4
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs +4 -4
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js +6 -4
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs +6 -4
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/server/src/validation/transfer/token.js +4 -4
- package/dist/server/server/src/validation/transfer/token.js.map +1 -1
- package/dist/server/server/src/validation/transfer/token.mjs +4 -4
- package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
- package/dist/server/shared/utils/auth-cookie-path.js +13 -10
- package/dist/server/shared/utils/auth-cookie-path.js.map +1 -1
- package/dist/server/shared/utils/auth-cookie-path.mjs +13 -10
- package/dist/server/shared/utils/auth-cookie-path.mjs.map +1 -1
- package/dist/server/shared/utils/get-project-type.js +49 -0
- package/dist/server/shared/utils/get-project-type.js.map +1 -0
- package/dist/server/shared/utils/get-project-type.mjs +46 -0
- package/dist/server/shared/utils/get-project-type.mjs.map +1 -0
- package/dist/server/shared/utils/session-auth.js +70 -3
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/shared/utils/session-auth.mjs +70 -4
- package/dist/server/shared/utils/session-auth.mjs.map +1 -1
- package/dist/server/src/ai/services/ai.d.ts.map +1 -1
- package/dist/server/src/audit-logs/auth.d.ts +72 -0
- package/dist/server/src/audit-logs/auth.d.ts.map +1 -0
- package/dist/server/src/config/admin-actions.d.ts.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +3 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +8 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts +6 -0
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +2 -0
- package/dist/server/src/services/constants.d.ts.map +1 -1
- package/dist/server/src/services/debug-dump.d.ts +9 -0
- package/dist/server/src/services/debug-dump.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +5 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/rename-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/utils/debug-dump/redact.d.ts +8 -0
- package/dist/server/src/utils/debug-dump/redact.d.ts.map +1 -0
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +106 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/transfer.d.ts.map +1 -1
- package/dist/shared/utils/__tests__/get-project-type.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/get-project-type.test.d.ts.map +1 -0
- package/dist/shared/utils/auth-cookie-path.d.ts +13 -10
- package/dist/shared/utils/auth-cookie-path.d.ts.map +1 -1
- package/dist/shared/utils/get-project-type.d.ts +37 -0
- package/dist/shared/utils/get-project-type.d.ts.map +1 -0
- package/dist/shared/utils/session-auth.d.ts +16 -0
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +8 -8
- package/dist/admin/admin/src/utils/getProjectType.js +0 -22
- package/dist/admin/admin/src/utils/getProjectType.js.map +0 -1
- package/dist/admin/admin/src/utils/getProjectType.mjs +0 -20
- package/dist/admin/admin/src/utils/getProjectType.mjs.map +0 -1
- package/dist/admin/src/utils/getProjectType.d.ts +0 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\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 {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, object>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE')\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\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 {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, object>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;;AAEkG,2GAE5FA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,qCAAAA,EAAAA;AACpD,IAAA,MAAM,CAACC,aAAAA,EAAeC,cAAAA,CAAe,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAMC,cAAcC,sBAAAA,CAAiB,CAACC,QAAUA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAAA;AAC3E,IAAA,MAAM,EACJI,cAAAA,EAAgB,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,EAClD,GAAGC,eAAAA,CAAQR,WAAAA,CAAYS,QAAQ,EAAEC,KAAAA,CAAAA;AAClC,IAAA,MAAMC,QAAAA,GAAWC,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGC,0BAAAA,EAAAA;AACnB,IAAA,MAAM,CAACC,sBAAAA,EAAwBC,yBAAAA,CAA0B,GAAGtB,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAC3E,IAAA,MAAM,CAACsB,WAAAA,EAAaC,cAAAA,CAAe,GAAGxB,gBAAAA,CAAMC,QAAQ,CAAkC,EAAE,CAAA;AACxF,IAAA,MAAM,EAAEwB,IAAI,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,mBAAAA,CAAcC,aAAAA,CAAGC,KAAK,CAACX,MAAAA,EAAQ;QAAEY,iBAAAA,EAAmB;AAAK,KAAA,CAAA,CAAA;IAC9F,MAAM,EAAEC,MAAMC,WAAW,EAAE,GAAGC,YAAAA,CAAQ,YAAA,EAAc,CAACC,IAAAA,GAASA,IAAAA,CAAAA;IAC9D,MAAM,EAAEC,UAAU,SAAExB,OAAAA,GAAQ,EAAE,EAAE,GAAGa,QAAQ,EAAC;IAE5C,MAAMY,YAAAA,GAAeC,2BAAAA,CACnBC,6BAAAA,EACA,UAEI,CAAA,MAAM,oDAAO,4FAAA,KAAyF,EACtGC,cAAc,CAAA;AAGpB,IAAA,MAAMC,UAAUC,aAAAA,CAAcC,GAAG,CAAC,CAACC,UAAY;AAC7C,YAAA,GAAGA,MAAM;YACTC,KAAAA,EAAO5B,aAAAA,CAAc2B,OAAOC,KAAK;SACnC,CAAA,CAAA;AAEA,IAAA,MAAMC,QAAQ7B,aAAAA,CAAc;QAC1B8B,EAAAA,EAAI,cAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;QACnBlD,cAAAA,CAAe,CAACmD,OAAS,CAACA,IAAAA,CAAAA;AAC5B,IAAA,CAAA;IAEA,MAAM,CAACC,UAAU,GAAGC,gCAAAA,EAAAA;AACpB,IAAA,MAAMC,kBAAkB,OAAOC,GAAAA,GAAAA;QAC7B,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMJ,SAAAA,CAAU;AAAEG,gBAAAA;AAAI,aAAA,CAAA;AAElC,YAAA,IAAI,WAAWC,GAAAA,EAAK;gBAClBxC,kBAAAA,CAAmB;oBACjByC,IAAAA,EAAM,QAAA;oBACNC,OAAAA,EAAS7D,cAAAA,CAAe2D,IAAIG,KAAK;AACnC,iBAAA,CAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAE,OAAM;YACN3C,kBAAAA,CAAmB;gBACjByC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASxC,aAAAA,CAAc;oBACrB8B,EAAAA,EAAI,cAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,MAAMW,cAAAA,GAAiB,CAACZ,EAAAA,GAAiC,IAAA;AACvD,YAAA,IAAItC,OAAAA,EAAS;AACXI,gBAAAA,QAAAA,CAASkC,GAAGa,QAAQ,EAAA,CAAA;AACtB,YAAA;AACF,QAAA,CAAA;IAEA,MAAMC,iBAAAA,GAAoB,CAACd,EAAAA,GAAiC,UAAA;YAC1DvB,cAAAA,CAAe;AAACuB,gBAAAA;AAAG,aAAA,CAAA;YACnBzB,yBAAAA,CAA0B,IAAA,CAAA;AAC5B,QAAA,CAAA;AAEA,IAAA,MAAMwC,aAAAA,GAAgB,UAAA;AACpB,QAAA,MAAMT,eAAAA,CAAgB9B,WAAAA,CAAAA;QACtBD,yBAAAA,CAA0B,KAAA,CAAA;AAC5B,IAAA,CAAA;;AAGA,IAAA,IAAI,CAACe,YAAAA,EAAc;QACjB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,IAAIX,OAAAA,EAAS;QACX,qBAAOqC,cAAA,CAACC,iBAAKC,KAAK,EAAA,EAAA,CAAA;AACpB,IAAA;IAEA,qBACEC,eAAA,CAACF,iBAAKG,IAAI,EAAA;QAACC,WAAAA,EAAWzC,SAAAA;;AACpB,0BAAAoC,cAAA,CAACC,iBAAKK,KAAK,EAAA;0BACRpD,aAAAA,CACC;oBAAE8B,EAAAA,EAAI,oBAAA;oBAAsBC,cAAAA,EAAgB;iBAAoB,EAChE;oBACEsB,IAAAA,EAAM;AACR,iBAAA;;AAGJ,0BAAAP,cAAA,CAACQ,eAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EAAelE,2BAAawD,cAAA,CAAC1B,YAAAA,EAAAA;oBAAaqC,OAAAA,EAASzB;;gBACnDH,KAAAA,EAAOA,KAAAA;AACP6B,gBAAAA,QAAAA,EAAU1D,aAAAA,CAAc;oBACtB8B,EAAAA,EAAI,qDAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;AAEF,0BAAAe,cAAA,CAACQ,eAAQK,MAAM,EAAA;gBACbC,YAAAA,gBACEX,eAAA,CAAAY,mBAAA,EAAA;;sCACEf,cAAA,CAACgB,uBAAAA,EAAAA;AACClC,4BAAAA,KAAAA,EAAO5B,aAAAA,CACL;gCAAE8B,EAAAA,EAAI,4BAAA;gCAA8BC,cAAAA,EAAgB;6BAAsB,EAC1E;gCAAEgC,MAAAA,EAAQlC;AAAM,6BAAA;;AAGpB,sCAAAoB,eAAA,CAACe,gBAAQC,IAAI,EAAA;4BAACC,OAAAA,EAASC,OAAAA;;AACrB,8CAAArB,cAAA,CAACkB,gBAAQI,OAAO,EAAA,EAAA,CAAA;AAChB,8CAAAtB,cAAA,CAACkB,gBAAQK,OAAO,EAAA;oCAACC,MAAAA,EAAQ;;AACzB,8CAAAxB,cAAA,CAACkB,gBAAQO,IAAI,EAAA,EAAA;;;;;;AAKrB,0BAAAtB,eAAA,CAACK,eAAQkB,OAAO,EAAA;;AACd,kCAAAvB,eAAA,CAACwB,YAAMR,IAAI,EAAA;wBAACS,IAAAA,EAAM/E,OAAAA;wBAAO6B,OAAAA,EAASA,OAAAA;;AAChC,0CAAAsB,cAAA,CAAC2B,YAAME,SAAS,EAAA,EAAA,CAAA;AAChB,0CAAA1B,eAAA,CAACwB,YAAMD,OAAO,EAAA;;AACZ,kDAAAvB,eAAA,CAACwB,YAAMG,IAAI,EAAA;;4CACRrF,SAAAA,iBAAYuD,cAAA,CAAC2B,WAAAA,CAAMI,kBAAkB,EAAA,EAAA,CAAA,GAAM,IAAA;AAC3CrD,4CAAAA,OAAAA,CAAQE,GAAG,CAAC,CAACC,MAAAA,iBACZmB,cAAA,CAAC2B,YAAMK,UAAU,EAAA;AAAoB,oDAAA,GAAGnD;AAAjBA,iDAAAA,EAAAA,MAAAA,CAAO0B,IAAI,CAAA;;;AAGtC,kDAAAP,cAAA,CAAC2B,YAAMM,KAAK,EAAA,EAAA,CAAA;AACZ,kDAAAjC,cAAA,CAAC2B,YAAMO,OAAO,EAAA,EAAA,CAAA;AACd,kDAAAlC,cAAA,CAAC2B,YAAMQ,IAAI,EAAA;AACRtF,wCAAAA,QAAAA,EAAAA,OAAAA,CAAM+B,GAAG,CAAC,CAACX,IAAAA,iBACVkC,eAAA,CAACwB,YAAMS,GAAG,EAAA;gDAERzB,OAAAA,EAASf,cAAAA,CAAe3B,KAAKe,EAAE,CAAA;AAC/BqD,gDAAAA,MAAAA,EAAQ3F,UAAU,SAAA,GAAY,SAAA;;oDAE7BD,SAAAA,iBAAYuD,cAAA,CAAC2B,YAAMW,YAAY,EAAA;AAACtD,wDAAAA,EAAAA,EAAIf,KAAKe;AAAS,qDAAA,CAAA,GAAA,IAAA;oDAClDN,OAAAA,CAAQE,GAAG,CAAC,CAAC,EAAE2D,aAAa,EAAEhC,IAAI,EAAE,GAAGiC,IAAAA,EAAM,GAAA;wDAC5C,qBACExC,cAAA,CAAC2B,YAAMc,IAAI,EAAA;sEACR,OAAOF,aAAAA,KAAkB,UAAA,GACxBA,aAAAA,CAActE,IAAAA,EAAM;AAAEsC,gEAAAA,IAAAA;AAAM,gEAAA,GAAGiC;AAAK,6DAAA,CAAA;0EAGpCxC,cAAA,CAAC0C,uBAAAA,EAAAA;gEAAWC,SAAAA,EAAU,YAAA;0EAAc1E,IAAI,CAACsC,KAAK,IAAI;;AALrCA,yDAAAA,EAAAA,IAAAA,CAAAA;AASrB,oDAAA,CAAA,CAAA;oDACC7D,OAAAA,IAAWD,SAAAA,iBACVuD,cAAA,CAAC2B,WAAAA,CAAMc,IAAI,EAAA;wDAAC9B,OAAAA,EAAS,CAACiC,CAAAA,GAAMA,CAAAA,CAAEC,eAAe,EAAA;AAC3C,wDAAA,QAAA,gBAAA1C,eAAA,CAAC2C,iBAAAA,EAAAA;4DAAKC,cAAAA,EAAe,KAAA;;AAClBrG,gEAAAA,OAAAA,iBACCsD,cAAA,CAACgD,uBAAAA,EAAAA;oEACCC,GAAAA,EAAKC,sBAAAA;oEACLC,EAAAA,EAAIlF,IAAAA,CAAKe,EAAE,CAACa,QAAQ,EAAA;AACpBf,oEAAAA,KAAAA,EAAO5B,aAAAA,CACL;wEAAE8B,EAAAA,EAAI,0BAAA;wEAA4BC,cAAAA,EAAgB;qEAAgB,EAClE;AAAEgC,wEAAAA,MAAAA,EAAQmC,sBAAAA,CAAenF,IAAAA;AAAM,qEAAA,CAAA;oEAEjCoF,OAAAA,EAAQ,OAAA;AAER,oEAAA,QAAA,gBAAArD,cAAA,CAACsD,YAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA,IAAA;AACH7G,gEAAAA,SAAAA,IAAayB,WAAAA,EAAac,EAAAA,KAAOf,IAAAA,CAAKe,EAAE,iBACvCgB,cAAA,CAACgD,uBAAAA,EAAAA;oEACCrC,OAAAA,EAASb,iBAAAA,CAAkB7B,KAAKe,EAAE,CAAA;AAClCF,oEAAAA,KAAAA,EAAO5B,aAAAA,CACL;wEAAE8B,EAAAA,EAAI,sBAAA;wEAAwBC,cAAAA,EAAgB;qEAAkB,EAChE;AAAEgC,wEAAAA,MAAAA,EAAQmC,sBAAAA,CAAenF,IAAAA;AAAM,qEAAA,CAAA;oEAEjCoF,OAAAA,EAAQ,OAAA;AAER,oEAAA,QAAA,gBAAArD,cAAA,CAACuD,WAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA;;;AAGN,qDAAA,CAAA,GAAA;;AA/CCtF,6CAAAA,EAAAA,IAAAA,CAAKe,EAAE,CAAA;;;;;;AAqDtB,kCAAAmB,eAAA,CAACqD,sBAAWrC,IAAI,EAAA;AAAE,wBAAA,GAAG9C,UAAU;;AAC7B,0CAAA2B,cAAA,CAACwD,sBAAWC,QAAQ,EAAA,EAAA,CAAA;AACpB,0CAAAzD,cAAA,CAACwD,sBAAWE,KAAK,EAAA,EAAA;;;;;AAGpB3H,YAAAA,aAAAA,kBAAiBiE,cAAA,CAAC2D,qBAAAA,EAAAA;gBAAUC,QAAAA,EAAU1E;;AACvC,0BAAAc,cAAA,CAAC6D,oBAAO1C,IAAI,EAAA;gBAAC2C,IAAAA,EAAMxG,sBAAAA;gBAAwByG,YAAAA,EAAcxG,yBAAAA;AACvD,gBAAA,QAAA,gBAAAyC,cAAA,CAACgE,2BAAAA,EAAAA;oBAAcC,SAAAA,EAAWlE;;;;;AAIlC;AAEA,MAAMpB,aAAAA,GAEF;AACF,IAAA;QACE4B,IAAAA,EAAM,WAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,sCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,qCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO;YAAEE,EAAAA,EAAI,kCAAA;YAAoCC,cAAAA,EAAgB;AAAQ,SAAA;QACzEiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,kCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU,KAAA;QACV3B,aAAAA,CAAAA,CAAc,EAAE4B,KAAK,EAAE,EAAA;AACrB,YAAA,qBACEnE,cAAA,CAAC0C,uBAAAA,EAAAA;gBAAWC,SAAAA,EAAU,YAAA;0BAAcwB,KAAAA,CAAMvF,GAAG,CAAC,CAACwF,IAAAA,GAASA,KAAK7D,IAAI,CAAA,CAAE8D,IAAI,CAAC,KAAA;;AAE5E,QAAA;AACF,KAAA;AACA,IAAA;QACE9D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,qCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,wCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU,KAAA;QACV3B,aAAAA,CAAAA,CAAc,EAAE+B,QAAQ,EAAE,EAAA;AACxB,YAAA,qBACEtE,cAAA,CAAC8C,iBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAA9C,cAAA,CAACuE,mBAAAA,EAAAA;oBAAOC,IAAAA,EAAK,GAAA;AAAInB,oBAAAA,OAAAA,EAASiB,WAAW,SAAA,GAAY,QAAA;AAC/C,oBAAA,QAAA,gBAAAtE,cAAA,CAAC0C,uBAAAA,EAAAA;wBAAWO,GAAAA,EAAI,MAAA;wBAAOI,OAAAA,EAAQ,OAAA;wBAAQoB,UAAAA,EAAW,MAAA;AAC/CH,wBAAAA,QAAAA,EAAAA,QAAAA,GAAW,QAAA,GAAW;;;;AAKjC,QAAA;AACF;AACD,CAAA;AAED,MAAMjD,OAAAA,GAAU;AACd,IAAA;QACEd,IAAAA,EAAM,WAAA;QACNzB,KAAAA,EAAO,WAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,UAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO,OAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,UAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,aAAA;QACPW,IAAAA,EAAM;AACR;AACD,CAAA;AAED;;AAEkG;AAGlG,MAAMiF,QAAAA,GAAW,IAAA;AACf,IAAA,MAAMC,aAAAA,GAAgBpG,2BAAAA,CACpB5C,UAAAA,EACA;AAEG,QAAA,CAAA,MAAM,oDAAO,2EAAA,KAAwE,EACnFiJ,cAAc,CAAA;;AAIrB,IAAA,IAAI,CAACD,aAAAA,EAAe;QAClB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAO3E,cAAA,CAAC2E,aAAAA,EAAAA,EAAAA,CAAAA;AACV;AAEA;;AAEkG,2GAE5FE,iBAAAA,GAAoB,IAAA;IACxB,MAAM1I,WAAAA,GAAcC,sBAAAA,CAAiB,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACS,QAAQ,EAAEC,KAAAA,CAAMiI,IAAAA,CAAAA;IAE5F,qBACE9E,cAAA,CAACC,iBAAK8E,OAAO,EAAA;QAAC5I,WAAAA,EAAaA,WAAAA;AACzB,QAAA,QAAA,gBAAA6D,cAAA,CAAC0E,QAAAA,EAAAA,EAAAA;;AAGP;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE'\n )\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\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 {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, object>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Users/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Typography, Status, IconButton, Dialog } from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport * as qs from 'qs';\nimport { MessageDescriptor, useIntl } from 'react-intl';\nimport { NavLink, useLocation, useNavigate } from 'react-router-dom';\n\nimport { SanitizedAdminUser } from '../../../../../../shared/contracts/shared';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Filters } from '../../../../components/Filters';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { Pagination } from '../../../../components/Pagination';\nimport { SearchInput } from '../../../../components/SearchInput';\nimport { Table } from '../../../../components/Table';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useAuth } from '../../../../features/Auth';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useAdminUsers, useDeleteManyUsersMutation } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\n\nimport { CreateActionCE } from './components/CreateActionCE';\nimport { ModalForm } from './components/NewUserForm';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPageCE = () => {\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const [isModalOpened, setIsModalOpen] = React.useState(false);\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const {\n allowedActions: { canCreate, canDelete, canRead },\n } = useRBAC(permissions.settings?.users);\n const navigate = useNavigate();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { search } = useLocation();\n const [showDeleteConfirmation, setShowDeleteConfirmation] = React.useState(false);\n const [idsToDelete, setIdsToDelete] = React.useState<Array<SanitizedAdminUser['id']>>([]);\n const { data, isError, isLoading } = useAdminUsers(qs.parse(search, { ignoreQueryPrefix: true }));\n const { user: currentUser } = useAuth('ListPageCE', (auth) => auth);\n const { pagination, users = [] } = data ?? {};\n\n const CreateAction = useEnterprise(\n CreateActionCE,\n async () =>\n (\n await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE')\n ).CreateActionEE\n );\n\n const headers = TABLE_HEADERS.map((header) => ({\n ...header,\n label: formatMessage(header.label),\n }));\n\n const title = formatMessage({\n id: 'global.users',\n defaultMessage: 'Users',\n });\n\n const handleToggle = () => {\n setIsModalOpen((prev) => !prev);\n };\n\n const [deleteAll] = useDeleteManyUsersMutation();\n const handleDeleteAll = async (ids: Array<SanitizedAdminUser['id']>) => {\n try {\n const res = await deleteAll({ ids });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'global.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const handleRowClick = (id: SanitizedAdminUser['id']) => () => {\n if (canRead) {\n navigate(id.toString());\n }\n };\n\n const handleDeleteClick = (id: SanitizedAdminUser['id']) => async () => {\n setIdsToDelete([id]);\n setShowDeleteConfirmation(true);\n };\n\n const confirmDelete = async () => {\n await handleDeleteAll(idsToDelete);\n setShowDeleteConfirmation(false);\n };\n\n // block rendering until the EE component is fully loaded\n if (!CreateAction) {\n return null;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Main aria-busy={isLoading}>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Users',\n }\n )}\n </Page.Title>\n <Layouts.Header\n primaryAction={canCreate && <CreateAction onClick={handleToggle} />}\n title={title}\n subtitle={formatMessage({\n id: 'Settings.permissions.users.listview.header.subtitle',\n defaultMessage: 'All the users who have access to the Strapi admin panel',\n })}\n />\n <Layouts.Action\n startActions={\n <>\n <SearchInput\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: title }\n )}\n />\n <Filters.Root options={FILTERS}>\n <Filters.Trigger />\n <Filters.Popover zIndex={499} />\n <Filters.List />\n </Filters.Root>\n </>\n }\n />\n <Layouts.Content>\n <Table.Root rows={users} headers={headers}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n {canDelete ? <Table.HeaderCheckboxCell /> : null}\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 {users.map((user) => (\n <Table.Row\n key={user.id}\n onClick={handleRowClick(user.id)}\n cursor={canRead ? 'pointer' : 'default'}\n >\n {canDelete ? <Table.CheckboxCell id={user.id} /> : null}\n {headers.map(({ cellFormatter, name, ...rest }) => {\n return (\n <Table.Cell key={name}>\n {typeof cellFormatter === 'function' ? (\n cellFormatter(user, { name, ...rest })\n ) : (\n // @ts-expect-error – name === \"roles\" has the data value of `AdminRole[]` but the header has a cellFormatter value so this shouldn't be called.\n <Typography textColor=\"neutral800\">{user[name] || '-'}</Typography>\n )}\n </Table.Cell>\n );\n })}\n {canRead || canDelete ? (\n <Table.Cell onClick={(e) => e.stopPropagation()}>\n <Flex justifyContent=\"end\">\n {canRead ? (\n <IconButton\n tag={NavLink}\n to={user.id.toString()}\n label={formatMessage(\n { id: 'app.component.table.edit', defaultMessage: 'Edit {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n ) : null}\n {canDelete && currentUser?.id !== user.id ? (\n <IconButton\n onClick={handleDeleteClick(user.id)}\n label={formatMessage(\n { id: 'global.delete-target', defaultMessage: 'Delete {target}' },\n { target: getDisplayName(user) }\n )}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n ) : null}\n </Flex>\n </Table.Cell>\n ) : null}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root {...pagination}>\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Layouts.Content>\n {isModalOpened && <ModalForm onToggle={handleToggle} />}\n <Dialog.Root open={showDeleteConfirmation} onOpenChange={setShowDeleteConfirmation}>\n <ConfirmDialog onConfirm={confirmDelete} />\n </Dialog.Root>\n </Page.Main>\n );\n};\n\nconst TABLE_HEADERS: Array<\n Omit<Table.Header<SanitizedAdminUser, object>, 'label'> & { label: MessageDescriptor }\n> = [\n {\n name: 'firstname',\n label: {\n id: 'Settings.permissions.users.firstname',\n defaultMessage: 'Firstname',\n },\n sortable: true,\n },\n {\n name: 'lastname',\n label: {\n id: 'Settings.permissions.users.lastname',\n defaultMessage: 'Lastname',\n },\n sortable: true,\n },\n {\n name: 'email',\n label: { id: 'Settings.permissions.users.email', defaultMessage: 'Email' },\n sortable: true,\n },\n {\n name: 'roles',\n label: {\n id: 'Settings.permissions.users.roles',\n defaultMessage: 'Roles',\n },\n sortable: false,\n cellFormatter({ roles }) {\n return (\n <Typography textColor=\"neutral800\">{roles.map((role) => role.name).join(',\\n')}</Typography>\n );\n },\n },\n {\n name: 'username',\n label: {\n id: 'Settings.permissions.users.username',\n defaultMessage: 'Username',\n },\n sortable: true,\n },\n {\n name: 'isActive',\n label: {\n id: 'Settings.permissions.users.user-status',\n defaultMessage: 'User status',\n },\n sortable: false,\n cellFormatter({ isActive }) {\n return (\n <Flex>\n <Status size=\"S\" variant={isActive ? 'success' : 'danger'}>\n <Typography tag=\"span\" variant=\"omega\" fontWeight=\"bold\">\n {isActive ? 'Active' : 'Inactive'}\n </Typography>\n </Status>\n </Flex>\n );\n },\n },\n];\n\nconst FILTERS = [\n {\n name: 'firstname',\n label: 'Firstname',\n type: 'string',\n },\n {\n name: 'lastname',\n label: 'Lastname',\n type: 'string',\n },\n {\n name: 'email',\n label: 'Email',\n type: 'email',\n },\n {\n name: 'username',\n label: 'Username',\n type: 'string',\n },\n {\n name: 'isActive',\n label: 'Active user',\n type: 'boolean',\n },\n] satisfies Filters.Filter[];\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\n// component which determines whether this page should render the CE or EE page\nconst ListPage = () => {\n const UsersListPage = useEnterprise(\n ListPageCE,\n async () =>\n // eslint-disable-next-line import/no-cycle\n (await import('../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/ListPage'))\n .UserListPageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!UsersListPage) {\n return null;\n }\n\n return <UsersListPage />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.users.read);\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ProtectedListPage, ListPage, ListPageCE };\n"],"names":["ListPageCE","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isModalOpened","setIsModalOpen","React","useState","permissions","useTypedSelector","state","admin_app","allowedActions","canCreate","canDelete","canRead","useRBAC","settings","users","navigate","useNavigate","toggleNotification","useNotification","formatMessage","useIntl","search","useLocation","showDeleteConfirmation","setShowDeleteConfirmation","idsToDelete","setIdsToDelete","data","isError","isLoading","useAdminUsers","qs","parse","ignoreQueryPrefix","user","currentUser","useAuth","auth","pagination","CreateAction","useEnterprise","CreateActionCE","CreateActionEE","headers","TABLE_HEADERS","map","header","label","title","id","defaultMessage","handleToggle","prev","deleteAll","useDeleteManyUsersMutation","handleDeleteAll","ids","res","type","message","error","handleRowClick","toString","handleDeleteClick","confirmDelete","_jsx","Page","Error","_jsxs","Main","aria-busy","Title","name","Layouts","Header","primaryAction","onClick","subtitle","Action","startActions","_Fragment","SearchInput","target","Filters","Root","options","FILTERS","Trigger","Popover","zIndex","List","Content","Table","rows","ActionBar","Head","HeaderCheckboxCell","HeaderCell","Empty","Loading","Body","Row","cursor","CheckboxCell","cellFormatter","rest","Cell","Typography","textColor","e","stopPropagation","Flex","justifyContent","IconButton","tag","NavLink","to","getDisplayName","variant","Pencil","Trash","Pagination","PageSize","Links","ModalForm","onToggle","Dialog","open","onOpenChange","ConfirmDialog","onConfirm","sortable","roles","role","join","isActive","Status","size","fontWeight","ListPage","UsersListPage","UserListPageEE","ProtectedListPage","read","Protect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BA;;AAEkG,2GAE5FA,UAAAA,GAAa,IAAA;AACjB,IAAA,MAAM,EAAEC,uBAAAA,EAAyBC,cAAc,EAAE,GAAGC,kBAAAA,EAAAA;AACpD,IAAA,MAAM,CAACC,aAAAA,EAAeC,cAAAA,CAAe,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AACvD,IAAA,MAAMC,cAAcC,gBAAAA,CAAiB,CAACC,QAAUA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAAA;AAC3E,IAAA,MAAM,EACJI,cAAAA,EAAgB,EAAEC,SAAS,EAAEC,SAAS,EAAEC,OAAO,EAAE,EAClD,GAAGC,OAAAA,CAAQR,WAAAA,CAAYS,QAAQ,EAAEC,KAAAA,CAAAA;AAClC,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;IACjB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,MAAM,EAAE,GAAGC,WAAAA,EAAAA;AACnB,IAAA,MAAM,CAACC,sBAAAA,EAAwBC,yBAAAA,CAA0B,GAAGtB,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAC3E,IAAA,MAAM,CAACsB,WAAAA,EAAaC,cAAAA,CAAe,GAAGxB,KAAAA,CAAMC,QAAQ,CAAkC,EAAE,CAAA;AACxF,IAAA,MAAM,EAAEwB,IAAI,EAAEC,OAAO,EAAEC,SAAS,EAAE,GAAGC,aAAAA,CAAcC,EAAAA,CAAGC,KAAK,CAACX,MAAAA,EAAQ;QAAEY,iBAAAA,EAAmB;AAAK,KAAA,CAAA,CAAA;IAC9F,MAAM,EAAEC,MAAMC,WAAW,EAAE,GAAGC,OAAAA,CAAQ,YAAA,EAAc,CAACC,IAAAA,GAASA,IAAAA,CAAAA;IAC9D,MAAM,EAAEC,UAAU,EAAExB,KAAAA,GAAQ,EAAE,EAAE,GAAGa,QAAQ,EAAC;IAE5C,MAAMY,YAAAA,GAAeC,aAAAA,CACnBC,cAAAA,EACA,UAEI,CAAA,MAAM,OAAO,6FAAA,CAAyF,EACtGC,cAAc,CAAA;AAGpB,IAAA,MAAMC,UAAUC,aAAAA,CAAcC,GAAG,CAAC,CAACC,UAAY;AAC7C,YAAA,GAAGA,MAAM;YACTC,KAAAA,EAAO5B,aAAAA,CAAc2B,OAAOC,KAAK;SACnC,CAAA,CAAA;AAEA,IAAA,MAAMC,QAAQ7B,aAAAA,CAAc;QAC1B8B,EAAAA,EAAI,cAAA;QACJC,cAAAA,EAAgB;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,YAAAA,GAAe,IAAA;QACnBlD,cAAAA,CAAe,CAACmD,OAAS,CAACA,IAAAA,CAAAA;AAC5B,IAAA,CAAA;IAEA,MAAM,CAACC,UAAU,GAAGC,0BAAAA,EAAAA;AACpB,IAAA,MAAMC,kBAAkB,OAAOC,GAAAA,GAAAA;QAC7B,IAAI;YACF,MAAMC,GAAAA,GAAM,MAAMJ,SAAAA,CAAU;AAAEG,gBAAAA;AAAI,aAAA,CAAA;AAElC,YAAA,IAAI,WAAWC,GAAAA,EAAK;gBAClBxC,kBAAAA,CAAmB;oBACjByC,IAAAA,EAAM,QAAA;oBACNC,OAAAA,EAAS7D,cAAAA,CAAe2D,IAAIG,KAAK;AACnC,iBAAA,CAAA;AACF,YAAA;AACF,QAAA,CAAA,CAAE,OAAM;YACN3C,kBAAAA,CAAmB;gBACjByC,IAAAA,EAAM,QAAA;AACNC,gBAAAA,OAAAA,EAASxC,aAAAA,CAAc;oBACrB8B,EAAAA,EAAI,cAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;AACF,aAAA,CAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,MAAMW,cAAAA,GAAiB,CAACZ,EAAAA,GAAiC,IAAA;AACvD,YAAA,IAAItC,OAAAA,EAAS;AACXI,gBAAAA,QAAAA,CAASkC,GAAGa,QAAQ,EAAA,CAAA;AACtB,YAAA;AACF,QAAA,CAAA;IAEA,MAAMC,iBAAAA,GAAoB,CAACd,EAAAA,GAAiC,UAAA;YAC1DvB,cAAAA,CAAe;AAACuB,gBAAAA;AAAG,aAAA,CAAA;YACnBzB,yBAAAA,CAA0B,IAAA,CAAA;AAC5B,QAAA,CAAA;AAEA,IAAA,MAAMwC,aAAAA,GAAgB,UAAA;AACpB,QAAA,MAAMT,eAAAA,CAAgB9B,WAAAA,CAAAA;QACtBD,yBAAAA,CAA0B,KAAA,CAAA;AAC5B,IAAA,CAAA;;AAGA,IAAA,IAAI,CAACe,YAAAA,EAAc;QACjB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,IAAIX,OAAAA,EAAS;QACX,qBAAOqC,GAAA,CAACC,KAAKC,KAAK,EAAA,EAAA,CAAA;AACpB,IAAA;IAEA,qBACEC,IAAA,CAACF,KAAKG,IAAI,EAAA;QAACC,WAAAA,EAAWzC,SAAAA;;AACpB,0BAAAoC,GAAA,CAACC,KAAKK,KAAK,EAAA;0BACRpD,aAAAA,CACC;oBAAE8B,EAAAA,EAAI,oBAAA;oBAAsBC,cAAAA,EAAgB;iBAAoB,EAChE;oBACEsB,IAAAA,EAAM;AACR,iBAAA;;AAGJ,0BAAAP,GAAA,CAACQ,QAAQC,MAAM,EAAA;AACbC,gBAAAA,aAAAA,EAAelE,2BAAawD,GAAA,CAAC1B,YAAAA,EAAAA;oBAAaqC,OAAAA,EAASzB;;gBACnDH,KAAAA,EAAOA,KAAAA;AACP6B,gBAAAA,QAAAA,EAAU1D,aAAAA,CAAc;oBACtB8B,EAAAA,EAAI,qDAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;;AAEF,0BAAAe,GAAA,CAACQ,QAAQK,MAAM,EAAA;gBACbC,YAAAA,gBACEX,IAAA,CAAAY,QAAA,EAAA;;sCACEf,GAAA,CAACgB,WAAAA,EAAAA;AACClC,4BAAAA,KAAAA,EAAO5B,aAAAA,CACL;gCAAE8B,EAAAA,EAAI,4BAAA;gCAA8BC,cAAAA,EAAgB;6BAAsB,EAC1E;gCAAEgC,MAAAA,EAAQlC;AAAM,6BAAA;;AAGpB,sCAAAoB,IAAA,CAACe,QAAQC,IAAI,EAAA;4BAACC,OAAAA,EAASC,OAAAA;;AACrB,8CAAArB,GAAA,CAACkB,QAAQI,OAAO,EAAA,EAAA,CAAA;AAChB,8CAAAtB,GAAA,CAACkB,QAAQK,OAAO,EAAA;oCAACC,MAAAA,EAAQ;;AACzB,8CAAAxB,GAAA,CAACkB,QAAQO,IAAI,EAAA,EAAA;;;;;;AAKrB,0BAAAtB,IAAA,CAACK,QAAQkB,OAAO,EAAA;;AACd,kCAAAvB,IAAA,CAACwB,MAAMR,IAAI,EAAA;wBAACS,IAAAA,EAAM/E,KAAAA;wBAAO6B,OAAAA,EAASA,OAAAA;;AAChC,0CAAAsB,GAAA,CAAC2B,MAAME,SAAS,EAAA,EAAA,CAAA;AAChB,0CAAA1B,IAAA,CAACwB,MAAMD,OAAO,EAAA;;AACZ,kDAAAvB,IAAA,CAACwB,MAAMG,IAAI,EAAA;;4CACRrF,SAAAA,iBAAYuD,GAAA,CAAC2B,KAAAA,CAAMI,kBAAkB,EAAA,EAAA,CAAA,GAAM,IAAA;AAC3CrD,4CAAAA,OAAAA,CAAQE,GAAG,CAAC,CAACC,MAAAA,iBACZmB,GAAA,CAAC2B,MAAMK,UAAU,EAAA;AAAoB,oDAAA,GAAGnD;AAAjBA,iDAAAA,EAAAA,MAAAA,CAAO0B,IAAI,CAAA;;;AAGtC,kDAAAP,GAAA,CAAC2B,MAAMM,KAAK,EAAA,EAAA,CAAA;AACZ,kDAAAjC,GAAA,CAAC2B,MAAMO,OAAO,EAAA,EAAA,CAAA;AACd,kDAAAlC,GAAA,CAAC2B,MAAMQ,IAAI,EAAA;AACRtF,wCAAAA,QAAAA,EAAAA,KAAAA,CAAM+B,GAAG,CAAC,CAACX,IAAAA,iBACVkC,IAAA,CAACwB,MAAMS,GAAG,EAAA;gDAERzB,OAAAA,EAASf,cAAAA,CAAe3B,KAAKe,EAAE,CAAA;AAC/BqD,gDAAAA,MAAAA,EAAQ3F,UAAU,SAAA,GAAY,SAAA;;oDAE7BD,SAAAA,iBAAYuD,GAAA,CAAC2B,MAAMW,YAAY,EAAA;AAACtD,wDAAAA,EAAAA,EAAIf,KAAKe;AAAS,qDAAA,CAAA,GAAA,IAAA;oDAClDN,OAAAA,CAAQE,GAAG,CAAC,CAAC,EAAE2D,aAAa,EAAEhC,IAAI,EAAE,GAAGiC,IAAAA,EAAM,GAAA;wDAC5C,qBACExC,GAAA,CAAC2B,MAAMc,IAAI,EAAA;sEACR,OAAOF,aAAAA,KAAkB,UAAA,GACxBA,aAAAA,CAActE,IAAAA,EAAM;AAAEsC,gEAAAA,IAAAA;AAAM,gEAAA,GAAGiC;AAAK,6DAAA,CAAA;0EAGpCxC,GAAA,CAAC0C,UAAAA,EAAAA;gEAAWC,SAAAA,EAAU,YAAA;0EAAc1E,IAAI,CAACsC,KAAK,IAAI;;AALrCA,yDAAAA,EAAAA,IAAAA,CAAAA;AASrB,oDAAA,CAAA,CAAA;oDACC7D,OAAAA,IAAWD,SAAAA,iBACVuD,GAAA,CAAC2B,KAAAA,CAAMc,IAAI,EAAA;wDAAC9B,OAAAA,EAAS,CAACiC,CAAAA,GAAMA,CAAAA,CAAEC,eAAe,EAAA;AAC3C,wDAAA,QAAA,gBAAA1C,IAAA,CAAC2C,IAAAA,EAAAA;4DAAKC,cAAAA,EAAe,KAAA;;AAClBrG,gEAAAA,OAAAA,iBACCsD,GAAA,CAACgD,UAAAA,EAAAA;oEACCC,GAAAA,EAAKC,OAAAA;oEACLC,EAAAA,EAAIlF,IAAAA,CAAKe,EAAE,CAACa,QAAQ,EAAA;AACpBf,oEAAAA,KAAAA,EAAO5B,aAAAA,CACL;wEAAE8B,EAAAA,EAAI,0BAAA;wEAA4BC,cAAAA,EAAgB;qEAAgB,EAClE;AAAEgC,wEAAAA,MAAAA,EAAQmC,cAAAA,CAAenF,IAAAA;AAAM,qEAAA,CAAA;oEAEjCoF,OAAAA,EAAQ,OAAA;AAER,oEAAA,QAAA,gBAAArD,GAAA,CAACsD,MAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA,IAAA;AACH7G,gEAAAA,SAAAA,IAAayB,WAAAA,EAAac,EAAAA,KAAOf,IAAAA,CAAKe,EAAE,iBACvCgB,GAAA,CAACgD,UAAAA,EAAAA;oEACCrC,OAAAA,EAASb,iBAAAA,CAAkB7B,KAAKe,EAAE,CAAA;AAClCF,oEAAAA,KAAAA,EAAO5B,aAAAA,CACL;wEAAE8B,EAAAA,EAAI,sBAAA;wEAAwBC,cAAAA,EAAgB;qEAAkB,EAChE;AAAEgC,wEAAAA,MAAAA,EAAQmC,cAAAA,CAAenF,IAAAA;AAAM,qEAAA,CAAA;oEAEjCoF,OAAAA,EAAQ,OAAA;AAER,oEAAA,QAAA,gBAAArD,GAAA,CAACuD,KAAAA,EAAAA,EAAAA;AAED,iEAAA,CAAA,GAAA;;;AAGN,qDAAA,CAAA,GAAA;;AA/CCtF,6CAAAA,EAAAA,IAAAA,CAAKe,EAAE,CAAA;;;;;;AAqDtB,kCAAAmB,IAAA,CAACqD,WAAWrC,IAAI,EAAA;AAAE,wBAAA,GAAG9C,UAAU;;AAC7B,0CAAA2B,GAAA,CAACwD,WAAWC,QAAQ,EAAA,EAAA,CAAA;AACpB,0CAAAzD,GAAA,CAACwD,WAAWE,KAAK,EAAA,EAAA;;;;;AAGpB3H,YAAAA,aAAAA,kBAAiBiE,GAAA,CAAC2D,SAAAA,EAAAA;gBAAUC,QAAAA,EAAU1E;;AACvC,0BAAAc,GAAA,CAAC6D,OAAO1C,IAAI,EAAA;gBAAC2C,IAAAA,EAAMxG,sBAAAA;gBAAwByG,YAAAA,EAAcxG,yBAAAA;AACvD,gBAAA,QAAA,gBAAAyC,GAAA,CAACgE,aAAAA,EAAAA;oBAAcC,SAAAA,EAAWlE;;;;;AAIlC;AAEA,MAAMpB,aAAAA,GAEF;AACF,IAAA;QACE4B,IAAAA,EAAM,WAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,sCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,qCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO;YAAEE,EAAAA,EAAI,kCAAA;YAAoCC,cAAAA,EAAgB;AAAQ,SAAA;QACzEiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,kCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU,KAAA;QACV3B,aAAAA,CAAAA,CAAc,EAAE4B,KAAK,EAAE,EAAA;AACrB,YAAA,qBACEnE,GAAA,CAAC0C,UAAAA,EAAAA;gBAAWC,SAAAA,EAAU,YAAA;0BAAcwB,KAAAA,CAAMvF,GAAG,CAAC,CAACwF,IAAAA,GAASA,KAAK7D,IAAI,CAAA,CAAE8D,IAAI,CAAC,KAAA;;AAE5E,QAAA;AACF,KAAA;AACA,IAAA;QACE9D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,qCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU;AACZ,KAAA;AACA,IAAA;QACE3D,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO;YACLE,EAAAA,EAAI,wCAAA;YACJC,cAAAA,EAAgB;AAClB,SAAA;QACAiF,QAAAA,EAAU,KAAA;QACV3B,aAAAA,CAAAA,CAAc,EAAE+B,QAAQ,EAAE,EAAA;AACxB,YAAA,qBACEtE,GAAA,CAAC8C,IAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAA9C,GAAA,CAACuE,MAAAA,EAAAA;oBAAOC,IAAAA,EAAK,GAAA;AAAInB,oBAAAA,OAAAA,EAASiB,WAAW,SAAA,GAAY,QAAA;AAC/C,oBAAA,QAAA,gBAAAtE,GAAA,CAAC0C,UAAAA,EAAAA;wBAAWO,GAAAA,EAAI,MAAA;wBAAOI,OAAAA,EAAQ,OAAA;wBAAQoB,UAAAA,EAAW,MAAA;AAC/CH,wBAAAA,QAAAA,EAAAA,QAAAA,GAAW,QAAA,GAAW;;;;AAKjC,QAAA;AACF;AACD,CAAA;AAED,MAAMjD,OAAAA,GAAU;AACd,IAAA;QACEd,IAAAA,EAAM,WAAA;QACNzB,KAAAA,EAAO,WAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,UAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,OAAA;QACNzB,KAAAA,EAAO,OAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,UAAA;QACPW,IAAAA,EAAM;AACR,KAAA;AACA,IAAA;QACEc,IAAAA,EAAM,UAAA;QACNzB,KAAAA,EAAO,aAAA;QACPW,IAAAA,EAAM;AACR;AACD,CAAA;AAED;;AAEkG;AAGlG,MAAMiF,QAAAA,GAAW,IAAA;AACf,IAAA,MAAMC,aAAAA,GAAgBpG,aAAAA,CACpB5C,UAAAA,EACA;AAEG,QAAA,CAAA,MAAM,OAAO,4EAAA,CAAwE,EACnFiJ,cAAc,CAAA;;AAIrB,IAAA,IAAI,CAACD,aAAAA,EAAe;QAClB,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAO3E,GAAA,CAAC2E,aAAAA,EAAAA,EAAAA,CAAAA;AACV;AAEA;;AAEkG,2GAE5FE,iBAAAA,GAAoB,IAAA;IACxB,MAAM1I,WAAAA,GAAcC,gBAAAA,CAAiB,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,SAAS,CAACH,WAAW,CAACS,QAAQ,EAAEC,KAAAA,CAAMiI,IAAAA,CAAAA;IAE5F,qBACE9E,GAAA,CAACC,KAAK8E,OAAO,EAAA;QAAC5I,WAAAA,EAAaA,WAAAA;AACzB,QAAA,QAAA,gBAAA6D,GAAA,CAAC0E,QAAAA,EAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewUserForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NewUserForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm')\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm')\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE')\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NewUserForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm'\n )\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE'\n )\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NewUserForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Users/components/NewUserForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Grid,\n Modal,\n Typography,\n Breadcrumbs,\n Crumb,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { Form, type FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { useNotification } from '../../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\nimport { useCreateUserMutation } from '../../../../../services/users';\nimport { FormLayoutInputProps } from '../../../../../types/forms';\nimport { isBaseQueryError } from '../../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../../utils/translatedErrors';\n\nimport { MagicLinkCE } from './MagicLinkCE';\nimport { SelectRoles } from './SelectRoles';\n\nimport type { Data } from '@strapi/types';\n\ninterface ModalFormProps {\n onToggle: () => void;\n}\n\ntype FormLayout = FormLayoutInputProps[][];\n\nconst ModalForm = ({ onToggle }: ModalFormProps) => {\n const [currentStep, setStep] = React.useState<keyof typeof STEPPER>('create');\n const [registrationToken, setRegistrationToken] = React.useState('');\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n const roleLayout = useEnterprise<FormLayout, FormLayout, FormLayout>(\n ROLE_LAYOUT,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm')\n ).ROLE_LAYOUT,\n {\n combine(ceRoles, eeRoles) {\n return [...ceRoles, ...eeRoles];\n },\n\n defaultValue: [],\n }\n );\n\n const initialValues = useEnterprise<InitialData>(\n FORM_INITIAL_VALUES,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm')\n ).FORM_INITIAL_VALUES,\n {\n combine(ceValues, eeValues) {\n return {\n ...ceValues,\n ...eeValues,\n };\n },\n\n defaultValue: FORM_INITIAL_VALUES,\n }\n );\n const MagicLink = useEnterprise(\n MagicLinkCE,\n async () =>\n (\n await import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE')\n ).MagicLinkEE\n );\n\n const [createUser] = useCreateUserMutation();\n\n const headerTitle = formatMessage({\n id: 'Settings.permissions.users.create',\n defaultMessage: 'Invite new user',\n });\n\n const handleSubmit = async (body: InitialData, { setErrors }: FormHelpers<InitialData>) => {\n const res = await createUser({\n ...body,\n roles: body.roles ?? [],\n });\n\n if ('data' in res) {\n // NOTE: when enabling SSO, the user doesn't have to register and the token is undefined\n if (res.data.registrationToken) {\n setRegistrationToken(res.data.registrationToken);\n }\n\n goNext();\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n setErrors(formatValidationErrors(res.error));\n }\n }\n };\n\n const goNext = () => {\n if (next) {\n setStep(next);\n } else {\n onToggle();\n }\n };\n\n const { buttonSubmitLabel, isDisabled, next } = STEPPER[currentStep];\n\n // block rendering until the EE component is fully loaded\n if (!MagicLink) {\n return null;\n }\n\n return (\n <Modal.Root defaultOpen onOpenChange={onToggle}>\n <Modal.Content>\n <Modal.Header>\n {/**\n * TODO: this is not semantically correct and should be amended.\n */}\n <Breadcrumbs label={headerTitle}>\n <Crumb isCurrent>{headerTitle}</Crumb>\n </Breadcrumbs>\n </Modal.Header>\n <Form\n method={currentStep === 'create' ? 'POST' : 'PUT'}\n initialValues={initialValues ?? {}}\n onSubmit={handleSubmit}\n validationSchema={FORM_SCHEMA}\n >\n {({ isSubmitting }) => {\n return (\n <>\n <Modal.Body>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n {currentStep !== 'create' && (\n <MagicLink registrationToken={registrationToken} />\n )}\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.Users.ModalCreateBody.block-title.details',\n defaultMessage: 'User details',\n })}\n </Typography>\n <Box paddingTop={4}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Grid.Root gap={5}>\n {FORM_LAYOUT.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n m={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={formatMessage(field.placeholder)}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Flex>\n </Box>\n </Box>\n <Box>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'global.roles',\n defaultMessage: \"User's role\",\n })}\n </Typography>\n <Box paddingTop={4}>\n <Grid.Root gap={5}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <SelectRoles disabled={isDisabled} />\n </Grid.Item>\n {roleLayout.map((row) => {\n return row.map(({ size, ...field }) => {\n return (\n <Grid.Item\n key={field.name}\n col={size}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer\n {...field}\n disabled={isDisabled}\n label={formatMessage(field.label)}\n placeholder={\n field.placeholder\n ? formatMessage(field.placeholder)\n : undefined\n }\n hint={field.hint ? formatMessage(field.hint) : undefined}\n />\n </Grid.Item>\n );\n });\n })}\n </Grid.Root>\n </Box>\n </Box>\n </Flex>\n </Modal.Body>\n <Modal.Footer>\n <Button variant=\"tertiary\" onClick={onToggle} type=\"button\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n {currentStep === 'create' ? (\n <Button type=\"submit\" loading={isSubmitting}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n ) : (\n <Button type=\"button\" loading={isSubmitting} onClick={onToggle}>\n {formatMessage(buttonSubmitLabel)}\n </Button>\n )}\n </Modal.Footer>\n </>\n );\n }}\n </Form>\n </Modal.Content>\n </Modal.Root>\n );\n};\n\ninterface InitialData {\n firstname?: string;\n lastname?: string;\n email?: string;\n roles?: Data.ID[];\n useSSORegistration?: boolean;\n}\n\nconst FORM_INITIAL_VALUES = {\n firstname: '',\n lastname: '',\n email: '',\n roles: [],\n};\n\nconst ROLE_LAYOUT: FormLayout = [];\n\nconst FORM_LAYOUT = [\n [\n {\n label: {\n id: 'Auth.form.firstname.label',\n defaultMessage: 'First name',\n },\n name: 'firstname',\n placeholder: {\n id: 'Auth.form.firstname.placeholder',\n defaultMessage: 'e.g. Kai',\n },\n type: 'string' as const,\n size: 6,\n required: true,\n },\n {\n label: {\n id: 'Auth.form.lastname.label',\n defaultMessage: 'Last name',\n },\n name: 'lastname',\n placeholder: {\n id: 'Auth.form.lastname.placeholder',\n defaultMessage: 'e.g. Doe',\n },\n type: 'string' as const,\n size: 6,\n },\n ],\n [\n {\n label: {\n id: 'Auth.form.email.label',\n defaultMessage: 'Email',\n },\n name: 'email',\n placeholder: {\n id: 'Auth.form.email.placeholder',\n defaultMessage: 'e.g. kai.doe@strapi.io',\n },\n type: 'email' as const,\n size: 6,\n required: true,\n },\n ],\n] satisfies FormLayout;\n\nconst FORM_SCHEMA = yup.object().shape({\n firstname: yup\n .string()\n .trim()\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n lastname: yup.string(),\n email: yup\n .string()\n .email(translatedErrors.email)\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .nullable(),\n roles: yup\n .array()\n .min(1, {\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n })\n .required({\n id: translatedErrors.required.id,\n defaultMessage: 'This field is required',\n }),\n});\n\nconst STEPPER = {\n create: {\n buttonSubmitLabel: {\n id: 'app.containers.Users.ModalForm.footer.button-success',\n defaultMessage: 'Invite user',\n },\n isDisabled: false,\n next: 'magic-link',\n },\n 'magic-link': {\n buttonSubmitLabel: { id: 'global.finish', defaultMessage: 'Finish' },\n isDisabled: true,\n next: null,\n },\n} as const;\n\nexport { ModalForm };\nexport type { InitialData };\n"],"names":["ModalForm","onToggle","currentStep","setStep","React","useState","registrationToken","setRegistrationToken","formatMessage","useIntl","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","roleLayout","useEnterprise","ROLE_LAYOUT","combine","ceRoles","eeRoles","defaultValue","initialValues","FORM_INITIAL_VALUES","ceValues","eeValues","MagicLink","MagicLinkCE","MagicLinkEE","createUser","useCreateUserMutation","headerTitle","id","defaultMessage","handleSubmit","body","setErrors","res","roles","data","goNext","type","message","error","isBaseQueryError","name","next","buttonSubmitLabel","isDisabled","STEPPER","_jsx","Modal","Root","defaultOpen","onOpenChange","_jsxs","Content","Header","Breadcrumbs","label","Crumb","isCurrent","Form","method","onSubmit","validationSchema","FORM_SCHEMA","isSubmitting","_Fragment","Body","Flex","direction","alignItems","gap","Box","Typography","variant","tag","paddingTop","Grid","FORM_LAYOUT","map","row","size","field","Item","m","xs","InputRenderer","disabled","placeholder","col","SelectRoles","undefined","hint","Footer","Button","onClick","loading","firstname","lastname","email","required","yup","object","shape","string","trim","translatedErrors","nullable","array","min","create"],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ var reactIntl = require('react-intl');
|
|
|
7
7
|
var styledComponents = require('styled-components');
|
|
8
8
|
var Form = require('../../../../../components/Form.js');
|
|
9
9
|
|
|
10
|
+
const EMPTY_DISABLED_EVENTS = [];
|
|
11
|
+
const EMPTY_EVENTS = [];
|
|
12
|
+
const EMPTY_INPUT_VALUE = [];
|
|
10
13
|
const EventsRoot = ({ children })=>{
|
|
11
14
|
const { formatMessage } = reactIntl.useIntl();
|
|
12
15
|
const label = formatMessage({
|
|
@@ -189,7 +192,7 @@ const getCEEvents = ()=>{
|
|
|
189
192
|
]
|
|
190
193
|
};
|
|
191
194
|
};
|
|
192
|
-
const EventsRow = ({ disabledEvents =
|
|
195
|
+
const EventsRow = ({ disabledEvents = EMPTY_DISABLED_EVENTS, name, events = EMPTY_EVENTS, inputValue = EMPTY_INPUT_VALUE, handleSelect, handleSelectAll })=>{
|
|
193
196
|
const { formatMessage } = reactIntl.useIntl();
|
|
194
197
|
const enabledCheckboxes = events.filter((event)=>!disabledEvents.includes(event));
|
|
195
198
|
const hasSomeCheckboxSelected = inputValue.length > 0;
|