@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton tag={NavLink} startIcon={<Plus />} variant=\"default\" to=\"create\" size=\"S\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","_Fragment","Title","name","Main","aria-busy","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","Action","startActions","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListPage.mjs","sources":["../../../../../../../../admin/src/pages/Settings/pages/Webhooks/ListPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotifyAT,\n Checkbox,\n Button,\n EmptyStateLayout,\n Flex,\n IconButton,\n Switch,\n Table,\n Tbody,\n Td,\n TFooter,\n Th,\n Thead,\n Tr,\n Typography,\n VisuallyHidden,\n LinkButton,\n Dialog,\n} from '@strapi/design-system';\nimport { Pencil, Plus, Trash } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\n\nimport { UpdateWebhook } from '../../../../../../shared/contracts/webhooks';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { Layouts } from '../../../../components/Layouts/Layout';\nimport { Page } from '../../../../components/PageHelpers';\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRBAC } from '../../../../hooks/useRBAC';\n\nimport { useWebhooks } from './hooks/useWebhooks';\n\n/* -------------------------------------------------------------------------------------------------\n * ListPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListPage = () => {\n const [showModal, setShowModal] = React.useState(false);\n const [webhooksToDelete, setWebhooksToDelete] = React.useState<string[]>([]);\n const permissions = useTypedSelector((state) => state.admin_app.permissions.settings?.webhooks);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const navigate = useNavigate();\n\n const {\n isLoading: isRBACLoading,\n allowedActions: { canCreate, canUpdate, canDelete },\n } = useRBAC(permissions);\n const { notifyStatus } = useNotifyAT();\n\n const {\n isLoading: isWebhooksLoading,\n webhooks,\n error: webhooksError,\n updateWebhook,\n deleteManyWebhooks,\n } = useWebhooks();\n\n React.useEffect(() => {\n if (webhooksError) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(webhooksError),\n });\n\n return;\n }\n if (webhooks) {\n notifyStatus(\n formatMessage({\n id: 'Settings.webhooks.list.loading.success',\n defaultMessage: 'Webhooks have been loaded',\n })\n );\n }\n }, [webhooks, webhooksError, toggleNotification, formatMessage, notifyStatus, formatAPIError]);\n\n const enableWebhook = async (body: UpdateWebhook.Request['body'] & UpdateWebhook.Params) => {\n try {\n const res = await updateWebhook(body);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const deleteWebhook = async (id: string) => {\n try {\n const res = await deleteManyWebhooks({\n ids: [id],\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n }\n };\n\n const confirmBulkDelete = async () => {\n try {\n const res = await deleteManyWebhooks({\n ids: webhooksToDelete,\n });\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n setWebhooksToDelete([]);\n } catch {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'An error occurred',\n }),\n });\n } finally {\n setShowModal(false);\n }\n };\n\n const selectAllCheckbox = (selected: boolean) =>\n selected\n ? setWebhooksToDelete(webhooks?.map((webhook) => webhook.id) ?? [])\n : setWebhooksToDelete([]);\n\n const selectOneCheckbox = (selected: boolean, id: string) =>\n selected\n ? setWebhooksToDelete((prev) => [...prev, id])\n : setWebhooksToDelete((prev) => prev.filter((webhookId) => webhookId !== id));\n\n const isLoading = isRBACLoading || isWebhooksLoading;\n const numberOfWebhooks = webhooks?.length ?? 0;\n const webhooksToDeleteLength = webhooksToDelete.length;\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n return (\n <>\n <Page.Title>\n {formatMessage(\n { id: 'Settings.PageTitle', defaultMessage: 'Settings - {name}' },\n {\n name: 'Webhooks',\n }\n )}\n </Page.Title>\n <Page.Main aria-busy={isLoading}>\n <Layouts.Header\n title={formatMessage({ id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' })}\n subtitle={formatMessage({\n id: 'Settings.webhooks.list.description',\n defaultMessage: 'Get POST changes notifications',\n })}\n primaryAction={\n canCreate &&\n !isLoading && (\n <LinkButton\n tag={NavLink}\n startIcon={<Plus />}\n variant=\"default\"\n to=\"create\"\n size=\"S\"\n fullWidth\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n )\n }\n />\n {webhooksToDeleteLength > 0 && canDelete && (\n <Layouts.Action\n startActions={\n <>\n <Typography variant=\"epsilon\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'Settings.webhooks.to.delete',\n defaultMessage:\n '{webhooksToDeleteLength, plural, one {# webhook} other {# webhooks}} selected',\n },\n { webhooksToDeleteLength }\n )}\n </Typography>\n <Button\n onClick={() => setShowModal(true)}\n startIcon={<Trash />}\n size=\"L\"\n variant=\"danger-light\"\n >\n {formatMessage({\n id: 'global.delete',\n defaultMessage: 'Delete',\n })}\n </Button>\n </>\n }\n />\n )}\n <Layouts.Content>\n {numberOfWebhooks > 0 ? (\n <Table\n colCount={5}\n rowCount={numberOfWebhooks + 1}\n footer={\n <TFooter\n onClick={() => {\n if (canCreate) {\n navigate('create');\n }\n }}\n icon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </TFooter>\n }\n >\n <Thead>\n <Tr>\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n checked={\n webhooksToDeleteLength > 0 && webhooksToDeleteLength < numberOfWebhooks\n ? 'indeterminate'\n : webhooksToDeleteLength === numberOfWebhooks\n }\n onCheckedChange={selectAllCheckbox}\n />\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n })}\n </Typography>\n </Th>\n <Th width=\"60%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.form.url',\n defaultMessage: 'URL',\n })}\n </Typography>\n </Th>\n <Th width=\"20%\">\n <Typography variant=\"sigma\" textColor=\"neutral600\">\n {formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}\n </Typography>\n </Th>\n <Th>\n <VisuallyHidden>\n {formatMessage({\n id: 'Settings.webhooks.list.th.actions',\n defaultMessage: 'Actions',\n })}\n </VisuallyHidden>\n </Th>\n </Tr>\n </Thead>\n <Tbody>\n {webhooks?.map((webhook) => (\n <Tr\n key={webhook.id}\n onClick={() => {\n if (canUpdate) {\n navigate(webhook.id);\n }\n }}\n style={{ cursor: canUpdate ? 'pointer' : 'default' }}\n >\n <Td onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={`${formatMessage({\n id: 'global.select',\n defaultMessage: 'Select',\n })} ${webhook.name}`}\n checked={webhooksToDelete?.includes(webhook.id)}\n onCheckedChange={(selected) => selectOneCheckbox(!!selected, webhook.id)}\n name=\"select\"\n />\n </Td>\n <Td>\n <Typography fontWeight=\"semiBold\" textColor=\"neutral800\">\n {webhook.name}\n </Typography>\n </Td>\n <Td>\n <Typography textColor=\"neutral800\">{webhook.url}</Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Flex>\n <Switch\n onLabel={formatMessage({\n id: 'global.enabled',\n defaultMessage: 'Enabled',\n })}\n offLabel={formatMessage({\n id: 'global.disabled',\n defaultMessage: 'Disabled',\n })}\n aria-label={`${webhook.name} ${formatMessage({\n id: 'Settings.webhooks.list.th.status',\n defaultMessage: 'Status',\n })}`}\n checked={webhook.isEnabled}\n onCheckedChange={(enabled) => {\n enableWebhook({\n ...webhook,\n isEnabled: enabled,\n });\n }}\n visibleLabels\n />\n </Flex>\n </Td>\n <Td>\n <Flex gap={1}>\n {canUpdate && (\n <IconButton\n label={formatMessage({\n id: 'Settings.webhooks.events.update',\n defaultMessage: 'Update',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n )}\n {canDelete && (\n <DeleteActionButton\n onDelete={() => {\n deleteWebhook(webhook.id);\n }}\n />\n )}\n </Flex>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n ) : (\n <EmptyStateLayout\n icon={<EmptyDocuments width=\"160px\" />}\n content={formatMessage({\n id: 'Settings.webhooks.list.empty.description',\n defaultMessage: 'No webhooks found',\n })}\n action={\n canCreate ? (\n <LinkButton variant=\"secondary\" startIcon={<Plus />} tag={NavLink} to=\"create\">\n {formatMessage({\n id: 'Settings.webhooks.list.button.add',\n defaultMessage: 'Create new webhook',\n })}\n </LinkButton>\n ) : null\n }\n />\n )}\n </Layouts.Content>\n </Page.Main>\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog onConfirm={confirmBulkDelete} />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * DeleteActionButton\n * -----------------------------------------------------------------------------------------------*/\n\ntype DeleteActionButtonProps = {\n onDelete: () => void;\n};\n\nconst DeleteActionButton = ({ onDelete }: DeleteActionButtonProps) => {\n const [showModal, setShowModal] = React.useState(false);\n const { formatMessage } = useIntl();\n\n return (\n <>\n <IconButton\n onClick={(e) => {\n e.stopPropagation();\n setShowModal(true);\n }}\n label={formatMessage({\n id: 'Settings.webhooks.events.delete',\n defaultMessage: 'Delete webhook',\n })}\n variant=\"ghost\"\n >\n <Trash />\n </IconButton>\n\n <Dialog.Root open={showModal} onOpenChange={setShowModal}>\n <ConfirmDialog\n onConfirm={(e) => {\n e?.stopPropagation();\n onDelete();\n }}\n />\n </Dialog.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListView\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListPage = () => {\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.settings?.webhooks.main\n );\n\n return (\n <Page.Protect permissions={permissions}>\n <ListPage />\n </Page.Protect>\n );\n};\n\nexport { ListPage, ProtectedListPage };\n"],"names":["ListPage","showModal","setShowModal","React","useState","webhooksToDelete","setWebhooksToDelete","permissions","useTypedSelector","state","admin_app","settings","webhooks","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","navigate","useNavigate","isLoading","isRBACLoading","allowedActions","canCreate","canUpdate","canDelete","useRBAC","notifyStatus","useNotifyAT","isWebhooksLoading","error","webhooksError","updateWebhook","deleteManyWebhooks","useWebhooks","useEffect","type","message","id","defaultMessage","enableWebhook","body","res","deleteWebhook","ids","prev","filter","webhookId","confirmBulkDelete","selectAllCheckbox","selected","map","webhook","selectOneCheckbox","numberOfWebhooks","length","webhooksToDeleteLength","_jsx","Page","Loading","_jsxs","_Fragment","Title","name","Main","aria-busy","Layouts","Header","title","subtitle","primaryAction","LinkButton","tag","NavLink","startIcon","Plus","variant","to","size","fullWidth","Action","startActions","Typography","textColor","Button","onClick","Trash","Content","Table","colCount","rowCount","footer","TFooter","icon","Thead","Tr","Th","Checkbox","aria-label","checked","onCheckedChange","width","VisuallyHidden","Tbody","style","cursor","Td","e","stopPropagation","includes","fontWeight","url","Flex","Switch","onLabel","offLabel","isEnabled","enabled","visibleLabels","gap","IconButton","label","Pencil","DeleteActionButton","onDelete","EmptyStateLayout","EmptyDocuments","content","action","Dialog","Root","open","onOpenChange","ConfirmDialog","onConfirm","ProtectedListPage","main","Protect"],"mappings":"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"}
|
|
@@ -75,6 +75,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
75
75
|
children: [
|
|
76
76
|
/*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Header, {
|
|
77
77
|
primaryAction: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
78
|
+
width: "100%",
|
|
78
79
|
gap: 2,
|
|
79
80
|
children: [
|
|
80
81
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
|
|
@@ -85,6 +86,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
85
86
|
variant: "tertiary",
|
|
86
87
|
startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Play, {}),
|
|
87
88
|
disabled: isCreating || isTriggering,
|
|
89
|
+
fullWidth: true,
|
|
88
90
|
children: formatMessage({
|
|
89
91
|
id: 'Settings.webhooks.trigger',
|
|
90
92
|
defaultMessage: 'Trigger'
|
|
@@ -95,6 +97,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
95
97
|
type: "submit",
|
|
96
98
|
disabled: !modified,
|
|
97
99
|
loading: isSubmitting,
|
|
100
|
+
fullWidth: true,
|
|
98
101
|
children: formatMessage({
|
|
99
102
|
id: 'global.save',
|
|
100
103
|
defaultMessage: 'Save'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMA,WAAc,GAAA,CAAC,EACnBC,YAAY,EACZC,cAAc,EACdC,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,IAAI,EACa,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,mBAAqBC,EAAAA,sBAAAA,CAAuB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACrE,MAAMC,UAAAA,GAAaC,2BACjBC,CAAAA,wBAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,+FACF,KAAA,EACAC,aAAa,CAAA;AAGnB;;MAGA,MAAMC,aAAa,CAACC,OAAAA,GAAAA;AAClB,QAAA,IAAI,CAACC,MAAOC,CAAAA,IAAI,CAACF,OAAAA,CAAAA,CAASG,MAAM,EAAE;YAChC,OAAO;AAAC,gBAAA;oBAAEC,GAAK,EAAA,EAAA;oBAAIC,KAAO,EAAA;AAAG;AAAE,aAAA;AACjC;QAEA,OAAOJ,MAAAA,CAAOK,OAAO,CAACN,OAASO,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACH,GAAAA,EAAKC,KAAM,CAAA,IAAM;AAAED,gBAAAA,GAAAA;AAAKC,gBAAAA;aAAM,CAAA,CAAA;AACrE,KAAA;;AAGA,IAAA,IAAI,CAACV,UAAY,EAAA;QACf,OAAO,IAAA;AACT;AAEA,IAAA,qBACEa,cAACC,CAAAA,SAAAA,EAAAA;QACCC,aAAe,EAAA;AACbC,YAAAA,IAAAA,EAAMvB,MAAMuB,IAAQ,IAAA,EAAA;AACpBC,YAAAA,GAAAA,EAAKxB,MAAMwB,GAAO,IAAA,EAAA;YAClBZ,OAASD,EAAAA,UAAAA,CAAWX,IAAMY,EAAAA,OAAAA,IAAW,EAAC,CAAA;YACtCa,MAAQzB,EAAAA,IAAAA,EAAMyB,UAAU;AAC1B,SAAA;AACAC,QAAAA,MAAAA,EAAQ7B,aAAa,MAAS,GAAA,KAAA;QAC9B8B,QAAUhC,EAAAA,YAAAA;AACViC,QAAAA,gBAAAA,EAAkBC,2BAA4B,CAAA;AAAE5B,YAAAA;AAAc,SAAA,CAAA;AAE7D,QAAA,QAAA,EAAA,CAAC,EAAE6B,YAAY,EAAEC,QAAQ,EAAE,iBAC1BC,eAAA,CAAAC,mBAAA,EAAA;;AACE,kCAAAb,cAAA,CAACc,eAAQC,MAAM,EAAA;AACbC,wBAAAA,aAAAA,gBACEJ,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKC,GAAK,EAAA,CAAA;;8CACTlB,cAACmB,CAAAA,mBAAAA,EAAAA;oCACCC,OAAS,EAAA,IAAA;AACP5C,wCAAAA,cAAAA,EAAAA;wCACAQ,sBAAuB,CAAA,IAAA,CAAA;AACzB,qCAAA;oCACAqC,OAAQ,EAAA,UAAA;AACRC,oCAAAA,SAAAA,gBAAWtB,cAACuB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACZC,oCAAAA,QAAAA,EAAU/C,UAAcC,IAAAA,YAAAA;8CAEvBG,aAAc,CAAA;wCACb4C,EAAI,EAAA,2BAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;8CAEF1B,cAACmB,CAAAA,mBAAAA,EAAAA;AACCG,oCAAAA,SAAAA,gBAAWtB,cAAC2B,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;oCACZC,IAAK,EAAA,QAAA;AACLJ,oCAAAA,QAAAA,EAAU,CAACb,QAAAA;oCACXkB,OAASnB,EAAAA,YAAAA;8CAER7B,aAAc,CAAA;wCACb4C,EAAI,EAAA,aAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;;;AAINI,wBAAAA,KAAAA,EACErD,aACII,aAAc,CAAA;4BACZ4C,EAAI,EAAA,0BAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA,CAAA,GACA9C,IAAMuB,EAAAA,IAAAA;AAEZ4B,wBAAAA,gBAAAA;sCAEE/B,cAACgC,CAAAA,gBAAAA,EAAAA;4BAAIC,OAAS,EAAA;gCAAEC,OAAS,EAAA,MAAA;gCAAQC,MAAQ,EAAA;AAAQ,6BAAA;AAC/C,4BAAA,QAAA,gBAAAnC,cAACoC,CAAAA,qBAAAA,EAAAA;gCAAWC,QAAS,EAAA;;;;AAI3B,kCAAArC,cAAA,CAACc,eAAQwB,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA1B,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKsB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUtB,GAAK,EAAA,CAAA;;AAChDnC,gCAAAA,mBAAAA,kBACCiB,cAACyC,CAAAA,iCAAAA,EAAAA;oCACCC,SAAWhE,EAAAA,YAAAA;oCACXiE,QAAUhE,EAAAA,eAAAA;AACViE,oCAAAA,QAAAA,EAAU,IAAM5D,sBAAuB,CAAA,KAAA;;8CAG3CgB,cAACgC,CAAAA,gBAAAA,EAAAA;oCAAIa,UAAW,EAAA,UAAA;oCAAWC,OAAS,EAAA,CAAA;oCAAGC,MAAO,EAAA,cAAA;oCAAeC,SAAS,EAAA,IAAA;AACpE,oCAAA,QAAA,gBAAApC,eAACK,CAAAA,iBAAAA,EAAAA;wCAAKsB,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUtB,GAAK,EAAA,CAAA;;AACjD,0DAAAlB,cAAA,CAACiD,kBAAKC,IAAI,EAAA;gDAAChC,GAAK,EAAA,CAAA;AACb,gDAAA,QAAA,EAAA;AACC,oDAAA;AACEiC,wDAAAA,KAAAA,EAAOtE,aAAc,CAAA;4DACnB4C,EAAI,EAAA,aAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAvB,IAAM,EAAA,MAAA;wDACNiD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,CAAA;wDACNzB,IAAM,EAAA;AACR,qDAAA;AACA,oDAAA;AACEuB,wDAAAA,KAAAA,EAAOtE,aAAc,CAAA;4DACnB4C,EAAI,EAAA,+BAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAvB,IAAM,EAAA,KAAA;wDACNiD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,EAAA;wDACNzB,IAAM,EAAA;AACR;iDACD,CAAC7B,GAAG,CAAC,CAAC,EAAEsD,IAAI,EAAE,GAAGC,KAAO,EAAA,iBACvBtD,cAACiD,CAAAA,iBAAAA,CAAKM,IAAI,EAAA;wDAERC,GAAKH,EAAAA,IAAAA;wDACLI,EAAI,EAAA,EAAA;wDACJlB,SAAU,EAAA,QAAA;wDACVC,UAAW,EAAA,SAAA;AAEX,wDAAA,QAAA,gBAAAxC,cAAC0D,CAAAA,sBAAAA,EAAAA;AAAe,4DAAA,GAAGJ;;AANdA,qDAAAA,EAAAA,KAAAA,CAAMnD,IAAI,CAAA;;0DAUrBH,cAAC2D,CAAAA,yBAAAA,EAAAA,EAAAA,CAAAA;0DACD3D,cAACb,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;;;;;AASnB;AAEA,MAAMyE,UAAa,GAAA,iCAAA;AACnB,MAAMC,SAAY,GAAA,mCAAA;AAElB,MAAMpD,2BAAAA,GAA8B,CAAC,EAAE5B,aAAa,EAAoC,GACtFiF,cAAIC,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;AACjB7D,QAAAA,IAAAA,EAAM2D,eACHG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,4CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNP,UAAAA,EACA/E,aAAc,CAAA;YACZ4C,EAAI,EAAA,yCAAA;YACJC,cACE,EAAA;AACJ,SAAA,CAAA,CAAA;AAEJtB,QAAAA,GAAAA,EAAK0D,eACFG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,2CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNN,SAAAA,EACAhF,aAAc,CAAA;YACZ4C,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;QAEJlC,OAASsE,EAAAA,cAAAA,CAAIM,IAAI,CAAC,CAACC,KAAAA,GAAAA;YACjB,MAAMC,UAAAA,GAAaR,eAAIO,KAAK,EAAA;YAE5B,IAAIA,KAAAA,CAAM1E,MAAM,KAAK,CAAG,EAAA;gBACtB,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGwE,KAAK,CAAC,CAAE,CAAA;gBAE/B,IAAI,CAACzE,GAAO,IAAA,CAACC,KAAO,EAAA;oBAClB,OAAOyE,UAAAA;AACT;AACF;AAEA,YAAA,OAAOA,WAAWC,EAAE,CAClBT,eAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACjBpE,gBAAAA,GAAAA,EAAKkE,cACFG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ,EAAA;AACXrE,gBAAAA,KAAAA,EAAOiE,cACJG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ;AACb,aAAA,CAAA,CAAA;AAEJ,SAAA,CAAA;AACA7D,QAAAA,MAAAA,EAAQyD,eAAIO,KAAK;AACnB,KAAA,CAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"WebhookForm.js","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex width=\"100%\" gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n fullWidth\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","width","gap","Button","onClick","variant","startIcon","Publish","disabled","fullWidth","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,MAAMA,WAAc,GAAA,CAAC,EACnBC,YAAY,EACZC,cAAc,EACdC,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,IAAI,EACa,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,mBAAqBC,EAAAA,sBAAAA,CAAuB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACrE,MAAMC,UAAAA,GAAaC,2BACjBC,CAAAA,wBAAAA,EACA,UAEI,CAAA,MAAM,oDACJ,+FACF,KAAA,EACAC,aAAa,CAAA;AAGnB;;MAGA,MAAMC,aAAa,CAACC,OAAAA,GAAAA;AAClB,QAAA,IAAI,CAACC,MAAOC,CAAAA,IAAI,CAACF,OAAAA,CAAAA,CAASG,MAAM,EAAE;YAChC,OAAO;AAAC,gBAAA;oBAAEC,GAAK,EAAA,EAAA;oBAAIC,KAAO,EAAA;AAAG;AAAE,aAAA;AACjC;QAEA,OAAOJ,MAAAA,CAAOK,OAAO,CAACN,OAASO,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACH,GAAAA,EAAKC,KAAM,CAAA,IAAM;AAAED,gBAAAA,GAAAA;AAAKC,gBAAAA;aAAM,CAAA,CAAA;AACrE,KAAA;;AAGA,IAAA,IAAI,CAACV,UAAY,EAAA;QACf,OAAO,IAAA;AACT;AAEA,IAAA,qBACEa,cAACC,CAAAA,SAAAA,EAAAA;QACCC,aAAe,EAAA;AACbC,YAAAA,IAAAA,EAAMvB,MAAMuB,IAAQ,IAAA,EAAA;AACpBC,YAAAA,GAAAA,EAAKxB,MAAMwB,GAAO,IAAA,EAAA;YAClBZ,OAASD,EAAAA,UAAAA,CAAWX,IAAMY,EAAAA,OAAAA,IAAW,EAAC,CAAA;YACtCa,MAAQzB,EAAAA,IAAAA,EAAMyB,UAAU;AAC1B,SAAA;AACAC,QAAAA,MAAAA,EAAQ7B,aAAa,MAAS,GAAA,KAAA;QAC9B8B,QAAUhC,EAAAA,YAAAA;AACViC,QAAAA,gBAAAA,EAAkBC,2BAA4B,CAAA;AAAE5B,YAAAA;AAAc,SAAA,CAAA;AAE7D,QAAA,QAAA,EAAA,CAAC,EAAE6B,YAAY,EAAEC,QAAQ,EAAE,iBAC1BC,eAAA,CAAAC,mBAAA,EAAA;;AACE,kCAAAb,cAAA,CAACc,eAAQC,MAAM,EAAA;AACbC,wBAAAA,aAAAA,gBACEJ,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKC,KAAM,EAAA,MAAA;4BAAOC,GAAK,EAAA,CAAA;;8CACtBnB,cAACoB,CAAAA,mBAAAA,EAAAA;oCACCC,OAAS,EAAA,IAAA;AACP7C,wCAAAA,cAAAA,EAAAA;wCACAQ,sBAAuB,CAAA,IAAA,CAAA;AACzB,qCAAA;oCACAsC,OAAQ,EAAA,UAAA;AACRC,oCAAAA,SAAAA,gBAAWvB,cAACwB,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;AACZC,oCAAAA,QAAAA,EAAUhD,UAAcC,IAAAA,YAAAA;oCACxBgD,SAAS,EAAA,IAAA;8CAER7C,aAAc,CAAA;wCACb8C,EAAI,EAAA,2BAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;8CAEF5B,cAACoB,CAAAA,mBAAAA,EAAAA;AACCG,oCAAAA,SAAAA,gBAAWvB,cAAC6B,CAAAA,WAAAA,EAAAA,EAAAA,CAAAA;oCACZC,IAAK,EAAA,QAAA;AACLL,oCAAAA,QAAAA,EAAU,CAACd,QAAAA;oCACXoB,OAASrB,EAAAA,YAAAA;oCACTgB,SAAS,EAAA,IAAA;8CAER7C,aAAc,CAAA;wCACb8C,EAAI,EAAA,aAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;;;AAINI,wBAAAA,KAAAA,EACEvD,aACII,aAAc,CAAA;4BACZ8C,EAAI,EAAA,0BAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA,CAAA,GACAhD,IAAMuB,EAAAA,IAAAA;AAEZ8B,wBAAAA,gBAAAA;sCAEEjC,cAACkC,CAAAA,gBAAAA,EAAAA;4BAAIC,OAAS,EAAA;gCAAEC,OAAS,EAAA,MAAA;gCAAQC,MAAQ,EAAA;AAAQ,6BAAA;AAC/C,4BAAA,QAAA,gBAAArC,cAACsC,CAAAA,qBAAAA,EAAAA;gCAAWC,QAAS,EAAA;;;;AAI3B,kCAAAvC,cAAA,CAACc,eAAQ0B,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA5B,eAACK,CAAAA,iBAAAA,EAAAA;4BAAKwB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUvB,GAAK,EAAA,CAAA;;AAChDpC,gCAAAA,mBAAAA,kBACCiB,cAAC2C,CAAAA,iCAAAA,EAAAA;oCACCC,SAAWlE,EAAAA,YAAAA;oCACXmE,QAAUlE,EAAAA,eAAAA;AACVmE,oCAAAA,QAAAA,EAAU,IAAM9D,sBAAuB,CAAA,KAAA;;8CAG3CgB,cAACkC,CAAAA,gBAAAA,EAAAA;oCAAIa,UAAW,EAAA,UAAA;oCAAWC,OAAS,EAAA,CAAA;oCAAGC,MAAO,EAAA,cAAA;oCAAeC,SAAS,EAAA,IAAA;AACpE,oCAAA,QAAA,gBAAAtC,eAACK,CAAAA,iBAAAA,EAAAA;wCAAKwB,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUvB,GAAK,EAAA,CAAA;;AACjD,0DAAAnB,cAAA,CAACmD,kBAAKC,IAAI,EAAA;gDAACjC,GAAK,EAAA,CAAA;AACb,gDAAA,QAAA,EAAA;AACC,oDAAA;AACEkC,wDAAAA,KAAAA,EAAOxE,aAAc,CAAA;4DACnB8C,EAAI,EAAA,aAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAzB,IAAM,EAAA,MAAA;wDACNmD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,CAAA;wDACNzB,IAAM,EAAA;AACR,qDAAA;AACA,oDAAA;AACEuB,wDAAAA,KAAAA,EAAOxE,aAAc,CAAA;4DACnB8C,EAAI,EAAA,+BAAA;4DACJC,cAAgB,EAAA;AAClB,yDAAA,CAAA;wDACAzB,IAAM,EAAA,KAAA;wDACNmD,QAAU,EAAA,IAAA;wDACVC,IAAM,EAAA,EAAA;wDACNzB,IAAM,EAAA;AACR;iDACD,CAAC/B,GAAG,CAAC,CAAC,EAAEwD,IAAI,EAAE,GAAGC,KAAO,EAAA,iBACvBxD,cAACmD,CAAAA,iBAAAA,CAAKM,IAAI,EAAA;wDAERC,GAAKH,EAAAA,IAAAA;wDACLI,EAAI,EAAA,EAAA;wDACJlB,SAAU,EAAA,QAAA;wDACVC,UAAW,EAAA,SAAA;AAEX,wDAAA,QAAA,gBAAA1C,cAAC4D,CAAAA,sBAAAA,EAAAA;AAAe,4DAAA,GAAGJ;;AANdA,qDAAAA,EAAAA,KAAAA,CAAMrD,IAAI,CAAA;;0DAUrBH,cAAC6D,CAAAA,yBAAAA,EAAAA,EAAAA,CAAAA;0DACD7D,cAACb,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;;;;;AASnB;AAEA,MAAM2E,UAAa,GAAA,iCAAA;AACnB,MAAMC,SAAY,GAAA,mCAAA;AAElB,MAAMtD,2BAAAA,GAA8B,CAAC,EAAE5B,aAAa,EAAoC,GACtFmF,cAAIC,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;AACjB/D,QAAAA,IAAAA,EAAM6D,eACHG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPzE,aAAc,CAAA;YACZ8C,EAAI,EAAA,4CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNP,UAAAA,EACAjF,aAAc,CAAA;YACZ8C,EAAI,EAAA,yCAAA;YACJC,cACE,EAAA;AACJ,SAAA,CAAA,CAAA;AAEJxB,QAAAA,GAAAA,EAAK4D,eACFG,MAAM,EAAA,CACNC,QAAQ,EACRd,CAAAA,QAAQ,CACPzE,aAAc,CAAA;YACZ8C,EAAI,EAAA,2CAAA;YACJC,cAAgB,EAAA;SAGnByC,CAAAA,CAAAA,CAAAA,OAAO,CACNN,SAAAA,EACAlF,aAAc,CAAA;YACZ8C,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;QAEJpC,OAASwE,EAAAA,cAAAA,CAAIM,IAAI,CAAC,CAACC,KAAAA,GAAAA;YACjB,MAAMC,UAAAA,GAAaR,eAAIO,KAAK,EAAA;YAE5B,IAAIA,KAAAA,CAAM5E,MAAM,KAAK,CAAG,EAAA;gBACtB,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAG0E,KAAK,CAAC,CAAE,CAAA;gBAE/B,IAAI,CAAC3E,GAAO,IAAA,CAACC,KAAO,EAAA;oBAClB,OAAO2E,UAAAA;AACT;AACF;AAEA,YAAA,OAAOA,WAAWC,EAAE,CAClBT,eAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACjBtE,gBAAAA,GAAAA,EAAKoE,cACFG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPzE,aAAc,CAAA;oBACZ8C,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ,EAAA;AACXvE,gBAAAA,KAAAA,EAAOmE,cACJG,CAAAA,MAAM,EACNb,CAAAA,QAAQ,CACPzE,aAAc,CAAA;oBACZ8C,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDwC,QAAQ;AACb,aAAA,CAAA,CAAA;AAEJ,SAAA,CAAA;AACA/D,QAAAA,MAAAA,EAAQ2D,eAAIO,KAAK;AACnB,KAAA,CAAA;;;;"}
|
|
@@ -53,6 +53,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
53
53
|
children: [
|
|
54
54
|
/*#__PURE__*/ jsx(Layouts.Header, {
|
|
55
55
|
primaryAction: /*#__PURE__*/ jsxs(Flex, {
|
|
56
|
+
width: "100%",
|
|
56
57
|
gap: 2,
|
|
57
58
|
children: [
|
|
58
59
|
/*#__PURE__*/ jsx(Button, {
|
|
@@ -63,6 +64,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
63
64
|
variant: "tertiary",
|
|
64
65
|
startIcon: /*#__PURE__*/ jsx(Play, {}),
|
|
65
66
|
disabled: isCreating || isTriggering,
|
|
67
|
+
fullWidth: true,
|
|
66
68
|
children: formatMessage({
|
|
67
69
|
id: 'Settings.webhooks.trigger',
|
|
68
70
|
defaultMessage: 'Trigger'
|
|
@@ -73,6 +75,7 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
73
75
|
type: "submit",
|
|
74
76
|
disabled: !modified,
|
|
75
77
|
loading: isSubmitting,
|
|
78
|
+
fullWidth: true,
|
|
76
79
|
children: formatMessage({
|
|
77
80
|
id: 'global.save',
|
|
78
81
|
defaultMessage: 'Save'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","gap","Button","onClick","variant","startIcon","Publish","disabled","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WebhookForm.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid } from '@strapi/design-system';\nimport { Check, Play as Publish } from '@strapi/icons';\nimport { IntlShape, useIntl } from 'react-intl';\nimport * as yup from 'yup';\n\nimport { TriggerWebhook } from '../../../../../../../shared/contracts/webhooks';\nimport { Form, FormHelpers } from '../../../../../components/Form';\nimport { InputRenderer } from '../../../../../components/FormInputs/Renderer';\nimport { Layouts } from '../../../../../components/Layouts/Layout';\nimport { BackButton } from '../../../../../features/BackButton';\nimport { useEnterprise } from '../../../../../hooks/useEnterprise';\n\nimport { EventTableCE } from './EventsTable';\nimport { HeadersInput } from './HeadersInput';\nimport { TriggerContainer } from './TriggerContainer';\n\nimport type { Modules } from '@strapi/types';\n\ninterface WebhookFormValues {\n name: Modules.WebhookStore.Webhook['name'];\n url: Modules.WebhookStore.Webhook['url'];\n headers: Array<{ key: string; value: string }>;\n events: Modules.WebhookStore.Webhook['events'];\n}\n\ninterface WebhookFormProps {\n data?: Modules.WebhookStore.Webhook;\n handleSubmit: (\n values: WebhookFormValues,\n helpers: FormHelpers<WebhookFormValues>\n ) => Promise<void>;\n isCreating: boolean;\n isTriggering: boolean;\n triggerWebhook: () => void;\n triggerResponse?: TriggerWebhook.Response['data'];\n}\n\nconst WebhookForm = ({\n handleSubmit,\n triggerWebhook,\n isCreating,\n isTriggering,\n triggerResponse,\n data,\n}: WebhookFormProps) => {\n const { formatMessage } = useIntl();\n const [showTriggerResponse, setShowTriggerResponse] = React.useState(false);\n const EventTable = useEnterprise(\n EventTableCE,\n async () =>\n (\n await import(\n '../../../../../../../ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable'\n )\n ).EventsTableEE\n );\n\n /**\n * Map the headers into a form that can be used within the formik form\n */\n const mapHeaders = (headers: Modules.WebhookStore.Webhook['headers']) => {\n if (!Object.keys(headers).length) {\n return [{ key: '', value: '' }];\n }\n\n return Object.entries(headers).map(([key, value]) => ({ key, value }));\n };\n\n // block rendering until the EE component is fully loaded\n if (!EventTable) {\n return null;\n }\n\n return (\n <Form\n initialValues={{\n name: data?.name || '',\n url: data?.url || '',\n headers: mapHeaders(data?.headers || {}),\n events: data?.events || [],\n }}\n method={isCreating ? 'POST' : 'PUT'}\n onSubmit={handleSubmit}\n validationSchema={makeWebhookValidationSchema({ formatMessage })}\n >\n {({ isSubmitting, modified }) => (\n <>\n <Layouts.Header\n primaryAction={\n <Flex width=\"100%\" gap={2}>\n <Button\n onClick={() => {\n triggerWebhook();\n setShowTriggerResponse(true);\n }}\n variant=\"tertiary\"\n startIcon={<Publish />}\n disabled={isCreating || isTriggering}\n fullWidth\n >\n {formatMessage({\n id: 'Settings.webhooks.trigger',\n defaultMessage: 'Trigger',\n })}\n </Button>\n <Button\n startIcon={<Check />}\n type=\"submit\"\n disabled={!modified}\n loading={isSubmitting}\n fullWidth\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n }\n title={\n isCreating\n ? formatMessage({\n id: 'Settings.webhooks.create',\n defaultMessage: 'Create a webhook',\n })\n : data?.name\n }\n navigationAction={\n // The back link for mobile works differently; it is placed higher up in the DOM.\n <Box display={{ initial: 'none', medium: 'block' }}>\n <BackButton fallback=\"../webhooks\" />\n </Box>\n }\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={4}>\n {showTriggerResponse && (\n <TriggerContainer\n isPending={isTriggering}\n response={triggerResponse}\n onCancel={() => setShowTriggerResponse(false)}\n />\n )}\n <Box background=\"neutral0\" padding={8} shadow=\"filterShadow\" hasRadius>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Grid.Root gap={6}>\n {[\n {\n label: formatMessage({\n id: 'global.name',\n defaultMessage: 'Name',\n }),\n name: 'name',\n required: true,\n size: 6,\n type: 'string' as const,\n },\n {\n label: formatMessage({\n id: 'Settings.roles.form.input.url',\n defaultMessage: 'Url',\n }),\n name: 'url',\n required: true,\n size: 12,\n type: 'string' as const,\n },\n ].map(({ size, ...field }) => (\n <Grid.Item\n key={field.name}\n col={size}\n xs={12}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <InputRenderer {...field} />\n </Grid.Item>\n ))}\n </Grid.Root>\n <HeadersInput />\n <EventTable />\n </Flex>\n </Box>\n </Flex>\n </Layouts.Content>\n </>\n )}\n </Form>\n );\n};\n\nconst NAME_REGEX = /(^$)|(^[A-Za-z][_0-9A-Za-z ]*$)/;\nconst URL_REGEX = /(^$)|((https?:\\/\\/.*)(d*)\\/?(.*))/;\n\nconst makeWebhookValidationSchema = ({ formatMessage }: Pick<IntlShape, 'formatMessage'>) =>\n yup.object().shape({\n name: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.name.required',\n defaultMessage: 'Name is required',\n })\n )\n .matches(\n NAME_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.name.regex',\n defaultMessage:\n 'The name must start with a letter and only contain letters, numbers, spaces and underscores',\n })\n ),\n url: yup\n .string()\n .nullable()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.url.required',\n defaultMessage: 'Url is required',\n })\n )\n .matches(\n URL_REGEX,\n formatMessage({\n id: 'Settings.webhooks.validation.url.regex',\n defaultMessage: 'The value must be a valid Url',\n })\n ),\n headers: yup.lazy((array) => {\n const baseSchema = yup.array();\n\n if (array.length === 1) {\n const { key, value } = array[0];\n\n if (!key && !value) {\n return baseSchema;\n }\n }\n\n return baseSchema.of(\n yup.object().shape({\n key: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.key',\n defaultMessage: 'Key is required',\n })\n )\n .nullable(),\n value: yup\n .string()\n .required(\n formatMessage({\n id: 'Settings.webhooks.validation.value',\n defaultMessage: 'Value is required',\n })\n )\n .nullable(),\n })\n );\n }),\n events: yup.array(),\n });\n\nexport { WebhookForm };\nexport type { WebhookFormValues, WebhookFormProps };\n"],"names":["WebhookForm","handleSubmit","triggerWebhook","isCreating","isTriggering","triggerResponse","data","formatMessage","useIntl","showTriggerResponse","setShowTriggerResponse","React","useState","EventTable","useEnterprise","EventTableCE","EventsTableEE","mapHeaders","headers","Object","keys","length","key","value","entries","map","_jsx","Form","initialValues","name","url","events","method","onSubmit","validationSchema","makeWebhookValidationSchema","isSubmitting","modified","_jsxs","_Fragment","Layouts","Header","primaryAction","Flex","width","gap","Button","onClick","variant","startIcon","Publish","disabled","fullWidth","id","defaultMessage","Check","type","loading","title","navigationAction","Box","display","initial","medium","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","xs","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
@@ -44,15 +44,6 @@ const getInitialRoutes = ()=>[
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
{
|
|
48
|
-
path: 'marketplace',
|
|
49
|
-
lazy: async ()=>{
|
|
50
|
-
const { ProtectedMarketplacePage } = await Promise.resolve().then(function () { return require('./pages/Marketplace/MarketplacePage.js'); });
|
|
51
|
-
return {
|
|
52
|
-
Component: ProtectedMarketplacePage
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
47
|
{
|
|
57
48
|
path: 'settings/*',
|
|
58
49
|
lazy: async ()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: '
|
|
1
|
+
{"version":3,"file":"router.js","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAM,EAAA,SAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAE5C,OAAO;oBACLC,SAAWD,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;;AAEGE,QAAAA,GAAAA,uBAAAA,EAAAA;AACH,QAAA;YACEJ,IAAM,EAAA,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,cAACC,CAAAA,iBAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAO,EAAA,IAAA;YACPR,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,oDAAO,0BAAA,KAAA;gBAElC,OAAO;oBACLP,SAAWO,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,IAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,oDAAO,wBAAA,KAAA;gBAErC,OAAO;oBACLR,SAAWQ,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;AACA,QAAA;YACEX,IAAM,EAAA,YAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,oDAAO,4BAAA,KAAA;gBAEhC,OAAO;oBACLT,SAAWS,EAAAA;AACb,iBAAA;AACF,aAAA;YACAC,QAAU,EAAA;AACR,gBAAA;oBACEb,IAAM,EAAA,mBAAA;oBACNC,IAAM,EAAA,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,oDACpC,+DAAA,KAAA;wBAGF,OAAO;4BACLX,SAAWW,EAAAA;AACb,yBAAA;AACF;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,qBAAAA,EAAAA;AAA0BC,oBAAAA,GAAAA;AAAU,iBAAA,CAACC,MAAM,CAChD,CAACC,KAAOT,EAAAA,KAAAA,EAAOU,WAAaA,QAASC,CAAAA,SAAS,CAAC,CAACC,MAAQA,GAAIrB,CAAAA,IAAI,KAAKkB,KAAAA,CAAMlB,IAAI,CAAMS,KAAAA,KAAAA;AAExF;AACH;AACD;;;;;"}
|
|
@@ -42,15 +42,6 @@ const getInitialRoutes = ()=>[
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
{
|
|
46
|
-
path: 'marketplace',
|
|
47
|
-
lazy: async ()=>{
|
|
48
|
-
const { ProtectedMarketplacePage } = await import('./pages/Marketplace/MarketplacePage.mjs');
|
|
49
|
-
return {
|
|
50
|
-
Component: ProtectedMarketplacePage
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
45
|
{
|
|
55
46
|
path: 'settings/*',
|
|
56
47
|
lazy: async ()=>{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.mjs","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: '
|
|
1
|
+
{"version":3,"file":"router.mjs","sources":["../../../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\n\nimport { RouteObject } from 'react-router-dom';\n\nimport { getEERoutes as getBaseEERoutes } from '../../ee/admin/src/constants';\nimport { getEERoutes as getSettingsEERoutes } from '../../ee/admin/src/pages/SettingsPage/constants';\n\nimport { AuthPage } from './pages/Auth/AuthPage';\nimport { ROUTES_CE } from './pages/Settings/constants';\n\n/**\n * These are routes we don't want to be able to be changed by plugins.\n */\nconst getImmutableRoutes = (): RouteObject[] => [\n {\n path: 'usecase',\n lazy: async () => {\n const { PrivateUseCasePage } = await import('./pages/UseCasePage');\n\n return {\n Component: PrivateUseCasePage,\n };\n },\n },\n // this needs to go before auth/:authType because otherwise it won't match the route\n ...getBaseEERoutes(),\n {\n path: 'auth/:authType',\n element: <AuthPage />,\n },\n];\n\nconst getInitialRoutes = (): RouteObject[] => [\n {\n index: true,\n lazy: async () => {\n const { HomePage } = await import('./pages/Home/HomePage');\n\n return {\n Component: HomePage,\n };\n },\n },\n {\n path: 'me',\n lazy: async () => {\n const { ProfilePage } = await import('./pages/ProfilePage');\n\n return {\n Component: ProfilePage,\n };\n },\n },\n {\n path: 'settings/*',\n lazy: async () => {\n const { Layout } = await import('./pages/Settings/Layout');\n\n return {\n Component: Layout,\n };\n },\n children: [\n {\n path: 'application-infos',\n lazy: async () => {\n const { ApplicationInfoPage } = await import(\n './pages/Settings/pages/ApplicationInfo/ApplicationInfoPage'\n );\n\n return {\n Component: ApplicationInfoPage,\n };\n },\n },\n // ...Object.values(this.settings).flatMap(({ links }) =>\n // links.map(({ to, Component }) => ({\n // path: `${to}/*`,\n // element: (\n // <React.Suspense fallback={<Page.Loading />}>\n // <Component />\n // </React.Suspense>\n // ),\n // }))\n // ),\n ...[...getSettingsEERoutes(), ...ROUTES_CE].filter(\n (route, index, refArray) => refArray.findIndex((obj) => obj.path === route.path) === index\n ),\n ],\n },\n];\n\nexport { getImmutableRoutes, getInitialRoutes };\n"],"names":["getImmutableRoutes","path","lazy","PrivateUseCasePage","Component","getBaseEERoutes","element","_jsx","AuthPage","getInitialRoutes","index","HomePage","ProfilePage","Layout","children","ApplicationInfoPage","getSettingsEERoutes","ROUTES_CE","filter","route","refArray","findIndex","obj"],"mappings":";;;;;;AAUA;;IAGA,MAAMA,qBAAqB,IAAqB;AAC9C,QAAA;YACEC,IAAM,EAAA,SAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEC,kBAAkB,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAE5C,OAAO;oBACLC,SAAWD,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;;AAEGE,QAAAA,GAAAA,aAAAA,EAAAA;AACH,QAAA;YACEJ,IAAM,EAAA,gBAAA;AACNK,YAAAA,OAAAA,gBAASC,GAACC,CAAAA,QAAAA,EAAAA,EAAAA;AACZ;AACD;AAED,MAAMC,mBAAmB,IAAqB;AAC5C,QAAA;YACEC,KAAO,EAAA,IAAA;YACPR,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAES,QAAQ,EAAE,GAAG,MAAM,OAAO,2BAAA,CAAA;gBAElC,OAAO;oBACLP,SAAWO,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,IAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEU,WAAW,EAAE,GAAG,MAAM,OAAO,yBAAA,CAAA;gBAErC,OAAO;oBACLR,SAAWQ,EAAAA;AACb,iBAAA;AACF;AACF,SAAA;AACA,QAAA;YACEX,IAAM,EAAA,YAAA;YACNC,IAAM,EAAA,UAAA;AACJ,gBAAA,MAAM,EAAEW,MAAM,EAAE,GAAG,MAAM,OAAO,6BAAA,CAAA;gBAEhC,OAAO;oBACLT,SAAWS,EAAAA;AACb,iBAAA;AACF,aAAA;YACAC,QAAU,EAAA;AACR,gBAAA;oBACEb,IAAM,EAAA,mBAAA;oBACNC,IAAM,EAAA,UAAA;AACJ,wBAAA,MAAM,EAAEa,mBAAmB,EAAE,GAAG,MAAM,OACpC,gEAAA,CAAA;wBAGF,OAAO;4BACLX,SAAWW,EAAAA;AACb,yBAAA;AACF;AACF,iBAAA;;;;;;;;;;;AAWG,gBAAA,GAAA;AAAIC,oBAAAA,GAAAA,WAAAA,EAAAA;AAA0BC,oBAAAA,GAAAA;AAAU,iBAAA,CAACC,MAAM,CAChD,CAACC,KAAOT,EAAAA,KAAAA,EAAOU,WAAaA,QAASC,CAAAA,SAAS,CAAC,CAACC,MAAQA,GAAIrB,CAAAA,IAAI,KAAKkB,KAAAA,CAAMlB,IAAI,CAAMS,KAAAA,KAAAA;AAExF;AACH;AACD;;;;"}
|
|
@@ -141,42 +141,6 @@ var ar = {
|
|
|
141
141
|
"notification.error": "حدث خطأ",
|
|
142
142
|
"notification.error.layout": "تعذّر استرداد التنسيق",
|
|
143
143
|
"request.error.model.unknown": "هذا النموذج غير موجود",
|
|
144
|
-
"admin.pages.MarketPlacePage.filters.categories": "فئات",
|
|
145
|
-
"admin.pages.MarketPlacePage.filters.collections": "المجموعات",
|
|
146
|
-
"admin.pages.MarketPlacePage.head": "السوق - الإضافات",
|
|
147
|
-
"admin.pages.MarketPlacePage.missingPlugin.description": "أخبرنا ما هو المكون الإضافي الذي تبحث عنه وسنعلم مطوري المكونات الإضافية في مجتمعنا في حال كانوا يبحثون عن الإلهام!",
|
|
148
|
-
"admin.pages.MarketPlacePage.missingPlugin.title": "هل فقدت مكونًا إضافيًا؟",
|
|
149
|
-
"admin.pages.MarketPlacePage.offline.subtitle": "يجب أن تكون متصلاً بالإنترنت للوصول إلى سوق سترابي",
|
|
150
|
-
"admin.pages.MarketPlacePage.offline.title": "انت غير متصل",
|
|
151
|
-
"admin.pages.MarketPlacePage.plugin.copy": "أمر نسخ التثبيت",
|
|
152
|
-
"admin.pages.MarketPlacePage.plugin.copy.success": "قم بتثبيت الأمر جاهزًا ليتم لصقه في الجهاز الطرفي",
|
|
153
|
-
"admin.pages.MarketPlacePage.plugin.downloads": "يتم تنزيل هذا المكون الإضافي {downloadsCount} أسبوعيًا",
|
|
154
|
-
"admin.pages.MarketPlacePage.plugin.githubStars": "تم تمييز هذا المكون الإضافي بنجمة على GitHub",
|
|
155
|
-
"admin.pages.MarketPlacePage.plugin.info": "يتعلم أكثر",
|
|
156
|
-
"admin.pages.MarketPlacePage.plugin.info.label": "تعرف على المزيد حول {pluginName}",
|
|
157
|
-
"admin.pages.MarketPlacePage.plugin.info.text": "أكثر",
|
|
158
|
-
"admin.pages.MarketPlacePage.plugin.installed": "المثبتة",
|
|
159
|
-
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "صنع بواسطة ستربي",
|
|
160
|
-
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "Strapi تم التحقق من البرنامج المساعد من قبل ",
|
|
161
|
-
"admin.pages.MarketPlacePage.plugins": "الإضافات",
|
|
162
|
-
"admin.pages.MarketPlacePage.provider.downloads": "هذا الموفر لديه {downloadsCount} من التنزيلات الأسبوعية",
|
|
163
|
-
"admin.pages.MarketPlacePage.provider.githubStars": "{GitHub} على {starsCount} تم تميز هذا المزود ",
|
|
164
|
-
"admin.pages.MarketPlacePage.providers": "الموفرون",
|
|
165
|
-
"admin.pages.MarketPlacePage.search.clear": "مسح البحث",
|
|
166
|
-
"admin.pages.MarketPlacePage.search.empty": " \"{target}\" لا توجد نتيجة ل",
|
|
167
|
-
"admin.pages.MarketPlacePage.search.placeholder": "يبحث",
|
|
168
|
-
"admin.pages.MarketPlacePage.sort.alphabetical": "ترتيب ابجدي",
|
|
169
|
-
"admin.pages.MarketPlacePage.sort.alphabetical.selected": "فرز حسب الترتيب الأبجدي",
|
|
170
|
-
"admin.pages.MarketPlacePage.sort.githubStars": "GitHub عدد نجوم",
|
|
171
|
-
"admin.pages.MarketPlacePage.sort.githubStars.selected": "GitHub الترتيب حسب نجوم",
|
|
172
|
-
"admin.pages.MarketPlacePage.sort.newest": "الأحدث",
|
|
173
|
-
"admin.pages.MarketPlacePage.sort.newest.selected": "ترتيب حسب الأحدث",
|
|
174
|
-
"admin.pages.MarketPlacePage.sort.npmDownloads": "عدد التنزيلات",
|
|
175
|
-
"admin.pages.MarketPlacePage.sort.npmDownloads.selected": "npm فرز حسب التنزيلات ",
|
|
176
|
-
"admin.pages.MarketPlacePage.submit.plugin.link": "إرسال البرنامج المساعد",
|
|
177
|
-
"admin.pages.MarketPlacePage.submit.provider.link": "إرسال مزود",
|
|
178
|
-
"admin.pages.MarketPlacePage.subtitle": " Strapi احصل على المزيد من",
|
|
179
|
-
"admin.pages.MarketPlacePage.tab-group.label": "Strapi الإضافات ومقدمي ",
|
|
180
144
|
Analytics: Analytics,
|
|
181
145
|
anErrorOccurred: anErrorOccurred,
|
|
182
146
|
"app.component.CopyToClipboard.label": "نسخ إلى الحافظة",
|
|
@@ -187,9 +151,6 @@ var ar = {
|
|
|
187
151
|
"app.component.table.select.one-entry": "{target}يختار",
|
|
188
152
|
"app.component.table.view": "{target} تفاصيل",
|
|
189
153
|
"app.components.BlockLink.blog": "مدونة",
|
|
190
|
-
"admin.pages.MarketPlacePage.filters.categoriesSelected": "{count, plural, =0 {No categories} واحد {# category} آخر{# categories}} المحدد",
|
|
191
|
-
"admin.pages.MarketPlacePage.plugin.version": " قم بتحديث إصدار الخاص بك : \"{strapiAppVersion}\" ل: \"{versionRange}\"",
|
|
192
|
-
"admin.pages.MarketPlacePage.plugin.version.null": "تعذر التحقق من التوافق مع إصدار Strapi الخاص بك: \"{strapiAppVersion}\"",
|
|
193
154
|
"app.components.BlockLink.blog.content": "اقرأ آخر الأخبار حول Strapi والنظام البيئي.",
|
|
194
155
|
"app.components.BlockLink.cloud": "Strapi سحاب",
|
|
195
156
|
"app.components.BlockLink.cloud.content": "نظام أساسي قابل للإنشاء والتعاون بشكل كامل لزيادة سرعة فريقك.",
|
|
@@ -242,9 +203,6 @@ var ar = {
|
|
|
242
203
|
"app.components.LeftMenuLinkContainer.singleTypes": "أنواع مفردة",
|
|
243
204
|
"app.components.ListPluginsPage.deletePlugin.description": "قد يستغرق الأمر بضع ثوان لإلغاء تثبيت المكون الإضافي",
|
|
244
205
|
"app.components.ListPluginsPage.deletePlugin.title": "إلغاء التثبيت",
|
|
245
|
-
"app.components.MarketplaceBanner": "اكتشف المكونات الإضافية التي أنشأها المجتمع ، والعديد من الأشياء الرائعة لبدء مشروعك ، في سوق Strapi.",
|
|
246
|
-
"app.components.MarketplaceBanner.image.alt": "شعار صاروخ Strapi",
|
|
247
|
-
"app.components.MarketplaceBanner.link": "افحصه الآن",
|
|
248
206
|
"app.components.Onboarding.help.button": "زر المساعدة",
|
|
249
207
|
"app.components.Onboarding.label.completed": "% مكتمل",
|
|
250
208
|
"app.components.Onboarding.link.build-content": "بناء بنية المحتوى",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ar.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ar.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -137,42 +137,6 @@ var ar = {
|
|
|
137
137
|
"notification.error": "حدث خطأ",
|
|
138
138
|
"notification.error.layout": "تعذّر استرداد التنسيق",
|
|
139
139
|
"request.error.model.unknown": "هذا النموذج غير موجود",
|
|
140
|
-
"admin.pages.MarketPlacePage.filters.categories": "فئات",
|
|
141
|
-
"admin.pages.MarketPlacePage.filters.collections": "المجموعات",
|
|
142
|
-
"admin.pages.MarketPlacePage.head": "السوق - الإضافات",
|
|
143
|
-
"admin.pages.MarketPlacePage.missingPlugin.description": "أخبرنا ما هو المكون الإضافي الذي تبحث عنه وسنعلم مطوري المكونات الإضافية في مجتمعنا في حال كانوا يبحثون عن الإلهام!",
|
|
144
|
-
"admin.pages.MarketPlacePage.missingPlugin.title": "هل فقدت مكونًا إضافيًا؟",
|
|
145
|
-
"admin.pages.MarketPlacePage.offline.subtitle": "يجب أن تكون متصلاً بالإنترنت للوصول إلى سوق سترابي",
|
|
146
|
-
"admin.pages.MarketPlacePage.offline.title": "انت غير متصل",
|
|
147
|
-
"admin.pages.MarketPlacePage.plugin.copy": "أمر نسخ التثبيت",
|
|
148
|
-
"admin.pages.MarketPlacePage.plugin.copy.success": "قم بتثبيت الأمر جاهزًا ليتم لصقه في الجهاز الطرفي",
|
|
149
|
-
"admin.pages.MarketPlacePage.plugin.downloads": "يتم تنزيل هذا المكون الإضافي {downloadsCount} أسبوعيًا",
|
|
150
|
-
"admin.pages.MarketPlacePage.plugin.githubStars": "تم تمييز هذا المكون الإضافي بنجمة على GitHub",
|
|
151
|
-
"admin.pages.MarketPlacePage.plugin.info": "يتعلم أكثر",
|
|
152
|
-
"admin.pages.MarketPlacePage.plugin.info.label": "تعرف على المزيد حول {pluginName}",
|
|
153
|
-
"admin.pages.MarketPlacePage.plugin.info.text": "أكثر",
|
|
154
|
-
"admin.pages.MarketPlacePage.plugin.installed": "المثبتة",
|
|
155
|
-
"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi": "صنع بواسطة ستربي",
|
|
156
|
-
"admin.pages.MarketPlacePage.plugin.tooltip.verified": "Strapi تم التحقق من البرنامج المساعد من قبل ",
|
|
157
|
-
"admin.pages.MarketPlacePage.plugins": "الإضافات",
|
|
158
|
-
"admin.pages.MarketPlacePage.provider.downloads": "هذا الموفر لديه {downloadsCount} من التنزيلات الأسبوعية",
|
|
159
|
-
"admin.pages.MarketPlacePage.provider.githubStars": "{GitHub} على {starsCount} تم تميز هذا المزود ",
|
|
160
|
-
"admin.pages.MarketPlacePage.providers": "الموفرون",
|
|
161
|
-
"admin.pages.MarketPlacePage.search.clear": "مسح البحث",
|
|
162
|
-
"admin.pages.MarketPlacePage.search.empty": " \"{target}\" لا توجد نتيجة ل",
|
|
163
|
-
"admin.pages.MarketPlacePage.search.placeholder": "يبحث",
|
|
164
|
-
"admin.pages.MarketPlacePage.sort.alphabetical": "ترتيب ابجدي",
|
|
165
|
-
"admin.pages.MarketPlacePage.sort.alphabetical.selected": "فرز حسب الترتيب الأبجدي",
|
|
166
|
-
"admin.pages.MarketPlacePage.sort.githubStars": "GitHub عدد نجوم",
|
|
167
|
-
"admin.pages.MarketPlacePage.sort.githubStars.selected": "GitHub الترتيب حسب نجوم",
|
|
168
|
-
"admin.pages.MarketPlacePage.sort.newest": "الأحدث",
|
|
169
|
-
"admin.pages.MarketPlacePage.sort.newest.selected": "ترتيب حسب الأحدث",
|
|
170
|
-
"admin.pages.MarketPlacePage.sort.npmDownloads": "عدد التنزيلات",
|
|
171
|
-
"admin.pages.MarketPlacePage.sort.npmDownloads.selected": "npm فرز حسب التنزيلات ",
|
|
172
|
-
"admin.pages.MarketPlacePage.submit.plugin.link": "إرسال البرنامج المساعد",
|
|
173
|
-
"admin.pages.MarketPlacePage.submit.provider.link": "إرسال مزود",
|
|
174
|
-
"admin.pages.MarketPlacePage.subtitle": " Strapi احصل على المزيد من",
|
|
175
|
-
"admin.pages.MarketPlacePage.tab-group.label": "Strapi الإضافات ومقدمي ",
|
|
176
140
|
Analytics: Analytics,
|
|
177
141
|
anErrorOccurred: anErrorOccurred,
|
|
178
142
|
"app.component.CopyToClipboard.label": "نسخ إلى الحافظة",
|
|
@@ -183,9 +147,6 @@ var ar = {
|
|
|
183
147
|
"app.component.table.select.one-entry": "{target}يختار",
|
|
184
148
|
"app.component.table.view": "{target} تفاصيل",
|
|
185
149
|
"app.components.BlockLink.blog": "مدونة",
|
|
186
|
-
"admin.pages.MarketPlacePage.filters.categoriesSelected": "{count, plural, =0 {No categories} واحد {# category} آخر{# categories}} المحدد",
|
|
187
|
-
"admin.pages.MarketPlacePage.plugin.version": " قم بتحديث إصدار الخاص بك : \"{strapiAppVersion}\" ل: \"{versionRange}\"",
|
|
188
|
-
"admin.pages.MarketPlacePage.plugin.version.null": "تعذر التحقق من التوافق مع إصدار Strapi الخاص بك: \"{strapiAppVersion}\"",
|
|
189
150
|
"app.components.BlockLink.blog.content": "اقرأ آخر الأخبار حول Strapi والنظام البيئي.",
|
|
190
151
|
"app.components.BlockLink.cloud": "Strapi سحاب",
|
|
191
152
|
"app.components.BlockLink.cloud.content": "نظام أساسي قابل للإنشاء والتعاون بشكل كامل لزيادة سرعة فريقك.",
|
|
@@ -238,9 +199,6 @@ var ar = {
|
|
|
238
199
|
"app.components.LeftMenuLinkContainer.singleTypes": "أنواع مفردة",
|
|
239
200
|
"app.components.ListPluginsPage.deletePlugin.description": "قد يستغرق الأمر بضع ثوان لإلغاء تثبيت المكون الإضافي",
|
|
240
201
|
"app.components.ListPluginsPage.deletePlugin.title": "إلغاء التثبيت",
|
|
241
|
-
"app.components.MarketplaceBanner": "اكتشف المكونات الإضافية التي أنشأها المجتمع ، والعديد من الأشياء الرائعة لبدء مشروعك ، في سوق Strapi.",
|
|
242
|
-
"app.components.MarketplaceBanner.image.alt": "شعار صاروخ Strapi",
|
|
243
|
-
"app.components.MarketplaceBanner.link": "افحصه الآن",
|
|
244
202
|
"app.components.Onboarding.help.button": "زر المساعدة",
|
|
245
203
|
"app.components.Onboarding.label.completed": "% مكتمل",
|
|
246
204
|
"app.components.Onboarding.link.build-content": "بناء بنية المحتوى",
|