@strapi/admin 5.33.4 → 5.34.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/components/GradientBadge.js +18 -2
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.mjs +19 -3
- package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +8 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +8 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js +4 -0
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +4 -0
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +80 -49
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +81 -50
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +1 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +1 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +37 -6
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +38 -7
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +39 -18
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +39 -18
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +2 -1
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +2 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +2 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +1 -0
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -0
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +1 -0
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +1 -0
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +7 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +7 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +44 -26
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +45 -27
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +3 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +3 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -11
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +10 -12
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -0
- 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 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +3 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +3 -0
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/router.js +0 -9
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +0 -9
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ar.json.js +0 -42
- package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ar.json.mjs +0 -42
- package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ca.json.js +0 -21
- package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ca.json.mjs +0 -21
- package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/de.json.js +422 -66
- package/dist/admin/admin/src/translations/de.json.js.map +1 -1
- package/dist/admin/admin/src/translations/de.json.mjs +419 -67
- package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/dk.json.js +0 -6
- package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/dk.json.mjs +0 -6
- package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +0 -44
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +0 -44
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/es.json.js +0 -25
- package/dist/admin/admin/src/translations/es.json.js.map +1 -1
- package/dist/admin/admin/src/translations/es.json.mjs +0 -25
- package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/eu.json.js +0 -43
- package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/eu.json.mjs +0 -43
- package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.js +0 -6
- package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.mjs +0 -6
- package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/gu.json.js +0 -21
- package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/gu.json.mjs +0 -21
- package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/hi.json.js +0 -21
- package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
- package/dist/admin/admin/src/translations/hi.json.mjs +0 -21
- package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/hu.json.js +0 -43
- package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
- package/dist/admin/admin/src/translations/hu.json.mjs +0 -43
- package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/it.json.js +613 -3
- package/dist/admin/admin/src/translations/it.json.js.map +1 -1
- package/dist/admin/admin/src/translations/it.json.mjs +605 -4
- package/dist/admin/admin/src/translations/it.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +0 -6
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +0 -6
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.js +0 -6
- package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.mjs +0 -6
- package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ml.json.js +0 -21
- package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ml.json.mjs +0 -21
- package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/nl.json.js +0 -39
- package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/nl.json.mjs +0 -39
- package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.js +0 -21
- package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.mjs +0 -21
- package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pt-BR.json.js +0 -25
- package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pt-BR.json.mjs +0 -25
- package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ru.json.js +0 -44
- package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ru.json.mjs +0 -44
- package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sa.json.js +0 -21
- package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sa.json.mjs +0 -21
- package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/sv.json.js +0 -39
- package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
- package/dist/admin/admin/src/translations/sv.json.mjs +0 -39
- package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/tr.json.js +0 -39
- package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/tr.json.mjs +0 -39
- package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/uk.json.js +0 -44
- package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
- package/dist/admin/admin/src/translations/uk.json.mjs +0 -44
- package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.js +0 -44
- package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
- package/dist/admin/admin/src/translations/vi.json.mjs +0 -44
- package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/zh-Hans.json.js +0 -44
- package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
- package/dist/admin/admin/src/translations/zh-Hans.json.mjs +0 -44
- package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/zh.json.js +0 -39
- package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
- package/dist/admin/admin/src/translations/zh.json.mjs +0 -39
- package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
- package/dist/admin/admin/tests/mockData.js +0 -1413
- package/dist/admin/admin/tests/mockData.js.map +1 -1
- package/dist/admin/admin/tests/mockData.mjs +0 -1413
- package/dist/admin/admin/tests/mockData.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +0 -99
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +0 -80
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
- 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 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +2 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs +2 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
- package/dist/admin/src/components/MainNav/NavLink.d.ts +2 -2
- package/dist/admin/src/core/apis/router.d.ts +1 -0
- package/dist/admin/src/features/Tracking.d.ts +1 -1
- package/dist/admin/src/hooks/useMenu.d.ts +1 -0
- package/dist/admin/tests/mockData.d.ts +0 -972
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js +53 -0
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -0
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs +51 -0
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -0
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +7 -8
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +10 -11
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.js +7 -8
- package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +10 -11
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts +21 -0
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -0
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +0 -339
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +0 -317
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +0 -329
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs +0 -308
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js +0 -121
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs +0 -119
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +0 -93
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs +0 -91
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js +0 -81
- package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs +0 -79
- package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js +0 -38
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs +0 -36
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +0 -85
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs +0 -83
- package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js +0 -134
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs +0 -113
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js +0 -44
- package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js.map +0 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs +0 -23
- package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs.map +0 -1
- package/dist/admin/src/pages/Marketplace/MarketplacePage.d.ts +0 -19
- package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +0 -13
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +0 -13
- package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +0 -13
- package/dist/admin/src/pages/Marketplace/components/OfflineLayout.d.ts +0 -2
- package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +0 -8
- package/dist/admin/src/pages/Marketplace/components/SortSelect.d.ts +0 -51
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +0 -93
- package/dist/admin/src/pages/Marketplace/hooks/useNavigatorOnline.d.ts +0 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubNav.js","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport {\n Badge,\n Box,\n Flex,\n IconButton,\n ScrollArea,\n SubNav as DSSubNav,\n Typography,\n} from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { HEIGHT_TOP_NAVIGATION, HEIGHT_TOP_NAVIGATION_MEDIUM } from '../constants/theme';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst MainSubNav = styled(DSSubNav)`\n width: 100%;\n height: calc(100dvh - ${HEIGHT_TOP_NAVIGATION} - 1px);\n overflow: hidden;\n background-color: ${({ theme }) => theme.colors.neutral0};\n display: flex;\n flex-direction: column;\n border-right: 0;\n box-shadow: none;\n position: fixed;\n top: calc(${HEIGHT_TOP_NAVIGATION} + 1px);\n left: 0;\n z-index: 2;\n\n ${({ theme }) => theme.breakpoints.medium} {\n width: 23.2rem;\n position: sticky;\n top: 0;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n ${({ theme }) => theme.breakpoints.large} {\n height: 100dvh;\n }\n`;\n\nconst Main = ({ children, ...props }: { children: React.ReactNode; isFullPage?: boolean }) => (\n <MainSubNav {...props}>{children}</MainSubNav>\n);\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n handleClick?: () => void;\n }\n) => {\n const { label, endAction, handleClick, ...rest } = props;\n\n return (\n <StyledLink {...rest} onClick={handleClick}>\n <Box width={'100%'} paddingLeft={3} paddingRight={3} borderRadius={1}>\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={1}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width={{ initial: '80dvw', medium: '100%' }}\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Flex)`\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION};\n height: ${HEIGHT_TOP_NAVIGATION};\n\n ${({ theme }) => theme.breakpoints.medium} {\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n height: ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n }\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader\n justifyContent=\"space-between\"\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({\n children,\n ...props\n}: {\n children: React.ReactNode[];\n [key: string]: unknown;\n}) => {\n return (\n <Box paddingTop={4} paddingBottom={4} maxWidth={{ initial: '100%', medium: '23.2rem' }}>\n <Flex tag=\"ul\" gap=\"5\" direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n badgeLabel,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClick: () => void };\n sectionId?: string;\n badgeLabel?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Flex position=\"relative\" justifyContent=\"space-between\" gap={2}>\n <Flex>\n <Box paddingRight={1}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n <Flex gap={1}>\n {badgeLabel && (\n <Badge backgroundColor=\"neutral150\" textColor=\"neutral600\">\n {badgeLabel}\n </Badge>\n )}\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClick}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n marginLeft={{\n initial: 1,\n large: 2,\n }}\n marginRight={{\n initial: 1,\n large: 2,\n }}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const [contentHeight, setContentHeight] = useState(0);\n const listId = useId();\n const contentRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight);\n }\n }, [children]);\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n <Flex\n ref={contentRef}\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? `${contentHeight}px` : 0,\n overflow: 'hidden',\n transition: 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n </Box>\n );\n};\n\nconst PageWrapper = styled(Box)`\n ${MainSubNav} {\n background-color: transparent;\n border-right: none;\n }\n\n ${({ theme }) => theme.breakpoints.medium} {\n ${MainSubNav} {\n top: 0;\n }\n }\n`;\n\nconst Content = ({ children }: { children: React.ReactNode }) => {\n return <ScrollArea>{children}</ScrollArea>;\n};\n\nexport const SubNav = {\n Main,\n Content,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n PageWrapper,\n};\n"],"names":["MainSubNav","styled","DSSubNav","HEIGHT_TOP_NAVIGATION","theme","colors","neutral0","breakpoints","medium","neutral150","large","Main","children","props","_jsx","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","label","endAction","handleClick","rest","onClick","Box","width","paddingLeft","paddingRight","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","initial","overflow","style","textOverflow","whiteSpace","StyledHeader","HEIGHT_TOP_NAVIGATION_MEDIUM","Header","variant","Sections","paddingTop","paddingBottom","maxWidth","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","badgeLabel","listId","useId","position","textColor","Badge","backgroundColor","IconButton","withTooltip","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","spaces","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","contentHeight","setContentHeight","contentRef","useRef","useEffect","current","scrollHeight","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","ref","maxHeight","PageWrapper","Content","ScrollArea","SubNav"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubNav.js","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport {\n Badge,\n Box,\n Flex,\n IconButton,\n ScrollArea,\n SubNav as DSSubNav,\n Typography,\n} from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { HEIGHT_TOP_NAVIGATION, HEIGHT_TOP_NAVIGATION_MEDIUM } from '../constants/theme';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst MainSubNav = styled(DSSubNav)`\n width: 100%;\n height: calc(100dvh - ${HEIGHT_TOP_NAVIGATION} - 1px);\n overflow: hidden;\n background-color: ${({ theme }) => theme.colors.neutral0};\n display: flex;\n flex-direction: column;\n border-right: 0;\n box-shadow: none;\n position: fixed;\n top: calc(${HEIGHT_TOP_NAVIGATION} + 1px);\n left: 0;\n z-index: 2;\n\n ${({ theme }) => theme.breakpoints.medium} {\n width: 23.2rem;\n position: sticky;\n top: 0;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n ${({ theme }) => theme.breakpoints.large} {\n height: 100dvh;\n }\n`;\n\nconst Main = ({ children, ...props }: { children: React.ReactNode; isFullPage?: boolean }) => (\n <MainSubNav {...props}>{children}</MainSubNav>\n);\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n handleClick?: () => void;\n }\n) => {\n const { label, endAction, handleClick, ...rest } = props;\n\n return (\n <StyledLink {...rest} onClick={handleClick}>\n <Box\n width={'100%'}\n paddingLeft={3}\n paddingRight={3}\n paddingTop={{ initial: 1, large: 0 }}\n paddingBottom={{ initial: 1, large: 0 }}\n borderRadius={1}\n >\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={{ initial: 2, large: 1 }}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width={{ initial: '80dvw', medium: '100%' }}\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Flex)`\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION};\n height: ${HEIGHT_TOP_NAVIGATION};\n\n ${({ theme }) => theme.breakpoints.medium} {\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n height: ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n }\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader justifyContent=\"space-between\" paddingLeft={5} paddingRight={5}>\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({\n children,\n ...props\n}: {\n children: React.ReactNode[];\n [key: string]: unknown;\n}) => {\n return (\n <Box\n paddingTop={{ initial: 5, large: 4 }}\n paddingBottom={{ initial: 5, large: 4 }}\n paddingLeft={{ initial: 3, large: 0 }}\n paddingRight={{ initial: 3, large: 0 }}\n maxWidth={{ initial: '100%', medium: '23.2rem' }}\n >\n <Flex tag=\"ul\" gap={6} direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n badgeLabel,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClick: () => void };\n sectionId?: string;\n badgeLabel?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box\n paddingLeft={{\n initial: 3,\n large: 5,\n }}\n paddingRight={{\n initial: 3,\n large: 5,\n }}\n >\n <Flex position=\"relative\" justifyContent=\"space-between\" gap={2}>\n <Flex>\n <Box>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n <Flex gap={1}>\n {badgeLabel && (\n <Badge backgroundColor=\"neutral150\" textColor=\"neutral600\">\n {badgeLabel}\n </Badge>\n )}\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClick}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap={{ initial: 2, large: '2px' }}\n alignItems={'stretch'}\n marginLeft={{\n initial: 0,\n large: 2,\n }}\n marginRight={{\n initial: 0,\n large: 2,\n }}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const [contentHeight, setContentHeight] = useState(0);\n const listId = useId();\n const contentRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight);\n }\n }, [children]);\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n <Flex\n ref={contentRef}\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? `${contentHeight}px` : 0,\n overflow: 'hidden',\n transition: 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n </Box>\n );\n};\n\nconst PageWrapper = styled(Box)`\n ${MainSubNav} {\n background-color: transparent;\n border-right: none;\n }\n\n ${({ theme }) => theme.breakpoints.medium} {\n ${MainSubNav} {\n top: 0;\n }\n }\n`;\n\nconst Content = ({ children }: { children: React.ReactNode }) => {\n return <ScrollArea>{children}</ScrollArea>;\n};\n\nexport const SubNav = {\n Main,\n Content,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n PageWrapper,\n};\n"],"names":["MainSubNav","styled","DSSubNav","HEIGHT_TOP_NAVIGATION","theme","colors","neutral0","breakpoints","medium","neutral150","large","Main","children","props","_jsx","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","label","endAction","handleClick","rest","onClick","Box","width","paddingLeft","paddingRight","paddingTop","initial","paddingBottom","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","overflow","style","textOverflow","whiteSpace","StyledHeader","HEIGHT_TOP_NAVIGATION_MEDIUM","Header","variant","Sections","maxWidth","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","badgeLabel","listId","useId","position","textColor","Badge","backgroundColor","IconButton","withTooltip","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","spaces","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","contentHeight","setContentHeight","contentRef","useRef","useEffect","current","scrollHeight","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","ref","maxHeight","PageWrapper","Content","ScrollArea","SubNav"],"mappings":"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"}
|
|
@@ -83,11 +83,22 @@ const Link = (props)=>{
|
|
|
83
83
|
width: '100%',
|
|
84
84
|
paddingLeft: 3,
|
|
85
85
|
paddingRight: 3,
|
|
86
|
+
paddingTop: {
|
|
87
|
+
initial: 1,
|
|
88
|
+
large: 0
|
|
89
|
+
},
|
|
90
|
+
paddingBottom: {
|
|
91
|
+
initial: 1,
|
|
92
|
+
large: 0
|
|
93
|
+
},
|
|
86
94
|
borderRadius: 1,
|
|
87
95
|
children: /*#__PURE__*/ jsxs(Flex, {
|
|
88
96
|
justifyContent: "space-between",
|
|
89
97
|
width: "100%",
|
|
90
|
-
gap:
|
|
98
|
+
gap: {
|
|
99
|
+
initial: 2,
|
|
100
|
+
large: 1
|
|
101
|
+
},
|
|
91
102
|
children: [
|
|
92
103
|
/*#__PURE__*/ jsx(Typography, {
|
|
93
104
|
tag: "div",
|
|
@@ -124,14 +135,8 @@ const StyledHeader = styled(Flex)`
|
|
|
124
135
|
const Header = ({ label })=>{
|
|
125
136
|
return /*#__PURE__*/ jsx(StyledHeader, {
|
|
126
137
|
justifyContent: "space-between",
|
|
127
|
-
paddingLeft:
|
|
128
|
-
|
|
129
|
-
large: 5
|
|
130
|
-
},
|
|
131
|
-
paddingRight: {
|
|
132
|
-
initial: 4,
|
|
133
|
-
large: 5
|
|
134
|
-
},
|
|
138
|
+
paddingLeft: 5,
|
|
139
|
+
paddingRight: 5,
|
|
135
140
|
children: /*#__PURE__*/ jsx(Typography, {
|
|
136
141
|
variant: "beta",
|
|
137
142
|
tag: "h2",
|
|
@@ -141,15 +146,29 @@ const Header = ({ label })=>{
|
|
|
141
146
|
};
|
|
142
147
|
const Sections = ({ children, ...props })=>{
|
|
143
148
|
return /*#__PURE__*/ jsx(Box, {
|
|
144
|
-
paddingTop:
|
|
145
|
-
|
|
149
|
+
paddingTop: {
|
|
150
|
+
initial: 5,
|
|
151
|
+
large: 4
|
|
152
|
+
},
|
|
153
|
+
paddingBottom: {
|
|
154
|
+
initial: 5,
|
|
155
|
+
large: 4
|
|
156
|
+
},
|
|
157
|
+
paddingLeft: {
|
|
158
|
+
initial: 3,
|
|
159
|
+
large: 0
|
|
160
|
+
},
|
|
161
|
+
paddingRight: {
|
|
162
|
+
initial: 3,
|
|
163
|
+
large: 0
|
|
164
|
+
},
|
|
146
165
|
maxWidth: {
|
|
147
166
|
initial: '100%',
|
|
148
167
|
medium: '23.2rem'
|
|
149
168
|
},
|
|
150
169
|
children: /*#__PURE__*/ jsx(Flex, {
|
|
151
170
|
tag: "ul",
|
|
152
|
-
gap:
|
|
171
|
+
gap: 6,
|
|
153
172
|
direction: "column",
|
|
154
173
|
alignItems: "stretch",
|
|
155
174
|
...props,
|
|
@@ -194,11 +213,11 @@ const Section = ({ label, children, link, sectionId, badgeLabel })=>{
|
|
|
194
213
|
children: [
|
|
195
214
|
/*#__PURE__*/ jsx(Box, {
|
|
196
215
|
paddingLeft: {
|
|
197
|
-
initial:
|
|
216
|
+
initial: 3,
|
|
198
217
|
large: 5
|
|
199
218
|
},
|
|
200
219
|
paddingRight: {
|
|
201
|
-
initial:
|
|
220
|
+
initial: 3,
|
|
202
221
|
large: 5
|
|
203
222
|
},
|
|
204
223
|
children: /*#__PURE__*/ jsxs(Flex, {
|
|
@@ -208,7 +227,6 @@ const Section = ({ label, children, link, sectionId, badgeLabel })=>{
|
|
|
208
227
|
children: [
|
|
209
228
|
/*#__PURE__*/ jsx(Flex, {
|
|
210
229
|
children: /*#__PURE__*/ jsx(Box, {
|
|
211
|
-
paddingRight: 1,
|
|
212
230
|
children: /*#__PURE__*/ jsx(Typography, {
|
|
213
231
|
variant: "sigma",
|
|
214
232
|
textColor: "neutral600",
|
|
@@ -244,14 +262,17 @@ const Section = ({ label, children, link, sectionId, badgeLabel })=>{
|
|
|
244
262
|
tag: "ol",
|
|
245
263
|
id: listId,
|
|
246
264
|
direction: "column",
|
|
247
|
-
gap:
|
|
265
|
+
gap: {
|
|
266
|
+
initial: 2,
|
|
267
|
+
large: '2px'
|
|
268
|
+
},
|
|
248
269
|
alignItems: 'stretch',
|
|
249
270
|
marginLeft: {
|
|
250
|
-
initial:
|
|
271
|
+
initial: 0,
|
|
251
272
|
large: 2
|
|
252
273
|
},
|
|
253
274
|
marginRight: {
|
|
254
|
-
initial:
|
|
275
|
+
initial: 0,
|
|
255
276
|
large: 2
|
|
256
277
|
},
|
|
257
278
|
children: children.map((child, index)=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubNav.mjs","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport {\n Badge,\n Box,\n Flex,\n IconButton,\n ScrollArea,\n SubNav as DSSubNav,\n Typography,\n} from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { HEIGHT_TOP_NAVIGATION, HEIGHT_TOP_NAVIGATION_MEDIUM } from '../constants/theme';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst MainSubNav = styled(DSSubNav)`\n width: 100%;\n height: calc(100dvh - ${HEIGHT_TOP_NAVIGATION} - 1px);\n overflow: hidden;\n background-color: ${({ theme }) => theme.colors.neutral0};\n display: flex;\n flex-direction: column;\n border-right: 0;\n box-shadow: none;\n position: fixed;\n top: calc(${HEIGHT_TOP_NAVIGATION} + 1px);\n left: 0;\n z-index: 2;\n\n ${({ theme }) => theme.breakpoints.medium} {\n width: 23.2rem;\n position: sticky;\n top: 0;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n ${({ theme }) => theme.breakpoints.large} {\n height: 100dvh;\n }\n`;\n\nconst Main = ({ children, ...props }: { children: React.ReactNode; isFullPage?: boolean }) => (\n <MainSubNav {...props}>{children}</MainSubNav>\n);\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n handleClick?: () => void;\n }\n) => {\n const { label, endAction, handleClick, ...rest } = props;\n\n return (\n <StyledLink {...rest} onClick={handleClick}>\n <Box width={'100%'} paddingLeft={3} paddingRight={3} borderRadius={1}>\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={1}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width={{ initial: '80dvw', medium: '100%' }}\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Flex)`\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION};\n height: ${HEIGHT_TOP_NAVIGATION};\n\n ${({ theme }) => theme.breakpoints.medium} {\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n height: ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n }\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader\n justifyContent=\"space-between\"\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({\n children,\n ...props\n}: {\n children: React.ReactNode[];\n [key: string]: unknown;\n}) => {\n return (\n <Box paddingTop={4} paddingBottom={4} maxWidth={{ initial: '100%', medium: '23.2rem' }}>\n <Flex tag=\"ul\" gap=\"5\" direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n badgeLabel,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClick: () => void };\n sectionId?: string;\n badgeLabel?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box\n paddingLeft={{\n initial: 4,\n large: 5,\n }}\n paddingRight={{\n initial: 4,\n large: 5,\n }}\n >\n <Flex position=\"relative\" justifyContent=\"space-between\" gap={2}>\n <Flex>\n <Box paddingRight={1}>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n <Flex gap={1}>\n {badgeLabel && (\n <Badge backgroundColor=\"neutral150\" textColor=\"neutral600\">\n {badgeLabel}\n </Badge>\n )}\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClick}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n marginLeft={{\n initial: 1,\n large: 2,\n }}\n marginRight={{\n initial: 1,\n large: 2,\n }}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const [contentHeight, setContentHeight] = useState(0);\n const listId = useId();\n const contentRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight);\n }\n }, [children]);\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n <Flex\n ref={contentRef}\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? `${contentHeight}px` : 0,\n overflow: 'hidden',\n transition: 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n </Box>\n );\n};\n\nconst PageWrapper = styled(Box)`\n ${MainSubNav} {\n background-color: transparent;\n border-right: none;\n }\n\n ${({ theme }) => theme.breakpoints.medium} {\n ${MainSubNav} {\n top: 0;\n }\n }\n`;\n\nconst Content = ({ children }: { children: React.ReactNode }) => {\n return <ScrollArea>{children}</ScrollArea>;\n};\n\nexport const SubNav = {\n Main,\n Content,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n PageWrapper,\n};\n"],"names":["MainSubNav","styled","DSSubNav","HEIGHT_TOP_NAVIGATION","theme","colors","neutral0","breakpoints","medium","neutral150","large","Main","children","props","_jsx","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","label","endAction","handleClick","rest","onClick","Box","width","paddingLeft","paddingRight","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","initial","overflow","style","textOverflow","whiteSpace","StyledHeader","HEIGHT_TOP_NAVIGATION_MEDIUM","Header","variant","Sections","paddingTop","paddingBottom","maxWidth","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","badgeLabel","listId","useId","position","textColor","Badge","backgroundColor","IconButton","withTooltip","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","spaces","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","contentHeight","setContentHeight","contentRef","useRef","useEffect","current","scrollHeight","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","ref","maxHeight","PageWrapper","Content","ScrollArea","SubNav"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubNav.mjs","sources":["../../../../../admin/src/components/SubNav.tsx"],"sourcesContent":["import { useEffect, useId, useRef, useState } from 'react';\n\nimport {\n Badge,\n Box,\n Flex,\n IconButton,\n ScrollArea,\n SubNav as DSSubNav,\n Typography,\n} from '@strapi/design-system';\nimport { ChevronDown, Plus } from '@strapi/icons';\nimport { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { HEIGHT_TOP_NAVIGATION, HEIGHT_TOP_NAVIGATION_MEDIUM } from '../constants/theme';\n\nimport { tours } from './GuidedTour/Tours';\n\nconst MainSubNav = styled(DSSubNav)`\n width: 100%;\n height: calc(100dvh - ${HEIGHT_TOP_NAVIGATION} - 1px);\n overflow: hidden;\n background-color: ${({ theme }) => theme.colors.neutral0};\n display: flex;\n flex-direction: column;\n border-right: 0;\n box-shadow: none;\n position: fixed;\n top: calc(${HEIGHT_TOP_NAVIGATION} + 1px);\n left: 0;\n z-index: 2;\n\n ${({ theme }) => theme.breakpoints.medium} {\n width: 23.2rem;\n position: sticky;\n top: 0;\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n ${({ theme }) => theme.breakpoints.large} {\n height: 100dvh;\n }\n`;\n\nconst Main = ({ children, ...props }: { children: React.ReactNode; isFullPage?: boolean }) => (\n <MainSubNav {...props}>{children}</MainSubNav>\n);\n\nconst StyledLink = styled(NavLink)`\n display: flex;\n align-items: center;\n justify-content: space-between;\n text-decoration: none;\n height: 32px;\n\n color: ${({ theme }) => theme.colors.neutral800};\n\n &.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n color: ${theme.colors.primary700};\n font-weight: 500;\n `;\n }}\n }\n\n &:hover.active > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.primary100};\n `;\n }}\n }\n\n &:hover > div {\n ${({ theme }) => {\n return `\n background-color: ${theme.colors.neutral100};\n `;\n }}\n }\n\n &:focus-visible {\n outline-offset: -2px;\n }\n`;\n\nconst Link = (\n props: Omit<React.ComponentProps<typeof StyledLink>, 'label'> & {\n label: React.ReactNode;\n endAction?: React.ReactNode;\n handleClick?: () => void;\n }\n) => {\n const { label, endAction, handleClick, ...rest } = props;\n\n return (\n <StyledLink {...rest} onClick={handleClick}>\n <Box\n width={'100%'}\n paddingLeft={3}\n paddingRight={3}\n paddingTop={{ initial: 1, large: 0 }}\n paddingBottom={{ initial: 1, large: 0 }}\n borderRadius={1}\n >\n <Flex justifyContent=\"space-between\" width=\"100%\" gap={{ initial: 2, large: 1 }}>\n <Typography\n tag=\"div\"\n lineHeight=\"32px\"\n width={{ initial: '80dvw', medium: '100%' }}\n overflow=\"hidden\"\n style={{ textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}\n >\n {label}\n </Typography>\n <Flex gap={2}>{endAction}</Flex>\n </Flex>\n </Box>\n </StyledLink>\n );\n};\n\nconst StyledHeader = styled(Flex)`\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION};\n height: ${HEIGHT_TOP_NAVIGATION};\n\n ${({ theme }) => theme.breakpoints.medium} {\n flex: 0 0 ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n height: ${HEIGHT_TOP_NAVIGATION_MEDIUM};\n }\n`;\n\nconst Header = ({ label }: { label: string }) => {\n return (\n <StyledHeader justifyContent=\"space-between\" paddingLeft={5} paddingRight={5}>\n <Typography variant=\"beta\" tag=\"h2\">\n {label}\n </Typography>\n </StyledHeader>\n );\n};\n\nconst Sections = ({\n children,\n ...props\n}: {\n children: React.ReactNode[];\n [key: string]: unknown;\n}) => {\n return (\n <Box\n paddingTop={{ initial: 5, large: 4 }}\n paddingBottom={{ initial: 5, large: 4 }}\n paddingLeft={{ initial: 3, large: 0 }}\n paddingRight={{ initial: 3, large: 0 }}\n maxWidth={{ initial: '100%', medium: '23.2rem' }}\n >\n <Flex tag=\"ul\" gap={6} direction=\"column\" alignItems=\"stretch\" {...props}>\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Box>\n );\n};\n\n/**\n * TODO:\n * This would be better in the content-type-builder package directly but currently\n * the SubNav API does not expose a way to wrap the link, instead it wraps the link and the list\n */\nconst GuidedTourTooltip = ({\n sectionId,\n children,\n}: {\n sectionId?: string;\n children: React.ReactNode;\n}) => {\n switch (sectionId) {\n case 'models':\n return (\n <tours.contentTypeBuilder.CollectionTypes>\n <tours.contentTypeBuilder.YourTurn>{children}</tours.contentTypeBuilder.YourTurn>\n </tours.contentTypeBuilder.CollectionTypes>\n );\n case 'singleTypes':\n return (\n <tours.contentTypeBuilder.SingleTypes>{children}</tours.contentTypeBuilder.SingleTypes>\n );\n case 'components':\n return <tours.contentTypeBuilder.Components>{children}</tours.contentTypeBuilder.Components>;\n default:\n return children;\n }\n};\n\nconst Section = ({\n label,\n children,\n link,\n sectionId,\n badgeLabel,\n}: {\n label: string;\n children: React.ReactNode[];\n link?: { label: string; onClick: () => void };\n sectionId?: string;\n badgeLabel?: string;\n}) => {\n const listId = useId();\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={2}>\n <Box\n paddingLeft={{\n initial: 3,\n large: 5,\n }}\n paddingRight={{\n initial: 3,\n large: 5,\n }}\n >\n <Flex position=\"relative\" justifyContent=\"space-between\" gap={2}>\n <Flex>\n <Box>\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {label}\n </Typography>\n </Box>\n </Flex>\n <Flex gap={1}>\n {badgeLabel && (\n <Badge backgroundColor=\"neutral150\" textColor=\"neutral600\">\n {badgeLabel}\n </Badge>\n )}\n {link && (\n <GuidedTourTooltip sectionId={sectionId}>\n <IconButton\n label={link.label}\n variant=\"ghost\"\n withTooltip\n onClick={link.onClick}\n size=\"XS\"\n >\n <Plus />\n </IconButton>\n </GuidedTourTooltip>\n )}\n </Flex>\n </Flex>\n </Box>\n <Flex\n tag=\"ol\"\n id={listId}\n direction=\"column\"\n gap={{ initial: 2, large: '2px' }}\n alignItems={'stretch'}\n marginLeft={{\n initial: 0,\n large: 2,\n }}\n marginRight={{\n initial: 0,\n large: 2,\n }}\n >\n {children.map((child, index) => {\n return <li key={index}>{child}</li>;\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst SubSectionHeader = styled.button`\n cursor: pointer;\n width: 100%;\n border: none;\n padding: 0;\n background: transparent;\n display: flex;\n align-items: center;\n border-radius: ${({ theme }) => theme.borderRadius};\n padding-left: ${({ theme }) => theme.spaces[3]};\n padding-right: ${({ theme }) => theme.spaces[3]};\n padding-top: ${({ theme }) => theme.spaces[2]};\n padding-bottom: ${({ theme }) => theme.spaces[2]};\n\n &:hover {\n background-color: ${({ theme }) => theme.colors.neutral100};\n }\n`;\n\nconst SubSectionLinkWrapper = styled.li`\n ${StyledLink} > div {\n padding-left: 36px;\n }\n`;\n\nconst SubSection = ({ label, children }: { label: string; children: React.ReactNode[] }) => {\n const [isOpen, setOpenLinks] = useState(true);\n const [contentHeight, setContentHeight] = useState(0);\n const listId = useId();\n const contentRef = useRef<HTMLElement>(null);\n\n useEffect(() => {\n if (contentRef.current) {\n setContentHeight(contentRef.current.scrollHeight);\n }\n }, [children]);\n\n const handleClick = () => {\n setOpenLinks((prev) => !prev);\n };\n\n return (\n <Box>\n <Flex justifyContent=\"space-between\">\n <SubSectionHeader onClick={handleClick} aria-expanded={isOpen} aria-controls={listId}>\n <ChevronDown\n aria-hidden\n fill=\"neutral500\"\n style={{\n transform: `rotate(${isOpen ? '0deg' : '-90deg'})`,\n transition: 'transform 0.5s',\n }}\n />\n <Box paddingLeft={2}>\n <Typography tag=\"span\" fontWeight=\"semiBold\" textColor=\"neutral800\">\n {label}\n </Typography>\n </Box>\n </SubSectionHeader>\n </Flex>\n <Flex\n ref={contentRef}\n tag=\"ul\"\n id={listId}\n direction=\"column\"\n gap=\"2px\"\n alignItems={'stretch'}\n style={{\n maxHeight: isOpen ? `${contentHeight}px` : 0,\n overflow: 'hidden',\n transition: 'max-height 0.5s cubic-bezier(0, 1, 0, 1)',\n }}\n >\n {children.map((child, index) => {\n return <SubSectionLinkWrapper key={index}>{child}</SubSectionLinkWrapper>;\n })}\n </Flex>\n </Box>\n );\n};\n\nconst PageWrapper = styled(Box)`\n ${MainSubNav} {\n background-color: transparent;\n border-right: none;\n }\n\n ${({ theme }) => theme.breakpoints.medium} {\n ${MainSubNav} {\n top: 0;\n }\n }\n`;\n\nconst Content = ({ children }: { children: React.ReactNode }) => {\n return <ScrollArea>{children}</ScrollArea>;\n};\n\nexport const SubNav = {\n Main,\n Content,\n Header,\n Link,\n Sections,\n Section,\n SubSection,\n PageWrapper,\n};\n"],"names":["MainSubNav","styled","DSSubNav","HEIGHT_TOP_NAVIGATION","theme","colors","neutral0","breakpoints","medium","neutral150","large","Main","children","props","_jsx","StyledLink","NavLink","neutral800","primary100","primary700","neutral100","Link","label","endAction","handleClick","rest","onClick","Box","width","paddingLeft","paddingRight","paddingTop","initial","paddingBottom","borderRadius","_jsxs","Flex","justifyContent","gap","Typography","tag","lineHeight","overflow","style","textOverflow","whiteSpace","StyledHeader","HEIGHT_TOP_NAVIGATION_MEDIUM","Header","variant","Sections","maxWidth","direction","alignItems","map","child","index","li","GuidedTourTooltip","sectionId","tours","contentTypeBuilder","CollectionTypes","YourTurn","SingleTypes","Components","Section","link","badgeLabel","listId","useId","position","textColor","Badge","backgroundColor","IconButton","withTooltip","size","Plus","id","marginLeft","marginRight","SubSectionHeader","button","spaces","SubSectionLinkWrapper","SubSection","isOpen","setOpenLinks","useState","contentHeight","setContentHeight","contentRef","useRef","useEffect","current","scrollHeight","prev","aria-expanded","aria-controls","ChevronDown","aria-hidden","fill","transform","transition","fontWeight","ref","maxHeight","PageWrapper","Content","ScrollArea","SubNav"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sources":["../../../../../../admin/src/core/apis/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\nimport { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport { createBrowserRouter, createMemoryRouter, RouteObject } from 'react-router-dom';\n\nimport { App } from '../../App';\nimport { ErrorElement } from '../../components/ErrorElement';\nimport { LanguageProvider } from '../../components/LanguageProvider';\nimport { Theme } from '../../components/Theme';\nimport { Permission } from '../../features/Auth';\nimport { NotFoundPage } from '../../pages/NotFoundPage';\nimport { getImmutableRoutes } from '../../router';\nimport { StrapiApp } from '../../StrapiApp';\n\ntype IRouter = ReturnType<typeof createBrowserRouter> | ReturnType<typeof createMemoryRouter>;\n\ntype Reducer<Config extends object> = (prev: Config[]) => Config[];\n\ninterface MenuItem {\n to: string;\n icon: React.ElementType;\n intlLabel: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n permissions: Permission[];\n notificationsCount?: number;\n Component?: React.LazyExoticComponent<React.ComponentType>;\n exact?: boolean;\n position?: number;\n licenseOnly?: boolean;\n}\n\ninterface StrapiAppSettingLink extends Omit<MenuItem, 'icon' | 'notificationCount'> {\n id: string;\n}\n\ninterface UnloadedSettingsLink extends Omit<StrapiAppSettingLink, 'Component'> {\n Component?: () => Promise<{ default: React.ComponentType }>;\n}\n\ninterface StrapiAppSetting {\n id: string;\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n links: Omit<StrapiAppSettingLink, 'Component'>[];\n}\n\ninterface RouterOptions {\n basename?: string;\n memory?: boolean;\n}\n\nclass Router {\n private _routes: RouteObject[] = [];\n private router: IRouter | null = null;\n private _menu: Omit<MenuItem, 'Component'>[] = [];\n private _settings: Record<string, StrapiAppSetting> = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n\n constructor(initialRoutes: RouteObject[]) {\n this._routes = initialRoutes;\n }\n\n get routes() {\n return this._routes;\n }\n\n get menu() {\n return this._menu;\n }\n\n get settings() {\n return this._settings;\n }\n\n /**\n * @internal This method is used internally by Strapi to create the router.\n * It should not be used by plugins, doing so will likely break the application.\n */\n createRouter(strapi: StrapiApp, { memory, ...opts }: RouterOptions = {}) {\n const routes = [\n {\n path: '/*',\n errorElement: (\n <Provider store={strapi.store!}>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <ErrorElement />\n </Theme>\n </LanguageProvider>\n </Provider>\n ),\n element: <App strapi={strapi} store={strapi.store!} />,\n children: [\n ...getImmutableRoutes(),\n {\n path: '/*',\n lazy: async () => {\n const { PrivateAdminLayout } = await import('../../layouts/AuthenticatedLayout');\n\n return {\n Component: PrivateAdminLayout,\n };\n },\n children: [\n ...this.routes,\n {\n path: '*',\n element: <NotFoundPage />,\n },\n ],\n },\n ],\n },\n ];\n\n if (memory) {\n this.router = createMemoryRouter(routes, opts);\n } else {\n this.router = createBrowserRouter(routes, opts);\n }\n\n return this.router;\n }\n\n public addMenuLink = (\n link: Omit<MenuItem, 'Component'> & {\n Component: () => Promise<{ default: React.ComponentType }>;\n }\n ) => {\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n typeof link.to === 'string',\n `[${\n link.intlLabel.defaultMessage\n }]: Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage should be defined`\n );\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise that returns a default component. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addMenuLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your menu link is an absolute path, it should be relative to the root of the application. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n const { Component, ...restLink } = link;\n\n if (Component) {\n this._routes.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this.menu.push(restLink);\n };\n\n public addSettingsLink(\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] },\n links?: never\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink[]\n ): void;\n public addSettingsLink(\n section:\n | string\n | Pick<StrapiAppSetting, 'id' | 'intlLabel'>\n | (Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] }),\n link?: UnloadedSettingsLink | UnloadedSettingsLink[]\n ): void {\n if (typeof section === 'object' && 'links' in section) {\n /**\n * Someone has passed an entire pre-configured section object\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n invariant(Array.isArray(section.links), 'TypeError expected links to be an array');\n\n this.settings[section.id] = { ...section, links: [] };\n\n section.links.forEach((link) => {\n this.createSettingsLink(section.id, link);\n });\n } else if (typeof section === 'object' && link) {\n /**\n * we need to create the section first\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n\n this.settings[section.id] = { ...section, links: [] };\n\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section.id, l));\n } else {\n this.createSettingsLink(section.id, link);\n }\n } else if (typeof section === 'string' && link) {\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section, l));\n } else {\n this.createSettingsLink(section, link);\n }\n } else {\n throw new Error(\n 'Invalid arguments provided to addSettingsLink, at minimum a sectionId and link are required.'\n );\n }\n }\n\n private createSettingsLink = (sectionId: string, link: UnloadedSettingsLink) => {\n invariant(this._settings[sectionId], 'The section does not exist');\n\n invariant(link.id, `[${link.intlLabel.defaultMessage}]: link.id should be defined`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage`\n );\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addSettingsLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link is an absolute path. It should be relative to \\`/settings\\`. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n if (link.to.split('/')[0] === 'settings') {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link has \\`settings\\` as the first part of it's path. It should be relative to \\`settings\\` and therefore, not include it. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.split('/').slice(1).join('/');\n }\n\n const { Component, ...restLink } = link;\n\n const settingsIndex = this._routes.findIndex((route) => route.path === 'settings/*');\n\n /**\n * This shouldn't happen unless someone has removed the settings section completely.\n * Print a warning if this is the case though.\n */\n if (!settingsIndex) {\n console.warn(\n 'A third party plugin has removed the settings section, the settings link cannot be added.'\n );\n return;\n } else if (!this._routes[settingsIndex].children) {\n this._routes[settingsIndex].children = [];\n }\n\n if (Component) {\n this._routes[settingsIndex].children!.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this._settings[sectionId].links.push(restLink);\n };\n\n /**\n * @alpha\n * @description Adds a route or an array of routes to the router.\n * Otherwise, pass a function that receives the current routes and\n * returns the new routes in a reducer like fashion.\n */\n addRoute(route: RouteObject | RouteObject[] | Reducer<RouteObject>) {\n if (Array.isArray(route)) {\n this._routes = [...this._routes, ...route];\n } else if (typeof route === 'object' && route !== null) {\n this._routes.push(route);\n } else if (typeof route === 'function') {\n this._routes = route(this._routes);\n } else {\n throw new Error(\n `Expected the \\`route\\` passed to \\`addRoute\\` to be an array or a function, but received ${getPrintableType(\n route\n )}`\n );\n }\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getPrintableType\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Gets the human-friendly printable type name for the given value, for instance it will yield\n * `array` instead of `object`, as the native `typeof` operator would do.\n */\nconst getPrintableType = (value: unknown): string => {\n const nativeType = typeof value;\n\n if (nativeType === 'object') {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (value instanceof Object && value.constructor.name !== 'Object') {\n return value.constructor.name;\n }\n }\n\n return nativeType;\n};\n\nexport { Router };\nexport type { MenuItem, StrapiAppSettingLink, UnloadedSettingsLink, StrapiAppSetting, RouteObject };\n"],"names":["Router","routes","_routes","menu","_menu","settings","_settings","createRouter","strapi","memory","opts","path","errorElement","_jsx","Provider","store","LanguageProvider","messages","configurations","translations","Theme","themes","ErrorElement","element","App","children","getImmutableRoutes","lazy","PrivateAdminLayout","Component","NotFoundPage","router","createMemoryRouter","createBrowserRouter","addSettingsLink","section","link","invariant","id","intlLabel","defaultMessage","undefined","Array","isArray","links","forEach","createSettingsLink","l","Error","addRoute","route","push","getPrintableType","initialRoutes","global","addMenuLink","to","Symbol","toStringTag","console","warn","trim","startsWith","slice","restLink","mod","default","sectionId","split","join","settingsIndex","findIndex","value","nativeType","Object","name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sources":["../../../../../../admin/src/core/apis/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\nimport { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport { createBrowserRouter, createMemoryRouter, RouteObject } from 'react-router-dom';\n\nimport { App } from '../../App';\nimport { ErrorElement } from '../../components/ErrorElement';\nimport { LanguageProvider } from '../../components/LanguageProvider';\nimport { Theme } from '../../components/Theme';\nimport { Permission } from '../../features/Auth';\nimport { NotFoundPage } from '../../pages/NotFoundPage';\nimport { getImmutableRoutes } from '../../router';\nimport { StrapiApp } from '../../StrapiApp';\n\ntype IRouter = ReturnType<typeof createBrowserRouter> | ReturnType<typeof createMemoryRouter>;\n\ntype Reducer<Config extends object> = (prev: Config[]) => Config[];\n\ninterface MenuItem {\n to: string;\n target?: string;\n icon: React.ElementType;\n intlLabel: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n permissions: Permission[];\n notificationsCount?: number;\n Component?: React.LazyExoticComponent<React.ComponentType>;\n exact?: boolean;\n position?: number;\n licenseOnly?: boolean;\n}\n\ninterface StrapiAppSettingLink extends Omit<MenuItem, 'icon' | 'notificationCount'> {\n id: string;\n}\n\ninterface UnloadedSettingsLink extends Omit<StrapiAppSettingLink, 'Component'> {\n Component?: () => Promise<{ default: React.ComponentType }>;\n}\n\ninterface StrapiAppSetting {\n id: string;\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n links: Omit<StrapiAppSettingLink, 'Component'>[];\n}\n\ninterface RouterOptions {\n basename?: string;\n memory?: boolean;\n}\n\nclass Router {\n private _routes: RouteObject[] = [];\n private router: IRouter | null = null;\n private _menu: Omit<MenuItem, 'Component'>[] = [];\n private _settings: Record<string, StrapiAppSetting> = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n\n constructor(initialRoutes: RouteObject[]) {\n this._routes = initialRoutes;\n }\n\n get routes() {\n return this._routes;\n }\n\n get menu() {\n return this._menu;\n }\n\n get settings() {\n return this._settings;\n }\n\n /**\n * @internal This method is used internally by Strapi to create the router.\n * It should not be used by plugins, doing so will likely break the application.\n */\n createRouter(strapi: StrapiApp, { memory, ...opts }: RouterOptions = {}) {\n const routes = [\n {\n path: '/*',\n errorElement: (\n <Provider store={strapi.store!}>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <ErrorElement />\n </Theme>\n </LanguageProvider>\n </Provider>\n ),\n element: <App strapi={strapi} store={strapi.store!} />,\n children: [\n ...getImmutableRoutes(),\n {\n path: '/*',\n lazy: async () => {\n const { PrivateAdminLayout } = await import('../../layouts/AuthenticatedLayout');\n\n return {\n Component: PrivateAdminLayout,\n };\n },\n children: [\n ...this.routes,\n {\n path: '*',\n element: <NotFoundPage />,\n },\n ],\n },\n ],\n },\n ];\n\n if (memory) {\n this.router = createMemoryRouter(routes, opts);\n } else {\n this.router = createBrowserRouter(routes, opts);\n }\n\n return this.router;\n }\n\n public addMenuLink = (\n link: Omit<MenuItem, 'Component'> & {\n Component: () => Promise<{ default: React.ComponentType }>;\n }\n ) => {\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n typeof link.to === 'string',\n `[${\n link.intlLabel.defaultMessage\n }]: Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage should be defined`\n );\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise that returns a default component. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addMenuLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your menu link is an absolute path, it should be relative to the root of the application. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n const { Component, ...restLink } = link;\n\n if (Component) {\n this._routes.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this.menu.push(restLink);\n };\n\n public addSettingsLink(\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] },\n links?: never\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink[]\n ): void;\n public addSettingsLink(\n section:\n | string\n | Pick<StrapiAppSetting, 'id' | 'intlLabel'>\n | (Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] }),\n link?: UnloadedSettingsLink | UnloadedSettingsLink[]\n ): void {\n if (typeof section === 'object' && 'links' in section) {\n /**\n * Someone has passed an entire pre-configured section object\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n invariant(Array.isArray(section.links), 'TypeError expected links to be an array');\n\n this.settings[section.id] = { ...section, links: [] };\n\n section.links.forEach((link) => {\n this.createSettingsLink(section.id, link);\n });\n } else if (typeof section === 'object' && link) {\n /**\n * we need to create the section first\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n\n this.settings[section.id] = { ...section, links: [] };\n\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section.id, l));\n } else {\n this.createSettingsLink(section.id, link);\n }\n } else if (typeof section === 'string' && link) {\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section, l));\n } else {\n this.createSettingsLink(section, link);\n }\n } else {\n throw new Error(\n 'Invalid arguments provided to addSettingsLink, at minimum a sectionId and link are required.'\n );\n }\n }\n\n private createSettingsLink = (sectionId: string, link: UnloadedSettingsLink) => {\n invariant(this._settings[sectionId], 'The section does not exist');\n\n invariant(link.id, `[${link.intlLabel.defaultMessage}]: link.id should be defined`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage`\n );\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addSettingsLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link is an absolute path. It should be relative to \\`/settings\\`. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n if (link.to.split('/')[0] === 'settings') {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link has \\`settings\\` as the first part of it's path. It should be relative to \\`settings\\` and therefore, not include it. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.split('/').slice(1).join('/');\n }\n\n const { Component, ...restLink } = link;\n\n const settingsIndex = this._routes.findIndex((route) => route.path === 'settings/*');\n\n /**\n * This shouldn't happen unless someone has removed the settings section completely.\n * Print a warning if this is the case though.\n */\n if (!settingsIndex) {\n console.warn(\n 'A third party plugin has removed the settings section, the settings link cannot be added.'\n );\n return;\n } else if (!this._routes[settingsIndex].children) {\n this._routes[settingsIndex].children = [];\n }\n\n if (Component) {\n this._routes[settingsIndex].children!.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this._settings[sectionId].links.push(restLink);\n };\n\n /**\n * @alpha\n * @description Adds a route or an array of routes to the router.\n * Otherwise, pass a function that receives the current routes and\n * returns the new routes in a reducer like fashion.\n */\n addRoute(route: RouteObject | RouteObject[] | Reducer<RouteObject>) {\n if (Array.isArray(route)) {\n this._routes = [...this._routes, ...route];\n } else if (typeof route === 'object' && route !== null) {\n this._routes.push(route);\n } else if (typeof route === 'function') {\n this._routes = route(this._routes);\n } else {\n throw new Error(\n `Expected the \\`route\\` passed to \\`addRoute\\` to be an array or a function, but received ${getPrintableType(\n route\n )}`\n );\n }\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getPrintableType\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Gets the human-friendly printable type name for the given value, for instance it will yield\n * `array` instead of `object`, as the native `typeof` operator would do.\n */\nconst getPrintableType = (value: unknown): string => {\n const nativeType = typeof value;\n\n if (nativeType === 'object') {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (value instanceof Object && value.constructor.name !== 'Object') {\n return value.constructor.name;\n }\n }\n\n return nativeType;\n};\n\nexport { Router };\nexport type { MenuItem, StrapiAppSettingLink, UnloadedSettingsLink, StrapiAppSetting, RouteObject };\n"],"names":["Router","routes","_routes","menu","_menu","settings","_settings","createRouter","strapi","memory","opts","path","errorElement","_jsx","Provider","store","LanguageProvider","messages","configurations","translations","Theme","themes","ErrorElement","element","App","children","getImmutableRoutes","lazy","PrivateAdminLayout","Component","NotFoundPage","router","createMemoryRouter","createBrowserRouter","addSettingsLink","section","link","invariant","id","intlLabel","defaultMessage","undefined","Array","isArray","links","forEach","createSettingsLink","l","Error","addRoute","route","push","getPrintableType","initialRoutes","global","addMenuLink","to","Symbol","toStringTag","console","warn","trim","startsWith","slice","restLink","mod","default","sectionId","split","join","settingsIndex","findIndex","value","nativeType","Object","name"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","sources":["../../../../../../admin/src/core/apis/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\nimport { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport { createBrowserRouter, createMemoryRouter, RouteObject } from 'react-router-dom';\n\nimport { App } from '../../App';\nimport { ErrorElement } from '../../components/ErrorElement';\nimport { LanguageProvider } from '../../components/LanguageProvider';\nimport { Theme } from '../../components/Theme';\nimport { Permission } from '../../features/Auth';\nimport { NotFoundPage } from '../../pages/NotFoundPage';\nimport { getImmutableRoutes } from '../../router';\nimport { StrapiApp } from '../../StrapiApp';\n\ntype IRouter = ReturnType<typeof createBrowserRouter> | ReturnType<typeof createMemoryRouter>;\n\ntype Reducer<Config extends object> = (prev: Config[]) => Config[];\n\ninterface MenuItem {\n to: string;\n icon: React.ElementType;\n intlLabel: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n permissions: Permission[];\n notificationsCount?: number;\n Component?: React.LazyExoticComponent<React.ComponentType>;\n exact?: boolean;\n position?: number;\n licenseOnly?: boolean;\n}\n\ninterface StrapiAppSettingLink extends Omit<MenuItem, 'icon' | 'notificationCount'> {\n id: string;\n}\n\ninterface UnloadedSettingsLink extends Omit<StrapiAppSettingLink, 'Component'> {\n Component?: () => Promise<{ default: React.ComponentType }>;\n}\n\ninterface StrapiAppSetting {\n id: string;\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n links: Omit<StrapiAppSettingLink, 'Component'>[];\n}\n\ninterface RouterOptions {\n basename?: string;\n memory?: boolean;\n}\n\nclass Router {\n private _routes: RouteObject[] = [];\n private router: IRouter | null = null;\n private _menu: Omit<MenuItem, 'Component'>[] = [];\n private _settings: Record<string, StrapiAppSetting> = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n\n constructor(initialRoutes: RouteObject[]) {\n this._routes = initialRoutes;\n }\n\n get routes() {\n return this._routes;\n }\n\n get menu() {\n return this._menu;\n }\n\n get settings() {\n return this._settings;\n }\n\n /**\n * @internal This method is used internally by Strapi to create the router.\n * It should not be used by plugins, doing so will likely break the application.\n */\n createRouter(strapi: StrapiApp, { memory, ...opts }: RouterOptions = {}) {\n const routes = [\n {\n path: '/*',\n errorElement: (\n <Provider store={strapi.store!}>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <ErrorElement />\n </Theme>\n </LanguageProvider>\n </Provider>\n ),\n element: <App strapi={strapi} store={strapi.store!} />,\n children: [\n ...getImmutableRoutes(),\n {\n path: '/*',\n lazy: async () => {\n const { PrivateAdminLayout } = await import('../../layouts/AuthenticatedLayout');\n\n return {\n Component: PrivateAdminLayout,\n };\n },\n children: [\n ...this.routes,\n {\n path: '*',\n element: <NotFoundPage />,\n },\n ],\n },\n ],\n },\n ];\n\n if (memory) {\n this.router = createMemoryRouter(routes, opts);\n } else {\n this.router = createBrowserRouter(routes, opts);\n }\n\n return this.router;\n }\n\n public addMenuLink = (\n link: Omit<MenuItem, 'Component'> & {\n Component: () => Promise<{ default: React.ComponentType }>;\n }\n ) => {\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n typeof link.to === 'string',\n `[${\n link.intlLabel.defaultMessage\n }]: Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage should be defined`\n );\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise that returns a default component. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addMenuLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your menu link is an absolute path, it should be relative to the root of the application. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n const { Component, ...restLink } = link;\n\n if (Component) {\n this._routes.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this.menu.push(restLink);\n };\n\n public addSettingsLink(\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] },\n links?: never\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink[]\n ): void;\n public addSettingsLink(\n section:\n | string\n | Pick<StrapiAppSetting, 'id' | 'intlLabel'>\n | (Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] }),\n link?: UnloadedSettingsLink | UnloadedSettingsLink[]\n ): void {\n if (typeof section === 'object' && 'links' in section) {\n /**\n * Someone has passed an entire pre-configured section object\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n invariant(Array.isArray(section.links), 'TypeError expected links to be an array');\n\n this.settings[section.id] = { ...section, links: [] };\n\n section.links.forEach((link) => {\n this.createSettingsLink(section.id, link);\n });\n } else if (typeof section === 'object' && link) {\n /**\n * we need to create the section first\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n\n this.settings[section.id] = { ...section, links: [] };\n\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section.id, l));\n } else {\n this.createSettingsLink(section.id, link);\n }\n } else if (typeof section === 'string' && link) {\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section, l));\n } else {\n this.createSettingsLink(section, link);\n }\n } else {\n throw new Error(\n 'Invalid arguments provided to addSettingsLink, at minimum a sectionId and link are required.'\n );\n }\n }\n\n private createSettingsLink = (sectionId: string, link: UnloadedSettingsLink) => {\n invariant(this._settings[sectionId], 'The section does not exist');\n\n invariant(link.id, `[${link.intlLabel.defaultMessage}]: link.id should be defined`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage`\n );\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addSettingsLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link is an absolute path. It should be relative to \\`/settings\\`. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n if (link.to.split('/')[0] === 'settings') {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link has \\`settings\\` as the first part of it's path. It should be relative to \\`settings\\` and therefore, not include it. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.split('/').slice(1).join('/');\n }\n\n const { Component, ...restLink } = link;\n\n const settingsIndex = this._routes.findIndex((route) => route.path === 'settings/*');\n\n /**\n * This shouldn't happen unless someone has removed the settings section completely.\n * Print a warning if this is the case though.\n */\n if (!settingsIndex) {\n console.warn(\n 'A third party plugin has removed the settings section, the settings link cannot be added.'\n );\n return;\n } else if (!this._routes[settingsIndex].children) {\n this._routes[settingsIndex].children = [];\n }\n\n if (Component) {\n this._routes[settingsIndex].children!.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this._settings[sectionId].links.push(restLink);\n };\n\n /**\n * @alpha\n * @description Adds a route or an array of routes to the router.\n * Otherwise, pass a function that receives the current routes and\n * returns the new routes in a reducer like fashion.\n */\n addRoute(route: RouteObject | RouteObject[] | Reducer<RouteObject>) {\n if (Array.isArray(route)) {\n this._routes = [...this._routes, ...route];\n } else if (typeof route === 'object' && route !== null) {\n this._routes.push(route);\n } else if (typeof route === 'function') {\n this._routes = route(this._routes);\n } else {\n throw new Error(\n `Expected the \\`route\\` passed to \\`addRoute\\` to be an array or a function, but received ${getPrintableType(\n route\n )}`\n );\n }\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getPrintableType\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Gets the human-friendly printable type name for the given value, for instance it will yield\n * `array` instead of `object`, as the native `typeof` operator would do.\n */\nconst getPrintableType = (value: unknown): string => {\n const nativeType = typeof value;\n\n if (nativeType === 'object') {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (value instanceof Object && value.constructor.name !== 'Object') {\n return value.constructor.name;\n }\n }\n\n return nativeType;\n};\n\nexport { Router };\nexport type { MenuItem, StrapiAppSettingLink, UnloadedSettingsLink, StrapiAppSetting, RouteObject };\n"],"names":["Router","routes","_routes","menu","_menu","settings","_settings","createRouter","strapi","memory","opts","path","errorElement","_jsx","Provider","store","LanguageProvider","messages","configurations","translations","Theme","themes","ErrorElement","element","App","children","getImmutableRoutes","lazy","PrivateAdminLayout","Component","NotFoundPage","router","createMemoryRouter","createBrowserRouter","addSettingsLink","section","link","invariant","id","intlLabel","defaultMessage","undefined","Array","isArray","links","forEach","createSettingsLink","l","Error","addRoute","route","push","getPrintableType","initialRoutes","global","addMenuLink","to","Symbol","toStringTag","console","warn","trim","startsWith","slice","restLink","mod","default","sectionId","split","join","settingsIndex","findIndex","value","nativeType","Object","name"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.mjs","sources":["../../../../../../admin/src/core/apis/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport * as React from 'react';\n\nimport invariant from 'invariant';\nimport { MessageDescriptor, PrimitiveType } from 'react-intl';\nimport { Provider } from 'react-redux';\nimport { createBrowserRouter, createMemoryRouter, RouteObject } from 'react-router-dom';\n\nimport { App } from '../../App';\nimport { ErrorElement } from '../../components/ErrorElement';\nimport { LanguageProvider } from '../../components/LanguageProvider';\nimport { Theme } from '../../components/Theme';\nimport { Permission } from '../../features/Auth';\nimport { NotFoundPage } from '../../pages/NotFoundPage';\nimport { getImmutableRoutes } from '../../router';\nimport { StrapiApp } from '../../StrapiApp';\n\ntype IRouter = ReturnType<typeof createBrowserRouter> | ReturnType<typeof createMemoryRouter>;\n\ntype Reducer<Config extends object> = (prev: Config[]) => Config[];\n\ninterface MenuItem {\n to: string;\n target?: string;\n icon: React.ElementType;\n intlLabel: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n permissions: Permission[];\n notificationsCount?: number;\n Component?: React.LazyExoticComponent<React.ComponentType>;\n exact?: boolean;\n position?: number;\n licenseOnly?: boolean;\n}\n\ninterface StrapiAppSettingLink extends Omit<MenuItem, 'icon' | 'notificationCount'> {\n id: string;\n}\n\ninterface UnloadedSettingsLink extends Omit<StrapiAppSettingLink, 'Component'> {\n Component?: () => Promise<{ default: React.ComponentType }>;\n}\n\ninterface StrapiAppSetting {\n id: string;\n intlLabel: MessageDescriptor & {\n values?: Record<string, PrimitiveType>;\n };\n links: Omit<StrapiAppSettingLink, 'Component'>[];\n}\n\ninterface RouterOptions {\n basename?: string;\n memory?: boolean;\n}\n\nclass Router {\n private _routes: RouteObject[] = [];\n private router: IRouter | null = null;\n private _menu: Omit<MenuItem, 'Component'>[] = [];\n private _settings: Record<string, StrapiAppSetting> = {\n global: {\n id: 'global',\n intlLabel: {\n id: 'Settings.global',\n defaultMessage: 'Global Settings',\n },\n links: [],\n },\n };\n\n constructor(initialRoutes: RouteObject[]) {\n this._routes = initialRoutes;\n }\n\n get routes() {\n return this._routes;\n }\n\n get menu() {\n return this._menu;\n }\n\n get settings() {\n return this._settings;\n }\n\n /**\n * @internal This method is used internally by Strapi to create the router.\n * It should not be used by plugins, doing so will likely break the application.\n */\n createRouter(strapi: StrapiApp, { memory, ...opts }: RouterOptions = {}) {\n const routes = [\n {\n path: '/*',\n errorElement: (\n <Provider store={strapi.store!}>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <ErrorElement />\n </Theme>\n </LanguageProvider>\n </Provider>\n ),\n element: <App strapi={strapi} store={strapi.store!} />,\n children: [\n ...getImmutableRoutes(),\n {\n path: '/*',\n lazy: async () => {\n const { PrivateAdminLayout } = await import('../../layouts/AuthenticatedLayout');\n\n return {\n Component: PrivateAdminLayout,\n };\n },\n children: [\n ...this.routes,\n {\n path: '*',\n element: <NotFoundPage />,\n },\n ],\n },\n ],\n },\n ];\n\n if (memory) {\n this.router = createMemoryRouter(routes, opts);\n } else {\n this.router = createBrowserRouter(routes, opts);\n }\n\n return this.router;\n }\n\n public addMenuLink = (\n link: Omit<MenuItem, 'Component'> & {\n Component: () => Promise<{ default: React.ComponentType }>;\n }\n ) => {\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n typeof link.to === 'string',\n `[${\n link.intlLabel.defaultMessage\n }]: Expected link.to to be a string instead received ${typeof link.to}`\n );\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage should be defined`\n );\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise that returns a default component. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addMenuLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your menu link is an absolute path, it should be relative to the root of the application. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n const { Component, ...restLink } = link;\n\n if (Component) {\n this._routes.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this.menu.push(restLink);\n };\n\n public addSettingsLink(\n section: Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] },\n links?: never\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink\n ): void;\n public addSettingsLink(\n sectionId: string | Pick<StrapiAppSetting, 'id' | 'intlLabel'>,\n link: UnloadedSettingsLink[]\n ): void;\n public addSettingsLink(\n section:\n | string\n | Pick<StrapiAppSetting, 'id' | 'intlLabel'>\n | (Pick<StrapiAppSetting, 'id' | 'intlLabel'> & { links: UnloadedSettingsLink[] }),\n link?: UnloadedSettingsLink | UnloadedSettingsLink[]\n ): void {\n if (typeof section === 'object' && 'links' in section) {\n /**\n * Someone has passed an entire pre-configured section object\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n invariant(Array.isArray(section.links), 'TypeError expected links to be an array');\n\n this.settings[section.id] = { ...section, links: [] };\n\n section.links.forEach((link) => {\n this.createSettingsLink(section.id, link);\n });\n } else if (typeof section === 'object' && link) {\n /**\n * we need to create the section first\n */\n invariant(section.id, 'section.id should be defined');\n invariant(\n section.intlLabel?.id && section.intlLabel?.defaultMessage,\n 'section.intlLabel should be defined'\n );\n invariant(this.settings[section.id] === undefined, 'A similar section already exists');\n\n this.settings[section.id] = { ...section, links: [] };\n\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section.id, l));\n } else {\n this.createSettingsLink(section.id, link);\n }\n } else if (typeof section === 'string' && link) {\n if (Array.isArray(link)) {\n link.forEach((l) => this.createSettingsLink(section, l));\n } else {\n this.createSettingsLink(section, link);\n }\n } else {\n throw new Error(\n 'Invalid arguments provided to addSettingsLink, at minimum a sectionId and link are required.'\n );\n }\n }\n\n private createSettingsLink = (sectionId: string, link: UnloadedSettingsLink) => {\n invariant(this._settings[sectionId], 'The section does not exist');\n\n invariant(link.id, `[${link.intlLabel.defaultMessage}]: link.id should be defined`);\n invariant(\n link.intlLabel?.id && link.intlLabel?.defaultMessage,\n `[${link.intlLabel.defaultMessage}]: link.intlLabel.id & link.intlLabel.defaultMessage`\n );\n invariant(link.to, `[${link.intlLabel.defaultMessage}]: link.to should be defined`);\n invariant(\n !link.Component || (link.Component && typeof link.Component === 'function'),\n `[${link.intlLabel.defaultMessage}]: link.Component must be a function returning a Promise. Please use: \\`Component: () => import(path)\\` instead.`\n );\n\n if (\n !link.Component ||\n (link.Component &&\n typeof link.Component === 'function' &&\n // @ts-expect-error – shh\n link.Component[Symbol.toStringTag] === 'AsyncFunction')\n ) {\n console.warn(\n `\n [${link.intlLabel.defaultMessage}]: [deprecated] addSettingsLink() was called with an async Component from the plugin \"${link.intlLabel.defaultMessage}\". This will be removed in the future. Please use: \\`Component: () => import(path)\\` ensuring you return a default export instead.\n `.trim()\n );\n }\n\n if (link.to.startsWith('/')) {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link is an absolute path. It should be relative to \\`/settings\\`. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.slice(1);\n }\n\n if (link.to.split('/')[0] === 'settings') {\n console.warn(\n `[${link.intlLabel.defaultMessage}]: the \\`to\\` property of your settings link has \\`settings\\` as the first part of it's path. It should be relative to \\`settings\\` and therefore, not include it. This has been corrected for you but will be removed in a future version of Strapi.`\n );\n\n link.to = link.to.split('/').slice(1).join('/');\n }\n\n const { Component, ...restLink } = link;\n\n const settingsIndex = this._routes.findIndex((route) => route.path === 'settings/*');\n\n /**\n * This shouldn't happen unless someone has removed the settings section completely.\n * Print a warning if this is the case though.\n */\n if (!settingsIndex) {\n console.warn(\n 'A third party plugin has removed the settings section, the settings link cannot be added.'\n );\n return;\n } else if (!this._routes[settingsIndex].children) {\n this._routes[settingsIndex].children = [];\n }\n\n if (Component) {\n this._routes[settingsIndex].children!.push({\n path: `${link.to}/*`,\n lazy: async () => {\n const mod = await Component();\n\n if ('default' in mod) {\n return { Component: mod.default };\n } else {\n return { Component: mod };\n }\n },\n });\n }\n\n this._settings[sectionId].links.push(restLink);\n };\n\n /**\n * @alpha\n * @description Adds a route or an array of routes to the router.\n * Otherwise, pass a function that receives the current routes and\n * returns the new routes in a reducer like fashion.\n */\n addRoute(route: RouteObject | RouteObject[] | Reducer<RouteObject>) {\n if (Array.isArray(route)) {\n this._routes = [...this._routes, ...route];\n } else if (typeof route === 'object' && route !== null) {\n this._routes.push(route);\n } else if (typeof route === 'function') {\n this._routes = route(this._routes);\n } else {\n throw new Error(\n `Expected the \\`route\\` passed to \\`addRoute\\` to be an array or a function, but received ${getPrintableType(\n route\n )}`\n );\n }\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getPrintableType\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @internal\n * @description Gets the human-friendly printable type name for the given value, for instance it will yield\n * `array` instead of `object`, as the native `typeof` operator would do.\n */\nconst getPrintableType = (value: unknown): string => {\n const nativeType = typeof value;\n\n if (nativeType === 'object') {\n if (value === null) return 'null';\n if (Array.isArray(value)) return 'array';\n if (value instanceof Object && value.constructor.name !== 'Object') {\n return value.constructor.name;\n }\n }\n\n return nativeType;\n};\n\nexport { Router };\nexport type { MenuItem, StrapiAppSettingLink, UnloadedSettingsLink, StrapiAppSetting, RouteObject };\n"],"names":["Router","routes","_routes","menu","_menu","settings","_settings","createRouter","strapi","memory","opts","path","errorElement","_jsx","Provider","store","LanguageProvider","messages","configurations","translations","Theme","themes","ErrorElement","element","App","children","getImmutableRoutes","lazy","PrivateAdminLayout","Component","NotFoundPage","router","createMemoryRouter","createBrowserRouter","addSettingsLink","section","link","invariant","id","intlLabel","defaultMessage","undefined","Array","isArray","links","forEach","createSettingsLink","l","Error","addRoute","route","push","getPrintableType","initialRoutes","global","addMenuLink","to","Symbol","toStringTag","console","warn","trim","startsWith","slice","restLink","mod","default","sectionId","split","join","settingsIndex","findIndex","value","nativeType","Object","name"],"mappings":"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"}
|