@strapi/admin 5.50.0 → 5.50.2
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/components/ConfirmDialog.js +2 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js +3 -3
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +4 -4
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/Form.js +41 -27
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +41 -27
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js +18 -26
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs +20 -28
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js +2 -2
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.js +3 -3
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +8 -8
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +4 -4
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +4 -4
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +3 -3
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +4 -4
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
- package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +3 -3
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +8 -8
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +7 -7
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +3 -3
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js +6 -6
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +11 -9
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +4 -2
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +9 -5
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +6 -2
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +2 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -3
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js +4 -7
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js +5 -5
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/store/configure.js.map +1 -1
- package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +3 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +3 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js +4 -4
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +6 -4
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +6 -4
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +17 -9
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +15 -7
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +2 -2
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +3 -6
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +4 -8
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +4 -8
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +2 -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 +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -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 +4 -4
- 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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +3 -11
- 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 +3 -11
- 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 +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +10 -10
- 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/ConditionsButton.js +3 -3
- 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/ContentTypeCollapses.js +5 -5
- 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/HiddenAction.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +2 -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/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/reducer.js +3 -3
- package/dist/admin/admin/src/reducer.js.map +1 -1
- package/dist/admin/admin/src/reducer.mjs +4 -4
- package/dist/admin/admin/src/reducer.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -2
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -2
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +1 -2
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +1 -2
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +693 -687
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +693 -687
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.js +157 -1
- package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.mjs +157 -1
- package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.js +22 -0
- package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.mjs +22 -0
- package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/arrays.js.map +1 -1
- package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js +7 -0
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs +7 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +2 -2
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +3 -3
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getProjectType.js +22 -0
- package/dist/admin/admin/src/utils/getProjectType.js.map +1 -0
- package/dist/admin/admin/src/utils/getProjectType.mjs +20 -0
- package/dist/admin/admin/src/utils/getProjectType.mjs.map +1 -0
- package/dist/admin/admin/src/utils/objects.js +43 -11
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.mjs +43 -11
- package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
- package/dist/admin/admin/src/utils/once.js.map +1 -1
- package/dist/admin/admin/src/utils/once.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js +2 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs +2 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/shims.js.map +1 -1
- package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
- package/dist/admin/admin/src/utils/widgetVisibility.js +16 -1
- package/dist/admin/admin/src/utils/widgetVisibility.js.map +1 -1
- package/dist/admin/admin/src/utils/widgetVisibility.mjs +14 -2
- package/dist/admin/admin/src/utils/widgetVisibility.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +2 -2
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs +2 -2
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js +2 -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/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/shared/utils/auth-cookie-name.js +31 -0
- package/dist/admin/shared/utils/auth-cookie-name.js.map +1 -0
- package/dist/admin/shared/utils/auth-cookie-name.mjs +28 -0
- package/dist/admin/shared/utils/auth-cookie-name.mjs.map +1 -0
- package/dist/admin/src/StrapiApp.d.ts +2 -2
- package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +2 -1
- package/dist/admin/src/components/Form.d.ts +14 -12
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +1 -1
- package/dist/admin/src/components/GuidedTour/Steps/Step.d.ts +1 -1
- package/dist/admin/src/components/SubNav.d.ts +1 -1
- package/dist/admin/src/components/Table.d.ts +3 -2
- package/dist/admin/src/core/apis/Plugin.d.ts +1 -1
- package/dist/admin/src/core/utils/createHook.d.ts +6 -6
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useMenu.d.ts +1 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +2 -1
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +5 -5
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +2 -2
- package/dist/admin/src/services/auth.d.ts +12 -12
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +3 -3
- package/dist/admin/src/utils/arrays.d.ts +1 -1
- package/dist/admin/src/utils/baseQuery.d.ts +1 -1
- package/dist/admin/src/utils/cookies.d.ts +5 -0
- package/dist/admin/src/utils/getFetchClient.d.ts +7 -7
- package/dist/admin/src/utils/getProjectType.d.ts +16 -0
- package/dist/admin/src/utils/objects.d.ts +6 -4
- package/dist/admin/src/utils/once.d.ts +1 -1
- package/dist/admin/src/utils/widgetVisibility.d.ts +11 -0
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/tableHeaders.d.ts +2 -1
- package/dist/ee/admin/src/services/ai.d.ts +3 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/routes/audit-logs.d.ts +1 -1
- package/dist/ee/server/src/controllers/admin.d.ts +2 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/middlewares.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +2 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +2 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/routes/index.d.ts +2 -2
- package/dist/ee/server/src/routes/sso.d.ts +2 -2
- package/dist/ee/server/src/services/index.d.ts +2 -2
- package/dist/server/ee/server/src/controllers/admin.js +1 -0
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +1 -0
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs +2 -2
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js +9 -2
- package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +9 -2
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +5 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +5 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +19 -11
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +19 -11
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/permission.js +1 -1
- package/dist/server/server/src/validation/permission.js.map +1 -1
- package/dist/server/server/src/validation/permission.mjs +1 -1
- package/dist/server/server/src/validation/permission.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js +2 -2
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs +2 -2
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/shared/utils/auth-cookie-name.js +31 -0
- package/dist/server/shared/utils/auth-cookie-name.js.map +1 -0
- package/dist/server/shared/utils/auth-cookie-name.mjs +28 -0
- package/dist/server/shared/utils/auth-cookie-name.mjs.map +1 -0
- package/dist/server/shared/utils/session-auth.js +6 -0
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/shared/utils/session-auth.mjs +6 -1
- package/dist/server/shared/utils/session-auth.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +3 -3
- package/dist/server/src/controllers/index.d.ts +3 -3
- package/dist/server/src/domain/user.d.ts +1 -1
- package/dist/server/src/index.d.ts +19 -19
- package/dist/server/src/middlewares/index.d.ts +1 -1
- package/dist/server/src/services/index.d.ts +13 -13
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/shared/utils/__tests__/auth-cookie-name.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/auth-cookie-name.test.d.ts.map +1 -0
- package/dist/shared/utils/__tests__/session-auth.test.d.ts +1 -0
- package/dist/shared/utils/__tests__/session-auth.test.d.ts.map +1 -0
- package/dist/shared/utils/auth-cookie-name.d.ts +14 -0
- package/dist/shared/utils/auth-cookie-name.d.ts.map +1 -0
- package/dist/shared/utils/session-auth.d.ts +1 -0
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +20 -17
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 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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"}
|
|
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 { 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 { 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 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.plan-title',\n defaultMessage: 'current plan',\n })}\n </Typography>\n <Flex gap={3} direction=\"column\" alignItems=\"start\" tag=\"dd\">\n <Typography>{window.strapi.projectType}</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","logos","serverLogos","updateProjectSettings","useConfiguration","setLogos","React","useState","menu","auth","settings","useSelector","selectAdminPermissions","latestStrapiReleaseTag","useAppInfo","state","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","projectType","Box","dimension","DIMENSION","size","SIZE","LogoInput","customLogo","defaultLogo","default","hint","label","onChangeLogo"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ var designSystem = require('@strapi/design-system');
|
|
|
7
7
|
var icons = require('@strapi/icons');
|
|
8
8
|
var axios = require('axios');
|
|
9
9
|
var reactIntl = require('react-intl');
|
|
10
|
-
var
|
|
10
|
+
var styledComponents = require('styled-components');
|
|
11
11
|
var constants = require('../utils/constants.js');
|
|
12
12
|
var files = require('../utils/files.js');
|
|
13
13
|
|
|
@@ -418,7 +418,7 @@ const LogoInput = ({ canUpdate, customLogo, defaultLogo, hint, label, onChangeLo
|
|
|
418
418
|
]
|
|
419
419
|
});
|
|
420
420
|
};
|
|
421
|
-
const FileInput =
|
|
421
|
+
const FileInput = styledComponents.styled(designSystem.Field.Input)`
|
|
422
422
|
opacity: 0;
|
|
423
423
|
position: absolute;
|
|
424
424
|
top: 0;
|
package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\n Pick<CarouselInputProps, 'label' | 'hint'> {\n canUpdate: boolean;\n customLogo?: ConfigurationContextValue['logos']['auth']['custom'];\n defaultLogo: string;\n}\n\ntype Step = 'pending' | 'upload' | undefined;\n\nconst LogoInput = ({\n canUpdate,\n customLogo,\n defaultLogo,\n hint,\n label,\n onChangeLogo,\n}: LogoInputProps) => {\n const [localImage, setLocalImage] = React.useState<ImageAsset | undefined>();\n const [currentStep, setCurrentStep] = React.useState<Step>();\n const { formatMessage } = useIntl();\n\n const handleClose = () => {\n setLocalImage(undefined);\n setCurrentStep(undefined);\n };\n\n return (\n <Modal.Root\n open={!!currentStep}\n onOpenChange={(state) => {\n if (state === false) {\n handleClose();\n }\n }}\n >\n <LogoInputContextProvider\n setLocalImage={setLocalImage}\n localImage={localImage}\n goToStep={setCurrentStep}\n onClose={handleClose}\n >\n <CarouselInput\n label={label}\n selectedSlide={0}\n hint={hint}\n // Carousel is used here for a single media,\n // we don't need previous and next labels but these props are required\n previousLabel=\"\"\n nextLabel=\"\"\n onNext={() => {}}\n onPrevious={() => {}}\n secondaryLabel={customLogo?.name || 'logo.png'}\n actions={\n <CarouselActions>\n <Modal.Trigger>\n <IconButton\n disabled={!canUpdate}\n onClick={() => setCurrentStep('upload')}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.change-action',\n defaultMessage: 'Change logo',\n })}\n >\n <Plus />\n </IconButton>\n </Modal.Trigger>\n {customLogo?.url && (\n <IconButton\n disabled={!canUpdate}\n onClick={() => onChangeLogo(null)}\n label={formatMessage({\n id: 'Settings.application.customization.carousel.reset-action',\n defaultMessage: 'Reset logo',\n })}\n >\n <ArrowClockwise />\n </IconButton>\n )}\n </CarouselActions>\n }\n >\n <CarouselSlide\n label={formatMessage({\n id: 'Settings.application.customization.carousel-slide.label',\n defaultMessage: 'Logo slide',\n })}\n >\n <Box\n maxHeight=\"40%\"\n maxWidth=\"40%\"\n tag=\"img\"\n src={customLogo?.url || defaultLogo}\n alt={formatMessage({\n id: 'Settings.application.customization.carousel.title',\n defaultMessage: 'Logo',\n })}\n />\n </CarouselSlide>\n </CarouselInput>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage(\n currentStep === 'upload'\n ? {\n id: 'Settings.application.customization.modal.upload',\n defaultMessage: 'Upload logo',\n }\n : {\n id: 'Settings.application.customization.modal.pending',\n defaultMessage: 'Pending logo',\n }\n )}\n </Modal.Title>\n </Modal.Header>\n {currentStep === 'upload' ? (\n <AddLogoDialog />\n ) : (\n <PendingLogoDialog onChangeLogo={onChangeLogo} />\n )}\n </Modal.Content>\n </LogoInputContextProvider>\n </Modal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AddLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst AddLogoDialog = () => {\n const { formatMessage } = useIntl();\n\n return (\n <Tabs.Root variant=\"simple\" defaultValue=\"computer\">\n <Box paddingLeft={8} paddingRight={8}>\n <Tabs.List\n aria-label={formatMessage({\n id: 'Settings.application.customization.modal.tab.label',\n defaultMessage: 'How do you want to upload your assets?',\n })}\n >\n <Tabs.Trigger value=\"computer\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-computer',\n defaultMessage: 'From computer',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"url\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url',\n defaultMessage: 'From url',\n })}\n </Tabs.Trigger>\n </Tabs.List>\n </Box>\n <Tabs.Content value=\"computer\">\n <ComputerForm />\n </Tabs.Content>\n <Tabs.Content value=\"url\">\n <URLForm />\n </Tabs.Content>\n </Tabs.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * URLForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst URLForm = () => {\n const { formatMessage } = useIntl();\n const [logoUrl, setLogoUrl] = React.useState('');\n const [error, setError] = React.useState<string>();\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('URLForm');\n\n const handleChange: TextInputProps['onChange'] = (e) => {\n setLogoUrl(e.target.value);\n };\n\n const handleSubmit: React.FormEventHandler<HTMLFormElement> = async (event) => {\n event.preventDefault();\n\n const data = new FormData(event.target as HTMLFormElement);\n\n const url = data.get('logo-url');\n\n if (!url) {\n return;\n }\n\n try {\n const res = await axios.get(url.toString(), { responseType: 'blob', timeout: 8000 });\n\n // Axios types Content-Type as AxiosHeaderValue (string | array | null | …); File#type only accepts string | undefined.\n const contentType = res.headers['content-type'];\n const mimeType =\n typeof contentType === 'string'\n ? contentType\n : Array.isArray(contentType)\n ? contentType[0]\n : contentType != null && typeof contentType !== 'object'\n ? String(contentType)\n : undefined;\n\n const file = new File([res.data], res.config.url ?? '', {\n type: mimeType,\n });\n\n const asset = await parseFileMetadatas(file);\n\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof AxiosError) {\n setError(\n formatMessage({\n id: 'Settings.application.customization.modal.upload.error-network',\n defaultMessage: 'Network error',\n })\n );\n } else if (err instanceof ParsingFileError) {\n setError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n } else {\n throw err;\n }\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root error={error} name=\"logo-url\">\n <Field.Label>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.from-url.input-label',\n defaultMessage: 'URL',\n })}\n </Field.Label>\n <TextInput type=\"url\" onChange={handleChange} value={logoUrl} />\n <Field.Error />\n </Field.Root>\n </Box>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n <Button type=\"submit\">\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.next',\n defaultMessage: 'Next',\n })}\n </Button>\n </Modal.Footer>\n </form>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ComputerForm\n * -----------------------------------------------------------------------------------------------*/\n\nconst ComputerForm = () => {\n const { formatMessage } = useIntl();\n const [dragOver, setDragOver] = React.useState(false);\n const [fileError, setFileError] = React.useState<string>();\n const inputRef = React.useRef<HTMLInputElement>(null!);\n const id = React.useId();\n\n const { setLocalImage, goToStep, onClose } = useLogoInputContext('ComputerForm');\n\n const handleDragEnter = () => {\n setDragOver(true);\n };\n const handleDragLeave = () => {\n setDragOver(false);\n };\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n e.preventDefault();\n inputRef.current.click();\n };\n\n const handleChange = async () => {\n handleDragLeave();\n\n if (!inputRef.current.files) {\n return;\n }\n\n const [file] = inputRef.current.files;\n\n try {\n const asset = await parseFileMetadatas(file);\n setLocalImage(asset);\n goToStep('pending');\n } catch (err) {\n if (err instanceof ParsingFileError) {\n setFileError(formatMessage(err.displayMessage, { size: SIZE, dimension: DIMENSION }));\n inputRef.current.focus();\n } else {\n throw err;\n }\n }\n };\n\n return (\n <>\n <form>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Field.Root name={id} error={fileError}>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Flex\n paddingTop={9}\n paddingBottom={7}\n hasRadius\n justifyContent=\"center\"\n direction=\"column\"\n background={dragOver ? 'primary100' : 'neutral100'}\n borderColor={dragOver ? 'primary500' : fileError ? 'danger600' : 'neutral300'}\n borderStyle=\"dashed\"\n borderWidth=\"1px\"\n position=\"relative\"\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n >\n <PlusCircle fill=\"primary600\" width=\"6rem\" height=\"6rem\" aria-hidden />\n <Box paddingTop={3} paddingBottom={5}>\n <Typography variant=\"delta\" tag=\"label\" htmlFor={id}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.drag-drop',\n defaultMessage: 'Drag and Drop here or',\n })}\n </Typography>\n </Box>\n <Box position=\"relative\">\n <FileInput\n accept={ACCEPTED_FORMAT.join(', ')}\n type=\"file\"\n name=\"files\"\n tabIndex={-1}\n onChange={handleChange}\n ref={inputRef}\n id={id}\n />\n </Box>\n <Button type=\"button\" onClick={handleClick}>\n {formatMessage({\n id: 'Settings.application.customization.modal.upload.cta.browse',\n defaultMessage: 'Browse files',\n })}\n </Button>\n <Box paddingTop={6}>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.application.customization.modal.upload.file-validation',\n defaultMessage:\n 'Max dimension: {dimension}x{dimension}, Max size: {size}KB',\n },\n { size: SIZE, dimension: DIMENSION }\n )}\n </Typography>\n </Box>\n </Flex>\n <Field.Error />\n </Flex>\n </Field.Root>\n </Box>\n </form>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\nconst FileInput = styled(Field.Input)`\n opacity: 0;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * PendingLogoDialog\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PendingLogoDialogProps {\n onChangeLogo: (file: ImageAsset | null) => void;\n}\n\nconst PendingLogoDialog = ({ onChangeLogo }: PendingLogoDialogProps) => {\n const { formatMessage } = useIntl();\n const { localImage, setLocalImage, goToStep, onClose } = useLogoInputContext('PendingLogoDialog');\n\n const handleGoBack = () => {\n setLocalImage(undefined);\n goToStep('upload');\n };\n\n const handleUpload = () => {\n if (localImage) {\n onChangeLogo(localImage);\n }\n onClose();\n };\n\n return (\n <>\n <Modal.Body>\n <Box paddingLeft={8} paddingRight={8} paddingTop={6} paddingBottom={6}>\n <Flex justifyContent=\"space-between\" paddingBottom={6}>\n <Flex direction=\"column\" alignItems=\"flex-start\">\n <Typography variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.title',\n defaultMessage: 'Logo ready to upload',\n })}\n </Typography>\n <Typography variant=\"pi\" textColor=\"neutral500\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.subtitle',\n defaultMessage: 'Manage the chosen logo before uploading it',\n })}\n </Typography>\n </Flex>\n <Button onClick={handleGoBack} variant=\"secondary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.choose-another',\n defaultMessage: 'Choose another logo',\n })}\n </Button>\n </Flex>\n <Box maxWidth={`18rem`}>\n {localImage?.url ? <ImageCardAsset asset={localImage} /> : null}\n </Box>\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Modal.Close>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({\n id: 'Settings.application.customization.modal.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n </Modal.Close>\n <Button onClick={handleUpload}>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.upload',\n defaultMessage: 'Upload logo',\n })}\n </Button>\n </Modal.Footer>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ImageCardAsset\n * -----------------------------------------------------------------------------------------------*/\n\ninterface ImageCardAssetProps {\n asset: ImageAsset;\n}\n\nconst ImageCardAsset = ({ asset }: ImageCardAssetProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Card>\n <CardHeader>\n <CardAsset size=\"S\" src={asset.url} />\n </CardHeader>\n <CardBody>\n <CardContent>\n <CardTitle>{asset.name}</CardTitle>\n <CardSubtitle>\n {`${asset.ext?.toUpperCase()} - ${asset.width}✕${asset.height}`}\n </CardSubtitle>\n </CardContent>\n <CardBadge>\n {formatMessage({\n id: 'Settings.application.customization.modal.pending.card-badge',\n defaultMessage: 'image',\n })}\n </CardBadge>\n </CardBody>\n </Card>\n );\n};\n\nexport { LogoInput };\nexport type { LogoInputProps };\n"],"names":["LogoInputContextProvider","useLogoInputContext","createContext","LogoInput","canUpdate","customLogo","defaultLogo","hint","label","onChangeLogo","localImage","setLocalImage","React","useState","currentStep","setCurrentStep","formatMessage","useIntl","handleClose","undefined","_jsx","Modal","Root","open","onOpenChange","state","_jsxs","goToStep","onClose","CarouselInput","selectedSlide","previousLabel","nextLabel","onNext","onPrevious","secondaryLabel","name","actions","CarouselActions","Trigger","IconButton","disabled","onClick","id","defaultMessage","Plus","url","ArrowClockwise","CarouselSlide","Box","maxHeight","maxWidth","tag","src","alt","Content","Header","Title","AddLogoDialog","PendingLogoDialog","Tabs","variant","defaultValue","paddingLeft","paddingRight","List","aria-label","value","ComputerForm","URLForm","logoUrl","setLogoUrl","error","setError","handleChange","e","target","handleSubmit","event","preventDefault","data","FormData","get","res","axios","toString","responseType","timeout","contentType","headers","mimeType","Array","isArray","String","file","File","config","type","asset","parseFileMetadatas","err","AxiosError","ParsingFileError","displayMessage","size","SIZE","dimension","DIMENSION","form","onSubmit","paddingTop","paddingBottom","Field","Label","TextInput","onChange","Error","Footer","Button","dragOver","setDragOver","fileError","setFileError","inputRef","useRef","useId","handleDragEnter","handleDragLeave","handleClick","current","click","files","focus","_Fragment","Flex","direction","alignItems","gap","hasRadius","justifyContent","background","borderColor","borderStyle","borderWidth","position","onDragEnter","onDragLeave","PlusCircle","fill","width","height","aria-hidden","Typography","htmlFor","FileInput","accept","ACCEPTED_FORMAT","join","tabIndex","ref","textColor","styled","Input","handleGoBack","handleUpload","Body","fontWeight","ImageCardAsset","Close","Card","CardHeader","CardAsset","CardBody","CardContent","CardTitle","CardSubtitle","ext","toUpperCase","CardBadge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LogoInput.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { createContext } from '@radix-ui/react-context';\nimport {\n Box,\n Button,\n ButtonProps,\n Card,\n CardAsset,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n CarouselActions,\n CarouselInput,\n CarouselInputProps,\n CarouselSlide,\n Field,\n Flex,\n IconButton,\n Modal,\n Tabs,\n TextInput,\n TextInputProps,\n Typography,\n} from '@strapi/design-system';\nimport { PlusCircle, Plus, ArrowClockwise } from '@strapi/icons';\nimport axios, { AxiosError } from 'axios';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { ConfigurationContextValue } from '../../../../../features/Configuration';\nimport { ACCEPTED_FORMAT, DIMENSION, SIZE } from '../utils/constants';\nimport { ImageAsset, ParsingFileError, parseFileMetadatas } from '../utils/files';\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInputContext\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputContextValue {\n localImage: ImageAsset | undefined;\n goToStep: (step: Step) => void;\n onClose: () => void;\n setLocalImage: (asset: ImageAsset | undefined) => void;\n}\n\nconst [LogoInputContextProvider, useLogoInputContext] =\n createContext<LogoInputContextValue>('LogoInput');\n\n/* -------------------------------------------------------------------------------------------------\n * LogoInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface LogoInputProps\n extends Pick<PendingLogoDialogProps, 'onChangeLogo'>,\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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"}
|
|
@@ -8,7 +8,7 @@ var dateFns = require('date-fns');
|
|
|
8
8
|
var formik = require('formik');
|
|
9
9
|
var reactIntl = require('react-intl');
|
|
10
10
|
var reactRouterDom = require('react-router-dom');
|
|
11
|
-
var
|
|
11
|
+
var styledComponents = require('styled-components');
|
|
12
12
|
var yup = require('yup');
|
|
13
13
|
var Layout = require('../../../../components/Layouts/Layout.js');
|
|
14
14
|
var PageHelpers = require('../../../../components/PageHelpers.js');
|
|
@@ -347,7 +347,7 @@ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
|
347
347
|
]
|
|
348
348
|
});
|
|
349
349
|
};
|
|
350
|
-
const UsersRoleNumber =
|
|
350
|
+
const UsersRoleNumber = styledComponents.styled.div`
|
|
351
351
|
border: 1px solid ${({ theme })=>theme.colors.primary200};
|
|
352
352
|
background: ${({ theme })=>theme.colors.primary100};
|
|
353
353
|
padding: ${({ theme })=>`${theme.spaces[2]} ${theme.spaces[4]}`};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreatePage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const [hasLocaleValidationErrors, setHasLocaleValidationErrors] = React.useState(false);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n // Re-check via ref on submit: state may lag behind the latest matrix edits when save is clicked quickly\n if (permissionsRef.current?.hasLocaleValidationErrors()) {\n return;\n }\n\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex width=\"100%\" gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n fullWidth\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button\n type=\"submit\"\n loading={isSubmitting}\n disabled={hasLocaleValidationErrors}\n startIcon={<Check />}\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../roles\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item m={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item m={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n onLocaleValidationChange={setHasLocaleValidationErrors}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","hasLocaleValidationErrors","setHasLocaleValidationErrors","useState","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","current","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","width","gap","Button","variant","onClick","resetForm","fullWidth","loading","disabled","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","m","xs","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","onLocaleValidationChange","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CreatePage.js","sources":["../../../../../../../../admin/src/pages/Settings/pages/Roles/CreatePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Field,\n Flex,\n Grid,\n Main,\n Textarea,\n TextInput,\n Typography,\n} from '@strapi/design-system';\nimport { Check } from '@strapi/icons';\nimport { format } from 'date-fns';\nimport { Formik, Form, FormikHelpers } from 'formik';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport * as yup from 'yup';\n\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport {\n useCreateRoleMutation,\n useGetRolePermissionLayoutQuery,\n useGetRolePermissionsQuery,\n useUpdateRolePermissionsMutation,\n} from '../../../../services/users';\nimport { isBaseQueryError } from '../../../../utils/baseQuery';\nimport { translatedErrors } from '../../../../utils/translatedErrors';\n\nimport { Permissions, PermissionsAPI } from './components/Permissions';\n\n/* -------------------------------------------------------------------------------------------------\n * CreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst CREATE_SCHEMA = yup.object().shape({\n name: yup.string().required(translatedErrors.required.id),\n description: yup.string().required(translatedErrors.required.id),\n});\n\n/**\n * TODO: be nice if we could just infer this from the schema\n */\ninterface CreateRoleFormValues {\n name: string;\n description: string;\n}\n\n/**\n * TODO: this whole section of the app needs refactoring. Using a ref to\n * manage the state of the child is nonsensical.\n */\nconst CreatePage = () => {\n const { id } = useParams();\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const permissionsRef = React.useRef<PermissionsAPI>(null);\n const [hasLocaleValidationErrors, setHasLocaleValidationErrors] = React.useState(false);\n const { trackUsage } = useTracking();\n const {\n _unstableFormatAPIError: formatAPIError,\n _unstableFormatValidationErrors: formatValidationErrors,\n } = useAPIErrorHandler();\n\n const { isLoading: isLoadingPermissionsLayout, currentData: permissionsLayout } =\n useGetRolePermissionLayoutQuery({\n /**\n * Role here is a query param so if there's no role we pass an empty string\n * which returns us a default layout.\n */\n role: id ?? '',\n });\n\n /**\n * We need this so if we're cloning a role, we can fetch\n * the current permissions that role has.\n */\n const { currentData: rolePermissions, isLoading: isLoadingRole } = useGetRolePermissionsQuery(\n {\n id: id!,\n },\n {\n skip: !id,\n refetchOnMountOrArgChange: true,\n }\n );\n\n const [createRole] = useCreateRoleMutation();\n const [updateRolePermissions] = useUpdateRolePermissionsMutation();\n\n const handleCreateRoleSubmit = async (\n data: CreateRoleFormValues,\n formik: FormikHelpers<CreateRoleFormValues>\n ) => {\n // Re-check via ref on submit: state may lag behind the latest matrix edits when save is clicked quickly\n if (permissionsRef.current?.hasLocaleValidationErrors()) {\n return;\n }\n\n try {\n if (id) {\n trackUsage('willDuplicateRole');\n } else {\n trackUsage('willCreateNewRole');\n }\n\n const res = await createRole(data);\n\n if ('error' in res) {\n if (isBaseQueryError(res.error) && res.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(res.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n\n return;\n }\n\n const { permissionsToSend } = permissionsRef.current?.getPermissions() ?? {};\n\n if (res.data.id && Array.isArray(permissionsToSend) && permissionsToSend.length > 0) {\n const updateRes = await updateRolePermissions({\n id: res.data.id,\n permissions: permissionsToSend,\n });\n\n if ('error' in updateRes) {\n if (isBaseQueryError(updateRes.error) && updateRes.error.name === 'ValidationError') {\n formik.setErrors(formatValidationErrors(updateRes.error));\n } else {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(updateRes.error),\n });\n }\n\n return;\n }\n }\n\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.roles.created', defaultMessage: 'created' }),\n });\n\n navigate(`../roles/${res.data.id.toString()}`, { replace: true });\n } catch (err) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({ id: 'notification.error', defaultMessage: 'An error occurred' }),\n });\n }\n };\n\n if ((isLoadingPermissionsLayout && isLoadingRole) || !permissionsLayout) {\n return <Page.Loading />;\n }\n\n return (\n <Main>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Roles',\n }\n )}\n </Page.Title>\n <Formik\n initialValues={\n {\n name: '',\n description: `${formatMessage({\n id: 'Settings.roles.form.created',\n defaultMessage: 'Created',\n })} ${format(new Date(), 'PPP')}`,\n } satisfies CreateRoleFormValues\n }\n onSubmit={handleCreateRoleSubmit}\n validationSchema={CREATE_SCHEMA}\n validateOnChange={false}\n >\n {({ values, errors, handleReset, handleChange, isSubmitting }) => (\n <Form>\n <>\n <Layouts.Header\n primaryAction={\n <Flex width=\"100%\" gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => {\n handleReset();\n permissionsRef.current?.resetForm();\n }}\n fullWidth\n >\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </Button>\n <Button\n type=\"submit\"\n loading={isSubmitting}\n disabled={hasLocaleValidationErrors}\n startIcon={<Check />}\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={formatMessage({\n id: 'Settings.roles.create.title',\n defaultMessage: 'Create a role',\n })}\n subtitle={formatMessage({\n id: 'Settings.roles.create.description',\n defaultMessage: 'Define the rights given to the role',\n })}\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../roles\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Box background=\"neutral0\" padding={6} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n <Flex justifyContent=\"space-between\">\n <Box>\n <Box>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n </Typography>\n </Box>\n <Box>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.roles.form.description',\n defaultMessage: 'Name and description of the role',\n })}\n </Typography>\n </Box>\n </Box>\n <UsersRoleNumber>\n {formatMessage(\n {\n id: 'Settings.roles.form.button.users-with-role',\n defaultMessage:\n '{number, plural, =0 {# users} one {# user} other {# users}} with this role',\n },\n { number: 0 }\n )}\n </UsersRoleNumber>\n </Flex>\n <Grid.Root gap={4}>\n <Grid.Item m={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"name\"\n error={errors.name && formatMessage({ id: errors.name })}\n required\n >\n <Field.Label>\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Field.Label>\n <TextInput type=\"text\" onChange={handleChange} value={values.name} />\n <Field.Error />\n </Field.Root>\n </Grid.Item>\n <Grid.Item m={6} xs={12} direction=\"column\" alignItems=\"stretch\">\n <Field.Root\n name=\"description\"\n error={errors.description && formatMessage({ id: errors.description })}\n >\n <Field.Label>\n {formatMessage({\n id: 'global.description',\n defaultMessage: 'Description',\n })}\n </Field.Label>\n <Textarea onChange={handleChange} value={values.description} />\n </Field.Root>\n </Grid.Item>\n </Grid.Root>\n </Flex>\n </Box>\n <Box shadow=\"filterShadow\" hasRadius>\n <Permissions\n isFormDisabled={false}\n onLocaleValidationChange={setHasLocaleValidationErrors}\n ref={permissionsRef}\n permissions={rolePermissions}\n layout={permissionsLayout}\n />\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n </Form>\n )}\n </Formik>\n </Main>\n );\n};\n\nconst UsersRoleNumber = styled.div`\n border: 1px solid ${({ theme }) => theme.colors.primary200};\n background: ${({ theme }) => theme.colors.primary100};\n padding: ${({ theme }) => `${theme.spaces[2]} ${theme.spaces[4]}`};\n color: ${({ theme }) => theme.colors.primary600};\n border-radius: ${({ theme }) => theme.borderRadius};\n font-size: 1.2rem;\n font-weight: bold;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedCreatePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedCreatePage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.roles.create\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <CreatePage />\n </Page.Protect>\n );\n};\n\nexport { CreatePage, ProtectedCreatePage };\n"],"names":["CREATE_SCHEMA","yup","object","shape","name","string","required","translatedErrors","id","description","CreatePage","useParams","toggleNotification","useNotification","formatMessage","useIntl","navigate","useNavigate","permissionsRef","React","useRef","hasLocaleValidationErrors","setHasLocaleValidationErrors","useState","trackUsage","useTracking","_unstableFormatAPIError","formatAPIError","_unstableFormatValidationErrors","formatValidationErrors","useAPIErrorHandler","isLoading","isLoadingPermissionsLayout","currentData","permissionsLayout","useGetRolePermissionLayoutQuery","role","rolePermissions","isLoadingRole","useGetRolePermissionsQuery","skip","refetchOnMountOrArgChange","createRole","useCreateRoleMutation","updateRolePermissions","useUpdateRolePermissionsMutation","handleCreateRoleSubmit","data","formik","current","res","isBaseQueryError","error","setErrors","type","message","permissionsToSend","getPermissions","Array","isArray","length","updateRes","permissions","defaultMessage","toString","replace","err","_jsx","Page","Loading","_jsxs","Main","Title","Formik","initialValues","format","Date","onSubmit","validationSchema","validateOnChange","values","errors","handleReset","handleChange","isSubmitting","Form","_Fragment","Layouts","Header","primaryAction","Flex","width","gap","Button","variant","onClick","resetForm","fullWidth","loading","disabled","startIcon","Check","title","subtitle","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","background","padding","shadow","hasRadius","justifyContent","Typography","fontWeight","textColor","UsersRoleNumber","number","Grid","Root","Item","m","xs","Field","Label","TextInput","onChange","value","Error","Textarea","Permissions","isFormDisabled","onLocaleValidationChange","ref","layout","styled","div","theme","colors","primary200","primary100","spaces","primary600","borderRadius","ProtectedCreatePage","useTypedSelector","state","admin_app","settings","roles","create","Protect"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var designSystem = require('@strapi/design-system');
|
|
4
|
-
var
|
|
4
|
+
var styledComponents = require('styled-components');
|
|
5
5
|
|
|
6
|
-
const CollapseLabel =
|
|
6
|
+
const CollapseLabel = styledComponents.styled(designSystem.Flex)`
|
|
7
7
|
padding-right: ${({ theme })=>theme.spaces[2]};
|
|
8
8
|
overflow: hidden;
|
|
9
9
|
flex: 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapseLabel.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapseLabel.tsx"],"sourcesContent":["import { Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst CollapseLabel = styled<FlexComponent>(Flex)<{ $isCollapsable: boolean }>`\n padding-right: ${({ theme }) => theme.spaces[2]};\n overflow: hidden;\n flex: 1;\n ${({ $isCollapsable }) => $isCollapsable && 'cursor: pointer;'}\n`;\n\nexport { CollapseLabel };\n"],"names":["CollapseLabel","styled","Flex","theme","spaces","$isCollapsable"],"mappings":";;;;;AAGA,MAAMA,aAAAA,GAAgBC,
|
|
1
|
+
{"version":3,"file":"CollapseLabel.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Roles/components/CollapseLabel.tsx"],"sourcesContent":["import { Flex, FlexComponent } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nconst CollapseLabel = styled<FlexComponent>(Flex)<{ $isCollapsable: boolean }>`\n padding-right: ${({ theme }) => theme.spaces[2]};\n overflow: hidden;\n flex: 1;\n ${({ $isCollapsable }) => $isCollapsable && 'cursor: pointer;'}\n`;\n\nexport { CollapseLabel };\n"],"names":["CollapseLabel","styled","Flex","theme","spaces","$isCollapsable"],"mappings":";;;;;AAGA,MAAMA,aAAAA,GAAgBC,uBAAAA,CAAsBC,iBAAAA,CAAkC;iBAC7D,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAAC,CAAA,CAAE,CAAC;;;AAGhD,EAAA,EAAE,CAAC,EAAEC,cAAc,EAAE,GAAKA,kBAAkB,kBAAA;AAC9C;;;;"}
|
package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js
CHANGED
|
@@ -6,7 +6,7 @@ var designSystem = require('@strapi/design-system');
|
|
|
6
6
|
var icons = require('@strapi/icons');
|
|
7
7
|
var get = require('lodash/get');
|
|
8
8
|
var reactIntl = require('react-intl');
|
|
9
|
-
var
|
|
9
|
+
var styledComponents = require('styled-components');
|
|
10
10
|
var usePermissionsDataManager = require('../hooks/usePermissionsDataManager.js');
|
|
11
11
|
var constants = require('../utils/constants.js');
|
|
12
12
|
var getCheckboxState = require('../utils/getCheckboxState.js');
|
|
@@ -287,7 +287,7 @@ const ActionRow = ({ childrenForm = [], label, isFormDisabled = false, name, req
|
|
|
287
287
|
}, {});
|
|
288
288
|
return getCheckboxState.getCheckboxState(data);
|
|
289
289
|
};
|
|
290
|
-
const Wrapper =
|
|
290
|
+
const Wrapper = styledComponents.styled(designSystem.Flex)`
|
|
291
291
|
height: ${constants.rowHeight};
|
|
292
292
|
flex: 1;
|
|
293
293
|
|
|
@@ -302,7 +302,7 @@ const Wrapper = styled.styled(designSystem.Flex)`
|
|
|
302
302
|
`}
|
|
303
303
|
${({ $isActive, theme })=>$isActive && activeStyle(theme)};
|
|
304
304
|
`;
|
|
305
|
-
const CarretIcon =
|
|
305
|
+
const CarretIcon = styledComponents.styled(icons.CaretDown)`
|
|
306
306
|
display: none;
|
|
307
307
|
|
|
308
308
|
svg {
|
|
@@ -502,10 +502,10 @@ const SubActionRow = ({ childrenForm = [], isFormDisabled, recursiveLevel, pathT
|
|
|
502
502
|
]
|
|
503
503
|
});
|
|
504
504
|
};
|
|
505
|
-
const LeftBorderTimeline =
|
|
505
|
+
const LeftBorderTimeline = styledComponents.styled(designSystem.Box)`
|
|
506
506
|
border-left: ${({ $isVisible, theme })=>$isVisible ? `4px solid ${theme.colors.primary200}` : '4px solid transparent'};
|
|
507
507
|
`;
|
|
508
|
-
const RowStyle =
|
|
508
|
+
const RowStyle = styledComponents.styled(designSystem.Flex)`
|
|
509
509
|
padding-left: ${({ theme })=>theme.spaces[4]};
|
|
510
510
|
width: ${({ $level })=>145 - $level * 36}px;
|
|
511
511
|
|
|
@@ -520,8 +520,8 @@ const RowStyle = styled.styled(designSystem.Flex)`
|
|
|
520
520
|
`}
|
|
521
521
|
${({ $isActive, theme })=>$isActive && activeStyle(theme)};
|
|
522
522
|
`;
|
|
523
|
-
const RowLabel =
|
|
524
|
-
const TopTimeline =
|
|
523
|
+
const RowLabel = styledComponents.styled(designSystem.Typography)``;
|
|
524
|
+
const TopTimeline = styledComponents.styled.div`
|
|
525
525
|
padding-top: ${({ theme })=>theme.spaces[2]};
|
|
526
526
|
margin-top: ${({ theme })=>theme.spaces[2]};
|
|
527
527
|
width: 0.4rem;
|
|
@@ -529,7 +529,7 @@ const TopTimeline = styled.styled.div`
|
|
|
529
529
|
border-top-left-radius: 2px;
|
|
530
530
|
border-top-right-radius: 2px;
|
|
531
531
|
`;
|
|
532
|
-
const StyledBox =
|
|
532
|
+
const StyledBox = styledComponents.styled(designSystem.Box)`
|
|
533
533
|
transform: translate(-4px, -12px);
|
|
534
534
|
|
|
535
535
|
&:before {
|
|
@@ -540,7 +540,7 @@ const StyledBox = styled.styled(designSystem.Box)`
|
|
|
540
540
|
display: block;
|
|
541
541
|
}
|
|
542
542
|
`;
|
|
543
|
-
const Svg =
|
|
543
|
+
const Svg = styledComponents.styled.svg`
|
|
544
544
|
position: relative;
|
|
545
545
|
flex-shrink: 0;
|
|
546
546
|
transform: translate(-0.5px, -1px);
|
|
@@ -594,7 +594,7 @@ const Header = ({ headers = [], label })=>{
|
|
|
594
594
|
]
|
|
595
595
|
});
|
|
596
596
|
};
|
|
597
|
-
const activeStyle = (theme)=>
|
|
597
|
+
const activeStyle = (theme)=>styledComponents.css`
|
|
598
598
|
color: ${theme.colors.primary600};
|
|
599
599
|
font-weight: ${theme.fontWeights.bold};
|
|
600
600
|
|