@strapi/admin 5.48.1 → 5.50.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 +33 -20
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +6 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.js +3 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/Context.js +4 -3
- package/dist/admin/admin/src/components/Context.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -4
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +97 -2
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +99 -4
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +3 -2
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Form.js +9 -5
- package/dist/admin/admin/src/components/Form.js.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/Date.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js +3 -2
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +3 -2
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +3 -2
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +9 -3
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +6 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/LanguageProvider.js +5 -1
- package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/LazyOutlet.js +57 -0
- package/dist/admin/admin/src/components/LazyOutlet.js.map +1 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs +35 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs.map +1 -0
- package/dist/admin/admin/src/components/LeftMenu.js +3 -2
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +10 -0
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +10 -0
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +4 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +3 -2
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/Pagination.js +3 -2
- package/dist/admin/admin/src/components/Pagination.js.map +1 -1
- package/dist/admin/admin/src/components/PluginsInitializer.js +3 -2
- package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +6 -4
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +3 -2
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js +3 -2
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/SearchInput.js +3 -2
- package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
- package/dist/admin/admin/src/components/Table.js +3 -2
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +3 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js +9 -5
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js +14 -10
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +8 -4
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +39 -33
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +19 -17
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +78 -6
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +77 -6
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js +3 -2
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/Configuration.js +3 -2
- package/dist/admin/admin/src/features/Configuration.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.js +3 -2
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +7 -3
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js +3 -2
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js +3 -2
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAdminRoles.js +3 -2
- package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
- package/dist/admin/admin/src/hooks/useControllableState.js +3 -2
- package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDebounce.js +3 -2
- package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDeviceType.js +3 -2
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
- package/dist/admin/admin/src/hooks/useElementOnScreen.js +3 -2
- package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
- package/dist/admin/admin/src/hooks/useEnterprise.js +3 -2
- package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
- package/dist/admin/admin/src/hooks/useFetchClient.js +3 -2
- package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
- package/dist/admin/admin/src/hooks/useForceUpdate.js +3 -2
- package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js +85 -15
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.js.map +1 -1
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs +82 -14
- package/dist/admin/admin/src/hooks/useIdleSessionLogout.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useIsMounted.js +3 -2
- package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js +3 -2
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +7 -3
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useOnce.js +3 -2
- package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js +7 -3
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useSettingsMenu.js +7 -3
- package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js +5 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -7
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +4 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.js +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js +3 -2
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +8 -4
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Oops.js +3 -2
- package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +9 -5
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +4 -3
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +3 -2
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +8 -4
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +7 -3
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +7 -3
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +8 -4
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/SessionsPage.js +318 -0
- package/dist/admin/admin/src/pages/SessionsPage.js.map +1 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs +296 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/Layout.js +4 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +5 -2
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js +3 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +7 -2
- 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/CollapsableContentType.js +5 -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/reducer.js +6 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +4 -2
- 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 +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +7 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +11 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +7 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +11 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +7 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +44 -6
- 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 +34 -0
- 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/ConditionsButton.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +13 -7
- 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/ContentTypeCollapses.js +15 -9
- 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/GlobalActions.js +9 -5
- 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/Permissions.js +71 -27
- 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 +38 -2
- 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 +10 -6
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js +9 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js +26 -4
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs +18 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js +6 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js +59 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs +52 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js +8 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +9 -5
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +3 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +3 -2
- 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/WebhookForm.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +3 -2
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/router.js +9 -0
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +9 -0
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +43 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +41 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +22 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +22 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +748 -265
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +745 -266
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.js +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.mjs +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +7 -2
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/locales.js +3 -2
- package/dist/admin/admin/src/utils/locales.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.js +9 -4
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/retryDynamicImport.js +85 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.js.map +1 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs +80 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs.map +1 -0
- package/dist/admin/admin/src/utils/rulesEngine.js +5 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.js +5 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/tests/server.js +25 -0
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +25 -0
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +3 -2
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +7 -3
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js +3 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js +3 -2
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js +5 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +3 -2
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +7 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/StrapiApp.d.ts +11 -5
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Email.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Number.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Password.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/String.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Time.d.ts +0 -1
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +0 -1
- package/dist/admin/src/components/LazyOutlet.d.ts +20 -0
- package/dist/admin/src/components/MainNav/MainNav.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +0 -1
- package/dist/admin/src/components/SubNav.d.ts +5 -6
- package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
- package/dist/admin/src/core/apis/Widgets.d.ts +0 -1
- package/dist/admin/src/core/apis/router.d.ts +2 -3
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/utils/createHook.d.ts +4 -4
- package/dist/admin/src/features/AppInfo.d.ts +1 -2
- package/dist/admin/src/features/StrapiApp.d.ts +1 -2
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +2 -2
- package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
- package/dist/admin/src/hooks/useIdleSessionLogout.d.ts +66 -12
- package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +1 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +0 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
- package/dist/admin/src/pages/SessionsPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +2 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +0 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +8 -8
- package/dist/admin/src/reducer.d.ts +1 -1
- package/dist/admin/src/services/admin.d.ts +2 -2
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +29 -27
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +7 -7
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/src/translations/languageNativeNames.d.ts +1 -0
- package/dist/admin/src/utils/locales.d.ts +0 -1
- package/dist/admin/src/utils/retryDynamicImport.d.ts +19 -0
- package/dist/admin/src/utils/shims.d.ts +1 -1
- package/dist/admin/tests/store.d.ts +4 -4
- package/dist/admin/tests/utils.d.ts +5 -5
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +2 -2
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +3 -3
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -2
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/bootstrap.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +30 -31
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +1 -2
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/user.d.ts +1 -1
- package/dist/ee/server/src/destroy.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +2 -3
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/register.d.ts.map +1 -1
- package/dist/ee/server/src/routes/utils.d.ts.map +1 -1
- package/dist/ee/server/src/services/auth.d.ts.map +1 -1
- package/dist/ee/server/src/services/index.d.ts +1 -1
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
- package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
- package/dist/ee/server/src/services/role.d.ts.map +1 -1
- package/dist/ee/server/src/services/user.d.ts.map +1 -1
- package/dist/ee/server/src/utils/index.d.ts.map +1 -1
- package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -1
- package/dist/ee/server/src/validation/authentication.d.ts +2 -2
- package/dist/ee/server/src/validation/role.d.ts +6 -6
- package/dist/ee/server/src/validation/role.d.ts.map +1 -1
- package/dist/ee/server/src/validation/user.d.ts.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +5 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js +5 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js +6 -2
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.js +5 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/user.js +8 -4
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/index.js +6 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/server/src/ai/services/ai.js +10 -4
- package/dist/server/server/src/ai/services/ai.js.map +1 -1
- package/dist/server/server/src/content-types/session.js +6 -0
- package/dist/server/server/src/content-types/session.js.map +1 -1
- package/dist/server/server/src/content-types/session.mjs +6 -0
- package/dist/server/server/src/content-types/session.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +9 -4
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-session.js +61 -0
- package/dist/server/server/src/controllers/authenticated-session.js.map +1 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs +59 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs.map +1 -0
- package/dist/server/server/src/controllers/authentication.js +18 -6
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +12 -5
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/role.js +2 -4
- package/dist/server/server/src/controllers/role.js.map +1 -1
- package/dist/server/server/src/controllers/role.mjs +2 -4
- package/dist/server/server/src/controllers/role.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +3 -2
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/webhooks.js +7 -2
- package/dist/server/server/src/controllers/webhooks.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js +7 -2
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/policies/hasPermissions.js +7 -3
- package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js +9 -4
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +12 -26
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +12 -26
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js +7 -3
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/auth.js +8 -3
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/content-type.js +6 -2
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/encryption.js +8 -4
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/passport.js +6 -2
- package/dist/server/server/src/services/passport.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.js +5 -1
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js +5 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.js +14 -10
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +0 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +0 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +5 -1
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/project-settings.js +6 -2
- package/dist/server/server/src/services/project-settings.js.map +1 -1
- package/dist/server/server/src/services/role.js +10 -5
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +2 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/token.js +7 -2
- package/dist/server/server/src/services/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/permission.js +5 -1
- package/dist/server/server/src/services/transfer/permission.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.js +10 -5
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/user.js +10 -6
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/strategies/admin.js +4 -0
- package/dist/server/server/src/strategies/admin.js.map +1 -1
- package/dist/server/server/src/strategies/admin.mjs +4 -0
- package/dist/server/server/src/strategies/admin.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js +5 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js +6 -2
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +6 -2
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/policies/hasPermissions.js +6 -2
- package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
- package/dist/server/shared/utils/session-auth.js +5 -1
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/src/ai/controllers/ai.d.ts +3 -3
- package/dist/server/src/ai/services/ai.d.ts.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-conditions.d.ts +2 -2
- package/dist/server/src/config/admin-conditions.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/content-types/session.d.ts +6 -0
- package/dist/server/src/content-types/session.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +5 -5
- package/dist/server/src/controllers/api-token.d.ts +1 -1
- package/dist/server/src/controllers/authenticated-session.d.ts +8 -0
- package/dist/server/src/controllers/authenticated-session.d.ts.map +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -1
- package/dist/server/src/controllers/authentication.d.ts +4 -4
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts +0 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/format-actions-by-sections.d.ts.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +2 -2
- package/dist/server/src/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +33 -43
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/role.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/token.d.ts +1 -1
- package/dist/server/src/controllers/user.d.ts +2 -2
- package/dist/server/src/controllers/webhooks.d.ts +4 -4
- package/dist/server/src/domain/action/index.d.ts +4 -65
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/action/provider.d.ts +30 -3
- package/dist/server/src/domain/action/provider.d.ts.map +1 -1
- package/dist/server/src/domain/condition/index.d.ts.map +1 -1
- package/dist/server/src/domain/condition/provider.d.ts +19 -2
- package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts +0 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +51 -63
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/data-transfer.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts +0 -1
- package/dist/server/src/middlewares/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAuthenticatedAdmin.d.ts.map +1 -1
- package/dist/server/src/policies/isTelemetryEnabled.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +0 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/routes/transfer.d.ts +0 -1
- package/dist/server/src/routes/transfer.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/action.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +5 -6
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/condition.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/encryption.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +12 -21
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts +0 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +1 -2
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/index.d.ts +5 -5
- package/dist/server/src/services/permission/permissions-manager/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/query-builders.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts +3 -3
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/builder.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/builder.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/index.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +0 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +13 -38
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/project-settings.d.ts +2 -4
- package/dist/server/src/services/project-settings.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +7 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/token.d.ts +1 -1
- package/dist/server/src/services/token.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts +11 -11
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +3 -3
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +4 -4
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
- package/dist/server/src/strategies/admin.d.ts.map +1 -1
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -1
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
- package/dist/server/src/strategies/data-transfer.d.ts.map +1 -1
- package/dist/server/src/utils/normalize-email.d.ts.map +1 -1
- package/dist/server/src/validation/action-provider.d.ts +2 -2
- package/dist/server/src/validation/action-provider.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +2 -2
- package/dist/server/src/validation/api-tokens.d.ts +4 -4
- package/dist/server/src/validation/authentication/forgot-password.d.ts +1 -1
- package/dist/server/src/validation/authentication/login.d.ts +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +6 -6
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/reset-password.d.ts +1 -1
- package/dist/server/src/validation/common-functions/check-fields-are-correctly-nested.d.ts.map +1 -1
- package/dist/server/src/validation/common-functions/check-fields-dont-have-duplicates.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +6 -6
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -2
- package/dist/server/src/validation/project-settings.d.ts +6 -6
- package/dist/server/src/validation/role.d.ts +8 -8
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +4 -4
- package/dist/server/src/validation/user.d.ts +8 -8
- package/dist/shared/contracts/permissions.d.ts +1 -0
- package/dist/shared/contracts/permissions.d.ts.map +1 -1
- package/dist/shared/contracts/sessions.d.ts +62 -0
- package/dist/shared/contracts/sessions.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/utils/session-auth.d.ts +1 -1
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +11 -11
package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationInfoPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\nconst AIUageDataCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const AIUsageData = useEnterprise(\n AIUageDataCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage'\n )\n ).AIUsage,\n {\n enabled: isAiEnabled,\n }\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n if (!AIUsageData) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />} fullWidth>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\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 <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link\n href=\"https://strapi.io/pricing-self-hosted\"\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n <AIUsageData />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["AdminSeatInfoCE","AIUageDataCE","ApplicationInfoPage","trackUsage","useTracking","formatMessage","useIntl","get","useFetchClient","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","React","useState","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","state","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","isAiEnabled","window","strapi","ai","enabled","AIUsageData","AIUsage","allowedActions","canRead","canUpdate","useRBAC","handleSubmit","e","preventDefault","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","_jsxs","_Fragment","_jsx","Page","Title","id","defaultMessage","name","Main","form","onSubmit","Layouts","Header","title","subtitle","primaryAction","Button","disabled","type","startIcon","Check","fullWidth","Content","Flex","direction","alignItems","gap","hasRadius","background","shadow","paddingTop","paddingBottom","paddingRight","paddingLeft","Typography","variant","tag","Grid","Root","Item","col","xs","textColor","Link","href","endIcon","ExternalLink","target","Box","dimension","DIMENSION","size","SIZE","LogoInput","customLogo","defaultLogo","default","hint","label","onChangeLogo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApplicationInfoPage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\nconst AIUageDataCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const AIUsageData = useEnterprise(\n AIUageDataCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage'\n )\n ).AIUsage,\n {\n enabled: isAiEnabled,\n }\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n if (!AIUsageData) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />} fullWidth>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\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 <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link\n href=\"https://strapi.io/pricing-self-hosted\"\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n <AIUsageData />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["AdminSeatInfoCE","AIUageDataCE","ApplicationInfoPage","trackUsage","useTracking","formatMessage","useIntl","get","useFetchClient","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","React","useState","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","state","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","isAiEnabled","window","strapi","ai","enabled","AIUsageData","AIUsage","allowedActions","canRead","canUpdate","useRBAC","handleSubmit","e","preventDefault","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","_jsxs","_Fragment","_jsx","Page","Title","id","defaultMessage","name","Main","form","onSubmit","Layouts","Header","title","subtitle","primaryAction","Button","disabled","type","startIcon","Check","fullWidth","Content","Flex","direction","alignItems","gap","hasRadius","background","shadow","paddingTop","paddingBottom","paddingRight","paddingLeft","Typography","variant","tag","Grid","Root","Item","col","xs","textColor","Link","href","endIcon","ExternalLink","target","rel","Box","dimension","DIMENSION","size","SIZE","LogoInput","customLogo","defaultLogo","default","hint","label","onChangeLogo"],"mappings":"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"}
|
|
@@ -178,6 +178,7 @@ const AIUageDataCE = ()=>null;
|
|
|
178
178
|
href: `https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`,
|
|
179
179
|
endIcon: /*#__PURE__*/ jsx(ExternalLink, {}),
|
|
180
180
|
target: "_blank",
|
|
181
|
+
rel: "noopener noreferrer",
|
|
181
182
|
children: formatMessage({
|
|
182
183
|
id: 'Settings.application.link-upgrade',
|
|
183
184
|
defaultMessage: 'Upgrade your admin panel'
|
package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicationInfoPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\nconst AIUageDataCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const AIUsageData = useEnterprise(\n AIUageDataCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage'\n )\n ).AIUsage,\n {\n enabled: isAiEnabled,\n }\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n if (!AIUsageData) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />} fullWidth>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\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 <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link\n href=\"https://strapi.io/pricing-self-hosted\"\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n <AIUsageData />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["AdminSeatInfoCE","AIUageDataCE","ApplicationInfoPage","trackUsage","useTracking","formatMessage","useIntl","get","useFetchClient","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","React","useState","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","state","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","isAiEnabled","window","strapi","ai","enabled","AIUsageData","AIUsage","allowedActions","canRead","canUpdate","useRBAC","handleSubmit","e","preventDefault","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","_jsxs","_Fragment","_jsx","Page","Title","id","defaultMessage","name","Main","form","onSubmit","Layouts","Header","title","subtitle","primaryAction","Button","disabled","type","startIcon","Check","fullWidth","Content","Flex","direction","alignItems","gap","hasRadius","background","shadow","paddingTop","paddingBottom","paddingRight","paddingLeft","Typography","variant","tag","Grid","Root","Item","col","xs","textColor","Link","href","endIcon","ExternalLink","target","Box","dimension","DIMENSION","size","SIZE","LogoInput","customLogo","defaultLogo","default","hint","label","onChangeLogo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApplicationInfoPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Link, Typography } from '@strapi/design-system';\nimport { Check, ExternalLink } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useAppInfo } from '../../../../features/AppInfo';\nimport { useConfiguration } from '../../../../features/Configuration';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useFetchClient } from '../../../../hooks/useFetchClient';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { selectAdminPermissions } from '../../../../selectors';\n\nimport { LogoInput, LogoInputProps } from './components/LogoInput';\nimport { DIMENSION, SIZE } from './utils/constants';\n\nconst AdminSeatInfoCE = () => null;\nconst AIUageDataCE = () => null;\n\n/* -------------------------------------------------------------------------------------------------\n * ApplicationInfoPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ApplicationInfoPage = () => {\n const { trackUsage } = useTracking();\n const { formatMessage } = useIntl();\n const { get } = useFetchClient();\n const { logos: serverLogos, updateProjectSettings } = useConfiguration('ApplicationInfoPage');\n const [logos, setLogos] = React.useState({ menu: serverLogos.menu, auth: serverLogos.auth });\n const { settings } = useSelector(selectAdminPermissions);\n\n const communityEdition = useAppInfo('ApplicationInfoPage', (state) => state.communityEdition);\n const latestStrapiReleaseTag = useAppInfo(\n 'ApplicationInfoPage',\n (state) => state.latestStrapiReleaseTag\n );\n const nodeVersion = useAppInfo('ApplicationInfoPage', (state) => state.nodeVersion);\n const shouldUpdateStrapi = useAppInfo('ApplicationInfoPage', (state) => state.shouldUpdateStrapi);\n const strapiVersion = useAppInfo('ApplicationInfoPage', (state) => state.strapiVersion);\n\n const AdminSeatInfo = useEnterprise(\n AdminSeatInfoCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo'\n )\n ).AdminSeatInfoEE\n );\n const isAiEnabled = window.strapi.ai?.enabled !== false;\n const AIUsageData = useEnterprise(\n AIUageDataCE,\n async () =>\n (\n await import(\n '../../../../../../ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage'\n )\n ).AIUsage,\n {\n enabled: isAiEnabled,\n }\n );\n\n const {\n allowedActions: { canRead, canUpdate },\n } = useRBAC(settings ? settings['project-settings'] : {});\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = (e) => {\n e.preventDefault();\n\n updateProjectSettings({\n authLogo: logos.auth.custom ?? null,\n menuLogo: logos.menu.custom ?? null,\n });\n };\n\n const handleChangeLogo =\n (logo: 'menu' | 'auth'): LogoInputProps['onChangeLogo'] =>\n (newLogo) => {\n /**\n * If there's no newLogo value we can assume we're reseting.\n */\n if (newLogo === null) {\n trackUsage('didClickResetLogo', {\n logo,\n });\n }\n\n setLogos((prev) => ({\n ...prev,\n [logo]: {\n ...prev[logo],\n custom: newLogo,\n },\n }));\n };\n\n React.useEffect(() => {\n setLogos({\n menu: serverLogos.menu,\n auth: serverLogos.auth,\n });\n }, [serverLogos]);\n\n // block rendering until the EE component is fully loaded\n if (!AdminSeatInfo) {\n return null;\n }\n\n if (!AIUsageData) {\n return null;\n }\n\n const isSaveDisabled =\n logos.auth.custom === serverLogos.auth.custom && logos.menu.custom === serverLogos.menu.custom;\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: formatMessage({\n id: 'Settings.application.header',\n defaultMessage: 'Application',\n }),\n }\n )}\n </Page.Title>\n <Page.Main>\n <form onSubmit={handleSubmit}>\n <Layouts.Header\n title={formatMessage({\n id: 'Settings.application.title',\n defaultMessage: 'Overview',\n })}\n subtitle={formatMessage({\n id: 'Settings.application.description',\n defaultMessage: 'Administration panel’s global information',\n })}\n primaryAction={\n canUpdate && (\n <Button disabled={isSaveDisabled} type=\"submit\" startIcon={<Check />} fullWidth>\n {formatMessage({ id: 'global.save', defaultMessage: 'Save' })}\n </Button>\n )\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\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 <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n\n <Grid.Root gap={5} tag=\"dl\">\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.strapiVersion',\n defaultMessage: 'strapi version',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>v{strapiVersion}</Typography>\n {shouldUpdateStrapi && (\n <Link\n href={`https://github.com/strapi/strapi/releases/tag/${latestStrapiReleaseTag}`}\n endIcon={<ExternalLink />}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {formatMessage({\n id: 'Settings.application.link-upgrade',\n defaultMessage: 'Upgrade your admin panel',\n })}\n </Link>\n )}\n </Flex>\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.edition-title',\n defaultMessage: 'current edition',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>\n {formatMessage(\n {\n id: 'Settings.application.ee-or-ce',\n defaultMessage:\n '{communityEdition, select, true {Community Edition} other {Enterprise Edition}}',\n },\n { communityEdition }\n )}\n </Typography>\n <Link\n href=\"https://strapi.io/pricing-self-hosted\"\n endIcon={<ExternalLink />}\n target=\"_blank\"\n >\n {formatMessage({\n id: 'Settings.application.link-pricing',\n defaultMessage: 'See all pricing plans',\n })}\n </Link>\n </Flex>\n </Grid.Item>\n\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"start\">\n <Typography variant=\"sigma\" textColor=\"neutral600\" tag=\"dt\">\n {formatMessage({\n id: 'Settings.application.node-version',\n defaultMessage: 'node version',\n })}\n </Typography>\n <Typography tag=\"dd\">{nodeVersion}</Typography>\n </Grid.Item>\n <AdminSeatInfo />\n <AIUsageData />\n </Grid.Root>\n </Flex>\n {canRead && (\n <Box\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n paddingTop={6}\n paddingBottom={6}\n paddingRight={7}\n paddingLeft={7}\n >\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage({\n id: 'Settings.application.customization',\n defaultMessage: 'Customization',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.size-details',\n defaultMessage:\n 'Max dimension: {dimension}×{dimension}, Max file size: {size}KB',\n },\n { dimension: DIMENSION, size: SIZE }\n )}\n </Typography>\n <Grid.Root paddingTop={4} gap={4}>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.menu.custom}\n defaultLogo={logos.menu.default}\n hint={formatMessage({\n id: 'Settings.application.customization.menu-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the main navigation',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.menu-logo.title',\n defaultMessage: 'Menu logo',\n })}\n onChangeLogo={handleChangeLogo('menu')}\n />\n </Grid.Item>\n <Grid.Item col={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <LogoInput\n canUpdate={canUpdate}\n customLogo={logos.auth.custom}\n defaultLogo={logos.auth.default}\n hint={formatMessage({\n id: 'Settings.application.customization.auth-logo.carousel-hint',\n defaultMessage: 'Replace the logo in the authentication pages',\n })}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.auth-logo.title',\n defaultMessage: 'Auth logo',\n })}\n onChangeLogo={handleChangeLogo('auth')}\n />\n </Grid.Item>\n </Grid.Root>\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n </form>\n </Page.Main>\n </>\n );\n};\n\nexport { ApplicationInfoPage };\n"],"names":["AdminSeatInfoCE","AIUageDataCE","ApplicationInfoPage","trackUsage","useTracking","formatMessage","useIntl","get","useFetchClient","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","React","useState","menu","auth","settings","useSelector","selectAdminPermissions","communityEdition","useAppInfo","state","latestStrapiReleaseTag","nodeVersion","shouldUpdateStrapi","strapiVersion","AdminSeatInfo","useEnterprise","AdminSeatInfoEE","isAiEnabled","window","strapi","ai","enabled","AIUsageData","AIUsage","allowedActions","canRead","canUpdate","useRBAC","handleSubmit","e","preventDefault","authLogo","custom","menuLogo","handleChangeLogo","logo","newLogo","prev","useEffect","isSaveDisabled","_jsxs","_Fragment","_jsx","Page","Title","id","defaultMessage","name","Main","form","onSubmit","Layouts","Header","title","subtitle","primaryAction","Button","disabled","type","startIcon","Check","fullWidth","Content","Flex","direction","alignItems","gap","hasRadius","background","shadow","paddingTop","paddingBottom","paddingRight","paddingLeft","Typography","variant","tag","Grid","Root","Item","col","xs","textColor","Link","href","endIcon","ExternalLink","target","rel","Box","dimension","DIMENSION","size","SIZE","LogoInput","customLogo","defaultLogo","default","hint","label","onChangeLogo"],"mappings":"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"}
|
|
@@ -11,7 +11,10 @@ var styled = require('styled-components');
|
|
|
11
11
|
var constants = require('../utils/constants.js');
|
|
12
12
|
var files = require('../utils/files.js');
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
|
+
|
|
16
|
+
function _interopNamespace(e) {
|
|
17
|
+
if (e && e.__esModule) return e;
|
|
15
18
|
var n = Object.create(null);
|
|
16
19
|
if (e) {
|
|
17
20
|
Object.keys(e).forEach(function (k) {
|
|
@@ -28,7 +31,8 @@ function _interopNamespaceDefault(e) {
|
|
|
28
31
|
return Object.freeze(n);
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
var React__namespace = /*#__PURE__*/
|
|
34
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
35
|
+
var axios__default = /*#__PURE__*/_interopDefault(axios);
|
|
32
36
|
|
|
33
37
|
const [LogoInputContextProvider, useLogoInputContext] = reactContext.createContext('LogoInput');
|
|
34
38
|
const LogoInput = ({ canUpdate, customLogo, defaultLogo, hint, label, onChangeLogo })=>{
|
|
@@ -189,7 +193,7 @@ const LogoInput = ({ canUpdate, customLogo, defaultLogo, hint, label, onChangeLo
|
|
|
189
193
|
return;
|
|
190
194
|
}
|
|
191
195
|
try {
|
|
192
|
-
const res = await
|
|
196
|
+
const res = await axios__default.default.get(url.toString(), {
|
|
193
197
|
responseType: 'blob',
|
|
194
198
|
timeout: 8000
|
|
195
199
|
});
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,MAAM,CAACA,wBAAAA,EAA0BC,mBAAAA,CAAoB,GACnDC,0BAAAA,CAAqC,WAAA,CAAA;AAgBvC,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,iBAAMC,QAAQ,EAAA;AAClD,IAAA,MAAM,CAACC,WAAAA,EAAaC,cAAAA,CAAe,GAAGH,iBAAMC,QAAQ,EAAA;IACpD,MAAM,EAAEG,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,WAAAA,GAAc,IAAA;QAClBP,aAAAA,CAAcQ,SAAAA,CAAAA;QACdJ,cAAAA,CAAeI,SAAAA,CAAAA;AACjB,IAAA,CAAA;IAEA,qBACEC,cAAA,CAACC,mBAAMC,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,eAAA,CAAC1B,wBAAAA,EAAAA;YACCW,aAAAA,EAAeA,aAAAA;YACfD,UAAAA,EAAYA,UAAAA;YACZiB,QAAAA,EAAUZ,cAAAA;YACVa,OAAAA,EAASV,WAAAA;;8BAETE,cAAA,CAACS,0BAAAA,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,eAAA,CAACY,4BAAAA,EAAAA;;AACC,0CAAAlB,cAAA,CAACC,mBAAMkB,OAAO,EAAA;AACZ,gCAAA,QAAA,gBAAAnB,cAAA,CAACoB,uBAAAA,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,cAAA,CAACyB,UAAAA,EAAAA,EAAAA;;;AAGJxC,4BAAAA,UAAAA,EAAYyC,qBACX1B,cAAA,CAACoB,uBAAAA,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,cAAA,CAAC2B,oBAAAA,EAAAA,EAAAA;;;;AAMT,oBAAA,QAAA,gBAAA3B,cAAA,CAAC4B,0BAAAA,EAAAA;AACCxC,wBAAAA,KAAAA,EAAOQ,aAAAA,CAAc;4BACnB2B,EAAAA,EAAI,yDAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA,CAAA;AAEA,wBAAA,QAAA,gBAAAxB,cAAA,CAAC6B,gBAAAA,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,eAAA,CAACL,mBAAMkC,OAAO,EAAA;;AACZ,sCAAAnC,cAAA,CAACC,mBAAMmC,MAAM,EAAA;oDACXpC,cAAA,CAACC,mBAAMoC,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,cAAA,CAACsC,aAAAA,EAAAA,EAAAA,CAAAA,iBAEDtC,cAAA,CAACuC,iBAAAA,EAAAA;4BAAkBlD,YAAAA,EAAcA;;;;;;;AAM7C;AAEA;;AAEkG,qGAElG,MAAMiD,aAAAA,GAAgB,IAAA;IACpB,MAAM,EAAE1C,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAE1B,qBACES,eAAA,CAACkC,kBAAKtC,IAAI,EAAA;QAACuC,OAAAA,EAAQ,QAAA;QAASC,YAAAA,EAAa,UAAA;;0BACvC1C,cAAA,CAAC6B,gBAAAA,EAAAA;gBAAIc,WAAAA,EAAa,CAAA;gBAAGC,YAAAA,EAAc,CAAA;wCACjCtC,eAAA,CAACkC,kBAAKK,IAAI,EAAA;AACRC,oBAAAA,YAAAA,EAAYlD,aAAAA,CAAc;wBACxB2B,EAAAA,EAAI,oDAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;;AAEA,sCAAAxB,cAAA,CAACwC,kBAAKrB,OAAO,EAAA;4BAAC4B,KAAAA,EAAM,UAAA;sCACjBnD,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,+DAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;AAEF,sCAAAxB,cAAA,CAACwC,kBAAKrB,OAAO,EAAA;4BAAC4B,KAAAA,EAAM,KAAA;sCACjBnD,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,0DAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;;;AAIN,0BAAAxB,cAAA,CAACwC,kBAAKL,OAAO,EAAA;gBAACY,KAAAA,EAAM,UAAA;AAClB,gBAAA,QAAA,gBAAA/C,cAAA,CAACgD,YAAAA,EAAAA,EAAAA;;AAEH,0BAAAhD,cAAA,CAACwC,kBAAKL,OAAO,EAAA;gBAACY,KAAAA,EAAM,KAAA;AAClB,gBAAA,QAAA,gBAAA/C,cAAA,CAACiD,OAAAA,EAAAA,EAAAA;;;;AAIT,CAAA;AAEA;;AAEkG,qGAElG,MAAMA,OAAAA,GAAU,IAAA;IACd,MAAM,EAAErD,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACqD,OAAAA,EAASC,UAAAA,CAAW,GAAG3D,gBAAAA,CAAMC,QAAQ,CAAC,EAAA,CAAA;AAC7C,IAAA,MAAM,CAAC2D,KAAAA,EAAOC,QAAAA,CAAS,GAAG7D,iBAAMC,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,wBAAAA,CAAmBL,IAAAA,CAAAA;YAEvCnF,aAAAA,CAAcuF,KAAAA,CAAAA;YACdvE,QAAAA,CAAS,SAAA,CAAA;AACX,QAAA,CAAA,CAAE,OAAOyE,GAAAA,EAAK;AACZ,YAAA,IAAIA,eAAeC,gBAAAA,EAAY;AAC7B5B,gBAAAA,QAAAA,CACEzD,aAAAA,CAAc;oBACZ2B,EAAAA,EAAI,+DAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA,CAAA,CAAA;YAEJ,CAAA,MAAO,IAAIwD,eAAeE,sBAAAA,EAAkB;gBAC1C7B,QAAAA,CAASzD,aAAAA,CAAcoF,GAAAA,CAAIG,cAAc,EAAE;oBAAEC,IAAAA,EAAMC,cAAAA;oBAAMC,SAAAA,EAAWC;AAAU,iBAAA,CAAA,CAAA;YAChF,CAAA,MAAO;gBACL,MAAMP,GAAAA;AACR,YAAA;AACF,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,qBACE1E,eAAA,CAACkF,MAAAA,EAAAA;QAAKC,QAAAA,EAAUhC,YAAAA;;0BACdzD,cAAA,CAAC6B,gBAAAA,EAAAA;gBAAIc,WAAAA,EAAa,CAAA;gBAAGC,YAAAA,EAAc,CAAA;gBAAG8C,UAAAA,EAAY,CAAA;gBAAGC,aAAAA,EAAe,CAAA;wCAClErF,eAAA,CAACsF,mBAAM1F,IAAI,EAAA;oBAACkD,KAAAA,EAAOA,KAAAA;oBAAOpC,IAAAA,EAAK,UAAA;;AAC7B,sCAAAhB,cAAA,CAAC4F,mBAAMC,KAAK,EAAA;sCACTjG,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,sEAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;sCAEFxB,cAAA,CAAC8F,sBAAAA,EAAAA;4BAAUjB,IAAAA,EAAK,KAAA;4BAAMkB,QAAAA,EAAUzC,YAAAA;4BAAcP,KAAAA,EAAOG;;AACrD,sCAAAlD,cAAA,CAAC4F,mBAAMI,KAAK,EAAA,EAAA;;;;AAGhB,0BAAA1F,eAAA,CAACL,mBAAMgG,MAAM,EAAA;;kCACXjG,cAAA,CAACkG,mBAAAA,EAAAA;wBAAO5E,OAAAA,EAASd,OAAAA;wBAASiC,OAAAA,EAAQ,UAAA;kCAC/B7C,aAAAA,CAAc;4BAAE2B,EAAAA,EAAI,8BAAA;4BAAgCC,cAAAA,EAAgB;AAAS,yBAAA;;kCAEhFxB,cAAA,CAACkG,mBAAAA,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,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACsG,QAAAA,EAAUC,WAAAA,CAAY,GAAG5G,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;AAC/C,IAAA,MAAM,CAAC4G,SAAAA,EAAWC,YAAAA,CAAa,GAAG9G,iBAAMC,QAAQ,EAAA;IAChD,MAAM8G,QAAAA,GAAW/G,gBAAAA,CAAMgH,MAAM,CAAmB,IAAA,CAAA;IAChD,MAAMjF,EAAAA,GAAK/B,iBAAMiH,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,wBAAAA,CAAmBL,IAAAA,CAAAA;YACvCnF,aAAAA,CAAcuF,KAAAA,CAAAA;YACdvE,QAAAA,CAAS,SAAA,CAAA;AACX,QAAA,CAAA,CAAE,OAAOyE,GAAAA,EAAK;AACZ,YAAA,IAAIA,eAAeE,sBAAAA,EAAkB;gBACnCoB,YAAAA,CAAa1G,aAAAA,CAAcoF,GAAAA,CAAIG,cAAc,EAAE;oBAAEC,IAAAA,EAAMC,cAAAA;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,eAAA,CAAA2G,mBAAA,EAAA;;0BACEjH,cAAA,CAACwF,MAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAxF,cAAA,CAAC6B,gBAAAA,EAAAA;oBAAIc,WAAAA,EAAa,CAAA;oBAAGC,YAAAA,EAAc,CAAA;oBAAG8C,UAAAA,EAAY,CAAA;oBAAGC,aAAAA,EAAe,CAAA;4CAClE3F,cAAA,CAAC4F,mBAAM1F,IAAI,EAAA;wBAACc,IAAAA,EAAMO,EAAAA;wBAAI6B,KAAAA,EAAOiD,SAAAA;AAC3B,wBAAA,QAAA,gBAAA/F,eAAA,CAAC4G,iBAAAA,EAAAA;4BAAKC,SAAAA,EAAU,QAAA;4BAASC,UAAAA,EAAW,SAAA;4BAAUC,GAAAA,EAAK,CAAA;;8CACjD/G,eAAA,CAAC4G,iBAAAA,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,cAAA,CAAC+H,gBAAAA,EAAAA;4CAAWC,IAAAA,EAAK,YAAA;4CAAaC,KAAAA,EAAM,MAAA;4CAAOC,MAAAA,EAAO,MAAA;4CAAOC,aAAW,EAAA;;sDACpEnI,cAAA,CAAC6B,gBAAAA,EAAAA;4CAAI6D,UAAAA,EAAY,CAAA;4CAAGC,aAAAA,EAAe,CAAA;AACjC,4CAAA,QAAA,gBAAA3F,cAAA,CAACoI,uBAAAA,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,cAAA,CAAC6B,gBAAAA,EAAAA;4CAAI+F,QAAAA,EAAS,UAAA;AACZ,4CAAA,QAAA,gBAAA5H,cAAA,CAACsI,SAAAA,EAAAA;gDACCC,MAAAA,EAAQC,yBAAAA,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,cAAA,CAACkG,mBAAAA,EAAAA;4CAAOrB,IAAAA,EAAK,QAAA;4CAASvD,OAAAA,EAASsF,WAAAA;sDAC5BhH,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,4DAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFxB,cAAA,CAAC6B,gBAAAA,EAAAA;4CAAI6D,UAAAA,EAAY,CAAA;AACf,4CAAA,QAAA,gBAAA1F,cAAA,CAACoI,uBAAAA,EAAAA;gDAAW3F,OAAAA,EAAQ,IAAA;gDAAKmG,SAAAA,EAAU,YAAA;0DAChChJ,aAAAA,CACC;oDACE2B,EAAAA,EAAI,iEAAA;oDACJC,cAAAA,EACE;iDACJ,EACA;oDAAE4D,IAAAA,EAAMC,cAAAA;oDAAMC,SAAAA,EAAWC;AAAU,iDAAA;;;;;AAK3C,8CAAAvF,cAAA,CAAC4F,mBAAMI,KAAK,EAAA,EAAA;;;;;;AAKpB,0BAAAhG,cAAA,CAACC,mBAAMgG,MAAM,EAAA;AACX,gBAAA,QAAA,gBAAAjG,cAAA,CAACkG,mBAAAA,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,aAAAA,CAAOjD,kBAAAA,CAAMkD,KAAK,CAAC;;;;;;;;AAQrC,CAAC;AAUD,MAAMvG,iBAAAA,GAAoB,CAAC,EAAElD,YAAY,EAA0B,GAAA;IACjE,MAAM,EAAEO,aAAa,EAAE,GAAGC,iBAAAA,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,eAAA,CAAA2G,mBAAA,EAAA;;AACE,0BAAAjH,cAAA,CAACC,mBAAMgJ,IAAI,EAAA;AACT,gBAAA,QAAA,gBAAA3I,eAAA,CAACuB,gBAAAA,EAAAA;oBAAIc,WAAAA,EAAa,CAAA;oBAAGC,YAAAA,EAAc,CAAA;oBAAG8C,UAAAA,EAAY,CAAA;oBAAGC,aAAAA,EAAe,CAAA;;sCAClErF,eAAA,CAAC4G,iBAAAA,EAAAA;4BAAKK,cAAAA,EAAe,eAAA;4BAAgB5B,aAAAA,EAAe,CAAA;;8CAClDrF,eAAA,CAAC4G,iBAAAA,EAAAA;oCAAKC,SAAAA,EAAU,QAAA;oCAASC,UAAAA,EAAW,YAAA;;sDAClCpH,cAAA,CAACoI,uBAAAA,EAAAA;4CAAW3F,OAAAA,EAAQ,IAAA;4CAAKyG,UAAAA,EAAW,MAAA;sDACjCtJ,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,wDAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFxB,cAAA,CAACoI,uBAAAA,EAAAA;4CAAW3F,OAAAA,EAAQ,IAAA;4CAAKmG,SAAAA,EAAU,YAAA;sDAChChJ,aAAAA,CAAc;gDACb2B,EAAAA,EAAI,2DAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;;;8CAGJxB,cAAA,CAACkG,mBAAAA,EAAAA;oCAAO5E,OAAAA,EAASyH,YAAAA;oCAActG,OAAAA,EAAQ,WAAA;8CACpC7C,aAAAA,CAAc;wCACb2B,EAAAA,EAAI,iEAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA;;;;sCAGJxB,cAAA,CAAC6B,gBAAAA,EAAAA;4BAAIE,QAAAA,EAAU,CAAC,KAAK,CAAC;AACnBzC,4BAAAA,QAAAA,EAAAA,UAAAA,EAAYoC,oBAAM1B,cAAA,CAACmJ,cAAAA,EAAAA;gCAAerE,KAAAA,EAAOxF;AAAiB,6BAAA,CAAA,GAAA;;;;;AAIjE,0BAAAgB,eAAA,CAACL,mBAAMgG,MAAM,EAAA;;AACX,kCAAAjG,cAAA,CAACC,mBAAMmJ,KAAK,EAAA;AACV,wBAAA,QAAA,gBAAApJ,cAAA,CAACkG,mBAAAA,EAAAA;4BAAO5E,OAAAA,EAASd,OAAAA;4BAASiC,OAAAA,EAAQ,UAAA;sCAC/B7C,aAAAA,CAAc;gCACb2B,EAAAA,EAAI,iDAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA;;;kCAGJxB,cAAA,CAACkG,mBAAAA,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,iBAAAA,EAAAA;AAE1B,IAAA,qBACES,eAAA,CAAC+I,iBAAAA,EAAAA;;0BACCrJ,cAAA,CAACsJ,uBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAtJ,cAAA,CAACuJ,sBAAAA,EAAAA;oBAAUnE,IAAAA,EAAK,GAAA;AAAInD,oBAAAA,GAAAA,EAAK6C,MAAMpD;;;0BAEjCpB,eAAA,CAACkJ,qBAAAA,EAAAA;;kCACClJ,eAAA,CAACmJ,wBAAAA,EAAAA;;0CACCzJ,cAAA,CAAC0J,sBAAAA,EAAAA;AAAW5E,gCAAAA,QAAAA,EAAAA,KAAAA,CAAM9D;;0CAClBhB,cAAA,CAAC2J,yBAAAA,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,cAAA,CAAC8J,sBAAAA,EAAAA;kCACElK,aAAAA,CAAc;4BACb2B,EAAAA,EAAI,6DAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;;;;AAKV,CAAA;;;;"}
|
|
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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"}
|
|
@@ -11,7 +11,8 @@ var Notifications = require('../../../features/Notifications.js');
|
|
|
11
11
|
var useAPIErrorHandler = require('../../../hooks/useAPIErrorHandler.js');
|
|
12
12
|
var admin = require('../../../services/admin.js');
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function _interopNamespace(e) {
|
|
15
|
+
if (e && e.__esModule) return e;
|
|
15
16
|
var n = Object.create(null);
|
|
16
17
|
if (e) {
|
|
17
18
|
Object.keys(e).forEach(function (k) {
|
|
@@ -28,7 +29,7 @@ function _interopNamespaceDefault(e) {
|
|
|
28
29
|
return Object.freeze(n);
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
var React__namespace = /*#__PURE__*/
|
|
32
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
32
33
|
|
|
33
34
|
const InstalledPlugins = ()=>{
|
|
34
35
|
const { formatMessage } = reactIntl.useIntl();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstalledPlugins.js","sources":["../../../../../../../admin/src/pages/Settings/pages/InstalledPlugins.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Table, Tbody, Td, Th, Thead, Tr, Typography, useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Layouts } from '../../../components/Layouts/Layout';\nimport { Page } from '../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { useGetPluginsQuery } from '../../../services/admin';\n\nconst InstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <Layouts.Content>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'description',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ProtectedInstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n\n return (\n <Page.Protect permissions={permissions.marketplace?.main}>\n <Page.Title>\n {formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n </Page.Title>\n <InstalledPlugins />\n </Page.Protect>\n );\n};\n\nexport { ProtectedInstalledPlugins, InstalledPlugins };\n"],"names":["InstalledPlugins","formatMessage","useIntl","notifyStatus","useNotifyAT","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","data","error","useGetPluginsQuery","React","useEffect","id","defaultMessage","target","type","message","_jsx","Page","Loading","_Fragment","_jsxs","Main","Layouts","Header","title","subtitle","Content","Table","colCount","rowCount","plugins","length","Thead","Tr","Th","Typography","variant","textColor","Tbody","map","name","displayName","description","Td","fontWeight","ProtectedInstalledPlugins","permissions","useTypedSelector","state","admin_app","Protect","marketplace","main","Title"],"mappings":"
|
|
1
|
+
{"version":3,"file":"InstalledPlugins.js","sources":["../../../../../../../admin/src/pages/Settings/pages/InstalledPlugins.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Table, Tbody, Td, Th, Thead, Tr, Typography, useNotifyAT } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Layouts } from '../../../components/Layouts/Layout';\nimport { Page } from '../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../core/store/hooks';\nimport { useNotification } from '../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { useGetPluginsQuery } from '../../../services/admin';\n\nconst InstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const { isLoading, data, error } = useGetPluginsQuery();\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage(\n {\n id: 'app.utils.notify.data-loaded',\n defaultMessage: 'The {target} has loaded',\n },\n {\n target: formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n }),\n }\n )\n );\n }\n\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [data, error, formatAPIError, formatMessage, notifyStatus, toggleNotification]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Main>\n <Layouts.Header\n title={formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n subtitle={formatMessage({\n id: 'app.components.ListPluginsPage.description',\n defaultMessage: 'List of the installed plugins in the project.',\n })}\n />\n <Layouts.Content>\n <Table colCount={2} rowCount={data?.plugins?.length ?? 0 + 1}>\n <Thead>\n <Tr>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'description',\n })}\n </Typography>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {data?.plugins.map(({ name, displayName, description }) => {\n return (\n <Tr key={name}>\n <Td>\n <Typography textColor=\"neutral800\" variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: `global.plugins.${name}`,\n defaultMessage: displayName,\n })}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">\n {formatMessage({\n id: `global.plugins.${name}.description`,\n defaultMessage: description,\n })}\n </Typography>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n </Layouts.Content>\n </Page.Main>\n </>\n );\n};\n\nconst ProtectedInstalledPlugins = () => {\n const { formatMessage } = useIntl();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n\n return (\n <Page.Protect permissions={permissions.marketplace?.main}>\n <Page.Title>\n {formatMessage({\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n })}\n </Page.Title>\n <InstalledPlugins />\n </Page.Protect>\n );\n};\n\nexport { ProtectedInstalledPlugins, InstalledPlugins };\n"],"names":["InstalledPlugins","formatMessage","useIntl","notifyStatus","useNotifyAT","toggleNotification","useNotification","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","isLoading","data","error","useGetPluginsQuery","React","useEffect","id","defaultMessage","target","type","message","_jsx","Page","Loading","_Fragment","_jsxs","Main","Layouts","Header","title","subtitle","Content","Table","colCount","rowCount","plugins","length","Thead","Tr","Th","Typography","variant","textColor","Tbody","map","name","displayName","description","Td","fontWeight","ProtectedInstalledPlugins","permissions","useTypedSelector","state","admin_app","Protect","marketplace","main","Title"],"mappings":"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"}
|
|
@@ -22,7 +22,8 @@ var baseQuery = require('../../../../utils/baseQuery.js');
|
|
|
22
22
|
var translatedErrors = require('../../../../utils/translatedErrors.js');
|
|
23
23
|
var Permissions = require('./components/Permissions.js');
|
|
24
24
|
|
|
25
|
-
function
|
|
25
|
+
function _interopNamespace(e) {
|
|
26
|
+
if (e && e.__esModule) return e;
|
|
26
27
|
var n = Object.create(null);
|
|
27
28
|
if (e) {
|
|
28
29
|
Object.keys(e).forEach(function (k) {
|
|
@@ -39,8 +40,8 @@ function _interopNamespaceDefault(e) {
|
|
|
39
40
|
return Object.freeze(n);
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
var React__namespace = /*#__PURE__*/
|
|
43
|
-
var yup__namespace = /*#__PURE__*/
|
|
43
|
+
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
44
|
+
var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
44
45
|
|
|
45
46
|
/* -------------------------------------------------------------------------------------------------
|
|
46
47
|
* CreatePage
|
|
@@ -57,6 +58,7 @@ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
|
57
58
|
const { formatMessage } = reactIntl.useIntl();
|
|
58
59
|
const navigate = reactRouterDom.useNavigate();
|
|
59
60
|
const permissionsRef = React__namespace.useRef(null);
|
|
61
|
+
const [hasLocaleValidationErrors, setHasLocaleValidationErrors] = React__namespace.useState(false);
|
|
60
62
|
const { trackUsage } = Tracking.useTracking();
|
|
61
63
|
const { _unstableFormatAPIError: formatAPIError, _unstableFormatValidationErrors: formatValidationErrors } = useAPIErrorHandler.useAPIErrorHandler();
|
|
62
64
|
const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } = users.useGetRolePermissionLayoutQuery({
|
|
@@ -77,6 +79,10 @@ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
|
77
79
|
const [createRole] = users.useCreateRoleMutation();
|
|
78
80
|
const [updateRolePermissions] = users.useUpdateRolePermissionsMutation();
|
|
79
81
|
const handleCreateRoleSubmit = async (data, formik)=>{
|
|
82
|
+
// Re-check via ref on submit: state may lag behind the latest matrix edits when save is clicked quickly
|
|
83
|
+
if (permissionsRef.current?.hasLocaleValidationErrors()) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
80
86
|
try {
|
|
81
87
|
if (id) {
|
|
82
88
|
trackUsage('willDuplicateRole');
|
|
@@ -180,6 +186,7 @@ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
|
180
186
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
181
187
|
type: "submit",
|
|
182
188
|
loading: isSubmitting,
|
|
189
|
+
disabled: hasLocaleValidationErrors,
|
|
183
190
|
startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Check, {}),
|
|
184
191
|
fullWidth: true,
|
|
185
192
|
children: formatMessage({
|
|
@@ -324,6 +331,7 @@ var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
|
324
331
|
hasRadius: true,
|
|
325
332
|
children: /*#__PURE__*/ jsxRuntime.jsx(Permissions.Permissions, {
|
|
326
333
|
isFormDisabled: false,
|
|
334
|
+
onLocaleValidationChange: setHasLocaleValidationErrors,
|
|
327
335
|
ref: permissionsRef,
|
|
328
336
|
permissions: rolePermissions,
|
|
329
337
|
layout: permissionsLayout
|