@strapi/admin 5.29.0 → 5.30.1
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/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js +1 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +1 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +8 -3
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +8 -3
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +8 -4
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +5 -3
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +1 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +34 -1
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.mjs +34 -1
- package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs +0 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.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/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/BackButton.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/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +2 -2
- package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +1 -1
- package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +8 -1
- 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 +9 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +2 -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 +2 -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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +10 -2
- 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 +10 -2
- 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 -2
- 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 +9 -2
- 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.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs +2 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +2 -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 +2 -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 +9 -2
- 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 +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +9 -2
- 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 +9 -2
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +1 -0
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -0
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +4 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +4 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -3
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +14 -1
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.mjs +14 -2
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/ee.js +1 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -1
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +6 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +13 -13
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/services/ai.d.ts +6 -3
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/containers/ai.d.ts +11 -0
- package/dist/ee/server/src/ai/containers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts +1 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -1
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +1 -0
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.js +18 -0
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs +16 -0
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +6 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs +11 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +7 -0
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +7 -0
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/index.js.map +1 -1
- package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js +10 -0
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/user.mjs +10 -0
- package/dist/server/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- 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.map +1 -1
- 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.map +1 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +30 -0
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +30 -0
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/utils/index.js.map +1 -1
- package/dist/server/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/validation/action-provider.js.map +1 -1
- package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/src/controllers/user.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +16 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"string\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HeadersInput.mjs","sources":["../../../../../../../../../admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Flex,\n Grid,\n TextButton,\n ComboboxOption,\n Combobox,\n ComboboxProps,\n IconButton,\n Field as DSField,\n} from '@strapi/design-system';\nimport { Minus, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useField, useForm } from '../../../../../components/Form';\nimport { StringInput } from '../../../../../components/FormInputs/String';\n\nconst AddHeaderButton = styled(TextButton)`\n cursor: pointer;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * HeadersInput\n * -----------------------------------------------------------------------------------------------*/\n\ninterface Header {\n key: HTTPHeaders;\n value: string;\n}\n\nconst HeadersInput = () => {\n const { formatMessage } = useIntl();\n\n const addFieldRow = useForm('HeadersInput', (state) => state.addFieldRow);\n const removeFieldRow = useForm('HeadersInput', (state) => state.removeFieldRow);\n const setFieldValue = useForm('HeadersInput', (state) => state.onChange);\n const { value = [] } = useField<Header[]>('headers');\n\n const removeRow = (index: number) => {\n // if we are removing the last row, simply clear it\n if (value.length === 1) {\n setFieldValue('headers', [{ key: '', value: '' }]);\n } else {\n removeFieldRow('headers', index);\n }\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <DSField.Label>\n {formatMessage({\n id: 'Settings.webhooks.form.headers',\n defaultMessage: 'Headers',\n })}\n </DSField.Label>\n <Box padding={8} background=\"neutral100\" hasRadius>\n {value.map((val, index) => {\n return (\n <Grid.Root key={`${index}-${JSON.stringify(val.key)}`} gap={4} padding={2}>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <HeaderCombobox\n name={`headers.${index}.key`}\n aria-label={`row ${index + 1} key`}\n label={formatMessage({\n id: 'Settings.webhooks.key',\n defaultMessage: 'Key',\n })}\n />\n </Grid.Item>\n <Grid.Item col={6} direction=\"column\" alignItems=\"stretch\">\n <Flex alignItems=\"flex-end\" gap={2}>\n <Box style={{ flex: 1 }}>\n <StringInput\n name={`headers.${index}.value`}\n aria-label={`row ${index + 1} value`}\n label={formatMessage({\n id: 'Settings.webhooks.value',\n defaultMessage: 'Value',\n })}\n type=\"text\"\n />\n </Box>\n <IconButton\n width=\"4rem\"\n height=\"4rem\"\n onClick={() => removeRow(index)}\n color=\"primary600\"\n label={formatMessage(\n {\n id: 'Settings.webhooks.headers.remove',\n defaultMessage: 'Remove header row {number}',\n },\n { number: index + 1 }\n )}\n type=\"button\"\n >\n <Minus width=\"0.8rem\" />\n </IconButton>\n </Flex>\n </Grid.Item>\n </Grid.Root>\n );\n })}\n <Box paddingTop={4}>\n <AddHeaderButton\n type=\"button\"\n onClick={() => {\n addFieldRow('headers', { key: '', value: '' });\n }}\n startIcon={<Plus />}\n >\n {formatMessage({\n id: 'Settings.webhooks.create.header',\n defaultMessage: 'Create new header',\n })}\n </AddHeaderButton>\n </Box>\n </Box>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCombobox\n * -----------------------------------------------------------------------------------------------*/\n\ninterface HeaderComboboxProps extends Omit<ComboboxProps, 'children' | 'name'> {\n name: string;\n label: string;\n}\n\nconst HeaderCombobox = ({ name, label, ...restProps }: HeaderComboboxProps) => {\n const [options, setOptions] = React.useState<HTTPHeaders[]>([...HTTP_HEADERS]);\n const { value: headers } = useField<Header[]>('headers');\n const field = useField(name);\n\n React.useEffect(() => {\n const headerOptions = HTTP_HEADERS.filter(\n (key) => !headers?.some((header) => header.key !== field.value && header.key === key)\n );\n\n setOptions(headerOptions);\n }, [headers, field.value]);\n\n const handleChange: ComboboxProps['onChange'] = (value) => {\n field.onChange(name, value);\n };\n\n const handleCreateOption = (value?: string) => {\n setOptions((prev) => [...prev, value as HTTPHeaders]);\n\n if (value) {\n handleChange(value);\n }\n };\n\n return (\n <DSField.Root name={name} error={field.error}>\n <DSField.Label>{label}</DSField.Label>\n <Combobox\n {...restProps}\n onClear={() => handleChange('')}\n onChange={handleChange}\n onCreateOption={handleCreateOption}\n placeholder=\"\"\n creatable\n value={field.value}\n >\n {options.map((key) => (\n <ComboboxOption value={key} key={key}>\n {key}\n </ComboboxOption>\n ))}\n </Combobox>\n <DSField.Error />\n </DSField.Root>\n );\n};\n\nconst HTTP_HEADERS = [\n 'A-IM',\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Datetime',\n 'Access-Control-Request-Method',\n 'Access-Control-Request-Headers',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Length',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Range',\n 'If-Unmodified-Since',\n 'Max-Forwards',\n 'Origin',\n 'Pragma',\n 'Proxy-Authorization',\n 'Range',\n 'Referer',\n 'TE',\n 'User-Agent',\n 'Upgrade',\n 'Via',\n 'Warning',\n] as const;\n\ntype HTTPHeaders = (typeof HTTP_HEADERS)[number];\n\nexport { HeadersInput };\n"],"names":["AddHeaderButton","styled","TextButton","HeadersInput","formatMessage","useIntl","addFieldRow","useForm","state","removeFieldRow","setFieldValue","onChange","value","useField","removeRow","index","length","key","_jsxs","Flex","direction","alignItems","gap","_jsx","DSField","Label","id","defaultMessage","Box","padding","background","hasRadius","map","val","Grid","Root","Item","col","HeaderCombobox","name","aria-label","label","style","flex","StringInput","type","IconButton","width","height","onClick","color","number","Minus","JSON","stringify","paddingTop","startIcon","Plus","restProps","options","setOptions","React","useState","HTTP_HEADERS","headers","field","useEffect","headerOptions","filter","some","header","handleChange","handleCreateOption","prev","error","Combobox","onClear","onCreateOption","placeholder","creatable","ComboboxOption","Error"],"mappings":";;;;;;;;;AAoBA,MAAMA,eAAAA,GAAkBC,MAAOC,CAAAA,UAAAA,CAAW;;AAE1C,CAAC;AAWD,MAAMC,YAAe,GAAA,IAAA;IACnB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,MAAMC,cAAcC,OAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMF,WAAW,CAAA;AACxE,IAAA,MAAMG,iBAAiBF,OAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMC,cAAc,CAAA;AAC9E,IAAA,MAAMC,gBAAgBH,OAAQ,CAAA,cAAA,EAAgB,CAACC,KAAAA,GAAUA,MAAMG,QAAQ,CAAA;AACvE,IAAA,MAAM,EAAEC,KAAAA,GAAQ,EAAE,EAAE,GAAGC,QAAmB,CAAA,SAAA,CAAA;AAE1C,IAAA,MAAMC,YAAY,CAACC,KAAAA,GAAAA;;QAEjB,IAAIH,KAAAA,CAAMI,MAAM,KAAK,CAAG,EAAA;AACtBN,YAAAA,aAAAA,CAAc,SAAW,EAAA;AAAC,gBAAA;oBAAEO,GAAK,EAAA,EAAA;oBAAIL,KAAO,EAAA;AAAG;AAAE,aAAA,CAAA;SAC5C,MAAA;AACLH,YAAAA,cAAAA,CAAe,SAAWM,EAAAA,KAAAA,CAAAA;AAC5B;AACF,KAAA;AAEA,IAAA,qBACEG,IAACC,CAAAA,IAAAA,EAAAA;QAAKC,SAAU,EAAA,QAAA;QAASC,UAAW,EAAA,SAAA;QAAUC,GAAK,EAAA,CAAA;;AACjD,0BAAAC,GAAA,CAACC,MAAQC,KAAK,EAAA;0BACXrB,aAAc,CAAA;oBACbsB,EAAI,EAAA,gCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;;0BAEFT,IAACU,CAAAA,GAAAA,EAAAA;gBAAIC,OAAS,EAAA,CAAA;gBAAGC,UAAW,EAAA,YAAA;gBAAaC,SAAS,EAAA,IAAA;;oBAC/CnB,KAAMoB,CAAAA,GAAG,CAAC,CAACC,GAAKlB,EAAAA,KAAAA,GAAAA;wBACf,qBACEG,IAAA,CAACgB,KAAKC,IAAI,EAAA;4BAA6Cb,GAAK,EAAA,CAAA;4BAAGO,OAAS,EAAA,CAAA;;AACtE,8CAAAN,GAAA,CAACW,KAAKE,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGjB,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AAC/C,oCAAA,QAAA,gBAAAE,GAACe,CAAAA,cAAAA,EAAAA;AACCC,wCAAAA,IAAAA,EAAM,CAAC,QAAQ,EAAExB,KAAAA,CAAM,IAAI,CAAC;AAC5ByB,wCAAAA,YAAAA,EAAY,CAAC,IAAI,EAAEzB,KAAQ,GAAA,CAAA,CAAE,IAAI,CAAC;AAClC0B,wCAAAA,KAAAA,EAAOrC,aAAc,CAAA;4CACnBsB,EAAI,EAAA,uBAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA;;;AAGJ,8CAAAJ,GAAA,CAACW,KAAKE,IAAI,EAAA;oCAACC,GAAK,EAAA,CAAA;oCAAGjB,SAAU,EAAA,QAAA;oCAASC,UAAW,EAAA,SAAA;AAC/C,oCAAA,QAAA,gBAAAH,IAACC,CAAAA,IAAAA,EAAAA;wCAAKE,UAAW,EAAA,UAAA;wCAAWC,GAAK,EAAA,CAAA;;0DAC/BC,GAACK,CAAAA,GAAAA,EAAAA;gDAAIc,KAAO,EAAA;oDAAEC,IAAM,EAAA;AAAE,iDAAA;AACpB,gDAAA,QAAA,gBAAApB,GAACqB,CAAAA,mBAAAA,EAAAA;AACCL,oDAAAA,IAAAA,EAAM,CAAC,QAAQ,EAAExB,KAAAA,CAAM,MAAM,CAAC;AAC9ByB,oDAAAA,YAAAA,EAAY,CAAC,IAAI,EAAEzB,KAAQ,GAAA,CAAA,CAAE,MAAM,CAAC;AACpC0B,oDAAAA,KAAAA,EAAOrC,aAAc,CAAA;wDACnBsB,EAAI,EAAA,yBAAA;wDACJC,cAAgB,EAAA;AAClB,qDAAA,CAAA;oDACAkB,IAAK,EAAA;;;0DAGTtB,GAACuB,CAAAA,UAAAA,EAAAA;gDACCC,KAAM,EAAA,MAAA;gDACNC,MAAO,EAAA,MAAA;AACPC,gDAAAA,OAAAA,EAAS,IAAMnC,SAAUC,CAAAA,KAAAA,CAAAA;gDACzBmC,KAAM,EAAA,YAAA;AACNT,gDAAAA,KAAAA,EAAOrC,aACL,CAAA;oDACEsB,EAAI,EAAA,kCAAA;oDACJC,cAAgB,EAAA;iDAElB,EAAA;AAAEwB,oDAAAA,MAAAA,EAAQpC,KAAQ,GAAA;AAAE,iDAAA,CAAA;gDAEtB8B,IAAK,EAAA,QAAA;AAEL,gDAAA,QAAA,gBAAAtB,GAAC6B,CAAAA,KAAAA,EAAAA;oDAAML,KAAM,EAAA;;;;;;;2BAtCL,CAAGhC,EAAAA,KAAAA,CAAM,CAAC,EAAEsC,IAAAA,CAAKC,SAAS,CAACrB,GAAAA,CAAIhB,GAAG,CAAG,CAAA,CAAA,CAAA;AA4CzD,qBAAA,CAAA;kCACAM,GAACK,CAAAA,GAAAA,EAAAA;wBAAI2B,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAAhC,GAACvB,CAAAA,eAAAA,EAAAA;4BACC6C,IAAK,EAAA,QAAA;4BACLI,OAAS,EAAA,IAAA;AACP3C,gCAAAA,WAAAA,CAAY,SAAW,EAAA;oCAAEW,GAAK,EAAA,EAAA;oCAAIL,KAAO,EAAA;AAAG,iCAAA,CAAA;AAC9C,6BAAA;AACA4C,4BAAAA,SAAAA,gBAAWjC,GAACkC,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;sCAEXrD,aAAc,CAAA;gCACbsB,EAAI,EAAA,iCAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;;;;;;AAMZ;AAWA,MAAMW,cAAAA,GAAiB,CAAC,EAAEC,IAAI,EAAEE,KAAK,EAAE,GAAGiB,SAAgC,EAAA,GAAA;AACxE,IAAA,MAAM,CAACC,OAASC,EAAAA,UAAAA,CAAW,GAAGC,KAAAA,CAAMC,QAAQ,CAAgB;AAAIC,QAAAA,GAAAA;AAAa,KAAA,CAAA;AAC7E,IAAA,MAAM,EAAEnD,KAAAA,EAAOoD,OAAO,EAAE,GAAGnD,QAAmB,CAAA,SAAA,CAAA;AAC9C,IAAA,MAAMoD,QAAQpD,QAAS0B,CAAAA,IAAAA,CAAAA;AAEvBsB,IAAAA,KAAAA,CAAMK,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,gBAAgBJ,YAAaK,CAAAA,MAAM,CACvC,CAACnD,GAAAA,GAAQ,CAAC+C,OAASK,EAAAA,IAAAA,CAAK,CAACC,MAAWA,GAAAA,MAAAA,CAAOrD,GAAG,KAAKgD,KAAAA,CAAMrD,KAAK,IAAI0D,MAAAA,CAAOrD,GAAG,KAAKA,GAAAA,CAAAA,CAAAA;QAGnF2C,UAAWO,CAAAA,aAAAA,CAAAA;KACV,EAAA;AAACH,QAAAA,OAAAA;AAASC,QAAAA,KAAAA,CAAMrD;AAAM,KAAA,CAAA;AAEzB,IAAA,MAAM2D,eAA0C,CAAC3D,KAAAA,GAAAA;QAC/CqD,KAAMtD,CAAAA,QAAQ,CAAC4B,IAAM3B,EAAAA,KAAAA,CAAAA;AACvB,KAAA;AAEA,IAAA,MAAM4D,qBAAqB,CAAC5D,KAAAA,GAAAA;AAC1BgD,QAAAA,UAAAA,CAAW,CAACa,IAAS,GAAA;AAAIA,gBAAAA,GAAAA,IAAAA;AAAM7D,gBAAAA;AAAqB,aAAA,CAAA;AAEpD,QAAA,IAAIA,KAAO,EAAA;YACT2D,YAAa3D,CAAAA,KAAAA,CAAAA;AACf;AACF,KAAA;IAEA,qBACEM,IAAA,CAACM,MAAQW,IAAI,EAAA;QAACI,IAAMA,EAAAA,IAAAA;AAAMmC,QAAAA,KAAAA,EAAOT,MAAMS,KAAK;;AAC1C,0BAAAnD,GAAA,CAACC,MAAQC,KAAK,EAAA;AAAEgB,gBAAAA,QAAAA,EAAAA;;0BAChBlB,GAACoD,CAAAA,QAAAA,EAAAA;AACE,gBAAA,GAAGjB,SAAS;AACbkB,gBAAAA,OAAAA,EAAS,IAAML,YAAa,CAAA,EAAA,CAAA;gBAC5B5D,QAAU4D,EAAAA,YAAAA;gBACVM,cAAgBL,EAAAA,kBAAAA;gBAChBM,WAAY,EAAA,EAAA;gBACZC,SAAS,EAAA,IAAA;AACTnE,gBAAAA,KAAAA,EAAOqD,MAAMrD,KAAK;AAEjB+C,gBAAAA,QAAAA,EAAAA,OAAAA,CAAQ3B,GAAG,CAAC,CAACf,GAAAA,iBACZM,GAACyD,CAAAA,cAAAA,EAAAA;wBAAepE,KAAOK,EAAAA,GAAAA;AACpBA,wBAAAA,QAAAA,EAAAA;AAD8BA,qBAAAA,EAAAA,GAAAA,CAAAA;;AAKrC,0BAAAM,GAAA,CAACC,MAAQyD,KAAK,EAAA,EAAA;;;AAGpB,CAAA;AAEA,MAAMlB,YAAe,GAAA;AACnB,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,gBAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,iBAAA;AACA,IAAA,+BAAA;AACA,IAAA,gCAAA;AACA,IAAA,eAAA;AACA,IAAA,eAAA;AACA,IAAA,YAAA;AACA,IAAA,gBAAA;AACA,IAAA,cAAA;AACA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,QAAA;AACA,IAAA,WAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,mBAAA;AACA,IAAA,eAAA;AACA,IAAA,UAAA;AACA,IAAA,qBAAA;AACA,IAAA,cAAA;AACA,IAAA,QAAA;AACA,IAAA,QAAA;AACA,IAAA,qBAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,IAAA;AACA,IAAA,YAAA;AACA,IAAA,SAAA;AACA,IAAA,KAAA;AACA,IAAA;AACD,CAAA;;;;"}
|
|
@@ -106,8 +106,15 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
106
106
|
id: 'Settings.webhooks.create',
|
|
107
107
|
defaultMessage: 'Create a webhook'
|
|
108
108
|
}) : data?.name,
|
|
109
|
-
navigationAction:
|
|
110
|
-
|
|
109
|
+
navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
|
|
110
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
111
|
+
display: {
|
|
112
|
+
initial: 'none',
|
|
113
|
+
medium: 'block'
|
|
114
|
+
},
|
|
115
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(BackButton.BackButton, {
|
|
116
|
+
fallback: "../webhooks"
|
|
117
|
+
})
|
|
111
118
|
})
|
|
112
119
|
}),
|
|
113
120
|
/*#__PURE__*/ jsxRuntime.jsx(Layout.Layouts.Content, {
|
|
@@ -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, TextInput } 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={<BackButton fallback=\"../webhooks\" />}\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 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","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","Box","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","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.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 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","InputRenderer","HeadersInput","NAME_REGEX","URL_REGEX","yup","object","shape","string","nullable","matches","lazy","array","baseSchema","of"],"mappings":"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"}
|
|
@@ -84,8 +84,15 @@ const WebhookForm = ({ handleSubmit, triggerWebhook, isCreating, isTriggering, t
|
|
|
84
84
|
id: 'Settings.webhooks.create',
|
|
85
85
|
defaultMessage: 'Create a webhook'
|
|
86
86
|
}) : data?.name,
|
|
87
|
-
navigationAction:
|
|
88
|
-
|
|
87
|
+
navigationAction: // The back link for mobile works differently; it is placed higher up in the DOM.
|
|
88
|
+
/*#__PURE__*/ jsx(Box, {
|
|
89
|
+
display: {
|
|
90
|
+
initial: 'none',
|
|
91
|
+
medium: 'block'
|
|
92
|
+
},
|
|
93
|
+
children: /*#__PURE__*/ jsx(BackButton, {
|
|
94
|
+
fallback: "../webhooks"
|
|
95
|
+
})
|
|
89
96
|
})
|
|
90
97
|
}),
|
|
91
98
|
/*#__PURE__*/ jsx(Layouts.Content, {
|
|
@@ -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, TextInput } 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={<BackButton fallback=\"../webhooks\" />}\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 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","BackButton","fallback","Content","direction","alignItems","TriggerContainer","isPending","response","onCancel","Box","background","padding","shadow","hasRadius","Grid","Root","label","required","size","field","Item","col","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 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 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","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,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,mBAAqBC,EAAAA,sBAAAA,CAAuB,GAAGC,KAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;IACrE,MAAMC,UAAAA,GAAaC,aACjBC,CAAAA,YAAAA,EACA,UAEI,CAAA,MAAM,OACJ,gGACF,CAAA,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,GAACC,CAAAA,IAAAA,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,IAAA,CAAAC,QAAA,EAAA;;AACE,kCAAAb,GAAA,CAACc,QAAQC,MAAM,EAAA;AACbC,wBAAAA,aAAAA,gBACEJ,IAACK,CAAAA,IAAAA,EAAAA;4BAAKC,GAAK,EAAA,CAAA;;8CACTlB,GAACmB,CAAAA,MAAAA,EAAAA;oCACCC,OAAS,EAAA,IAAA;AACP5C,wCAAAA,cAAAA,EAAAA;wCACAQ,sBAAuB,CAAA,IAAA,CAAA;AACzB,qCAAA;oCACAqC,OAAQ,EAAA,UAAA;AACRC,oCAAAA,SAAAA,gBAAWtB,GAACuB,CAAAA,IAAAA,EAAAA,EAAAA,CAAAA;AACZC,oCAAAA,QAAAA,EAAU/C,UAAcC,IAAAA,YAAAA;8CAEvBG,aAAc,CAAA;wCACb4C,EAAI,EAAA,2BAAA;wCACJC,cAAgB,EAAA;AAClB,qCAAA;;8CAEF1B,GAACmB,CAAAA,MAAAA,EAAAA;AACCG,oCAAAA,SAAAA,gBAAWtB,GAAC2B,CAAAA,KAAAA,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,GAACgC,CAAAA,GAAAA,EAAAA;4BAAIC,OAAS,EAAA;gCAAEC,OAAS,EAAA,MAAA;gCAAQC,MAAQ,EAAA;AAAQ,6BAAA;AAC/C,4BAAA,QAAA,gBAAAnC,GAACoC,CAAAA,UAAAA,EAAAA;gCAAWC,QAAS,EAAA;;;;AAI3B,kCAAArC,GAAA,CAACc,QAAQwB,OAAO,EAAA;AACd,wBAAA,QAAA,gBAAA1B,IAACK,CAAAA,IAAAA,EAAAA;4BAAKsB,SAAU,EAAA,QAAA;4BAASC,UAAW,EAAA,SAAA;4BAAUtB,GAAK,EAAA,CAAA;;AAChDnC,gCAAAA,mBAAAA,kBACCiB,GAACyC,CAAAA,gBAAAA,EAAAA;oCACCC,SAAWhE,EAAAA,YAAAA;oCACXiE,QAAUhE,EAAAA,eAAAA;AACViE,oCAAAA,QAAAA,EAAU,IAAM5D,sBAAuB,CAAA,KAAA;;8CAG3CgB,GAACgC,CAAAA,GAAAA,EAAAA;oCAAIa,UAAW,EAAA,UAAA;oCAAWC,OAAS,EAAA,CAAA;oCAAGC,MAAO,EAAA,cAAA;oCAAeC,SAAS,EAAA,IAAA;AACpE,oCAAA,QAAA,gBAAApC,IAACK,CAAAA,IAAAA,EAAAA;wCAAKsB,SAAU,EAAA,QAAA;wCAASC,UAAW,EAAA,SAAA;wCAAUtB,GAAK,EAAA,CAAA;;AACjD,0DAAAlB,GAAA,CAACiD,KAAKC,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,GAACiD,CAAAA,IAAAA,CAAKM,IAAI,EAAA;wDAERC,GAAKH,EAAAA,IAAAA;wDACLd,SAAU,EAAA,QAAA;wDACVC,UAAW,EAAA,SAAA;AAEX,wDAAA,QAAA,gBAAAxC,GAACyD,CAAAA,qBAAAA,EAAAA;AAAe,4DAAA,GAAGH;;AALdA,qDAAAA,EAAAA,KAAAA,CAAMnD,IAAI,CAAA;;0DASrBH,GAAC0D,CAAAA,YAAAA,EAAAA,EAAAA,CAAAA;0DACD1D,GAACb,CAAAA,UAAAA,EAAAA,EAAAA;;;;;;;;;;AASnB;AAEA,MAAMwE,UAAa,GAAA,iCAAA;AACnB,MAAMC,SAAY,GAAA,mCAAA;AAElB,MAAMnD,2BAAAA,GAA8B,CAAC,EAAE5B,aAAa,EAAoC,GACtFgF,GAAIC,CAAAA,MAAM,EAAGC,CAAAA,KAAK,CAAC;AACjB5D,QAAAA,IAAAA,EAAM0D,IACHG,MAAM,EAAA,CACNC,QAAQ,EACRb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,4CAAA;YACJC,cAAgB,EAAA;SAGnBwC,CAAAA,CAAAA,CAAAA,OAAO,CACNP,UAAAA,EACA9E,aAAc,CAAA;YACZ4C,EAAI,EAAA,yCAAA;YACJC,cACE,EAAA;AACJ,SAAA,CAAA,CAAA;AAEJtB,QAAAA,GAAAA,EAAKyD,IACFG,MAAM,EAAA,CACNC,QAAQ,EACRb,CAAAA,QAAQ,CACPvE,aAAc,CAAA;YACZ4C,EAAI,EAAA,2CAAA;YACJC,cAAgB,EAAA;SAGnBwC,CAAAA,CAAAA,CAAAA,OAAO,CACNN,SAAAA,EACA/E,aAAc,CAAA;YACZ4C,EAAI,EAAA,wCAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA,CAAA;QAEJlC,OAASqE,EAAAA,GAAAA,CAAIM,IAAI,CAAC,CAACC,KAAAA,GAAAA;YACjB,MAAMC,UAAAA,GAAaR,IAAIO,KAAK,EAAA;YAE5B,IAAIA,KAAAA,CAAMzE,MAAM,KAAK,CAAG,EAAA;gBACtB,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE,GAAGuE,KAAK,CAAC,CAAE,CAAA;gBAE/B,IAAI,CAACxE,GAAO,IAAA,CAACC,KAAO,EAAA;oBAClB,OAAOwE,UAAAA;AACT;AACF;AAEA,YAAA,OAAOA,WAAWC,EAAE,CAClBT,IAAIC,MAAM,EAAA,CAAGC,KAAK,CAAC;AACjBnE,gBAAAA,GAAAA,EAAKiE,GACFG,CAAAA,MAAM,EACNZ,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,kCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDuC,QAAQ,EAAA;AACXpE,gBAAAA,KAAAA,EAAOgE,GACJG,CAAAA,MAAM,EACNZ,CAAAA,QAAQ,CACPvE,aAAc,CAAA;oBACZ4C,EAAI,EAAA,oCAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA,CAAA,CAAA,CAEDuC,QAAQ;AACb,aAAA,CAAA,CAAA;AAEJ,SAAA,CAAA;AACA5D,QAAAA,MAAAA,EAAQwD,IAAIO,KAAK;AACnB,KAAA,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput value={otherRole} onChange={(e) => setOtherRole(e.target.value)} />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseCasePage.js","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwBaA,OAAU,GAAA;AACrB,IAAA;QACEC,SAAW,EAAA;YACTC,EAAI,EAAA,mBAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT,KAAA;AACA,IAAA;QACEH,SAAW,EAAA;YACTC,EAAI,EAAA,kBAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT,KAAA;AACA,IAAA;QACEH,SAAW,EAAA;YACTC,EAAI,EAAA,oBAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT,KAAA;AACA,IAAA;QACEH,SAAW,EAAA;YACTC,EAAI,EAAA,wBAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT,KAAA;AACA,IAAA;QACEH,SAAW,EAAA;YACTC,EAAI,EAAA,yBAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT,KAAA;AACA,IAAA;QACEH,SAAW,EAAA;YACTC,EAAI,EAAA,eAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,KAAO,EAAA;AACT;;AAGF,MAAMC,WAAc,GAAA,IAAA;IAClB,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,6BAAAA,EAAAA;AAC/B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,IAAMC,EAAAA,OAAAA,CAAQ,GAAGC,gBAAAA,CAAMC,QAAQ,CAAyB,IAAA,CAAA;AAC/D,IAAA,MAAM,CAACC,SAAWC,EAAAA,YAAAA,CAAa,GAAGH,gBAAAA,CAAMC,QAAQ,CAAC,EAAA,CAAA;AAEjD,IAAA,MAAM,EAAEG,SAAS,EAAEC,KAAK,EAAE,GAAGC,YAAQ,CAAA,aAAA,EAAe,CAACC,KAAAA,GAAUA,KAAMC,CAAAA,IAAI,KAAK,EAAC;AAC/E,IAAA,MAAM,EAAEC,QAAQ,EAAE,GAAGC,QAAMlB,CAAAA,QAAAA,CAASmB,MAAM,EAAE;QAAEC,iBAAmB,EAAA;AAAK,KAAA,CAAA;AACtE,IAAA,MAAMC,UAAUf,IAAS,KAAA,OAAA;IAEzB,MAAMgB,YAAAA,GAAe,OAAOC,KAAwBC,EAAAA,WAAAA,GAAAA;AAClDD,QAAAA,KAAAA,CAAME,cAAc,EAAA;QACpB,IAAI;YACF,MAAMC,KAAAA,CAAM,CAAGC,EAAAA,OAAAA,CAAQC,GAAG,CAACC,oBAAoB,IAAI,6BAAA,CAA8B,SAAS,CAAC,EAAE;gBAC3FC,MAAQ,EAAA,MAAA;gBACRC,OAAS,EAAA;oBACP,cAAgB,EAAA;AAClB,iBAAA;gBACAC,IAAMC,EAAAA,IAAAA,CAAKC,SAAS,CAAC;AACnBrB,oBAAAA,KAAAA;oBACAsB,QAAUvB,EAAAA,SAAAA;AACVwB,oBAAAA,UAAAA,EAAYC,QAAQ,CAACpB,QAAAA,CAAAA;oBACrBqB,OAAS,EAAA;AACPhC,wBAAAA,IAAAA,EAAMkB,cAAce,SAAYjC,GAAAA,IAAAA;AAChCI,wBAAAA,SAAAA,EAAWc,cAAce,SAAY7B,GAAAA;AACvC;AACF,iBAAA;AACF,aAAA,CAAA;YAEAZ,kBAAmB,CAAA;gBACjB0C,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAASrC,aAAc,CAAA;oBACrBV,EAAI,EAAA,8CAAA;oBACJC,cAAgB,EAAA;AAClB,iBAAA;AACF,aAAA,CAAA;YACAO,QAAS,CAAA,GAAA,CAAA;AACX,SAAA,CAAE,OAAOwC,GAAK,EAAA;;AAEd;AACF,KAAA;AAEA,IAAA,qBACEC,cAACC,CAAAA,2CAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,UAAW,EAAA,eAAA;;8BACfJ,cAACK,CAAAA,mCAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAH,eAACI,CAAAA,MAAAA,EAAAA;wBAAKC,QAAU,EAAA,CAACC,CAAM7B,GAAAA,YAAAA,CAAa6B,CAAG,EAAA,KAAA,CAAA;;0CACrCN,eAACO,CAAAA,iBAAAA,EAAAA;gCAAKC,SAAU,EAAA,QAAA;gCAASC,aAAe,EAAA,CAAA;;kDACtCX,cAACY,CAAAA,wBAAAA,EAAAA,EAAAA,CAAAA;kDACDZ,cAACa,CAAAA,gBAAAA,EAAAA;wCAAIC,UAAY,EAAA,CAAA;wCAAGH,aAAe,EAAA,CAAA;wCAAGI,KAAO,EAAA,CAAC,KAAK,CAAC;AAClD,wCAAA,QAAA,gBAAAf,cAACgB,CAAAA,uBAAAA,EAAAA;4CAAWC,SAAU,EAAA,QAAA;4CAASC,OAAQ,EAAA,OAAA;4CAAQC,GAAI,EAAA,IAAA;4CAAKpE,EAAG,EAAA,eAAA;sDACxDU,aAAc,CAAA;gDACbV,EAAI,EAAA,eAAA;gDACJC,cAAgB,EAAA;AAClB,6CAAA;;;;;0CAINkD,eAACO,CAAAA,iBAAAA,EAAAA;gCAAKC,SAAU,EAAA,QAAA;gCAASU,UAAW,EAAA,SAAA;gCAAUC,GAAK,EAAA,CAAA;;AACjD,kDAAAnB,eAAA,CAACoB,mBAAMC,IAAI,EAAA;wCAACC,IAAK,EAAA,SAAA;;AACf,0DAAAxB,cAAA,CAACsB,mBAAMG,KAAK,EAAA;0DACThE,aAAc,CAAA;oDACbV,EAAI,EAAA,yBAAA;oDACJC,cAAgB,EAAA;AAClB,iDAAA;;0DAEFgD,cAAC0B,CAAAA,yBAAAA,EAAAA;gDAAaC,QAAU,EAAA,CAAC1E,QAAUW,OAAQX,CAAAA,KAAAA,CAAAA;gDAAQA,KAAOU,EAAAA,IAAAA;0DACvDd,OAAQ+E,CAAAA,GAAG,CAAC,CAAC,EAAE9E,SAAS,EAAEG,KAAK,EAAE,iBAChC+C,cAAC6B,CAAAA,+BAAAA,EAAAA;wDAA+B5E,KAAOA,EAAAA,KAAAA;kEACpCQ,aAAcX,CAAAA,SAAAA;AADQG,qDAAAA,EAAAA,KAAAA,CAAAA;;;;oCAM9ByB,OACC,kBAAAwB,eAAA,CAACoB,mBAAMC,IAAI,EAAA;wCAACC,IAAK,EAAA,OAAA;;AACf,0DAAAxB,cAAA,CAACsB,mBAAMG,KAAK,EAAA;0DACThE,aAAc,CAAA;oDAAEV,EAAI,EAAA,eAAA;oDAAiBC,cAAgB,EAAA;AAAQ,iDAAA;;0DAEhEgD,cAAC8B,CAAAA,sBAAAA,EAAAA;gDACCjC,IAAK,EAAA,MAAA;gDACL5C,KAAOc,EAAAA,SAAAA;AACP4D,gDAAAA,QAAAA,EAAU,CAACnB,CAAMxC,GAAAA,YAAAA,CAAawC,CAAEuB,CAAAA,MAAM,CAAC9E,KAAK;;;;kDAIlD+C,cAACgC,CAAAA,mBAAAA,EAAAA;wCAAOnC,IAAK,EAAA,QAAA;wCAASoC,IAAK,EAAA,GAAA;wCAAIC,SAAS,EAAA,IAAA;AAACC,wCAAAA,QAAAA,EAAU,CAACxE,IAAAA;kDACjDF,aAAc,CAAA;4CAAEV,EAAI,EAAA,eAAA;4CAAiBC,cAAgB,EAAA;AAAS,yCAAA;;;;;;;8BAKvEgD,cAACS,CAAAA,iBAAAA,EAAAA;oBAAK2B,cAAe,EAAA,QAAA;AACnB,oBAAA,QAAA,gBAAApC,cAACa,CAAAA,gBAAAA,EAAAA;wBAAIC,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAAd,cAACqC,CAAAA,uBAAAA,EAAAA;4BACCC,OAAS,EAAA,CAAC1D,KAA+CD,GAAAA,YAAAA,CAAaC,KAAO,EAAA,IAAA,CAAA;sCAE5EnB,aAAc,CAAA;gCACbV,EAAI,EAAA,qBAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;;;;;;AAOd;AAEA,MAAMuF,kBAAqB,GAAA,IAAA;AACzB,IAAA,qBACEvC,cAACwC,CAAAA,yBAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAxC,cAAC9C,CAAAA,WAAAA,EAAAA,EAAAA;;AAGP;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput value={otherRole} onChange={(e) => setOtherRole(e.target.value)} />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UseCasePage.mjs","sources":["../../../../../admin/src/pages/UseCasePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n Main,\n SingleSelectOption,\n SingleSelect,\n TextButton,\n TextInput,\n Typography,\n Field,\n} from '@strapi/design-system';\nimport { parse } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PrivateRoute } from '../components/PrivateRoute';\nimport { Logo } from '../components/UnauthenticatedLogo';\nimport { useAuth } from '../features/Auth';\nimport { useNotification } from '../features/Notifications';\nimport { LayoutContent, UnauthenticatedLayout } from '../layouts/UnauthenticatedLayout';\n\nexport const options = [\n {\n intlLabel: {\n id: 'Usecase.front-end',\n defaultMessage: 'Front-end developer',\n },\n value: 'front_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.back-end',\n defaultMessage: 'Back-end developer',\n },\n value: 'back_end_developer',\n },\n {\n intlLabel: {\n id: 'Usecase.full-stack',\n defaultMessage: 'Full-stack developer',\n },\n value: 'full_stack_developer',\n },\n {\n intlLabel: {\n id: 'global.content-manager',\n defaultMessage: 'Content Manager',\n },\n value: 'content_manager',\n },\n {\n intlLabel: {\n id: 'Usecase.content-creator',\n defaultMessage: 'Content Creator',\n },\n value: 'content_creator',\n },\n {\n intlLabel: {\n id: 'Usecase.other',\n defaultMessage: 'Other',\n },\n value: 'other',\n },\n];\n\nconst UseCasePage = () => {\n const { toggleNotification } = useNotification();\n const location = useLocation();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const [role, setRole] = React.useState<string | number | null>(null);\n const [otherRole, setOtherRole] = React.useState('');\n\n const { firstname, email } = useAuth('UseCasePage', (state) => state.user) ?? {};\n const { hasAdmin } = parse(location.search, { ignoreQueryPrefix: true });\n const isOther = role === 'other';\n\n const handleSubmit = async (event: React.FormEvent, skipPersona: boolean) => {\n event.preventDefault();\n try {\n await fetch(`${process.env.STRAPI_ANALYTICS_URL || 'https://analytics.strapi.io'}/register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n email,\n username: firstname,\n firstAdmin: Boolean(!hasAdmin),\n persona: {\n role: skipPersona ? undefined : role,\n otherRole: skipPersona ? undefined : otherRole,\n },\n }),\n });\n\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'Usecase.notification.success.project-created',\n defaultMessage: 'Project has been successfully created',\n }),\n });\n navigate('/');\n } catch (err) {\n // Silent\n }\n };\n\n return (\n <UnauthenticatedLayout>\n <Main labelledBy=\"usecase-title\">\n <LayoutContent>\n <form onSubmit={(e) => handleSubmit(e, false)}>\n <Flex direction=\"column\" paddingBottom={7}>\n <Logo />\n <Box paddingTop={6} paddingBottom={1} width={`25rem`}>\n <Typography textAlign=\"center\" variant=\"alpha\" tag=\"h1\" id=\"usecase-title\">\n {formatMessage({\n id: 'Usecase.title',\n defaultMessage: 'Tell us a bit more about yourself',\n })}\n </Typography>\n </Box>\n </Flex>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Field.Root name=\"usecase\">\n <Field.Label>\n {formatMessage({\n id: 'Usecase.input.work-type',\n defaultMessage: 'What type of work do you do?',\n })}\n </Field.Label>\n <SingleSelect onChange={(value) => setRole(value)} value={role}>\n {options.map(({ intlLabel, value }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n </Field.Root>\n {isOther && (\n <Field.Root name=\"other\">\n <Field.Label>\n {formatMessage({ id: 'Usecase.other', defaultMessage: 'Other' })}\n </Field.Label>\n <TextInput\n type=\"text\"\n value={otherRole}\n onChange={(e) => setOtherRole(e.target.value)}\n />\n </Field.Root>\n )}\n <Button type=\"submit\" size=\"L\" fullWidth disabled={!role}>\n {formatMessage({ id: 'global.finish', defaultMessage: 'Finish' })}\n </Button>\n </Flex>\n </form>\n </LayoutContent>\n <Flex justifyContent=\"center\">\n <Box paddingTop={4}>\n <TextButton\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => handleSubmit(event, true)}\n >\n {formatMessage({\n id: 'Usecase.button.skip',\n defaultMessage: 'Skip this question',\n })}\n </TextButton>\n </Box>\n </Flex>\n </Main>\n </UnauthenticatedLayout>\n );\n};\n\nconst PrivateUseCasePage = () => {\n return (\n <PrivateRoute>\n <UseCasePage />\n </PrivateRoute>\n );\n};\n\nexport { PrivateUseCasePage, UseCasePage };\n"],"names":["options","intlLabel","id","defaultMessage","value","UseCasePage","toggleNotification","useNotification","location","useLocation","navigate","useNavigate","formatMessage","useIntl","role","setRole","React","useState","otherRole","setOtherRole","firstname","email","useAuth","state","user","hasAdmin","parse","search","ignoreQueryPrefix","isOther","handleSubmit","event","skipPersona","preventDefault","fetch","process","env","STRAPI_ANALYTICS_URL","method","headers","body","JSON","stringify","username","firstAdmin","Boolean","persona","undefined","type","message","err","_jsx","UnauthenticatedLayout","_jsxs","Main","labelledBy","LayoutContent","form","onSubmit","e","Flex","direction","paddingBottom","Logo","Box","paddingTop","width","Typography","textAlign","variant","tag","alignItems","gap","Field","Root","name","Label","SingleSelect","onChange","map","SingleSelectOption","TextInput","target","Button","size","fullWidth","disabled","justifyContent","TextButton","onClick","PrivateUseCasePage","PrivateRoute"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;
|
|
1
|
+
{"version":3,"file":"api.js","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage', 'AIFeatureConfig'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,eAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,wBAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA,SAAA;AAAW,QAAA;AAAkB,KAAA;IACnFC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA;
|
|
1
|
+
{"version":3,"file":"api.mjs","sources":["../../../../../admin/src/services/api.ts"],"sourcesContent":["import { createApi } from '@reduxjs/toolkit/query/react';\n\nimport { fetchBaseQuery } from '../utils/baseQuery';\n\n/**\n * @public\n * @description This is the redux toolkit api for the admin panel, users\n * should use a combination of `enhanceEndpoints` to add their TagTypes\n * to utilise in their `injectEndpoints` construction for automatic cache\n * re-validation. We specifically do not store any tagTypes by default leaving\n * the API surface as small as possible. None of the data-fetching looks for the\n * StrapiApp are stored here either.\n */\nconst adminApi = createApi({\n reducerPath: 'adminApi',\n baseQuery: fetchBaseQuery(),\n tagTypes: ['GuidedTourMeta', 'HomepageKeyStatistics', 'AIUsage', 'AIFeatureConfig'],\n endpoints: () => ({}),\n});\n\nexport { adminApi };\n"],"names":["adminApi","createApi","reducerPath","baseQuery","fetchBaseQuery","tagTypes","endpoints"],"mappings":";;;AAIA;;;;;;;;IASA,MAAMA,WAAWC,SAAU,CAAA;IACzBC,WAAa,EAAA,UAAA;IACbC,SAAWC,EAAAA,cAAAA,EAAAA;IACXC,QAAU,EAAA;AAAC,QAAA,gBAAA;AAAkB,QAAA,uBAAA;AAAyB,QAAA,SAAA;AAAW,QAAA;AAAkB,KAAA;IACnFC,SAAW,EAAA,KAAO,EAAC;AACrB,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":";;;;AAIA,MAAMA,gBAAAA,GAAmBC,YACtBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAW;AAC3B,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,KAAK,CAAuC;AAChEA,gBAAAA,KAAAA,EAAO,IAAM,mBAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAqCA,GAAAA,QAAAA,CAASC,IAAI;gBACtEC,YAAc,EAAA,CAACC,KAAKC,IAAS,GAAA;AACvBD,wBAAAA,GAAAA,GAAAA,EAAKE,IAAI,CAAC,EAAEC,EAAE,EAAE,IAAM;gCAAEC,IAAM,EAAA,UAAA;AAAqBD,gCAAAA;AAAG,6BAAA,MAAO,EAAE;AACnE,wBAAA;4BAAEC,IAAM,EAAA,UAAA;4BAAqBD,EAAI,EAAA;AAAO;AACzC;AACH,aAAA,CAAA;YACAE,WAAaZ,EAAAA,OAAAA,CAAQE,KAAK,CAA2D;AACnFA,gBAAAA,KAAAA,EAAO,CAACQ,
|
|
1
|
+
{"version":3,"file":"apiTokens.js","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiTokens.mjs","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":";;AAIA,MAAMA,gBAAAA,GAAmBC,QACtBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAW;AAC3B,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,KAAK,CAAuC;AAChEA,gBAAAA,KAAAA,EAAO,IAAM,mBAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAqCA,GAAAA,QAAAA,CAASC,IAAI;gBACtEC,YAAc,EAAA,CAACC,KAAKC,IAAS,GAAA;AACvBD,wBAAAA,GAAAA,GAAAA,EAAKE,IAAI,CAAC,EAAEC,EAAE,EAAE,IAAM;gCAAEC,IAAM,EAAA,UAAA;AAAqBD,gCAAAA;AAAG,6BAAA,MAAO,EAAE;AACnE,wBAAA;4BAAEC,IAAM,EAAA,UAAA;4BAAqBD,EAAI,EAAA;AAAO;AACzC;AACH,aAAA,CAAA;YACAE,WAAaZ,EAAAA,OAAAA,CAAQE,KAAK,CAA2D;AACnFA,gBAAAA,KAAAA,EAAO,CAACQ,
|
|
1
|
+
{"version":3,"file":"apiTokens.mjs","sources":["../../../../../admin/src/services/apiTokens.ts"],"sourcesContent":["import * as ApiToken from '../../../shared/contracts/api-token';\n\nimport { adminApi } from './api';\n\nconst apiTokensService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['ApiToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n getAPITokens: builder.query<ApiToken.List.Response['data'], void>({\n query: () => '/admin/api-tokens',\n transformResponse: (response: ApiToken.List.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'ApiToken' as const, id })) ?? []),\n { type: 'ApiToken' as const, id: 'LIST' },\n ],\n }),\n getAPIToken: builder.query<ApiToken.Get.Response['data'], ApiToken.Get.Params['id']>({\n query: (id) => `/admin/api-tokens/${id}`,\n transformResponse: (response: ApiToken.Get.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'ApiToken' as const, id }],\n }),\n createAPIToken: builder.mutation<\n ApiToken.Create.Response['data'],\n ApiToken.Create.Request['body']\n >({\n query: (body) => ({\n url: '/admin/api-tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: ApiToken.Create.Response) => response.data,\n invalidatesTags: [{ type: 'ApiToken' as const, id: 'LIST' }, 'HomepageKeyStatistics'],\n }),\n deleteAPIToken: builder.mutation<\n ApiToken.Revoke.Response['data'],\n ApiToken.Revoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: ApiToken.Revoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [\n { type: 'ApiToken' as const, id },\n 'HomepageKeyStatistics',\n ],\n }),\n updateAPIToken: builder.mutation<\n ApiToken.Update.Response['data'],\n ApiToken.Update.Params & ApiToken.Update.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/api-tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: ApiToken.Update.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'ApiToken' as const, id }],\n }),\n }),\n });\n\nconst {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n} = apiTokensService;\n\nexport {\n useGetAPITokensQuery,\n useGetAPITokenQuery,\n useCreateAPITokenMutation,\n useDeleteAPITokenMutation,\n useUpdateAPITokenMutation,\n};\n"],"names":["apiTokensService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","getAPITokens","query","transformResponse","response","data","providesTags","res","_err","map","id","type","getAPIToken","createAPIToken","mutation","body","url","method","invalidatesTags","deleteAPIToken","_res","updateAPIToken","useGetAPITokensQuery","useGetAPITokenQuery","useCreateAPITokenMutation","useDeleteAPITokenMutation","useUpdateAPITokenMutation"],"mappings":";;AAIA,MAAMA,gBAAAA,GAAmBC,QACtBC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAW;AAC3B,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,YAAcD,EAAAA,OAAAA,CAAQE,KAAK,CAAuC;AAChEA,gBAAAA,KAAAA,EAAO,IAAM,mBAAA;gBACbC,iBAAmB,EAAA,CAACC,QAAqCA,GAAAA,QAAAA,CAASC,IAAI;gBACtEC,YAAc,EAAA,CAACC,KAAKC,IAAS,GAAA;AACvBD,wBAAAA,GAAAA,GAAAA,EAAKE,IAAI,CAAC,EAAEC,EAAE,EAAE,IAAM;gCAAEC,IAAM,EAAA,UAAA;AAAqBD,gCAAAA;AAAG,6BAAA,MAAO,EAAE;AACnE,wBAAA;4BAAEC,IAAM,EAAA,UAAA;4BAAqBD,EAAI,EAAA;AAAO;AACzC;AACH,aAAA,CAAA;YACAE,WAAaZ,EAAAA,OAAAA,CAAQE,KAAK,CAA2D;AACnFA,gBAAAA,KAAAA,EAAO,CAACQ,EAAAA,GAAO,CAAC,kBAAkB,EAAEA,EAAI,CAAA,CAAA;gBACxCP,iBAAmB,EAAA,CAACC,QAAoCA,GAAAA,QAAAA,CAASC,IAAI;gBACrEC,YAAc,EAAA,CAACC,GAAKC,EAAAA,IAAAA,EAAME,EAAO,GAAA;AAAC,wBAAA;4BAAEC,IAAM,EAAA,UAAA;AAAqBD,4BAAAA;AAAG;AAAE;AACtE,aAAA,CAAA;YACAG,cAAgBb,EAAAA,OAAAA,CAAQc,QAAQ,CAG9B;gBACAZ,KAAO,EAAA,CAACa,QAAU;wBAChBC,GAAK,EAAA,mBAAA;wBACLC,MAAQ,EAAA,MAAA;wBACRZ,IAAMU,EAAAA;qBACR,CAAA;gBACAZ,iBAAmB,EAAA,CAACC,QAAuCA,GAAAA,QAAAA,CAASC,IAAI;gBACxEa,eAAiB,EAAA;AAAC,oBAAA;wBAAEP,IAAM,EAAA,UAAA;wBAAqBD,EAAI,EAAA;AAAO,qBAAA;AAAG,oBAAA;AAAwB;AACvF,aAAA,CAAA;YACAS,cAAgBnB,EAAAA,OAAAA,CAAQc,QAAQ,CAG9B;gBACAZ,KAAO,EAAA,CAACQ,MAAQ;wBACdM,GAAK,EAAA,CAAC,kBAAkB,EAAEN,EAAI,CAAA,CAAA;wBAC9BO,MAAQ,EAAA;qBACV,CAAA;gBACAd,iBAAmB,EAAA,CAACC,QAAuCA,GAAAA,QAAAA,CAASC,IAAI;gBACxEa,eAAiB,EAAA,CAACE,IAAMZ,EAAAA,IAAAA,EAAME,EAAO,GAAA;AACnC,wBAAA;4BAAEC,IAAM,EAAA,UAAA;AAAqBD,4BAAAA;AAAG,yBAAA;AAChC,wBAAA;AACD;AACH,aAAA,CAAA;YACAW,cAAgBrB,EAAAA,OAAAA,CAAQc,QAAQ,CAG9B;AACAZ,gBAAAA,KAAAA,EAAO,CAAC,EAAEQ,EAAE,EAAE,GAAGK,IAAAA,EAAM,IAAM;wBAC3BC,GAAK,EAAA,CAAC,kBAAkB,EAAEN,EAAI,CAAA,CAAA;wBAC9BO,MAAQ,EAAA,KAAA;wBACRZ,IAAMU,EAAAA;qBACR,CAAA;gBACAZ,iBAAmB,EAAA,CAACC,QAAuCA,GAAAA,QAAAA,CAASC,IAAI;AACxEa,gBAAAA,eAAAA,EAAiB,CAACE,IAAMZ,EAAAA,IAAAA,EAAM,EAAEE,EAAE,EAAE,GAAK;AAAC,wBAAA;4BAAEC,IAAM,EAAA,UAAA;AAAqBD,4BAAAA;AAAG;AAAE;AAC9E,aAAA;SACF;AACF,CAAA,CAAA;AAEI,MAAA,EACJY,oBAAoB,EACpBC,mBAAmB,EACnBC,yBAAyB,EACzBC,yBAAyB,EACzBC,yBAAyB,EAC1B,GAAGhC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferTokens.js","sources":["../../../../../admin/src/services/transferTokens.ts"],"sourcesContent":["import * as TransferTokens from '../../../shared/contracts/transfer';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['TransferToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n regenerateToken: builder.mutation<TransferTokens.TokenRegenerate.Response['data'], string>({\n query: (url) => ({\n method: 'POST',\n url: `${url}/regenerate`,\n }),\n transformResponse: (response: TransferTokens.TokenRegenerate.Response) => response.data,\n }),\n getTransferTokens: builder.query<TransferTokens.TokenList.Response['data'], void>({\n query: () => ({\n url: '/admin/transfer/tokens',\n method: 'GET',\n }),\n transformResponse: (response: TransferTokens.TokenList.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'TransferToken' as const, id })) ?? []),\n { type: 'TransferToken' as const, id: 'LIST' },\n ],\n }),\n getTransferToken: builder.query<\n TransferTokens.TokenGetById.Response['data'],\n TransferTokens.TokenGetById.Params['id']\n >({\n query: (id) => `/admin/transfer/tokens/${id}`,\n transformResponse: (response: TransferTokens.TokenGetById.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'TransferToken' as const, id }],\n }),\n createTransferToken: builder.mutation<\n TransferTokens.TokenCreate.Response['data'],\n TransferTokens.TokenCreate.Request['body']\n >({\n query: (body) => ({\n url: '/admin/transfer/tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: TransferTokens.TokenCreate.Response) => response.data,\n invalidatesTags: [{ type: 'TransferToken' as const, id: 'LIST' }],\n }),\n deleteTransferToken: builder.mutation<\n TransferTokens.TokenRevoke.Response['data'],\n TransferTokens.TokenRevoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/transfer/tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: TransferTokens.TokenRevoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'TransferToken' as const, id }],\n }),\n updateTransferToken: builder.mutation<\n TransferTokens.TokenUpdate.Response['data'],\n TransferTokens.TokenUpdate.Params & TransferTokens.TokenUpdate.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/transfer/tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: TransferTokens.TokenUpdate.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'TransferToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useGetTransferTokensQuery,\n useGetTransferTokenQuery,\n useCreateTransferTokenMutation,\n useDeleteTransferTokenMutation,\n useUpdateTransferTokenMutation,\n useRegenerateTokenMutation,\n} = transferTokenService;\n\nexport {\n useGetTransferTokensQuery,\n useGetTransferTokenQuery,\n useCreateTransferTokenMutation,\n useDeleteTransferTokenMutation,\n useUpdateTransferTokenMutation,\n useRegenerateTokenMutation,\n};\n"],"names":["transferTokenService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","regenerateToken","mutation","query","url","method","transformResponse","response","data","getTransferTokens","providesTags","res","_err","map","id","type","getTransferToken","createTransferToken","body","invalidatesTags","deleteTransferToken","_res","updateTransferToken","overrideExisting","useGetTransferTokensQuery","useGetTransferTokenQuery","useCreateTransferTokenMutation","useDeleteTransferTokenMutation","useUpdateTransferTokenMutation","useRegenerateTokenMutation"],"mappings":";;;;AAIA,MAAMA,oBAAAA,GAAuBC,YAC1BC,CAAAA,gBAAgB,CAAC;IAChBC,WAAa,EAAA;AAAC,QAAA;AAAgB;AAChC,CAAA,CAAA,CACCC,eAAe,CAAC;IACfC,SAAW,EAAA,CAACC,WAAa;YACvBC,eAAiBD,EAAAA,OAAAA,CAAQE,QAAQ,CAA0D;gBACzFC,KAAO,EAAA,CAACC,OAAS;wBACfC,MAAQ,EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"transferTokens.js","sources":["../../../../../admin/src/services/transferTokens.ts"],"sourcesContent":["import * as TransferTokens from '../../../shared/contracts/transfer';\n\nimport { adminApi } from './api';\n\nconst transferTokenService = adminApi\n .enhanceEndpoints({\n addTagTypes: ['TransferToken'],\n })\n .injectEndpoints({\n endpoints: (builder) => ({\n regenerateToken: builder.mutation<TransferTokens.TokenRegenerate.Response['data'], string>({\n query: (url) => ({\n method: 'POST',\n url: `${url}/regenerate`,\n }),\n transformResponse: (response: TransferTokens.TokenRegenerate.Response) => response.data,\n }),\n getTransferTokens: builder.query<TransferTokens.TokenList.Response['data'], void>({\n query: () => ({\n url: '/admin/transfer/tokens',\n method: 'GET',\n }),\n transformResponse: (response: TransferTokens.TokenList.Response) => response.data,\n providesTags: (res, _err) => [\n ...(res?.map(({ id }) => ({ type: 'TransferToken' as const, id })) ?? []),\n { type: 'TransferToken' as const, id: 'LIST' },\n ],\n }),\n getTransferToken: builder.query<\n TransferTokens.TokenGetById.Response['data'],\n TransferTokens.TokenGetById.Params['id']\n >({\n query: (id) => `/admin/transfer/tokens/${id}`,\n transformResponse: (response: TransferTokens.TokenGetById.Response) => response.data,\n providesTags: (res, _err, id) => [{ type: 'TransferToken' as const, id }],\n }),\n createTransferToken: builder.mutation<\n TransferTokens.TokenCreate.Response['data'],\n TransferTokens.TokenCreate.Request['body']\n >({\n query: (body) => ({\n url: '/admin/transfer/tokens',\n method: 'POST',\n data: body,\n }),\n transformResponse: (response: TransferTokens.TokenCreate.Response) => response.data,\n invalidatesTags: [{ type: 'TransferToken' as const, id: 'LIST' }],\n }),\n deleteTransferToken: builder.mutation<\n TransferTokens.TokenRevoke.Response['data'],\n TransferTokens.TokenRevoke.Params['id']\n >({\n query: (id) => ({\n url: `/admin/transfer/tokens/${id}`,\n method: 'DELETE',\n }),\n transformResponse: (response: TransferTokens.TokenRevoke.Response) => response.data,\n invalidatesTags: (_res, _err, id) => [{ type: 'TransferToken' as const, id }],\n }),\n updateTransferToken: builder.mutation<\n TransferTokens.TokenUpdate.Response['data'],\n TransferTokens.TokenUpdate.Params & TransferTokens.TokenUpdate.Request['body']\n >({\n query: ({ id, ...body }) => ({\n url: `/admin/transfer/tokens/${id}`,\n method: 'PUT',\n data: body,\n }),\n transformResponse: (response: TransferTokens.TokenUpdate.Response) => response.data,\n invalidatesTags: (_res, _err, { id }) => [{ type: 'TransferToken' as const, id }],\n }),\n }),\n overrideExisting: false,\n });\n\nconst {\n useGetTransferTokensQuery,\n useGetTransferTokenQuery,\n useCreateTransferTokenMutation,\n useDeleteTransferTokenMutation,\n useUpdateTransferTokenMutation,\n useRegenerateTokenMutation,\n} = transferTokenService;\n\nexport {\n useGetTransferTokensQuery,\n useGetTransferTokenQuery,\n useCreateTransferTokenMutation,\n useDeleteTransferTokenMutation,\n useUpdateTransferTokenMutation,\n useRegenerateTokenMutation,\n};\n"],"names":["transferTokenService","adminApi","enhanceEndpoints","addTagTypes","injectEndpoints","endpoints","builder","regenerateToken","mutation","query","url","method","transformResponse","response","data","getTransferTokens","providesTags","res","_err","map","id","type","getTransferToken","createTransferToken","body","invalidatesTags","deleteTransferToken","_res","updateTransferToken","overrideExisting","useGetTransferTokensQuery","useGetTransferTokenQuery","useCreateTransferTokenMutation","useDeleteTransferTokenMutation","useUpdateTransferTokenMutation","useRegenerateTokenMutation"],"mappings":"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"}
|