@strapi/admin 5.33.4 → 5.35.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 +84 -50
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +86 -52
- 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/NpsSurvey.js +2 -0
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +2 -0
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +41 -20
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +42 -21
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/constants/theme.js +2 -0
- package/dist/admin/admin/src/constants/theme.js.map +1 -1
- package/dist/admin/admin/src/constants/theme.mjs +2 -1
- package/dist/admin/admin/src/constants/theme.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/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +51 -10
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +51 -10
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +12 -3
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +12 -3
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.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/Users/utils/validation.js +12 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs +12 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.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 +430 -102
- package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ko.json.mjs +427 -103
- 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/index.js +3 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/MainNav/NavLink.d.ts +2 -2
- package/dist/admin/src/constants/theme.d.ts +2 -1
- 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/src/index.d.ts +1 -1
- 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,308 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import { Typography, Divider, Flex, Box, Tooltip, LinkButton, Button } from '@strapi/design-system';
|
|
3
|
-
import { CheckCircle, ExternalLink, Check, Duplicate, Star, Download } from '@strapi/icons';
|
|
4
|
-
import { GitHub } from '@strapi/icons/symbols';
|
|
5
|
-
import pluralize from 'pluralize';
|
|
6
|
-
import { useIntl } from 'react-intl';
|
|
7
|
-
import * as semver from 'semver';
|
|
8
|
-
import { styled } from 'styled-components';
|
|
9
|
-
import img from '../../../assets/images/logo-strapi-2022.svg.mjs';
|
|
10
|
-
import { useNotification } from '../../../features/Notifications.mjs';
|
|
11
|
-
import { useTracking } from '../../../features/Tracking.mjs';
|
|
12
|
-
import { useClipboard } from '../../../hooks/useClipboard.mjs';
|
|
13
|
-
|
|
14
|
-
// Custom component to have an ellipsis after the 2nd line
|
|
15
|
-
const EllipsisText = styled(Typography)`
|
|
16
|
-
display: -webkit-box;
|
|
17
|
-
-webkit-box-orient: vertical;
|
|
18
|
-
-webkit-line-clamp: 2;
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
`;
|
|
21
|
-
const NpmPackageCard = ({ npmPackage, isInstalled, useYarn, isInDevelopmentMode, npmPackageType, strapiAppVersion })=>{
|
|
22
|
-
const { attributes } = npmPackage;
|
|
23
|
-
const { formatMessage } = useIntl();
|
|
24
|
-
const { trackUsage } = useTracking();
|
|
25
|
-
const commandToCopy = useYarn ? `yarn add ${attributes.npmPackageName}` : `npm install ${attributes.npmPackageName}`;
|
|
26
|
-
const madeByStrapiMessage = formatMessage({
|
|
27
|
-
id: 'admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi',
|
|
28
|
-
defaultMessage: 'Made by Strapi'
|
|
29
|
-
});
|
|
30
|
-
const npmPackageHref = `https://market.strapi.io/${pluralize.plural(npmPackageType)}/${attributes.slug}`;
|
|
31
|
-
const versionRange = semver.validRange(attributes.strapiVersion);
|
|
32
|
-
const isCompatible = versionRange ? semver.satisfies(strapiAppVersion ?? '', versionRange) : false;
|
|
33
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
|
34
|
-
direction: "column",
|
|
35
|
-
justifyContent: "space-between",
|
|
36
|
-
paddingTop: 4,
|
|
37
|
-
paddingRight: 4,
|
|
38
|
-
paddingBottom: 4,
|
|
39
|
-
paddingLeft: 4,
|
|
40
|
-
hasRadius: true,
|
|
41
|
-
background: "neutral0",
|
|
42
|
-
shadow: "tableShadow",
|
|
43
|
-
height: "100%",
|
|
44
|
-
alignItems: "normal",
|
|
45
|
-
"data-testid": "npm-package-card",
|
|
46
|
-
children: [
|
|
47
|
-
/*#__PURE__*/ jsxs(Box, {
|
|
48
|
-
children: [
|
|
49
|
-
/*#__PURE__*/ jsxs(Flex, {
|
|
50
|
-
direction: "row",
|
|
51
|
-
justifyContent: "space-between",
|
|
52
|
-
alignItems: "flex-start",
|
|
53
|
-
children: [
|
|
54
|
-
/*#__PURE__*/ jsx(Box, {
|
|
55
|
-
tag: "img",
|
|
56
|
-
src: attributes.logo.url,
|
|
57
|
-
alt: `${attributes.name} logo`,
|
|
58
|
-
hasRadius: true,
|
|
59
|
-
width: 11,
|
|
60
|
-
height: 11
|
|
61
|
-
}),
|
|
62
|
-
/*#__PURE__*/ jsx(PackageStats, {
|
|
63
|
-
githubStars: attributes.githubStars,
|
|
64
|
-
npmDownloads: attributes.npmDownloads,
|
|
65
|
-
npmPackageType: npmPackageType
|
|
66
|
-
})
|
|
67
|
-
]
|
|
68
|
-
}),
|
|
69
|
-
/*#__PURE__*/ jsx(Box, {
|
|
70
|
-
paddingTop: 4,
|
|
71
|
-
children: /*#__PURE__*/ jsx(Typography, {
|
|
72
|
-
tag: "h3",
|
|
73
|
-
variant: "delta",
|
|
74
|
-
children: /*#__PURE__*/ jsxs(Flex, {
|
|
75
|
-
alignItems: "center",
|
|
76
|
-
gap: attributes.validated && !attributes.madeByStrapi ? 2 : 1,
|
|
77
|
-
children: [
|
|
78
|
-
attributes.name,
|
|
79
|
-
attributes.validated && !attributes.madeByStrapi && /*#__PURE__*/ jsx(Tooltip, {
|
|
80
|
-
description: formatMessage({
|
|
81
|
-
id: 'admin.pages.MarketPlacePage.plugin.tooltip.verified',
|
|
82
|
-
defaultMessage: 'Plugin verified by Strapi'
|
|
83
|
-
}),
|
|
84
|
-
children: /*#__PURE__*/ jsx(CheckCircle, {
|
|
85
|
-
fill: "success600"
|
|
86
|
-
})
|
|
87
|
-
}),
|
|
88
|
-
attributes.madeByStrapi && /*#__PURE__*/ jsx(Tooltip, {
|
|
89
|
-
label: madeByStrapiMessage,
|
|
90
|
-
children: /*#__PURE__*/ jsx(Box, {
|
|
91
|
-
tag: "img",
|
|
92
|
-
src: img,
|
|
93
|
-
alt: madeByStrapiMessage,
|
|
94
|
-
width: 6,
|
|
95
|
-
height: "auto"
|
|
96
|
-
})
|
|
97
|
-
})
|
|
98
|
-
]
|
|
99
|
-
})
|
|
100
|
-
})
|
|
101
|
-
}),
|
|
102
|
-
/*#__PURE__*/ jsx(Box, {
|
|
103
|
-
paddingTop: 2,
|
|
104
|
-
children: /*#__PURE__*/ jsx(EllipsisText, {
|
|
105
|
-
tag: "p",
|
|
106
|
-
variant: "omega",
|
|
107
|
-
textColor: "neutral600",
|
|
108
|
-
children: attributes.description
|
|
109
|
-
})
|
|
110
|
-
})
|
|
111
|
-
]
|
|
112
|
-
}),
|
|
113
|
-
/*#__PURE__*/ jsxs(Flex, {
|
|
114
|
-
gap: 2,
|
|
115
|
-
style: {
|
|
116
|
-
alignSelf: 'flex-end'
|
|
117
|
-
},
|
|
118
|
-
paddingTop: 6,
|
|
119
|
-
children: [
|
|
120
|
-
/*#__PURE__*/ jsx(LinkButton, {
|
|
121
|
-
size: "S",
|
|
122
|
-
href: npmPackageHref,
|
|
123
|
-
isExternal: true,
|
|
124
|
-
endIcon: /*#__PURE__*/ jsx(ExternalLink, {}),
|
|
125
|
-
"aria-label": formatMessage({
|
|
126
|
-
id: 'admin.pages.MarketPlacePage.plugin.info.label',
|
|
127
|
-
defaultMessage: 'Learn more about {pluginName}'
|
|
128
|
-
}, {
|
|
129
|
-
pluginName: attributes.name
|
|
130
|
-
}),
|
|
131
|
-
variant: "tertiary",
|
|
132
|
-
onClick: ()=>trackUsage('didPluginLearnMore'),
|
|
133
|
-
children: formatMessage({
|
|
134
|
-
id: 'admin.pages.MarketPlacePage.plugin.info.text',
|
|
135
|
-
defaultMessage: 'More'
|
|
136
|
-
})
|
|
137
|
-
}),
|
|
138
|
-
/*#__PURE__*/ jsx(InstallPluginButton, {
|
|
139
|
-
isInstalled: isInstalled,
|
|
140
|
-
isInDevelopmentMode: isInDevelopmentMode,
|
|
141
|
-
isCompatible: isCompatible,
|
|
142
|
-
commandToCopy: commandToCopy,
|
|
143
|
-
strapiAppVersion: strapiAppVersion,
|
|
144
|
-
strapiPeerDepVersion: attributes.strapiVersion,
|
|
145
|
-
pluginName: attributes.name
|
|
146
|
-
})
|
|
147
|
-
]
|
|
148
|
-
})
|
|
149
|
-
]
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
const InstallPluginButton = ({ isInstalled, isInDevelopmentMode, isCompatible, commandToCopy, strapiAppVersion, strapiPeerDepVersion, pluginName })=>{
|
|
153
|
-
const { toggleNotification } = useNotification();
|
|
154
|
-
const { formatMessage } = useIntl();
|
|
155
|
-
const { trackUsage } = useTracking();
|
|
156
|
-
const { copy } = useClipboard();
|
|
157
|
-
const handleCopy = async ()=>{
|
|
158
|
-
const didCopy = await copy(commandToCopy);
|
|
159
|
-
if (didCopy) {
|
|
160
|
-
trackUsage('willInstallPlugin');
|
|
161
|
-
toggleNotification({
|
|
162
|
-
type: 'success',
|
|
163
|
-
message: formatMessage({
|
|
164
|
-
id: 'admin.pages.MarketPlacePage.plugin.copy.success'
|
|
165
|
-
})
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
// Already installed
|
|
170
|
-
if (isInstalled) {
|
|
171
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
|
172
|
-
gap: 2,
|
|
173
|
-
paddingLeft: 4,
|
|
174
|
-
children: [
|
|
175
|
-
/*#__PURE__*/ jsx(Check, {
|
|
176
|
-
width: "1.2rem",
|
|
177
|
-
height: "1.2rem",
|
|
178
|
-
color: "success600"
|
|
179
|
-
}),
|
|
180
|
-
/*#__PURE__*/ jsx(Typography, {
|
|
181
|
-
variant: "omega",
|
|
182
|
-
textColor: "success600",
|
|
183
|
-
fontWeight: "bold",
|
|
184
|
-
children: formatMessage({
|
|
185
|
-
id: 'admin.pages.MarketPlacePage.plugin.installed',
|
|
186
|
-
defaultMessage: 'Installed'
|
|
187
|
-
})
|
|
188
|
-
})
|
|
189
|
-
]
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
// In development, show install button
|
|
193
|
-
if (isInDevelopmentMode && isCompatible !== false) {
|
|
194
|
-
return /*#__PURE__*/ jsx(CardButton, {
|
|
195
|
-
strapiAppVersion: strapiAppVersion,
|
|
196
|
-
strapiPeerDepVersion: strapiPeerDepVersion,
|
|
197
|
-
handleCopy: handleCopy,
|
|
198
|
-
pluginName: pluginName
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
// Not in development and plugin not installed already. Show nothing
|
|
202
|
-
return null;
|
|
203
|
-
};
|
|
204
|
-
const CardButton = ({ strapiPeerDepVersion, strapiAppVersion, handleCopy, pluginName })=>{
|
|
205
|
-
const { formatMessage } = useIntl();
|
|
206
|
-
const versionRange = semver.validRange(strapiPeerDepVersion);
|
|
207
|
-
const isCompatible = semver.satisfies(strapiAppVersion ?? '', versionRange ?? '');
|
|
208
|
-
const installMessage = formatMessage({
|
|
209
|
-
id: 'admin.pages.MarketPlacePage.plugin.copy',
|
|
210
|
-
defaultMessage: 'Copy install command'
|
|
211
|
-
});
|
|
212
|
-
// Only plugins receive a strapiAppVersion
|
|
213
|
-
if (strapiAppVersion) {
|
|
214
|
-
if (!versionRange || !isCompatible) {
|
|
215
|
-
return /*#__PURE__*/ jsx(Tooltip, {
|
|
216
|
-
"data-testid": `tooltip-${pluginName}`,
|
|
217
|
-
label: formatMessage({
|
|
218
|
-
id: 'admin.pages.MarketPlacePage.plugin.version',
|
|
219
|
-
defaultMessage: 'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'
|
|
220
|
-
}, {
|
|
221
|
-
strapiAppVersion,
|
|
222
|
-
versionRange
|
|
223
|
-
}),
|
|
224
|
-
children: /*#__PURE__*/ jsx("span", {
|
|
225
|
-
children: /*#__PURE__*/ jsx(Button, {
|
|
226
|
-
size: "S",
|
|
227
|
-
startIcon: /*#__PURE__*/ jsx(Duplicate, {}),
|
|
228
|
-
variant: "secondary",
|
|
229
|
-
onClick: handleCopy,
|
|
230
|
-
disabled: !isCompatible,
|
|
231
|
-
children: installMessage
|
|
232
|
-
})
|
|
233
|
-
})
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return /*#__PURE__*/ jsx(Button, {
|
|
238
|
-
size: "S",
|
|
239
|
-
startIcon: /*#__PURE__*/ jsx(Duplicate, {}),
|
|
240
|
-
variant: "secondary",
|
|
241
|
-
onClick: handleCopy,
|
|
242
|
-
children: installMessage
|
|
243
|
-
});
|
|
244
|
-
};
|
|
245
|
-
const PackageStats = ({ githubStars = 0, npmDownloads = 0, npmPackageType })=>{
|
|
246
|
-
const { formatMessage } = useIntl();
|
|
247
|
-
return /*#__PURE__*/ jsxs(Flex, {
|
|
248
|
-
gap: 1,
|
|
249
|
-
children: [
|
|
250
|
-
!!githubStars && /*#__PURE__*/ jsxs(Fragment, {
|
|
251
|
-
children: [
|
|
252
|
-
/*#__PURE__*/ jsx(GitHub, {
|
|
253
|
-
height: "1.2rem",
|
|
254
|
-
width: "1.2rem",
|
|
255
|
-
"aria-hidden": true
|
|
256
|
-
}),
|
|
257
|
-
/*#__PURE__*/ jsx(Star, {
|
|
258
|
-
height: "1.2rem",
|
|
259
|
-
width: "1.2rem",
|
|
260
|
-
fill: "warning500",
|
|
261
|
-
"aria-hidden": true
|
|
262
|
-
}),
|
|
263
|
-
/*#__PURE__*/ jsx("p", {
|
|
264
|
-
"aria-label": formatMessage({
|
|
265
|
-
id: `admin.pages.MarketPlacePage.${npmPackageType}.githubStars`,
|
|
266
|
-
defaultMessage: `This {package} was starred {starsCount} on GitHub`
|
|
267
|
-
}, {
|
|
268
|
-
starsCount: githubStars,
|
|
269
|
-
package: npmPackageType
|
|
270
|
-
}),
|
|
271
|
-
children: /*#__PURE__*/ jsx(Typography, {
|
|
272
|
-
variant: "pi",
|
|
273
|
-
textColor: "neutral800",
|
|
274
|
-
children: githubStars
|
|
275
|
-
})
|
|
276
|
-
}),
|
|
277
|
-
/*#__PURE__*/ jsx(VerticalDivider, {})
|
|
278
|
-
]
|
|
279
|
-
}),
|
|
280
|
-
/*#__PURE__*/ jsx(Download, {
|
|
281
|
-
height: "1.2rem",
|
|
282
|
-
width: "1.2rem",
|
|
283
|
-
"aria-hidden": true
|
|
284
|
-
}),
|
|
285
|
-
/*#__PURE__*/ jsx("p", {
|
|
286
|
-
"aria-label": formatMessage({
|
|
287
|
-
id: `admin.pages.MarketPlacePage.${npmPackageType}.downloads`,
|
|
288
|
-
defaultMessage: `This {package} has {downloadsCount} weekly downloads`
|
|
289
|
-
}, {
|
|
290
|
-
downloadsCount: npmDownloads,
|
|
291
|
-
package: npmPackageType
|
|
292
|
-
}),
|
|
293
|
-
children: /*#__PURE__*/ jsx(Typography, {
|
|
294
|
-
variant: "pi",
|
|
295
|
-
textColor: "neutral800",
|
|
296
|
-
children: npmDownloads
|
|
297
|
-
})
|
|
298
|
-
})
|
|
299
|
-
]
|
|
300
|
-
});
|
|
301
|
-
};
|
|
302
|
-
const VerticalDivider = styled(Divider)`
|
|
303
|
-
width: 1.2rem;
|
|
304
|
-
transform: rotate(90deg);
|
|
305
|
-
`;
|
|
306
|
-
|
|
307
|
-
export { NpmPackageCard };
|
|
308
|
-
//# sourceMappingURL=NpmPackageCard.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NpmPackageCard.mjs","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackageCard.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Tooltip,\n Typography,\n Divider,\n Button,\n LinkButton,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CheckCircle, ExternalLink, Download, Star, Check, Duplicate } from '@strapi/icons';\nimport { GitHub } from '@strapi/icons/symbols';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport * as semver from 'semver';\nimport { styled } from 'styled-components';\n\nimport StrapiLogo from '../../../assets/images/logo-strapi-2022.svg';\nimport { AppInfoContextValue } from '../../../features/AppInfo';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useClipboard } from '../../../hooks/useClipboard';\n\nimport type { Plugin, Provider } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType } from '../MarketplacePage';\n\n// Custom component to have an ellipsis after the 2nd line\nconst EllipsisText = styled<TypographyComponent<'p'>>(Typography)`\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n`;\n\ninterface NpmPackageCardProps extends Pick<AppInfoContextValue, 'useYarn'> {\n npmPackage: Plugin | Provider;\n isInstalled: boolean;\n isInDevelopmentMode: AppInfoContextValue['autoReload'];\n npmPackageType: NpmPackageType;\n strapiAppVersion: AppInfoContextValue['strapiVersion'];\n}\n\nconst NpmPackageCard = ({\n npmPackage,\n isInstalled,\n useYarn,\n isInDevelopmentMode,\n npmPackageType,\n strapiAppVersion,\n}: NpmPackageCardProps) => {\n const { attributes } = npmPackage;\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const commandToCopy = useYarn\n ? `yarn add ${attributes.npmPackageName}`\n : `npm install ${attributes.npmPackageName}`;\n\n const madeByStrapiMessage = formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi',\n defaultMessage: 'Made by Strapi',\n });\n\n const npmPackageHref = `https://market.strapi.io/${pluralize.plural(npmPackageType)}/${\n attributes.slug\n }`;\n\n const versionRange = semver.validRange(attributes.strapiVersion);\n\n const isCompatible = versionRange\n ? semver.satisfies(strapiAppVersion ?? '', versionRange)\n : false;\n\n return (\n <Flex\n direction=\"column\"\n justifyContent=\"space-between\"\n paddingTop={4}\n paddingRight={4}\n paddingBottom={4}\n paddingLeft={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n height=\"100%\"\n alignItems=\"normal\"\n data-testid=\"npm-package-card\"\n >\n <Box>\n <Flex direction=\"row\" justifyContent=\"space-between\" alignItems=\"flex-start\">\n <Box\n tag=\"img\"\n src={attributes.logo.url}\n alt={`${attributes.name} logo`}\n hasRadius\n width={11}\n height={11}\n />\n <PackageStats\n githubStars={attributes.githubStars}\n npmDownloads={attributes.npmDownloads}\n npmPackageType={npmPackageType}\n />\n </Flex>\n <Box paddingTop={4}>\n <Typography tag=\"h3\" variant=\"delta\">\n <Flex\n alignItems=\"center\"\n gap={attributes.validated && !attributes.madeByStrapi ? 2 : 1}\n >\n {attributes.name}\n {attributes.validated && !attributes.madeByStrapi && (\n <Tooltip\n description={formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.tooltip.verified',\n defaultMessage: 'Plugin verified by Strapi',\n })}\n >\n <CheckCircle fill=\"success600\" />\n </Tooltip>\n )}\n {attributes.madeByStrapi && (\n <Tooltip label={madeByStrapiMessage}>\n <Box\n tag=\"img\"\n src={StrapiLogo}\n alt={madeByStrapiMessage}\n width={6}\n height=\"auto\"\n />\n </Tooltip>\n )}\n </Flex>\n </Typography>\n </Box>\n <Box paddingTop={2}>\n <EllipsisText tag=\"p\" variant=\"omega\" textColor=\"neutral600\">\n {attributes.description}\n </EllipsisText>\n </Box>\n </Box>\n\n <Flex gap={2} style={{ alignSelf: 'flex-end' }} paddingTop={6}>\n <LinkButton\n size=\"S\"\n href={npmPackageHref}\n isExternal\n endIcon={<ExternalLink />}\n aria-label={formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.plugin.info.label',\n defaultMessage: 'Learn more about {pluginName}',\n },\n { pluginName: attributes.name }\n )}\n variant=\"tertiary\"\n onClick={() => trackUsage('didPluginLearnMore')}\n >\n {formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.info.text',\n defaultMessage: 'More',\n })}\n </LinkButton>\n <InstallPluginButton\n isInstalled={isInstalled}\n isInDevelopmentMode={isInDevelopmentMode}\n isCompatible={isCompatible}\n commandToCopy={commandToCopy}\n strapiAppVersion={strapiAppVersion}\n strapiPeerDepVersion={attributes.strapiVersion}\n pluginName={attributes.name}\n />\n </Flex>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * InstallPluginButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface InstallPluginButtonProps\n extends Pick<NpmPackageCardProps, 'isInstalled' | 'isInDevelopmentMode' | 'strapiAppVersion'> {\n commandToCopy: string;\n pluginName: string;\n strapiPeerDepVersion?: string;\n isCompatible?: boolean;\n}\n\nconst InstallPluginButton = ({\n isInstalled,\n isInDevelopmentMode,\n isCompatible,\n commandToCopy,\n strapiAppVersion,\n strapiPeerDepVersion,\n pluginName,\n}: InstallPluginButtonProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { copy } = useClipboard();\n\n const handleCopy = async () => {\n const didCopy = await copy(commandToCopy);\n\n if (didCopy) {\n trackUsage('willInstallPlugin');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'admin.pages.MarketPlacePage.plugin.copy.success' }),\n });\n }\n };\n\n // Already installed\n if (isInstalled) {\n return (\n <Flex gap={2} paddingLeft={4}>\n <Check width=\"1.2rem\" height=\"1.2rem\" color=\"success600\" />\n <Typography variant=\"omega\" textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.installed',\n defaultMessage: 'Installed',\n })}\n </Typography>\n </Flex>\n );\n }\n\n // In development, show install button\n if (isInDevelopmentMode && isCompatible !== false) {\n return (\n <CardButton\n strapiAppVersion={strapiAppVersion}\n strapiPeerDepVersion={strapiPeerDepVersion}\n handleCopy={handleCopy}\n pluginName={pluginName}\n />\n );\n }\n\n // Not in development and plugin not installed already. Show nothing\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CardButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CardButtonProps\n extends Pick<NpmPackageCardProps, 'strapiAppVersion'>,\n Pick<InstallPluginButtonProps, 'strapiPeerDepVersion' | 'pluginName'> {\n handleCopy: () => void;\n}\n\nconst CardButton = ({\n strapiPeerDepVersion,\n strapiAppVersion,\n handleCopy,\n pluginName,\n}: CardButtonProps) => {\n const { formatMessage } = useIntl();\n const versionRange = semver.validRange(strapiPeerDepVersion);\n const isCompatible = semver.satisfies(strapiAppVersion ?? '', versionRange ?? '');\n\n const installMessage = formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.copy',\n defaultMessage: 'Copy install command',\n });\n\n // Only plugins receive a strapiAppVersion\n if (strapiAppVersion) {\n if (!versionRange || !isCompatible) {\n return (\n <Tooltip\n data-testid={`tooltip-${pluginName}`}\n label={formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.plugin.version',\n defaultMessage:\n 'Update your Strapi version: \"{strapiAppVersion}\" to: \"{versionRange}\"',\n },\n {\n strapiAppVersion,\n versionRange,\n }\n )}\n >\n <span>\n <Button\n size=\"S\"\n startIcon={<Duplicate />}\n variant=\"secondary\"\n onClick={handleCopy}\n disabled={!isCompatible}\n >\n {installMessage}\n </Button>\n </span>\n </Tooltip>\n );\n }\n }\n\n return (\n <Button size=\"S\" startIcon={<Duplicate />} variant=\"secondary\" onClick={handleCopy}>\n {installMessage}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PackageStats\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PackageStatsProps {\n githubStars?: number;\n npmDownloads?: number;\n npmPackageType: NpmPackageType;\n}\n\nconst PackageStats = ({ githubStars = 0, npmDownloads = 0, npmPackageType }: PackageStatsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex gap={1}>\n {!!githubStars && (\n <>\n <GitHub height=\"1.2rem\" width=\"1.2rem\" aria-hidden />\n <Star height=\"1.2rem\" width=\"1.2rem\" fill=\"warning500\" aria-hidden />\n <p\n aria-label={formatMessage(\n {\n id: `admin.pages.MarketPlacePage.${npmPackageType}.githubStars`,\n defaultMessage: `This {package} was starred {starsCount} on GitHub`,\n },\n {\n starsCount: githubStars,\n package: npmPackageType,\n }\n )}\n >\n <Typography variant=\"pi\" textColor=\"neutral800\">\n {githubStars}\n </Typography>\n </p>\n <VerticalDivider />\n </>\n )}\n <Download height=\"1.2rem\" width=\"1.2rem\" aria-hidden />\n <p\n aria-label={formatMessage(\n {\n id: `admin.pages.MarketPlacePage.${npmPackageType}.downloads`,\n defaultMessage: `This {package} has {downloadsCount} weekly downloads`,\n },\n {\n downloadsCount: npmDownloads,\n package: npmPackageType,\n }\n )}\n >\n <Typography variant=\"pi\" textColor=\"neutral800\">\n {npmDownloads}\n </Typography>\n </p>\n </Flex>\n );\n};\n\nconst VerticalDivider = styled(Divider)`\n width: 1.2rem;\n transform: rotate(90deg);\n`;\n\nexport { NpmPackageCard };\nexport type { NpmPackageCardProps };\n"],"names":["EllipsisText","styled","Typography","NpmPackageCard","npmPackage","isInstalled","useYarn","isInDevelopmentMode","npmPackageType","strapiAppVersion","attributes","formatMessage","useIntl","trackUsage","useTracking","commandToCopy","npmPackageName","madeByStrapiMessage","id","defaultMessage","npmPackageHref","pluralize","plural","slug","versionRange","semver","validRange","strapiVersion","isCompatible","satisfies","_jsxs","Flex","direction","justifyContent","paddingTop","paddingRight","paddingBottom","paddingLeft","hasRadius","background","shadow","height","alignItems","data-testid","Box","_jsx","tag","src","logo","url","alt","name","width","PackageStats","githubStars","npmDownloads","variant","gap","validated","madeByStrapi","Tooltip","description","CheckCircle","fill","label","StrapiLogo","textColor","style","alignSelf","LinkButton","size","href","isExternal","endIcon","ExternalLink","aria-label","pluginName","onClick","InstallPluginButton","strapiPeerDepVersion","toggleNotification","useNotification","copy","useClipboard","handleCopy","didCopy","type","message","Check","color","fontWeight","CardButton","installMessage","span","Button","startIcon","Duplicate","disabled","_Fragment","GitHub","aria-hidden","Star","p","starsCount","package","VerticalDivider","Download","downloadsCount","Divider"],"mappings":"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"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
-
require('react');
|
|
5
|
-
var designSystem = require('@strapi/design-system');
|
|
6
|
-
var icons = require('@strapi/icons');
|
|
7
|
-
var reactIntl = require('react-intl');
|
|
8
|
-
|
|
9
|
-
const NpmPackagesFilters = ({ handleSelectClear, handleSelectChange, npmPackageType, possibleCategories, possibleCollections, query })=>{
|
|
10
|
-
const { formatMessage } = reactIntl.useIntl();
|
|
11
|
-
const handleTagRemove = (tagToRemove, filterType)=>{
|
|
12
|
-
const update = {
|
|
13
|
-
[filterType]: (query[filterType] ?? []).filter((previousTag)=>previousTag !== tagToRemove)
|
|
14
|
-
};
|
|
15
|
-
handleSelectChange(update);
|
|
16
|
-
};
|
|
17
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
|
|
18
|
-
children: [
|
|
19
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
|
|
20
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
21
|
-
variant: "tertiary",
|
|
22
|
-
startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Filter, {}),
|
|
23
|
-
children: formatMessage({
|
|
24
|
-
id: 'app.utils.filters',
|
|
25
|
-
defaultMessage: 'Filters'
|
|
26
|
-
})
|
|
27
|
-
})
|
|
28
|
-
}),
|
|
29
|
-
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
|
|
30
|
-
sideOffset: 4,
|
|
31
|
-
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
32
|
-
padding: 3,
|
|
33
|
-
direction: "column",
|
|
34
|
-
alignItems: "stretch",
|
|
35
|
-
gap: 1,
|
|
36
|
-
children: [
|
|
37
|
-
/*#__PURE__*/ jsxRuntime.jsx(FilterSelect, {
|
|
38
|
-
message: formatMessage({
|
|
39
|
-
id: 'admin.pages.MarketPlacePage.filters.collections',
|
|
40
|
-
defaultMessage: 'Collections'
|
|
41
|
-
}),
|
|
42
|
-
value: query?.collections || [],
|
|
43
|
-
onChange: (newCollections)=>{
|
|
44
|
-
const update = {
|
|
45
|
-
collections: newCollections
|
|
46
|
-
};
|
|
47
|
-
handleSelectChange(update);
|
|
48
|
-
},
|
|
49
|
-
onClear: ()=>handleSelectClear('collections'),
|
|
50
|
-
possibleFilters: possibleCollections,
|
|
51
|
-
customizeContent: (values)=>formatMessage({
|
|
52
|
-
id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
|
|
53
|
-
defaultMessage: '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected'
|
|
54
|
-
}, {
|
|
55
|
-
count: values?.length ?? 0
|
|
56
|
-
})
|
|
57
|
-
}),
|
|
58
|
-
npmPackageType === 'plugin' && /*#__PURE__*/ jsxRuntime.jsx(FilterSelect, {
|
|
59
|
-
message: formatMessage({
|
|
60
|
-
id: 'admin.pages.MarketPlacePage.filters.categories',
|
|
61
|
-
defaultMessage: 'Categories'
|
|
62
|
-
}),
|
|
63
|
-
value: query?.categories || [],
|
|
64
|
-
onChange: (newCategories)=>{
|
|
65
|
-
const update = {
|
|
66
|
-
categories: newCategories
|
|
67
|
-
};
|
|
68
|
-
handleSelectChange(update);
|
|
69
|
-
},
|
|
70
|
-
onClear: ()=>handleSelectClear('categories'),
|
|
71
|
-
possibleFilters: possibleCategories,
|
|
72
|
-
customizeContent: (values)=>formatMessage({
|
|
73
|
-
id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
|
|
74
|
-
defaultMessage: '{count, plural, =0 {No categories} one {# category} other {# categories}} selected'
|
|
75
|
-
}, {
|
|
76
|
-
count: values?.length ?? 0
|
|
77
|
-
})
|
|
78
|
-
})
|
|
79
|
-
]
|
|
80
|
-
})
|
|
81
|
-
}),
|
|
82
|
-
query.collections?.map((collection)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
83
|
-
padding: 1,
|
|
84
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tag, {
|
|
85
|
-
icon: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {}),
|
|
86
|
-
onClick: ()=>handleTagRemove(collection, 'collections'),
|
|
87
|
-
children: collection
|
|
88
|
-
})
|
|
89
|
-
}, collection)),
|
|
90
|
-
npmPackageType === 'plugin' && query.categories?.map((category)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
91
|
-
padding: 1,
|
|
92
|
-
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tag, {
|
|
93
|
-
icon: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {}),
|
|
94
|
-
onClick: ()=>handleTagRemove(category, 'categories'),
|
|
95
|
-
children: category
|
|
96
|
-
})
|
|
97
|
-
}, category))
|
|
98
|
-
]
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
const FilterSelect = ({ message, value, onChange, possibleFilters, onClear, customizeContent })=>{
|
|
102
|
-
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MultiSelect, {
|
|
103
|
-
"data-testid": `${message}-button`,
|
|
104
|
-
"aria-label": message,
|
|
105
|
-
placeholder: message,
|
|
106
|
-
onChange: onChange,
|
|
107
|
-
onClear: onClear,
|
|
108
|
-
value: value,
|
|
109
|
-
customizeContent: customizeContent,
|
|
110
|
-
children: Object.entries(possibleFilters).map(([filterName, count])=>{
|
|
111
|
-
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MultiSelectOption, {
|
|
112
|
-
"data-testid": `${filterName}-${count}`,
|
|
113
|
-
value: filterName,
|
|
114
|
-
children: `${filterName} (${count})`
|
|
115
|
-
}, filterName);
|
|
116
|
-
})
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
exports.NpmPackagesFilters = NpmPackagesFilters;
|
|
121
|
-
//# sourceMappingURL=NpmPackagesFilters.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NpmPackagesFilters.js","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackagesFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Tag,\n MultiSelect,\n MultiSelectOption,\n MultiSelectProps,\n Popover,\n Flex,\n} from '@strapi/design-system';\nimport { Cross, Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport type { Categories, Collections, FilterTypes } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType, MarketplacePageQuery } from '../MarketplacePage';\n\ninterface NpmPackagesFiltersProps {\n handleSelectClear: (type: FilterTypes) => void;\n handleSelectChange: (update: Partial<MarketplacePageQuery>) => void;\n npmPackageType: NpmPackageType;\n possibleCategories: Partial<Record<Categories, number>>;\n possibleCollections: Partial<Record<Collections, number>>;\n query: MarketplacePageQuery;\n}\n\nconst NpmPackagesFilters = ({\n handleSelectClear,\n handleSelectChange,\n npmPackageType,\n possibleCategories,\n possibleCollections,\n query,\n}: NpmPackagesFiltersProps) => {\n const { formatMessage } = useIntl();\n\n const handleTagRemove = (tagToRemove: string, filterType: FilterTypes) => {\n const update = {\n [filterType]: (query[filterType] ?? []).filter((previousTag) => previousTag !== tagToRemove),\n };\n\n handleSelectChange(update);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />}>\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <Popover.Content sideOffset={4}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.collections',\n defaultMessage: 'Collections',\n })}\n value={query?.collections || []}\n onChange={(newCollections) => {\n const update = { collections: newCollections };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('collections')}\n possibleFilters={possibleCollections}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',\n defaultMessage:\n '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n {npmPackageType === 'plugin' && (\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.categories',\n defaultMessage: 'Categories',\n })}\n value={query?.categories || []}\n onChange={(newCategories) => {\n const update = { categories: newCategories };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('categories')}\n possibleFilters={possibleCategories}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',\n defaultMessage:\n '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n )}\n </Flex>\n </Popover.Content>\n\n {query.collections?.map((collection) => (\n <Box key={collection} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(collection, 'collections')}>\n {collection}\n </Tag>\n </Box>\n ))}\n {npmPackageType === 'plugin' &&\n query.categories?.map((category) => (\n <Box key={category} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(category, 'categories')}>\n {category}\n </Tag>\n </Box>\n ))}\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FilterSelect\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FilterSelectProps\n extends Pick<MultiSelectProps, 'customizeContent' | 'onClear' | 'onChange' | 'value'> {\n message: string;\n possibleFilters:\n | NpmPackagesFiltersProps['possibleCategories']\n | NpmPackagesFiltersProps['possibleCollections'];\n}\n\nconst FilterSelect = ({\n message,\n value,\n onChange,\n possibleFilters,\n onClear,\n customizeContent,\n}: FilterSelectProps) => {\n return (\n <MultiSelect\n data-testid={`${message}-button`}\n aria-label={message}\n placeholder={message}\n onChange={onChange}\n onClear={onClear}\n value={value}\n customizeContent={customizeContent}\n >\n {Object.entries(possibleFilters).map(([filterName, count]) => {\n return (\n <MultiSelectOption\n data-testid={`${filterName}-${count}`}\n key={filterName}\n value={filterName}\n >\n {`${filterName} (${count})`}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nexport { NpmPackagesFilters };\nexport type { NpmPackagesFiltersProps };\n"],"names":["NpmPackagesFilters","handleSelectClear","handleSelectChange","npmPackageType","possibleCategories","possibleCollections","query","formatMessage","useIntl","handleTagRemove","tagToRemove","filterType","update","filter","previousTag","_jsxs","Popover","Root","_jsx","Trigger","Button","variant","startIcon","Filter","id","defaultMessage","Content","sideOffset","Flex","padding","direction","alignItems","gap","FilterSelect","message","value","collections","onChange","newCollections","onClear","possibleFilters","customizeContent","values","count","length","categories","newCategories","map","collection","Box","Tag","icon","Cross","onClick","category","MultiSelect","data-testid","aria-label","placeholder","Object","entries","filterName","MultiSelectOption"],"mappings":"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"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import 'react';
|
|
3
|
-
import { Popover, Button, Flex, Box, Tag, MultiSelect, MultiSelectOption } from '@strapi/design-system';
|
|
4
|
-
import { Filter, Cross } from '@strapi/icons';
|
|
5
|
-
import { useIntl } from 'react-intl';
|
|
6
|
-
|
|
7
|
-
const NpmPackagesFilters = ({ handleSelectClear, handleSelectChange, npmPackageType, possibleCategories, possibleCollections, query })=>{
|
|
8
|
-
const { formatMessage } = useIntl();
|
|
9
|
-
const handleTagRemove = (tagToRemove, filterType)=>{
|
|
10
|
-
const update = {
|
|
11
|
-
[filterType]: (query[filterType] ?? []).filter((previousTag)=>previousTag !== tagToRemove)
|
|
12
|
-
};
|
|
13
|
-
handleSelectChange(update);
|
|
14
|
-
};
|
|
15
|
-
return /*#__PURE__*/ jsxs(Popover.Root, {
|
|
16
|
-
children: [
|
|
17
|
-
/*#__PURE__*/ jsx(Popover.Trigger, {
|
|
18
|
-
children: /*#__PURE__*/ jsx(Button, {
|
|
19
|
-
variant: "tertiary",
|
|
20
|
-
startIcon: /*#__PURE__*/ jsx(Filter, {}),
|
|
21
|
-
children: formatMessage({
|
|
22
|
-
id: 'app.utils.filters',
|
|
23
|
-
defaultMessage: 'Filters'
|
|
24
|
-
})
|
|
25
|
-
})
|
|
26
|
-
}),
|
|
27
|
-
/*#__PURE__*/ jsx(Popover.Content, {
|
|
28
|
-
sideOffset: 4,
|
|
29
|
-
children: /*#__PURE__*/ jsxs(Flex, {
|
|
30
|
-
padding: 3,
|
|
31
|
-
direction: "column",
|
|
32
|
-
alignItems: "stretch",
|
|
33
|
-
gap: 1,
|
|
34
|
-
children: [
|
|
35
|
-
/*#__PURE__*/ jsx(FilterSelect, {
|
|
36
|
-
message: formatMessage({
|
|
37
|
-
id: 'admin.pages.MarketPlacePage.filters.collections',
|
|
38
|
-
defaultMessage: 'Collections'
|
|
39
|
-
}),
|
|
40
|
-
value: query?.collections || [],
|
|
41
|
-
onChange: (newCollections)=>{
|
|
42
|
-
const update = {
|
|
43
|
-
collections: newCollections
|
|
44
|
-
};
|
|
45
|
-
handleSelectChange(update);
|
|
46
|
-
},
|
|
47
|
-
onClear: ()=>handleSelectClear('collections'),
|
|
48
|
-
possibleFilters: possibleCollections,
|
|
49
|
-
customizeContent: (values)=>formatMessage({
|
|
50
|
-
id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
|
|
51
|
-
defaultMessage: '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected'
|
|
52
|
-
}, {
|
|
53
|
-
count: values?.length ?? 0
|
|
54
|
-
})
|
|
55
|
-
}),
|
|
56
|
-
npmPackageType === 'plugin' && /*#__PURE__*/ jsx(FilterSelect, {
|
|
57
|
-
message: formatMessage({
|
|
58
|
-
id: 'admin.pages.MarketPlacePage.filters.categories',
|
|
59
|
-
defaultMessage: 'Categories'
|
|
60
|
-
}),
|
|
61
|
-
value: query?.categories || [],
|
|
62
|
-
onChange: (newCategories)=>{
|
|
63
|
-
const update = {
|
|
64
|
-
categories: newCategories
|
|
65
|
-
};
|
|
66
|
-
handleSelectChange(update);
|
|
67
|
-
},
|
|
68
|
-
onClear: ()=>handleSelectClear('categories'),
|
|
69
|
-
possibleFilters: possibleCategories,
|
|
70
|
-
customizeContent: (values)=>formatMessage({
|
|
71
|
-
id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
|
|
72
|
-
defaultMessage: '{count, plural, =0 {No categories} one {# category} other {# categories}} selected'
|
|
73
|
-
}, {
|
|
74
|
-
count: values?.length ?? 0
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
]
|
|
78
|
-
})
|
|
79
|
-
}),
|
|
80
|
-
query.collections?.map((collection)=>/*#__PURE__*/ jsx(Box, {
|
|
81
|
-
padding: 1,
|
|
82
|
-
children: /*#__PURE__*/ jsx(Tag, {
|
|
83
|
-
icon: /*#__PURE__*/ jsx(Cross, {}),
|
|
84
|
-
onClick: ()=>handleTagRemove(collection, 'collections'),
|
|
85
|
-
children: collection
|
|
86
|
-
})
|
|
87
|
-
}, collection)),
|
|
88
|
-
npmPackageType === 'plugin' && query.categories?.map((category)=>/*#__PURE__*/ jsx(Box, {
|
|
89
|
-
padding: 1,
|
|
90
|
-
children: /*#__PURE__*/ jsx(Tag, {
|
|
91
|
-
icon: /*#__PURE__*/ jsx(Cross, {}),
|
|
92
|
-
onClick: ()=>handleTagRemove(category, 'categories'),
|
|
93
|
-
children: category
|
|
94
|
-
})
|
|
95
|
-
}, category))
|
|
96
|
-
]
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
const FilterSelect = ({ message, value, onChange, possibleFilters, onClear, customizeContent })=>{
|
|
100
|
-
return /*#__PURE__*/ jsx(MultiSelect, {
|
|
101
|
-
"data-testid": `${message}-button`,
|
|
102
|
-
"aria-label": message,
|
|
103
|
-
placeholder: message,
|
|
104
|
-
onChange: onChange,
|
|
105
|
-
onClear: onClear,
|
|
106
|
-
value: value,
|
|
107
|
-
customizeContent: customizeContent,
|
|
108
|
-
children: Object.entries(possibleFilters).map(([filterName, count])=>{
|
|
109
|
-
return /*#__PURE__*/ jsx(MultiSelectOption, {
|
|
110
|
-
"data-testid": `${filterName}-${count}`,
|
|
111
|
-
value: filterName,
|
|
112
|
-
children: `${filterName} (${count})`
|
|
113
|
-
}, filterName);
|
|
114
|
-
})
|
|
115
|
-
});
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export { NpmPackagesFilters };
|
|
119
|
-
//# sourceMappingURL=NpmPackagesFilters.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NpmPackagesFilters.mjs","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackagesFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Tag,\n MultiSelect,\n MultiSelectOption,\n MultiSelectProps,\n Popover,\n Flex,\n} from '@strapi/design-system';\nimport { Cross, Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport type { Categories, Collections, FilterTypes } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType, MarketplacePageQuery } from '../MarketplacePage';\n\ninterface NpmPackagesFiltersProps {\n handleSelectClear: (type: FilterTypes) => void;\n handleSelectChange: (update: Partial<MarketplacePageQuery>) => void;\n npmPackageType: NpmPackageType;\n possibleCategories: Partial<Record<Categories, number>>;\n possibleCollections: Partial<Record<Collections, number>>;\n query: MarketplacePageQuery;\n}\n\nconst NpmPackagesFilters = ({\n handleSelectClear,\n handleSelectChange,\n npmPackageType,\n possibleCategories,\n possibleCollections,\n query,\n}: NpmPackagesFiltersProps) => {\n const { formatMessage } = useIntl();\n\n const handleTagRemove = (tagToRemove: string, filterType: FilterTypes) => {\n const update = {\n [filterType]: (query[filterType] ?? []).filter((previousTag) => previousTag !== tagToRemove),\n };\n\n handleSelectChange(update);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />}>\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <Popover.Content sideOffset={4}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.collections',\n defaultMessage: 'Collections',\n })}\n value={query?.collections || []}\n onChange={(newCollections) => {\n const update = { collections: newCollections };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('collections')}\n possibleFilters={possibleCollections}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',\n defaultMessage:\n '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n {npmPackageType === 'plugin' && (\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.categories',\n defaultMessage: 'Categories',\n })}\n value={query?.categories || []}\n onChange={(newCategories) => {\n const update = { categories: newCategories };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('categories')}\n possibleFilters={possibleCategories}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',\n defaultMessage:\n '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n )}\n </Flex>\n </Popover.Content>\n\n {query.collections?.map((collection) => (\n <Box key={collection} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(collection, 'collections')}>\n {collection}\n </Tag>\n </Box>\n ))}\n {npmPackageType === 'plugin' &&\n query.categories?.map((category) => (\n <Box key={category} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(category, 'categories')}>\n {category}\n </Tag>\n </Box>\n ))}\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FilterSelect\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FilterSelectProps\n extends Pick<MultiSelectProps, 'customizeContent' | 'onClear' | 'onChange' | 'value'> {\n message: string;\n possibleFilters:\n | NpmPackagesFiltersProps['possibleCategories']\n | NpmPackagesFiltersProps['possibleCollections'];\n}\n\nconst FilterSelect = ({\n message,\n value,\n onChange,\n possibleFilters,\n onClear,\n customizeContent,\n}: FilterSelectProps) => {\n return (\n <MultiSelect\n data-testid={`${message}-button`}\n aria-label={message}\n placeholder={message}\n onChange={onChange}\n onClear={onClear}\n value={value}\n customizeContent={customizeContent}\n >\n {Object.entries(possibleFilters).map(([filterName, count]) => {\n return (\n <MultiSelectOption\n data-testid={`${filterName}-${count}`}\n key={filterName}\n value={filterName}\n >\n {`${filterName} (${count})`}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nexport { NpmPackagesFilters };\nexport type { NpmPackagesFiltersProps };\n"],"names":["NpmPackagesFilters","handleSelectClear","handleSelectChange","npmPackageType","possibleCategories","possibleCollections","query","formatMessage","useIntl","handleTagRemove","tagToRemove","filterType","update","filter","previousTag","_jsxs","Popover","Root","_jsx","Trigger","Button","variant","startIcon","Filter","id","defaultMessage","Content","sideOffset","Flex","padding","direction","alignItems","gap","FilterSelect","message","value","collections","onChange","newCollections","onClear","possibleFilters","customizeContent","values","count","length","categories","newCategories","map","collection","Box","Tag","icon","Cross","onClick","category","MultiSelect","data-testid","aria-label","placeholder","Object","entries","filterName","MultiSelectOption"],"mappings":"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"}
|