@strapi/admin 5.25.0 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/App.js +6 -2
- package/dist/admin/admin/src/App.js.map +1 -1
- package/dist/admin/admin/src/App.mjs +7 -3
- package/dist/admin/admin/src/App.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +10 -3
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +162 -25
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +164 -27
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +28 -9
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +30 -11
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
- package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +147 -92
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +161 -120
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +162 -121
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +2 -4
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +2 -4
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +98 -33
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +99 -34
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/constants/theme.js +12 -0
- package/dist/admin/admin/src/constants/theme.js.map +1 -0
- package/dist/admin/admin/src/constants/theme.mjs +9 -0
- package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
- package/dist/admin/admin/src/features/Notifications.js +14 -7
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.mjs +15 -8
- package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +7 -2
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +7 -2
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAIAvailability.js +13 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs +11 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMenu.js +19 -0
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +13 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +14 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +36 -32
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +13 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +12 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +3 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +3 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js +11 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs +9 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js +11 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs +9 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js +82 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs +80 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +102 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +100 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +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 +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +33 -0
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -0
- package/dist/admin/ee/admin/src/services/ai.mjs +29 -0
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -0
- package/dist/admin/ee.js +4 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +2 -0
- package/dist/admin/ee.mjs.map +1 -1
- package/dist/admin/index.js +13 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/GuidedTour/Context.d.ts +11 -0
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
- package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +7 -16
- package/dist/admin/src/components/GuidedTour/Tours.d.ts +1 -22
- package/dist/admin/src/components/LeftMenu.d.ts +2 -2
- package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
- package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
- package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
- package/dist/admin/src/components/SubNav.d.ts +18 -5
- package/dist/admin/src/constants/theme.d.ts +7 -0
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +2 -0
- package/dist/admin/src/features/Tracking.d.ts +21 -2
- package/dist/admin/src/hooks/useAIAvailability.d.ts +5 -0
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
- package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
- package/dist/admin/src/hooks/useMenu.d.ts +9 -1
- package/dist/admin/src/index.d.ts +6 -0
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +7 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +21 -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 +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/components/GlobalNotifications.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIAvailability.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIUsageWarning.d.ts +5 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +1 -0
- package/dist/ee/admin/src/services/ai.d.ts +9 -0
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/controllers/ai.d.ts +7 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts +13 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/admin.d.ts +3 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +3 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +15 -187
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +218 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +216 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.js +32 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs +30 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/controllers/admin.js +4 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +4 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +37 -23
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +37 -23
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +5 -1
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +5 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js +15 -0
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +10 -0
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +10 -0
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +113 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +113 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +2 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +4 -0
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +40 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -0
- package/dist/shared/contracts/users.d.ts +32 -0
- package/dist/shared/contracts/users.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1,22 +1,39 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
require('react');
|
|
4
|
+
var React = require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
6
|
var icons = require('@strapi/icons');
|
|
7
7
|
var reactIntl = require('react-intl');
|
|
8
8
|
var reactRouterDom = require('react-router-dom');
|
|
9
9
|
var styled = require('styled-components');
|
|
10
|
-
var Auth = require('../features/Auth.js');
|
|
11
10
|
var Tracking = require('../features/Tracking.js');
|
|
12
|
-
var users = require('../utils/users.js');
|
|
13
|
-
var Tours = require('./GuidedTour/Tours.js');
|
|
14
11
|
var MainNav = require('./MainNav/MainNav.js');
|
|
12
|
+
var MainNavLinks = require('./MainNav/MainNavLinks.js');
|
|
15
13
|
var NavBrand = require('./MainNav/NavBrand.js');
|
|
16
|
-
var
|
|
14
|
+
var NavBurgerMenu = require('./MainNav/NavBurgerMenu.js');
|
|
17
15
|
var NavUser = require('./MainNav/NavUser.js');
|
|
18
16
|
var TrialCountdown = require('./MainNav/TrialCountdown.js');
|
|
19
17
|
|
|
18
|
+
function _interopNamespaceDefault(e) {
|
|
19
|
+
var n = Object.create(null);
|
|
20
|
+
if (e) {
|
|
21
|
+
Object.keys(e).forEach(function (k) {
|
|
22
|
+
if (k !== 'default') {
|
|
23
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
24
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return e[k]; }
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
n.default = e;
|
|
32
|
+
return Object.freeze(n);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
36
|
+
|
|
20
37
|
const sortLinks = (links)=>{
|
|
21
38
|
return links.sort((a, b)=>{
|
|
22
39
|
// if no position is defined, we put the link in the position of the external plugins, before the plugins list
|
|
@@ -29,118 +46,156 @@ const sortLinks = (links)=>{
|
|
|
29
46
|
}
|
|
30
47
|
});
|
|
31
48
|
};
|
|
32
|
-
const NavLinkBadgeCounter = styled.styled(NavLink.NavLink.Badge)`
|
|
33
|
-
span {
|
|
34
|
-
color: ${({ theme })=>theme.colors.neutral0};
|
|
35
|
-
}
|
|
36
|
-
`;
|
|
37
|
-
const NavLinkBadgeLock = styled.styled(NavLink.NavLink.Badge)`
|
|
38
|
-
background-color: transparent;
|
|
39
|
-
`;
|
|
40
49
|
const NavListWrapper = styled.styled(designSystem.Flex)`
|
|
50
|
+
width: 100%;
|
|
41
51
|
overflow-y: auto;
|
|
52
|
+
scrollbar-width: none;
|
|
53
|
+
-ms-overflow-style: none;
|
|
54
|
+
|
|
55
|
+
&::-webkit-scrollbar {
|
|
56
|
+
display: none;
|
|
57
|
+
}
|
|
42
58
|
`;
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
58
|
-
default:
|
|
59
|
-
return children;
|
|
60
|
-
}
|
|
61
|
-
};
|
|
62
|
-
const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks })=>{
|
|
63
|
-
const user = Auth.useAuth('AuthenticatedApp', (state)=>state.user);
|
|
59
|
+
const MenuDetails = styled.styled(designSystem.Flex)`
|
|
60
|
+
flex: 1;
|
|
61
|
+
flex-direction: row;
|
|
62
|
+
justify-content: space-between;
|
|
63
|
+
overflow-x: auto;
|
|
64
|
+
|
|
65
|
+
${({ theme })=>theme.breakpoints.large} {
|
|
66
|
+
flex-direction: column;
|
|
67
|
+
overflow-y: auto;
|
|
68
|
+
overflow-x: hidden;
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigation, burgerMobileNavigation })=>{
|
|
72
|
+
const [isBurgerMenuShown, setIsBurgerMenuShown] = React__namespace.useState(false);
|
|
64
73
|
const { trackUsage } = Tracking.useTracking();
|
|
65
74
|
const { pathname } = reactRouterDom.useLocation();
|
|
66
|
-
const userDisplayName = users.getDisplayName(user);
|
|
67
75
|
const { formatMessage, locale } = reactIntl.useIntl();
|
|
68
76
|
const formatter = designSystem.useCollator(locale, {
|
|
69
77
|
sensitivity: 'base'
|
|
70
78
|
});
|
|
71
|
-
const initials = users.getInitials(user);
|
|
72
79
|
const handleClickOnLink = (destination)=>{
|
|
73
80
|
trackUsage('willNavigate', {
|
|
74
81
|
from: pathname,
|
|
75
82
|
to: destination
|
|
76
83
|
});
|
|
77
84
|
};
|
|
85
|
+
// Close burger menu when route changes
|
|
86
|
+
React__namespace.useEffect(()=>{
|
|
87
|
+
setIsBurgerMenuShown(false);
|
|
88
|
+
}, [
|
|
89
|
+
pathname
|
|
90
|
+
]);
|
|
78
91
|
const listLinksAlphabeticallySorted = [
|
|
79
92
|
...pluginsSectionLinks,
|
|
80
93
|
...generalSectionLinks
|
|
81
94
|
].sort((a, b)=>formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel)));
|
|
82
95
|
const listLinks = sortLinks(listLinksAlphabeticallySorted);
|
|
83
|
-
|
|
96
|
+
/**
|
|
97
|
+
* Return filtered mobile navigation links (used for both top and burger menu)
|
|
98
|
+
*/ const mapMobileNavigationLinks = (mobileNavLinks)=>mobileNavLinks.reduce((acc, mobileLink)=>{
|
|
99
|
+
const linkFound = listLinks.find((link)=>link.to === mobileLink.to);
|
|
100
|
+
if (linkFound) {
|
|
101
|
+
acc.push(mobileLink.link ? {
|
|
102
|
+
...linkFound,
|
|
103
|
+
navigationLink: mobileLink.link
|
|
104
|
+
} : linkFound);
|
|
105
|
+
}
|
|
106
|
+
return acc;
|
|
107
|
+
}, []);
|
|
108
|
+
/**
|
|
109
|
+
* Mobile top navigation
|
|
110
|
+
*/ const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);
|
|
111
|
+
/**
|
|
112
|
+
* Mobile burger menu
|
|
113
|
+
*/ const excludedPluginsFromBurgerMenu = [
|
|
114
|
+
'content-manager',
|
|
115
|
+
'content-type-builder',
|
|
116
|
+
'upload',
|
|
117
|
+
'content-releases'
|
|
118
|
+
];
|
|
119
|
+
const burgerMenuPluginsLinks = pluginsSectionLinks.filter((plugin)=>!excludedPluginsFromBurgerMenu.some((link)=>plugin.to.includes(link)));
|
|
120
|
+
const burgerMobileNavigationLinks = [
|
|
121
|
+
...burgerMenuPluginsLinks,
|
|
122
|
+
...mapMobileNavigationLinks(burgerMobileNavigation)
|
|
123
|
+
];
|
|
124
|
+
return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
84
125
|
children: [
|
|
85
|
-
/*#__PURE__*/ jsxRuntime.
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
})
|
|
119
|
-
}),
|
|
120
|
-
badgeContentLock ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeLock, {
|
|
121
|
-
label: "locked",
|
|
122
|
-
textColor: "neutral500",
|
|
123
|
-
paddingLeft: 0,
|
|
124
|
-
paddingRight: 0,
|
|
125
|
-
children: badgeContentLock
|
|
126
|
-
}) : badgeContentNumeric ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeCounter, {
|
|
127
|
-
label: badgeContentNumeric,
|
|
128
|
-
backgroundColor: "primary600",
|
|
129
|
-
width: "2.3rem",
|
|
130
|
-
color: "neutral0",
|
|
131
|
-
children: badgeContentNumeric
|
|
132
|
-
}) : null
|
|
133
|
-
]
|
|
126
|
+
/*#__PURE__*/ jsxRuntime.jsxs(MainNav.MainNav, {
|
|
127
|
+
children: [
|
|
128
|
+
/*#__PURE__*/ jsxRuntime.jsx(NavBrand.NavBrand, {}),
|
|
129
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
|
|
130
|
+
/*#__PURE__*/ jsxRuntime.jsxs(MenuDetails, {
|
|
131
|
+
children: [
|
|
132
|
+
/*#__PURE__*/ jsxRuntime.jsx(NavListWrapper, {
|
|
133
|
+
tag: "ul",
|
|
134
|
+
gap: 3,
|
|
135
|
+
direction: {
|
|
136
|
+
initial: 'row',
|
|
137
|
+
large: 'column'
|
|
138
|
+
},
|
|
139
|
+
alignItems: "center",
|
|
140
|
+
justifyContent: {
|
|
141
|
+
initial: 'center',
|
|
142
|
+
large: 'flex-start'
|
|
143
|
+
},
|
|
144
|
+
flex: 1,
|
|
145
|
+
paddingLeft: {
|
|
146
|
+
initial: 3,
|
|
147
|
+
large: 0
|
|
148
|
+
},
|
|
149
|
+
paddingRight: {
|
|
150
|
+
initial: 3,
|
|
151
|
+
large: 0
|
|
152
|
+
},
|
|
153
|
+
paddingTop: 3,
|
|
154
|
+
paddingBottom: 3,
|
|
155
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(MainNavLinks.MainNavIcons, {
|
|
156
|
+
listLinks: listLinks,
|
|
157
|
+
mobileLinks: topMobileNavigationLinks,
|
|
158
|
+
handleClickOnLink: handleClickOnLink
|
|
134
159
|
})
|
|
160
|
+
}),
|
|
161
|
+
/*#__PURE__*/ jsxRuntime.jsx(TrialCountdown.TrialCountdown, {}),
|
|
162
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
163
|
+
display: {
|
|
164
|
+
initial: 'none',
|
|
165
|
+
large: 'flex'
|
|
166
|
+
},
|
|
167
|
+
borderStyle: "solid",
|
|
168
|
+
borderWidth: {
|
|
169
|
+
initial: 0,
|
|
170
|
+
large: '1px 0 0 0'
|
|
171
|
+
},
|
|
172
|
+
borderColor: "neutral150",
|
|
173
|
+
padding: 3,
|
|
174
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(NavUser.NavUser, {})
|
|
135
175
|
})
|
|
176
|
+
]
|
|
177
|
+
}),
|
|
178
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
179
|
+
padding: 3,
|
|
180
|
+
display: {
|
|
181
|
+
initial: 'flex',
|
|
182
|
+
large: 'none'
|
|
183
|
+
},
|
|
184
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
185
|
+
height: "3.2rem",
|
|
186
|
+
width: "3.2rem",
|
|
187
|
+
justifyContent: "center",
|
|
188
|
+
alignItems: "center",
|
|
189
|
+
onClick: ()=>setIsBurgerMenuShown(!isBurgerMenuShown),
|
|
190
|
+
children: !isBurgerMenuShown ? /*#__PURE__*/ jsxRuntime.jsx(icons.List, {}) : /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {})
|
|
136
191
|
})
|
|
137
|
-
}
|
|
138
|
-
|
|
192
|
+
})
|
|
193
|
+
]
|
|
139
194
|
}),
|
|
140
|
-
/*#__PURE__*/ jsxRuntime.jsx(
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
195
|
+
/*#__PURE__*/ jsxRuntime.jsx(NavBurgerMenu.NavBurgerMenu, {
|
|
196
|
+
isShown: isBurgerMenuShown,
|
|
197
|
+
listLinks: burgerMobileNavigationLinks,
|
|
198
|
+
handleClickOnLink: handleClickOnLink
|
|
144
199
|
})
|
|
145
200
|
]
|
|
146
201
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName, getInitials } from '../utils/users';\n\nimport { tours } from './GuidedTour/Tours';\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n default:\n return children;\n }\n};\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = getInitials(user);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"primary600\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <TrialCountdown />\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavLinkBadgeCounter","styled","NavLink","Badge","theme","colors","neutral0","NavLinkBadgeLock","NavListWrapper","Flex","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","useAuth","state","trackUsage","useTracking","pathname","useLocation","userDisplayName","getDisplayName","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","initials","getInitials","handleClickOnLink","destination","from","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","_jsxs","MainNav","NavBrand","Divider","tag","gap","direction","flex","paddingTop","paddingBottom","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","Tooltip","label","Link","onClick","aria-label","Icon","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","TrialCountdown","NavUser"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <Flex\n height=\"3.2rem\"\n width=\"3.2rem\"\n justifyContent=\"center\"\n alignItems=\"center\"\n onClick={() => setIsBurgerMenuShown(!isBurgerMenuShown)}\n >\n {!isBurgerMenuShown ? <List /> : <Cross />}\n </Flex>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","height","width","onClick","List","Cross","NavBurgerMenu","isShown"],"mappings":"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"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import 'react';
|
|
3
|
-
import { Flex, useCollator, Divider } from '@strapi/design-system';
|
|
4
|
-
import {
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Flex, useCollator, Divider, Box } from '@strapi/design-system';
|
|
4
|
+
import { List, Cross } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import { useLocation } from 'react-router-dom';
|
|
7
7
|
import { styled } from 'styled-components';
|
|
8
|
-
import { useAuth } from '../features/Auth.mjs';
|
|
9
8
|
import { useTracking } from '../features/Tracking.mjs';
|
|
10
|
-
import { getInitials, getDisplayName } from '../utils/users.mjs';
|
|
11
|
-
import { tours } from './GuidedTour/Tours.mjs';
|
|
12
9
|
import { MainNav } from './MainNav/MainNav.mjs';
|
|
10
|
+
import { MainNavIcons } from './MainNav/MainNavLinks.mjs';
|
|
13
11
|
import { NavBrand } from './MainNav/NavBrand.mjs';
|
|
14
|
-
import {
|
|
12
|
+
import { NavBurgerMenu } from './MainNav/NavBurgerMenu.mjs';
|
|
15
13
|
import { NavUser } from './MainNav/NavUser.mjs';
|
|
16
14
|
import { TrialCountdown } from './MainNav/TrialCountdown.mjs';
|
|
17
15
|
|
|
@@ -27,118 +25,156 @@ const sortLinks = (links)=>{
|
|
|
27
25
|
}
|
|
28
26
|
});
|
|
29
27
|
};
|
|
30
|
-
const NavLinkBadgeCounter = styled(NavLink.Badge)`
|
|
31
|
-
span {
|
|
32
|
-
color: ${({ theme })=>theme.colors.neutral0};
|
|
33
|
-
}
|
|
34
|
-
`;
|
|
35
|
-
const NavLinkBadgeLock = styled(NavLink.Badge)`
|
|
36
|
-
background-color: transparent;
|
|
37
|
-
`;
|
|
38
28
|
const NavListWrapper = styled(Flex)`
|
|
29
|
+
width: 100%;
|
|
39
30
|
overflow-y: auto;
|
|
31
|
+
scrollbar-width: none;
|
|
32
|
+
-ms-overflow-style: none;
|
|
33
|
+
|
|
34
|
+
&::-webkit-scrollbar {
|
|
35
|
+
display: none;
|
|
36
|
+
}
|
|
40
37
|
`;
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
});
|
|
56
|
-
default:
|
|
57
|
-
return children;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks })=>{
|
|
61
|
-
const user = useAuth('AuthenticatedApp', (state)=>state.user);
|
|
38
|
+
const MenuDetails = styled(Flex)`
|
|
39
|
+
flex: 1;
|
|
40
|
+
flex-direction: row;
|
|
41
|
+
justify-content: space-between;
|
|
42
|
+
overflow-x: auto;
|
|
43
|
+
|
|
44
|
+
${({ theme })=>theme.breakpoints.large} {
|
|
45
|
+
flex-direction: column;
|
|
46
|
+
overflow-y: auto;
|
|
47
|
+
overflow-x: hidden;
|
|
48
|
+
}
|
|
49
|
+
`;
|
|
50
|
+
const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigation, burgerMobileNavigation })=>{
|
|
51
|
+
const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);
|
|
62
52
|
const { trackUsage } = useTracking();
|
|
63
53
|
const { pathname } = useLocation();
|
|
64
|
-
const userDisplayName = getDisplayName(user);
|
|
65
54
|
const { formatMessage, locale } = useIntl();
|
|
66
55
|
const formatter = useCollator(locale, {
|
|
67
56
|
sensitivity: 'base'
|
|
68
57
|
});
|
|
69
|
-
const initials = getInitials(user);
|
|
70
58
|
const handleClickOnLink = (destination)=>{
|
|
71
59
|
trackUsage('willNavigate', {
|
|
72
60
|
from: pathname,
|
|
73
61
|
to: destination
|
|
74
62
|
});
|
|
75
63
|
};
|
|
64
|
+
// Close burger menu when route changes
|
|
65
|
+
React.useEffect(()=>{
|
|
66
|
+
setIsBurgerMenuShown(false);
|
|
67
|
+
}, [
|
|
68
|
+
pathname
|
|
69
|
+
]);
|
|
76
70
|
const listLinksAlphabeticallySorted = [
|
|
77
71
|
...pluginsSectionLinks,
|
|
78
72
|
...generalSectionLinks
|
|
79
73
|
].sort((a, b)=>formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel)));
|
|
80
74
|
const listLinks = sortLinks(listLinksAlphabeticallySorted);
|
|
81
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Return filtered mobile navigation links (used for both top and burger menu)
|
|
77
|
+
*/ const mapMobileNavigationLinks = (mobileNavLinks)=>mobileNavLinks.reduce((acc, mobileLink)=>{
|
|
78
|
+
const linkFound = listLinks.find((link)=>link.to === mobileLink.to);
|
|
79
|
+
if (linkFound) {
|
|
80
|
+
acc.push(mobileLink.link ? {
|
|
81
|
+
...linkFound,
|
|
82
|
+
navigationLink: mobileLink.link
|
|
83
|
+
} : linkFound);
|
|
84
|
+
}
|
|
85
|
+
return acc;
|
|
86
|
+
}, []);
|
|
87
|
+
/**
|
|
88
|
+
* Mobile top navigation
|
|
89
|
+
*/ const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);
|
|
90
|
+
/**
|
|
91
|
+
* Mobile burger menu
|
|
92
|
+
*/ const excludedPluginsFromBurgerMenu = [
|
|
93
|
+
'content-manager',
|
|
94
|
+
'content-type-builder',
|
|
95
|
+
'upload',
|
|
96
|
+
'content-releases'
|
|
97
|
+
];
|
|
98
|
+
const burgerMenuPluginsLinks = pluginsSectionLinks.filter((plugin)=>!excludedPluginsFromBurgerMenu.some((link)=>plugin.to.includes(link)));
|
|
99
|
+
const burgerMobileNavigationLinks = [
|
|
100
|
+
...burgerMenuPluginsLinks,
|
|
101
|
+
...mapMobileNavigationLinks(burgerMobileNavigation)
|
|
102
|
+
];
|
|
103
|
+
return /*#__PURE__*/ jsxs(Fragment, {
|
|
82
104
|
children: [
|
|
83
|
-
/*#__PURE__*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
})
|
|
117
|
-
}),
|
|
118
|
-
badgeContentLock ? /*#__PURE__*/ jsx(NavLinkBadgeLock, {
|
|
119
|
-
label: "locked",
|
|
120
|
-
textColor: "neutral500",
|
|
121
|
-
paddingLeft: 0,
|
|
122
|
-
paddingRight: 0,
|
|
123
|
-
children: badgeContentLock
|
|
124
|
-
}) : badgeContentNumeric ? /*#__PURE__*/ jsx(NavLinkBadgeCounter, {
|
|
125
|
-
label: badgeContentNumeric,
|
|
126
|
-
backgroundColor: "primary600",
|
|
127
|
-
width: "2.3rem",
|
|
128
|
-
color: "neutral0",
|
|
129
|
-
children: badgeContentNumeric
|
|
130
|
-
}) : null
|
|
131
|
-
]
|
|
105
|
+
/*#__PURE__*/ jsxs(MainNav, {
|
|
106
|
+
children: [
|
|
107
|
+
/*#__PURE__*/ jsx(NavBrand, {}),
|
|
108
|
+
/*#__PURE__*/ jsx(Divider, {}),
|
|
109
|
+
/*#__PURE__*/ jsxs(MenuDetails, {
|
|
110
|
+
children: [
|
|
111
|
+
/*#__PURE__*/ jsx(NavListWrapper, {
|
|
112
|
+
tag: "ul",
|
|
113
|
+
gap: 3,
|
|
114
|
+
direction: {
|
|
115
|
+
initial: 'row',
|
|
116
|
+
large: 'column'
|
|
117
|
+
},
|
|
118
|
+
alignItems: "center",
|
|
119
|
+
justifyContent: {
|
|
120
|
+
initial: 'center',
|
|
121
|
+
large: 'flex-start'
|
|
122
|
+
},
|
|
123
|
+
flex: 1,
|
|
124
|
+
paddingLeft: {
|
|
125
|
+
initial: 3,
|
|
126
|
+
large: 0
|
|
127
|
+
},
|
|
128
|
+
paddingRight: {
|
|
129
|
+
initial: 3,
|
|
130
|
+
large: 0
|
|
131
|
+
},
|
|
132
|
+
paddingTop: 3,
|
|
133
|
+
paddingBottom: 3,
|
|
134
|
+
children: /*#__PURE__*/ jsx(MainNavIcons, {
|
|
135
|
+
listLinks: listLinks,
|
|
136
|
+
mobileLinks: topMobileNavigationLinks,
|
|
137
|
+
handleClickOnLink: handleClickOnLink
|
|
132
138
|
})
|
|
139
|
+
}),
|
|
140
|
+
/*#__PURE__*/ jsx(TrialCountdown, {}),
|
|
141
|
+
/*#__PURE__*/ jsx(Box, {
|
|
142
|
+
display: {
|
|
143
|
+
initial: 'none',
|
|
144
|
+
large: 'flex'
|
|
145
|
+
},
|
|
146
|
+
borderStyle: "solid",
|
|
147
|
+
borderWidth: {
|
|
148
|
+
initial: 0,
|
|
149
|
+
large: '1px 0 0 0'
|
|
150
|
+
},
|
|
151
|
+
borderColor: "neutral150",
|
|
152
|
+
padding: 3,
|
|
153
|
+
children: /*#__PURE__*/ jsx(NavUser, {})
|
|
133
154
|
})
|
|
155
|
+
]
|
|
156
|
+
}),
|
|
157
|
+
/*#__PURE__*/ jsx(Box, {
|
|
158
|
+
padding: 3,
|
|
159
|
+
display: {
|
|
160
|
+
initial: 'flex',
|
|
161
|
+
large: 'none'
|
|
162
|
+
},
|
|
163
|
+
children: /*#__PURE__*/ jsx(Flex, {
|
|
164
|
+
height: "3.2rem",
|
|
165
|
+
width: "3.2rem",
|
|
166
|
+
justifyContent: "center",
|
|
167
|
+
alignItems: "center",
|
|
168
|
+
onClick: ()=>setIsBurgerMenuShown(!isBurgerMenuShown),
|
|
169
|
+
children: !isBurgerMenuShown ? /*#__PURE__*/ jsx(List, {}) : /*#__PURE__*/ jsx(Cross, {})
|
|
134
170
|
})
|
|
135
|
-
}
|
|
136
|
-
|
|
171
|
+
})
|
|
172
|
+
]
|
|
137
173
|
}),
|
|
138
|
-
/*#__PURE__*/ jsx(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
174
|
+
/*#__PURE__*/ jsx(NavBurgerMenu, {
|
|
175
|
+
isShown: isBurgerMenuShown,
|
|
176
|
+
listLinks: burgerMobileNavigationLinks,
|
|
177
|
+
handleClickOnLink: handleClickOnLink
|
|
142
178
|
})
|
|
143
179
|
]
|
|
144
180
|
});
|