@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
package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n // Axios types Content-Type as AxiosHeaderValue (string | array | null | …); File#type only accepts string | undefined.\n const contentType = res.headers['content-type'];\n const mimeType =\n typeof contentType === 'string'\n ? contentType\n : Array.isArray(contentType)\n ? contentType[0]\n : contentType != null && typeof contentType !== 'object'\n ? String(contentType)\n : undefined;\n\n const file = new File([res.data], res.config.url ?? '', {\n type: mimeType,\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput type=\"url\" onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","contentType","headers","mimeType","Array","isArray","String","file","File","config","type","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>, Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n // Axios types Content-Type as AxiosHeaderValue (string | array | null | …); File#type only accepts string | undefined.\n const contentType = res.headers['content-type'];\n const mimeType =\n typeof contentType === 'string'\n ? contentType\n : Array.isArray(contentType)\n ? contentType[0]\n : contentType != null && typeof contentType !== 'object'\n ? String(contentType)\n : undefined;\n\n const file = new File([res.data], res.config.url ?? '', {\n type: mimeType,\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput type=\"url\" onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","contentType","headers","mimeType","Array","isArray","String","file","File","config","type","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
|
package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogoInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n // Axios types Content-Type as AxiosHeaderValue (string | array | null | …); File#type only accepts string | undefined.\n const contentType = res.headers['content-type'];\n const mimeType =\n typeof contentType === 'string'\n ? contentType\n : Array.isArray(contentType)\n ? contentType[0]\n : contentType != null && typeof contentType !== 'object'\n ? String(contentType)\n : undefined;\n\n const file = new File([res.data], res.config.url ?? '', {\n type: mimeType,\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput type=\"url\" onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","contentType","headers","mimeType","Array","isArray","String","file","File","config","type","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogoInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>, Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n // Axios types Content-Type as AxiosHeaderValue (string | array | null | …); File#type only accepts string | undefined.\n const contentType = res.headers['content-type'];\n const mimeType =\n typeof contentType === 'string'\n ? contentType\n : Array.isArray(contentType)\n ? contentType[0]\n : contentType != null && typeof contentType !== 'object'\n ? String(contentType)\n : undefined;\n\n const file = new File([res.data], res.config.url ?? '', {\n type: mimeType,\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput type=\"url\" onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","contentType","headers","mimeType","Array","isArray","String","file","File","config","type","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":";;;;;;;;;;;AAgDA,MAAM,CAACA,wBAAAA,EAA0BC,mBAAAA,CAAoB,GACnDC,aAAAA,CAAqC,WAAA,CAAA;AAevC,MAAMC,SAAAA,GAAY,CAAC,EACjBC,SAAS,EACTC,UAAU,EACVC,WAAW,EACXC,IAAI,EACJC,KAAK,EACLC,YAAY,EACG,GAAA;AACf,IAAA,MAAM,CAACC,UAAAA,EAAYC,aAAAA,CAAc,GAAGC,MAAMC,QAAQ,EAAA;AAClD,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGH,MAAMC,QAAQ,EAAA;IACpD,MAAM,EAAEG,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,WAAAA,GAAc,IAAA;QAClBP,aAAAA,CAAcQ,SAAAA,CAAAA;QACdJ,cAAAA,CAAeI,SAAAA,CAAAA;AACjB,IAAA,CAAA;IAEA,qBACEC,GAAA,CAACC,MAAMC,IAAI,EAAA;AACTC,QAAAA,IAAAA,EAAM,CAAC,CAACT,WAAAA;AACRU,QAAAA,YAAAA,EAAc,CAACC,KAAAA,GAAAA;AACb,YAAA,IAAIA,UAAU,KAAA,EAAO;AACnBP,gBAAAA,WAAAA,EAAAA;AACF,YAAA;AACF,QAAA,CAAA;AAEA,QAAA,QAAA,gBAAAQ,IAAA,CAAC1B,wBAAAA,EAAAA;YACCW,aAAAA,EAAeA,aAAAA;YACfD,UAAAA,EAAYA,UAAAA;YACZiB,QAAAA,EAAUZ,cAAAA;YACVa,OAAAA,EAASV,WAAAA;;8BAETE,GAAA,CAACS,aAAAA,EAAAA;oBACCrB,KAAAA,EAAOA,KAAAA;oBACPsB,aAAAA,EAAe,CAAA;oBACfvB,IAAAA,EAAMA,IAAAA;;;oBAGNwB,aAAAA,EAAc,EAAA;oBACdC,SAAAA,EAAU,EAAA;AACVC,oBAAAA,MAAAA,EAAQ,IAAA,CAAO,CAAA;AACfC,oBAAAA,UAAAA,EAAY,IAAA,CAAO,CAAA;AACnBC,oBAAAA,cAAAA,EAAgB9B,YAAY+B,IAAAA,IAAQ,UAAA;AACpCC,oBAAAA,OAAAA,gBACEX,IAAA,CAACY,eAAAA,EAAAA;;AACC,0CAAAlB,GAAA,CAACC,MAAMkB,OAAO,EAAA;AACZ,gCAAA,QAAA,gBAAAnB,GAAA,CAACoB,UAAAA,EAAAA;AACCC,oCAAAA,QAAAA,EAAU,CAACrC,SAAAA;AACXsC,oCAAAA,OAAAA,EAAS,IAAM3B,cAAAA,CAAe,QAAA,CAAA;AAC9BP,oCAAAA,KAAAA,EAAOQ,aAAAA,CAAc;wCACnB2B,EAAAA,EAAI,2DAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA,CAAA;AAEA,oCAAA,QAAA,gBAAAxB,GAAA,CAACyB,IAAAA,EAAAA,EAAAA;;;AAGJxC,4BAAAA,UAAAA,EAAYyC,qBACX1B,GAAA,CAACoB,UAAAA,EAAAA;AACCC,gCAAAA,QAAAA,EAAU,CAACrC,SAAAA;AACXsC,gCAAAA,OAAAA,EAAS,IAAMjC,YAAAA,CAAa,IAAA,CAAA;AAC5BD,gCAAAA,KAAAA,EAAOQ,aAAAA,CAAc;oCACnB2B,EAAAA,EAAI,0DAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;AAEA,gCAAA,QAAA,gBAAAxB,GAAA,CAAC2B,cAAAA,EAAAA,EAAAA;;;;AAMT,oBAAA,QAAA,gBAAA3B,GAAA,CAAC4B,aAAAA,EAAAA;AACCxC,wBAAAA,KAAAA,EAAOQ,aAAAA,CAAc;4BACnB2B,EAAAA,EAAI,yDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAxB,GAAA,CAAC6B,GAAAA,EAAAA;4BACCC,SAAAA,EAAU,KAAA;4BACVC,QAAAA,EAAS,KAAA;4BACTC,GAAAA,EAAI,KAAA;AACJC,4BAAAA,GAAAA,EAAKhD,YAAYyC,GAAAA,IAAOxC,WAAAA;AACxBgD,4BAAAA,GAAAA,EAAKtC,aAAAA,CAAc;gCACjB2B,EAAAA,EAAI,mDAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;AAIN,8BAAAlB,IAAA,CAACL,MAAMkC,OAAO,EAAA;;AACZ,sCAAAnC,GAAA,CAACC,MAAMmC,MAAM,EAAA;oDACXpC,GAAA,CAACC,MAAMoC,KAAK,EAAA;AACTzC,gCAAAA,QAAAA,EAAAA,aAAAA,CACCF,gBAAgB,QAAA,GACZ;oCACE6B,EAAAA,EAAI,iDAAA;oCACJC,cAAAA,EAAgB;iCAClB,GACA;oCACED,EAAAA,EAAI,kDAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA;;;wBAIT9B,WAAAA,KAAgB,QAAA,iBACfM,GAAA,CAACsC,aAAAA,EAAAA,EAAAA,CAAAA,iBAEDtC,GAAA,CAACuC,iBAAAA,EAAAA;4BAAkBlD,YAAAA,EAAcA;;;;;;;AAM7C;AAEA;;AAEkG,qGAElG,MAAMiD,aAAAA,GAAgB,IAAA;IACpB,MAAM,EAAE1C,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,qBACES,IAAA,CAACkC,KAAKtC,IAAI,EAAA;QAACuC,OAAAA,EAAQ,QAAA;QAASC,YAAAA,EAAa,UAAA;;0BACvC1C,GAAA,CAAC6B,GAAAA,EAAAA;gBAAIc,WAAAA,EAAa,CAAA;gBAAGC,YAAAA,EAAc,CAAA;wCACjCtC,IAAA,CAACkC,KAAKK,IAAI,EAAA;AACRC,oBAAAA,YAAAA,EAAYlD,aAAAA,CAAc;wBACxB2B,EAAAA,EAAI,oDAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;;AAEA,sCAAAxB,GAAA,CAACwC,KAAKrB,OAAO,EAAA;4BAAC4B,KAAAA,EAAM,UAAA;sCACjBnD,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,+DAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;AAEF,sCAAAxB,GAAA,CAACwC,KAAKrB,OAAO,EAAA;4BAAC4B,KAAAA,EAAM,KAAA;sCACjBnD,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,0DAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;AAIN,0BAAAxB,GAAA,CAACwC,KAAKL,OAAO,EAAA;gBAACY,KAAAA,EAAM,UAAA;AAClB,gBAAA,QAAA,gBAAA/C,GAAA,CAACgD,YAAAA,EAAAA,EAAAA;;AAEH,0BAAAhD,GAAA,CAACwC,KAAKL,OAAO,EAAA;gBAACY,KAAAA,EAAM,KAAA;AAClB,gBAAA,QAAA,gBAAA/C,GAAA,CAACiD,OAAAA,EAAAA,EAAAA;;;;AAIT,CAAA;AAEA;;AAEkG,qGAElG,MAAMA,OAAAA,GAAU,IAAA;IACd,MAAM,EAAErD,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACqD,OAAAA,EAASC,UAAAA,CAAW,GAAG3D,KAAAA,CAAMC,QAAQ,CAAC,EAAA,CAAA;AAC7C,IAAA,MAAM,CAAC2D,KAAAA,EAAOC,QAAAA,CAAS,GAAG7D,MAAMC,QAAQ,EAAA;IACxC,MAAM,EAAEF,aAAa,EAAEgB,QAAQ,EAAEC,OAAO,EAAE,GAAG3B,mBAAAA,CAAoB,SAAA,CAAA;AAEjE,IAAA,MAAMyE,eAA2C,CAACC,CAAAA,GAAAA;QAChDJ,UAAAA,CAAWI,CAAAA,CAAEC,MAAM,CAACT,KAAK,CAAA;AAC3B,IAAA,CAAA;AAEA,IAAA,MAAMU,eAAwD,OAAOC,KAAAA,GAAAA;AACnEA,QAAAA,KAAAA,CAAMC,cAAc,EAAA;AAEpB,QAAA,MAAMC,IAAAA,GAAO,IAAIC,QAAAA,CAASH,KAAAA,CAAMF,MAAM,CAAA;QAEtC,MAAM9B,GAAAA,GAAMkC,IAAAA,CAAKE,GAAG,CAAC,UAAA,CAAA;AAErB,QAAA,IAAI,CAACpC,GAAAA,EAAK;AACR,YAAA;AACF,QAAA;QAEA,IAAI;AACF,YAAA,MAAMqC,MAAM,MAAMC,KAAAA,CAAMF,GAAG,CAACpC,GAAAA,CAAIuC,QAAQ,EAAA,EAAI;gBAAEC,YAAAA,EAAc,MAAA;gBAAQC,OAAAA,EAAS;AAAK,aAAA,CAAA;;AAGlF,YAAA,MAAMC,WAAAA,GAAcL,GAAAA,CAAIM,OAAO,CAAC,cAAA,CAAe;AAC/C,YAAA,MAAMC,WACJ,OAAOF,WAAAA,KAAgB,WACnBA,WAAAA,GACAG,KAAAA,CAAMC,OAAO,CAACJ,WAAAA,CAAAA,GACZA,WAAW,CAAC,CAAA,CAAE,GACdA,WAAAA,IAAe,IAAA,IAAQ,OAAOA,WAAAA,KAAgB,QAAA,GAC5CK,OAAOL,WAAAA,CAAAA,GACPrE,SAAAA;YAEV,MAAM2E,IAAAA,GAAO,IAAIC,IAAAA,CAAK;AAACZ,gBAAAA,GAAAA,CAAIH;AAAK,aAAA,EAAEG,GAAAA,CAAIa,MAAM,CAAClD,GAAG,IAAI,EAAA,EAAI;gBACtDmD,IAAAA,EAAMP;AACR,aAAA,CAAA;YAEA,MAAMQ,KAAAA,GAAQ,MAAMC,kBAAAA,CAAmBL,IAAAA,CAAAA;YAEvCnF,aAAAA,CAAcuF,KAAAA,CAAAA;YACdvE,QAAAA,CAAS,SAAA,CAAA;AACX,QAAA,CAAA,CAAE,OAAOyE,GAAAA,EAAK;AACZ,YAAA,IAAIA,eAAeC,UAAAA,EAAY;AAC7B5B,gBAAAA,QAAAA,CACEzD,aAAAA,CAAc;oBACZ2B,EAAAA,EAAI,+DAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA,CAAA;YAEJ,CAAA,MAAO,IAAIwD,eAAeE,gBAAAA,EAAkB;gBAC1C7B,QAAAA,CAASzD,aAAAA,CAAcoF,GAAAA,CAAIG,cAAc,EAAE;oBAAEC,IAAAA,EAAMC,IAAAA;oBAAMC,SAAAA,EAAWC;AAAU,iBAAA,CAAA,CAAA;YAChF,CAAA,MAAO;gBACL,MAAMP,GAAAA;AACR,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACE1E,IAAA,CAACkF,MAAAA,EAAAA;QAAKC,QAAAA,EAAUhC,YAAAA;;0BACdzD,GAAA,CAAC6B,GAAAA,EAAAA;gBAAIc,WAAAA,EAAa,CAAA;gBAAGC,YAAAA,EAAc,CAAA;gBAAG8C,UAAAA,EAAY,CAAA;gBAAGC,aAAAA,EAAe,CAAA;wCAClErF,IAAA,CAACsF,MAAM1F,IAAI,EAAA;oBAACkD,KAAAA,EAAOA,KAAAA;oBAAOpC,IAAAA,EAAK,UAAA;;AAC7B,sCAAAhB,GAAA,CAAC4F,MAAMC,KAAK,EAAA;sCACTjG,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,sEAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFxB,GAAA,CAAC8F,SAAAA,EAAAA;4BAAUjB,IAAAA,EAAK,KAAA;4BAAMkB,QAAAA,EAAUzC,YAAAA;4BAAcP,KAAAA,EAAOG;;AACrD,sCAAAlD,GAAA,CAAC4F,MAAMI,KAAK,EAAA,EAAA;;;;AAGhB,0BAAA1F,IAAA,CAACL,MAAMgG,MAAM,EAAA;;kCACXjG,GAAA,CAACkG,MAAAA,EAAAA;wBAAO5E,OAAAA,EAASd,OAAAA;wBAASiC,OAAAA,EAAQ,UAAA;kCAC/B7C,aAAAA,CAAc;4BAAE2B,EAAAA,EAAI,8BAAA;4BAAgCC,cAAAA,EAAgB;AAAS,yBAAA;;kCAEhFxB,GAAA,CAACkG,MAAAA,EAAAA;wBAAOrB,IAAAA,EAAK,QAAA;kCACVjF,aAAAA,CAAc;4BACb2B,EAAAA,EAAI,sDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;;;;AAKV,CAAA;AAEA;;AAEkG,qGAElG,MAAMwB,YAAAA,GAAe,IAAA;IACnB,MAAM,EAAEpD,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACsG,QAAAA,EAAUC,WAAAA,CAAY,GAAG5G,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAC/C,IAAA,MAAM,CAAC4G,SAAAA,EAAWC,YAAAA,CAAa,GAAG9G,MAAMC,QAAQ,EAAA;IAChD,MAAM8G,QAAAA,GAAW/G,KAAAA,CAAMgH,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAMjF,EAAAA,GAAK/B,MAAMiH,KAAK,EAAA;IAEtB,MAAM,EAAElH,aAAa,EAAEgB,QAAQ,EAAEC,OAAO,EAAE,GAAG3B,mBAAAA,CAAoB,cAAA,CAAA;AAEjE,IAAA,MAAM6H,eAAAA,GAAkB,IAAA;QACtBN,WAAAA,CAAY,IAAA,CAAA;AACd,IAAA,CAAA;AACA,IAAA,MAAMO,eAAAA,GAAkB,IAAA;QACtBP,WAAAA,CAAY,KAAA,CAAA;AACd,IAAA,CAAA;AAEA,IAAA,MAAMQ,cAAsC,CAACrD,CAAAA,GAAAA;AAC3CA,QAAAA,CAAAA,CAAEI,cAAc,EAAA;QAChB4C,QAAAA,CAASM,OAAO,CAACC,KAAK,EAAA;AACxB,IAAA,CAAA;AAEA,IAAA,MAAMxD,YAAAA,GAAe,UAAA;AACnBqD,QAAAA,eAAAA,EAAAA;AAEA,QAAA,IAAI,CAACJ,QAAAA,CAASM,OAAO,CAACE,KAAK,EAAE;AAC3B,YAAA;AACF,QAAA;AAEA,QAAA,MAAM,CAACrC,IAAAA,CAAK,GAAG6B,QAAAA,CAASM,OAAO,CAACE,KAAK;QAErC,IAAI;YACF,MAAMjC,KAAAA,GAAQ,MAAMC,kBAAAA,CAAmBL,IAAAA,CAAAA;YACvCnF,aAAAA,CAAcuF,KAAAA,CAAAA;YACdvE,QAAAA,CAAS,SAAA,CAAA;AACX,QAAA,CAAA,CAAE,OAAOyE,GAAAA,EAAK;AACZ,YAAA,IAAIA,eAAeE,gBAAAA,EAAkB;gBACnCoB,YAAAA,CAAa1G,aAAAA,CAAcoF,GAAAA,CAAIG,cAAc,EAAE;oBAAEC,IAAAA,EAAMC,IAAAA;oBAAMC,SAAAA,EAAWC;AAAU,iBAAA,CAAA,CAAA;gBAClFgB,QAAAA,CAASM,OAAO,CAACG,KAAK,EAAA;YACxB,CAAA,MAAO;gBACL,MAAMhC,GAAAA;AACR,YAAA;AACF,QAAA;AACF,IAAA,CAAA;IAEA,qBACE1E,IAAA,CAAA2G,QAAA,EAAA;;0BACEjH,GAAA,CAACwF,MAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAxF,GAAA,CAAC6B,GAAAA,EAAAA;oBAAIc,WAAAA,EAAa,CAAA;oBAAGC,YAAAA,EAAc,CAAA;oBAAG8C,UAAAA,EAAY,CAAA;oBAAGC,aAAAA,EAAe,CAAA;4CAClE3F,GAAA,CAAC4F,MAAM1F,IAAI,EAAA;wBAACc,IAAAA,EAAMO,EAAAA;wBAAI6B,KAAAA,EAAOiD,SAAAA;AAC3B,wBAAA,QAAA,gBAAA/F,IAAA,CAAC4G,IAAAA,EAAAA;4BAAKC,SAAAA,EAAU,QAAA;4BAASC,UAAAA,EAAW,SAAA;4BAAUC,GAAAA,EAAK,CAAA;;8CACjD/G,IAAA,CAAC4G,IAAAA,EAAAA;oCACCxB,UAAAA,EAAY,CAAA;oCACZC,aAAAA,EAAe,CAAA;oCACf2B,SAAS,EAAA,IAAA;oCACTC,cAAAA,EAAe,QAAA;oCACfJ,SAAAA,EAAU,QAAA;AACVK,oCAAAA,UAAAA,EAAYrB,WAAW,YAAA,GAAe,YAAA;oCACtCsB,WAAAA,EAAatB,QAAAA,GAAW,YAAA,GAAeE,SAAAA,GAAY,WAAA,GAAc,YAAA;oCACjEqB,WAAAA,EAAY,QAAA;oCACZC,WAAAA,EAAY,KAAA;oCACZC,QAAAA,EAAS,UAAA;oCACTC,WAAAA,EAAanB,eAAAA;oCACboB,WAAAA,EAAanB,eAAAA;;sDAEb3G,GAAA,CAAC+H,UAAAA,EAAAA;4CAAWC,IAAAA,EAAK,YAAA;4CAAaC,KAAAA,EAAM,MAAA;4CAAOC,MAAAA,EAAO,MAAA;4CAAOC,aAAW,EAAA;;sDACpEnI,GAAA,CAAC6B,GAAAA,EAAAA;4CAAI6D,UAAAA,EAAY,CAAA;4CAAGC,aAAAA,EAAe,CAAA;AACjC,4CAAA,QAAA,gBAAA3F,GAAA,CAACoI,UAAAA,EAAAA;gDAAW3F,OAAAA,EAAQ,OAAA;gDAAQT,GAAAA,EAAI,OAAA;gDAAQqG,OAAAA,EAAS9G,EAAAA;0DAC9C3B,aAAAA,CAAc;oDACb2B,EAAAA,EAAI,2DAAA;oDACJC,cAAAA,EAAgB;AAClB,iDAAA;;;sDAGJxB,GAAA,CAAC6B,GAAAA,EAAAA;4CAAI+F,QAAAA,EAAS,UAAA;AACZ,4CAAA,QAAA,gBAAA5H,GAAA,CAACsI,SAAAA,EAAAA;gDACCC,MAAAA,EAAQC,eAAAA,CAAgBC,IAAI,CAAC,IAAA,CAAA;gDAC7B5D,IAAAA,EAAK,MAAA;gDACL7D,IAAAA,EAAK,OAAA;AACL0H,gDAAAA,QAAAA,EAAU,EAAC;gDACX3C,QAAAA,EAAUzC,YAAAA;gDACVqF,GAAAA,EAAKpC,QAAAA;gDACLhF,EAAAA,EAAIA;;;sDAGRvB,GAAA,CAACkG,MAAAA,EAAAA;4CAAOrB,IAAAA,EAAK,QAAA;4CAASvD,OAAAA,EAASsF,WAAAA;sDAC5BhH,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,4DAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFxB,GAAA,CAAC6B,GAAAA,EAAAA;4CAAI6D,UAAAA,EAAY,CAAA;AACf,4CAAA,QAAA,gBAAA1F,GAAA,CAACoI,UAAAA,EAAAA;gDAAW3F,OAAAA,EAAQ,IAAA;gDAAKmG,SAAAA,EAAU,YAAA;0DAChChJ,aAAAA,CACC;oDACE2B,EAAAA,EAAI,iEAAA;oDACJC,cAAAA,EACE;iDACJ,EACA;oDAAE4D,IAAAA,EAAMC,IAAAA;oDAAMC,SAAAA,EAAWC;AAAU,iDAAA;;;;;AAK3C,8CAAAvF,GAAA,CAAC4F,MAAMI,KAAK,EAAA,EAAA;;;;;;AAKpB,0BAAAhG,GAAA,CAACC,MAAMgG,MAAM,EAAA;AACX,gBAAA,QAAA,gBAAAjG,GAAA,CAACkG,MAAAA,EAAAA;oBAAO5E,OAAAA,EAASd,OAAAA;oBAASiC,OAAAA,EAAQ,UAAA;8BAC/B7C,aAAAA,CAAc;wBAAE2B,EAAAA,EAAI,8BAAA;wBAAgCC,cAAAA,EAAgB;AAAS,qBAAA;;;;;AAKxF,CAAA;AAEA,MAAM8G,SAAAA,GAAYO,MAAAA,CAAOjD,KAAAA,CAAMkD,KAAK,CAAC;;;;;;;;AAQrC,CAAC;AAUD,MAAMvG,iBAAAA,GAAoB,CAAC,EAAElD,YAAY,EAA0B,GAAA;IACjE,MAAM,EAAEO,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEP,UAAU,EAAEC,aAAa,EAAEgB,QAAQ,EAAEC,OAAO,EAAE,GAAG3B,mBAAAA,CAAoB,mBAAA,CAAA;AAE7E,IAAA,MAAMkK,YAAAA,GAAe,IAAA;QACnBxJ,aAAAA,CAAcQ,SAAAA,CAAAA;QACdQ,QAAAA,CAAS,QAAA,CAAA;AACX,IAAA,CAAA;AAEA,IAAA,MAAMyI,YAAAA,GAAe,IAAA;AACnB,QAAA,IAAI1J,UAAAA,EAAY;YACdD,YAAAA,CAAaC,UAAAA,CAAAA;AACf,QAAA;AACAkB,QAAAA,OAAAA,EAAAA;AACF,IAAA,CAAA;IAEA,qBACEF,IAAA,CAAA2G,QAAA,EAAA;;AACE,0BAAAjH,GAAA,CAACC,MAAMgJ,IAAI,EAAA;AACT,gBAAA,QAAA,gBAAA3I,IAAA,CAACuB,GAAAA,EAAAA;oBAAIc,WAAAA,EAAa,CAAA;oBAAGC,YAAAA,EAAc,CAAA;oBAAG8C,UAAAA,EAAY,CAAA;oBAAGC,aAAAA,EAAe,CAAA;;sCAClErF,IAAA,CAAC4G,IAAAA,EAAAA;4BAAKK,cAAAA,EAAe,eAAA;4BAAgB5B,aAAAA,EAAe,CAAA;;8CAClDrF,IAAA,CAAC4G,IAAAA,EAAAA;oCAAKC,SAAAA,EAAU,QAAA;oCAASC,UAAAA,EAAW,YAAA;;sDAClCpH,GAAA,CAACoI,UAAAA,EAAAA;4CAAW3F,OAAAA,EAAQ,IAAA;4CAAKyG,UAAAA,EAAW,MAAA;sDACjCtJ,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,wDAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFxB,GAAA,CAACoI,UAAAA,EAAAA;4CAAW3F,OAAAA,EAAQ,IAAA;4CAAKmG,SAAAA,EAAU,YAAA;sDAChChJ,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,2DAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;;;8CAGJxB,GAAA,CAACkG,MAAAA,EAAAA;oCAAO5E,OAAAA,EAASyH,YAAAA;oCAActG,OAAAA,EAAQ,WAAA;8CACpC7C,aAAAA,CAAc;wCACb2B,EAAAA,EAAI,iEAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA;;;;sCAGJxB,GAAA,CAAC6B,GAAAA,EAAAA;4BAAIE,QAAAA,EAAU,CAAC,KAAK,CAAC;AACnBzC,4BAAAA,QAAAA,EAAAA,UAAAA,EAAYoC,oBAAM1B,GAAA,CAACmJ,cAAAA,EAAAA;gCAAerE,KAAAA,EAAOxF;AAAiB,6BAAA,CAAA,GAAA;;;;;AAIjE,0BAAAgB,IAAA,CAACL,MAAMgG,MAAM,EAAA;;AACX,kCAAAjG,GAAA,CAACC,MAAMmJ,KAAK,EAAA;AACV,wBAAA,QAAA,gBAAApJ,GAAA,CAACkG,MAAAA,EAAAA;4BAAO5E,OAAAA,EAASd,OAAAA;4BAASiC,OAAAA,EAAQ,UAAA;sCAC/B7C,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,iDAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;kCAGJxB,GAAA,CAACkG,MAAAA,EAAAA;wBAAO5E,OAAAA,EAAS0H,YAAAA;kCACdpJ,aAAAA,CAAc;4BACb2B,EAAAA,EAAI,yDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;;;;AAKV,CAAA;AAUA,MAAM2H,cAAAA,GAAiB,CAAC,EAAErE,KAAK,EAAuB,GAAA;IACpD,MAAM,EAAElF,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACES,IAAA,CAAC+I,IAAAA,EAAAA;;0BACCrJ,GAAA,CAACsJ,UAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAtJ,GAAA,CAACuJ,SAAAA,EAAAA;oBAAUnE,IAAAA,EAAK,GAAA;AAAInD,oBAAAA,GAAAA,EAAK6C,MAAMpD;;;0BAEjCpB,IAAA,CAACkJ,QAAAA,EAAAA;;kCACClJ,IAAA,CAACmJ,WAAAA,EAAAA;;0CACCzJ,GAAA,CAAC0J,SAAAA,EAAAA;AAAW5E,gCAAAA,QAAAA,EAAAA,KAAAA,CAAM9D;;0CAClBhB,GAAA,CAAC2J,YAAAA,EAAAA;AACE,gCAAA,QAAA,EAAA,CAAA,EAAG7E,KAAAA,CAAM8E,GAAG,EAAEC,WAAAA,EAAAA,CAAc,GAAG,EAAE/E,KAAAA,CAAMmD,KAAK,CAAC,CAAC,EAAEnD,KAAAA,CAAMoD,MAAM,CAAA;;;;kCAGjElI,GAAA,CAAC8J,SAAAA,EAAAA;kCACElK,aAAAA,CAAc;4BACb2B,EAAAA,EAAI,6DAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;;;;AAKV,CAAA;;;;"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var icons = require('@strapi/icons');
|
|
7
|
+
var reactIntl = require('react-intl');
|
|
8
|
+
var getProjectType = require('../../../../../../../shared/utils/get-project-type.js');
|
|
9
|
+
var admin = require('../../../../../services/admin.js');
|
|
10
|
+
|
|
11
|
+
function _interopNamespace(e) {
|
|
12
|
+
if (e && e.__esModule) return e;
|
|
13
|
+
var n = Object.create(null);
|
|
14
|
+
if (e) {
|
|
15
|
+
Object.keys(e).forEach(function (k) {
|
|
16
|
+
if (k !== 'default') {
|
|
17
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
18
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return e[k]; }
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
n.default = e;
|
|
26
|
+
return Object.freeze(n);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A single labelled value rendered inside the Plan card's `<dl>`. Shared between the CE fallback
|
|
33
|
+
* body (current plan only) and the EE body (license details), so both stay visually consistent.
|
|
34
|
+
*/ const PlanDetail = ({ label, value })=>{
|
|
35
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
36
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Grid.Item, {
|
|
37
|
+
col: 6,
|
|
38
|
+
xs: 12,
|
|
39
|
+
direction: "column",
|
|
40
|
+
alignItems: "start",
|
|
41
|
+
children: [
|
|
42
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
43
|
+
variant: "sigma",
|
|
44
|
+
textColor: "neutral600",
|
|
45
|
+
tag: "dt",
|
|
46
|
+
children: formatMessage(label)
|
|
47
|
+
}),
|
|
48
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
49
|
+
tag: "dd",
|
|
50
|
+
children: value
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
/* -------------------------------------------------------------------------------------------------
|
|
56
|
+
* PlanCard
|
|
57
|
+
* -----------------------------------------------------------------------------------------------*/ /**
|
|
58
|
+
* The billing link's label and destination depend on the current plan: Community links out to the
|
|
59
|
+
* public pricing page, while Growth and Enterprise link to the billing portal.
|
|
60
|
+
*/ const PLAN_LINK = {
|
|
61
|
+
Community: {
|
|
62
|
+
label: {
|
|
63
|
+
id: 'Settings.application.plan.see-all-plans',
|
|
64
|
+
defaultMessage: 'See all plans'
|
|
65
|
+
},
|
|
66
|
+
href: 'https://strapi.io/pricing-self-hosted'
|
|
67
|
+
},
|
|
68
|
+
Growth: {
|
|
69
|
+
label: {
|
|
70
|
+
id: 'Settings.application.plan.manage-subscription',
|
|
71
|
+
defaultMessage: 'Manage subscription'
|
|
72
|
+
},
|
|
73
|
+
href: 'https://billing.strapi.io'
|
|
74
|
+
},
|
|
75
|
+
Enterprise: {
|
|
76
|
+
label: {
|
|
77
|
+
id: 'Settings.application.plan.view-subscription',
|
|
78
|
+
defaultMessage: 'View subscription'
|
|
79
|
+
},
|
|
80
|
+
href: 'https://billing.strapi.io'
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const PlanCardBodyCE = ()=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Grid.Root, {
|
|
84
|
+
gap: 5,
|
|
85
|
+
tag: "dl",
|
|
86
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(PlanDetail, {
|
|
87
|
+
label: {
|
|
88
|
+
id: 'Settings.application.plan.current',
|
|
89
|
+
defaultMessage: 'current plan'
|
|
90
|
+
},
|
|
91
|
+
value: window.strapi.projectType
|
|
92
|
+
})
|
|
93
|
+
});
|
|
94
|
+
const PlanCard = ()=>{
|
|
95
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
96
|
+
// The authenticated license-limit-information endpoint is EE-only, so a CE instance gets a
|
|
97
|
+
// 404 here; treat that (or any other error/missing data) the same as "no license".
|
|
98
|
+
// Until the first response, there is no telling which plan this is: painting the Community
|
|
99
|
+
// fallback and then swapping it out would name the wrong plan for a moment.
|
|
100
|
+
const { data: licenseLimitsData, isLoading: isLicenseLoading } = admin.useGetLicenseLimitsQuery();
|
|
101
|
+
const licenseStatus = licenseLimitsData?.data?.licenseStatus ?? 'none';
|
|
102
|
+
const planPriceId = licenseLimitsData?.data?.planPriceId ?? undefined;
|
|
103
|
+
// `useEnterprise`'s `enabled` option only ANDs with `isEE` - it can never force the EE body
|
|
104
|
+
// on for a non-EE instance. An expired/unknown license still needs to show its retained
|
|
105
|
+
// details even though `isEE` is (correctly) false, and an active one must show too when
|
|
106
|
+
// /admin/project-type failed and left `isEE` false. So the license body is loaded manually
|
|
107
|
+
// here instead, gated on this wider predicate.
|
|
108
|
+
// Deliberately an allowlist rather than `!== 'none'`: if `licenseStatus` is ever missing
|
|
109
|
+
// (an older bundle, a consumer building `window.strapi` itself), this must fall back to the
|
|
110
|
+
// Community body instead of loading the license section.
|
|
111
|
+
const shouldShowLicenseDetails = window.strapi.isEE || licenseStatus === 'active' || licenseStatus === 'expired' || licenseStatus === 'unknown';
|
|
112
|
+
const [LicenseBody, setLicenseBody] = React__namespace.useState(null);
|
|
113
|
+
React__namespace.useEffect(()=>{
|
|
114
|
+
if (!shouldShowLicenseDetails) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
let active = true;
|
|
118
|
+
Promise.resolve().then(function () { return require('../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo.js'); }).then((mod)=>{
|
|
119
|
+
if (active) {
|
|
120
|
+
setLicenseBody(()=>mod.LicenseInfoEE);
|
|
121
|
+
}
|
|
122
|
+
}).catch((err)=>{
|
|
123
|
+
// A chunk can stop loading mid-session (a redeploy replaced the bundle). The body stays
|
|
124
|
+
// empty rather than falling back to the CE body, which would label this instance
|
|
125
|
+
// Community.
|
|
126
|
+
console.error(err);
|
|
127
|
+
});
|
|
128
|
+
return ()=>{
|
|
129
|
+
active = false;
|
|
130
|
+
};
|
|
131
|
+
}, [
|
|
132
|
+
shouldShowLicenseDetails
|
|
133
|
+
]);
|
|
134
|
+
// Render nothing for the body while the EE module is still loading (rather than the CE
|
|
135
|
+
// body) so the card never briefly shows "Community" before swapping to the actual license
|
|
136
|
+
// details. Once we know for certain there is no license to show, fall back to the CE body.
|
|
137
|
+
const PlanCardBody = isLicenseLoading ? null : LicenseBody ?? (shouldShowLicenseDetails ? null : PlanCardBodyCE);
|
|
138
|
+
const licensedPlan = getProjectType.getLicensedPlan({
|
|
139
|
+
licenseStatus,
|
|
140
|
+
type: licenseLimitsData?.data?.type,
|
|
141
|
+
planPriceId
|
|
142
|
+
});
|
|
143
|
+
const { label, href } = PLAN_LINK[licensedPlan] ?? PLAN_LINK.Community;
|
|
144
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
145
|
+
direction: "column",
|
|
146
|
+
alignItems: "stretch",
|
|
147
|
+
gap: 4,
|
|
148
|
+
hasRadius: true,
|
|
149
|
+
background: "neutral0",
|
|
150
|
+
shadow: "tableShadow",
|
|
151
|
+
paddingTop: 6,
|
|
152
|
+
paddingBottom: 6,
|
|
153
|
+
paddingRight: 7,
|
|
154
|
+
paddingLeft: 7,
|
|
155
|
+
children: [
|
|
156
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
157
|
+
justifyContent: "space-between",
|
|
158
|
+
alignItems: "center",
|
|
159
|
+
children: [
|
|
160
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
161
|
+
variant: "delta",
|
|
162
|
+
tag: "h3",
|
|
163
|
+
children: formatMessage({
|
|
164
|
+
id: 'Settings.application.plan.title',
|
|
165
|
+
defaultMessage: 'Plan'
|
|
166
|
+
})
|
|
167
|
+
}),
|
|
168
|
+
!isLicenseLoading && /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
|
|
169
|
+
variant: "secondary",
|
|
170
|
+
endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ExternalLink, {}),
|
|
171
|
+
href: href,
|
|
172
|
+
target: "_blank",
|
|
173
|
+
rel: "noopener noreferrer",
|
|
174
|
+
children: formatMessage(label)
|
|
175
|
+
})
|
|
176
|
+
]
|
|
177
|
+
}),
|
|
178
|
+
PlanCardBody && /*#__PURE__*/ jsxRuntime.jsx(PlanCardBody, {})
|
|
179
|
+
]
|
|
180
|
+
});
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
exports.PlanCard = PlanCard;
|
|
184
|
+
exports.PlanDetail = PlanDetail;
|
|
185
|
+
//# sourceMappingURL=PlanCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanCard.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/PlanCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Grid, LinkButton, Typography } from '@strapi/design-system';\nimport { ExternalLink } from '@strapi/icons';\nimport { useIntl, type MessageDescriptor } from 'react-intl';\n\nimport {\n getLicensedPlan,\n type ProjectType,\n} from '../../../../../../../shared/utils/get-project-type';\nimport { useGetLicenseLimitsQuery } from '../../../../../services/admin';\n\n/* -------------------------------------------------------------------------------------------------\n * PlanDetail\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PlanDetailProps {\n label: MessageDescriptor;\n value: React.ReactNode;\n}\n\n/**\n * A single labelled value rendered inside the Plan card's `<dl>`. Shared between the CE fallback\n * body (current plan only) and the EE body (license details), so both stay visually consistent.\n */\nconst PlanDetail = ({ label, value }: PlanDetailProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage(label)}\n </Typography>\n <Typography tag=\"dd\">{value}</Typography>\n </Grid.Item>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PlanCard\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * The billing link's label and destination depend on the current plan: Community links out to the\n * public pricing page, while Growth and Enterprise link to the billing portal.\n */\nconst PLAN_LINK: Record<ProjectType, { label: MessageDescriptor; href: string }> = {\n Community: {\n label: { id: 'Settings.application.plan.see-all-plans', defaultMessage: 'See all plans' },\n href: 'https://strapi.io/pricing-self-hosted',\n },\n Growth: {\n label: {\n id: 'Settings.application.plan.manage-subscription',\n defaultMessage: 'Manage subscription',\n },\n href: 'https://billing.strapi.io',\n },\n Enterprise: {\n label: {\n id: 'Settings.application.plan.view-subscription',\n defaultMessage: 'View subscription',\n },\n href: 'https://billing.strapi.io',\n },\n};\n\nconst PlanCardBodyCE = () => (\n <Grid.Root gap={5} tag=\"dl\">\n <PlanDetail\n label={{ id: 'Settings.application.plan.current', defaultMessage: 'current plan' }}\n value={window.strapi.projectType}\n />\n </Grid.Root>\n);\n\nconst PlanCard = () => {\n const { formatMessage } = useIntl();\n\n // The authenticated license-limit-information endpoint is EE-only, so a CE instance gets a\n // 404 here; treat that (or any other error/missing data) the same as \"no license\".\n // Until the first response, there is no telling which plan this is: painting the Community\n // fallback and then swapping it out would name the wrong plan for a moment.\n const { data: licenseLimitsData, isLoading: isLicenseLoading } = useGetLicenseLimitsQuery();\n const licenseStatus = licenseLimitsData?.data?.licenseStatus ?? 'none';\n const planPriceId = licenseLimitsData?.data?.planPriceId ?? undefined;\n\n // `useEnterprise`'s `enabled` option only ANDs with `isEE` - it can never force the EE body\n // on for a non-EE instance. An expired/unknown license still needs to show its retained\n // details even though `isEE` is (correctly) false, and an active one must show too when\n // /admin/project-type failed and left `isEE` false. So the license body is loaded manually\n // here instead, gated on this wider predicate.\n // Deliberately an allowlist rather than `!== 'none'`: if `licenseStatus` is ever missing\n // (an older bundle, a consumer building `window.strapi` itself), this must fall back to the\n // Community body instead of loading the license section.\n const shouldShowLicenseDetails =\n window.strapi.isEE ||\n licenseStatus === 'active' ||\n licenseStatus === 'expired' ||\n licenseStatus === 'unknown';\n const [LicenseBody, setLicenseBody] = React.useState<React.ComponentType | null>(null);\n\n React.useEffect(() => {\n if (!shouldShowLicenseDetails) {\n return undefined;\n }\n\n let active = true;\n\n import('../../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/LicenseInfo')\n .then((mod) => {\n if (active) {\n setLicenseBody(() => mod.LicenseInfoEE);\n }\n })\n .catch((err) => {\n // A chunk can stop loading mid-session (a redeploy replaced the bundle). The body stays\n // empty rather than falling back to the CE body, which would label this instance\n // Community.\n console.error(err);\n });\n\n return () => {\n active = false;\n };\n }, [shouldShowLicenseDetails]);\n\n // Render nothing for the body while the EE module is still loading (rather than the CE\n // body) so the card never briefly shows \"Community\" before swapping to the actual license\n // details. Once we know for certain there is no license to show, fall back to the CE body.\n const PlanCardBody = isLicenseLoading\n ? null\n : (LicenseBody ?? (shouldShowLicenseDetails ? null : PlanCardBodyCE));\n\n const licensedPlan = getLicensedPlan({\n licenseStatus,\n type: licenseLimitsData?.data?.type,\n planPriceId,\n });\n const { label, href } = PLAN_LINK[licensedPlan] ?? PLAN_LINK.Community;\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"stretch\"\n gap={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({ id: 'Settings.application.plan.title', defaultMessage: 'Plan' })}\n </Typography>\n {!isLicenseLoading && (\n <LinkButton\n variant=\"secondary\"\n endIcon={<ExternalLink />}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage(label)}\n </LinkButton>\n )}\n </Flex>\n {PlanCardBody && <PlanCardBody />}\n </Flex>\n );\n};\n\nexport { PlanCard, PlanDetail };\nexport type { PlanDetailProps };\n"],"names":["PlanDetail","label","value","formatMessage","useIntl","_jsxs","Grid","Item","col","xs","direction","alignItems","_jsx","Typography","variant","textColor","tag","PLAN_LINK","Community","id","defaultMessage","href","Growth","Enterprise","PlanCardBodyCE","Root","gap","window","strapi","projectType","PlanCard","data","licenseLimitsData","isLoading","isLicenseLoading","useGetLicenseLimitsQuery","licenseStatus","planPriceId","undefined","shouldShowLicenseDetails","isEE","LicenseBody","setLicenseBody","React","useState","useEffect","active","then","mod","LicenseInfoEE","catch","err","console","error","PlanCardBody","licensedPlan","getLicensedPlan","type","Flex","hasRadius","background","shadow","paddingTop","paddingBottom","paddingRight","paddingLeft","justifyContent","LinkButton","endIcon","ExternalLink","target","rel"],"mappings":"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"}
|