@strapi/admin 4.10.1 → 4.10.2

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.
Files changed (127) hide show
  1. package/admin/src/components/AuthenticatedApp/index.js +19 -24
  2. package/admin/src/components/DragLayer/DragLayer.js +53 -0
  3. package/admin/src/components/DragLayer/index.js +1 -0
  4. package/admin/src/components/LeftMenu/index.js +2 -2
  5. package/admin/src/components/Providers/index.js +11 -7
  6. package/admin/src/content-manager/contexts/index.js +0 -1
  7. package/admin/src/content-manager/hooks/index.js +0 -1
  8. package/admin/src/content-manager/hooks/useLazyComponents/index.js +7 -3
  9. package/admin/src/content-manager/hooks/useRelation/useRelation.js +1 -3
  10. package/admin/src/content-manager/pages/{ListSettingsView/components/CardPreview.js → App/components/CardDragPreview.js} +28 -28
  11. package/admin/src/content-manager/pages/App/components/ComponentDragPreview.js +75 -0
  12. package/admin/src/content-manager/{components/DragLayer → pages/App/components}/RelationDragPreview.js +7 -4
  13. package/admin/src/content-manager/pages/App/index.js +39 -2
  14. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  15. package/admin/src/content-manager/pages/EditSettingsView/components/DisplayedFieldButton.js +1 -1
  16. package/admin/src/content-manager/pages/EditSettingsView/components/DynamicZoneList.js +1 -1
  17. package/admin/src/content-manager/pages/EditSettingsView/components/FormModal.js +1 -1
  18. package/admin/src/content-manager/{components → pages/EditSettingsView/components}/LayoutDndProvider/index.js +3 -4
  19. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -1
  20. package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +1 -1
  21. package/admin/src/content-manager/pages/EditSettingsView/components/RowItemsLayout.js +1 -1
  22. package/admin/src/content-manager/pages/EditSettingsView/hooks/useLayoutDnd.js +6 -0
  23. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -1
  24. package/admin/src/content-manager/pages/ListSettingsView/components/DraggableCard.js +6 -6
  25. package/admin/src/hooks/useMenu/index.js +2 -2
  26. package/admin/src/hooks/useReleaseNotification/index.js +2 -2
  27. package/admin/src/hooks/useSettingsMenu/index.js +2 -2
  28. package/admin/src/pages/Admin/Onboarding/index.js +2 -2
  29. package/admin/src/pages/App/index.js +2 -2
  30. package/admin/src/pages/HomePage/SocialLinks.js +2 -2
  31. package/admin/src/pages/MarketplacePage/index.js +2 -2
  32. package/admin/src/pages/ProfilePage/index.js +2 -2
  33. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +2 -2
  34. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/Permissions/utils/updateValues.js +3 -3
  35. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +2 -2
  36. package/admin/src/translations/fr.json +1 -1
  37. package/build/{5563.905daa13.chunk.js → 5563.986609ed.chunk.js} +2 -2
  38. package/build/6858.56d4d528.chunk.js +50 -0
  39. package/build/{7259.b7d00cea.chunk.js → 7259.7a48aa2f.chunk.js} +1 -1
  40. package/build/7725.1633e06f.chunk.js +213 -0
  41. package/build/9703.e590889d.chunk.js +1 -0
  42. package/build/Admin-authenticatedApp.a8373103.chunk.js +79 -0
  43. package/build/{Admin_InternalErrorPage.15c6bf07.chunk.js → Admin_InternalErrorPage.96ceaae1.chunk.js} +1 -1
  44. package/build/{Admin_homePage.f9309c6d.chunk.js → Admin_homePage.9f7c0bb1.chunk.js} +5 -5
  45. package/build/{Admin_marketplace.56bc1008.chunk.js → Admin_marketplace.a60cde15.chunk.js} +5 -5
  46. package/build/{Admin_pluginsPage.f6b52ee9.chunk.js → Admin_pluginsPage.9e6fa51c.chunk.js} +1 -1
  47. package/build/{Admin_profilePage.9112cffc.chunk.js → Admin_profilePage.1b337b73.chunk.js} +2 -2
  48. package/build/{Admin_settingsPage.4604a16c.chunk.js → Admin_settingsPage.5e045f42.chunk.js} +2 -2
  49. package/build/{Upload_ConfigureTheView.eaaec495.chunk.js → Upload_ConfigureTheView.4fc648b5.chunk.js} +1 -1
  50. package/build/admin-app.9bfe4ec7.chunk.js +63 -0
  51. package/build/{admin-edit-roles-page.8a4063f7.chunk.js → admin-edit-roles-page.d0c9497b.chunk.js} +24 -24
  52. package/build/{admin-edit-users.7e14d85f.chunk.js → admin-edit-users.ba27c532.chunk.js} +2 -2
  53. package/build/{admin-roles-list.329c1f63.chunk.js → admin-roles-list.c759daa3.chunk.js} +1 -1
  54. package/build/{admin-users.d02de059.chunk.js → admin-users.ad5dd832.chunk.js} +2 -2
  55. package/build/{api-tokens-create-page.97595e12.chunk.js → api-tokens-create-page.973d2816.chunk.js} +1 -1
  56. package/build/{api-tokens-edit-page.cd36e30e.chunk.js → api-tokens-edit-page.29725c5e.chunk.js} +1 -1
  57. package/build/{api-tokens-list-page.6757c7b9.chunk.js → api-tokens-list-page.66c4fbdd.chunk.js} +2 -2
  58. package/build/{audit-logs-settings-page.19d90bda.chunk.js → audit-logs-settings-page.45cb4fb5.chunk.js} +1 -1
  59. package/build/content-manager.d28eb183.chunk.js +1111 -0
  60. package/build/{content-type-builder-list-view.9c2c020c.chunk.js → content-type-builder-list-view.5ff685ec.chunk.js} +1 -1
  61. package/build/{content-type-builder.68af11d2.chunk.js → content-type-builder.4737a30c.chunk.js} +3 -3
  62. package/build/{email-settings-page.1095e1ab.chunk.js → email-settings-page.dc07d518.chunk.js} +1 -1
  63. package/build/{fr-json.5947cf63.chunk.js → fr-json.73494bf5.chunk.js} +1 -1
  64. package/build/{i18n-settings-page.d95b32df.chunk.js → i18n-settings-page.8219dd99.chunk.js} +1 -1
  65. package/build/index.html +1 -1
  66. package/build/main.41970e4c.js +2597 -0
  67. package/build/review-workflows-settings.7c0b4e73.chunk.js +61 -0
  68. package/build/{runtime~main.d4c8d6a2.js → runtime~main.c20330f1.js} +1 -1
  69. package/build/{sso-settings-page.1dd4886e.chunk.js → sso-settings-page.f44d95d8.chunk.js} +1 -1
  70. package/build/{transfer-tokens-create-page.ec2ca215.chunk.js → transfer-tokens-create-page.170acee6.chunk.js} +1 -1
  71. package/build/{transfer-tokens-edit-page.22bf28e5.chunk.js → transfer-tokens-edit-page.6cf23295.chunk.js} +1 -1
  72. package/build/{transfer-tokens-list-page.cf8c77f2.chunk.js → transfer-tokens-list-page.c3fec4c1.chunk.js} +2 -2
  73. package/build/{upload-settings.945fdcfa.chunk.js → upload-settings.dd2d987c.chunk.js} +1 -1
  74. package/build/{upload.a86b1054.chunk.js → upload.c8479232.chunk.js} +1 -1
  75. package/build/{users-advanced-settings-page.5b5a9baa.chunk.js → users-advanced-settings-page.c36cfd59.chunk.js} +1 -1
  76. package/build/{users-email-settings-page.e5506eb4.chunk.js → users-email-settings-page.2716ce8e.chunk.js} +5 -5
  77. package/build/{users-providers-settings-page.e32089c2.chunk.js → users-providers-settings-page.0d6304a5.chunk.js} +1 -1
  78. package/build/{users-roles-settings-page.20656f92.chunk.js → users-roles-settings-page.eeb3a339.chunk.js} +1 -1
  79. package/build/{webhook-edit-page.a3b62049.chunk.js → webhook-edit-page.f4db86f3.chunk.js} +2 -2
  80. package/build/{webhook-list-page.ca38eeef.chunk.js → webhook-list-page.30d73114.chunk.js} +1 -1
  81. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js +11 -5
  82. package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +7 -3
  83. package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +16 -2
  84. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +34 -25
  85. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/actions/index.js +11 -0
  86. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview/StageDragPreview.js +45 -0
  87. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/StageDragPreview/index.js +1 -0
  88. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +287 -63
  89. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/OptionColor/OptionColor.js +27 -0
  90. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/OptionColor/index.js +1 -0
  91. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/SingleValueColor/SingleValueColor.js +31 -0
  92. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/components/SingleValueColor/index.js +1 -0
  93. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stages.js +2 -1
  94. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/constants.js +26 -0
  95. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +36 -2
  96. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/colors.js +33 -0
  97. package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/utils/getWorkflowValidationSchema.js +9 -0
  98. package/ee/server/constants/workflows.js +1 -0
  99. package/ee/server/content-types/workflow-stage/index.js +7 -0
  100. package/ee/server/controllers/authentication/middlewares.js +1 -1
  101. package/ee/server/migrations/review-workflows-stages-color.js +20 -0
  102. package/ee/server/register.js +2 -0
  103. package/ee/server/services/review-workflows/review-workflows.js +1 -1
  104. package/ee/server/services/review-workflows/stages.js +1 -1
  105. package/ee/server/utils/persisted-tables.js +3 -0
  106. package/ee/server/validation/review-workflows.js +7 -1
  107. package/jest.config.front.js +1 -0
  108. package/package.json +10 -10
  109. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +0 -95
  110. package/admin/src/components/AutoReloadOverlayBlockerProvider/Overlay.js +0 -42
  111. package/admin/src/components/AutoReloadOverlayBlockerProvider/index.js +0 -99
  112. package/admin/src/components/Notifications/Notification/index.js +0 -159
  113. package/admin/src/components/Notifications/index.js +0 -46
  114. package/admin/src/components/Notifications/reducer.js +0 -47
  115. package/admin/src/components/OverlayBlocker/index.js +0 -67
  116. package/admin/src/content-manager/components/DragLayer/ComponentDragPreview.js +0 -83
  117. package/admin/src/content-manager/components/DragLayer/index.js +0 -85
  118. package/admin/src/content-manager/contexts/LayoutDnd.js +0 -5
  119. package/admin/src/content-manager/hooks/useCallbackRef.js +0 -23
  120. package/admin/src/content-manager/hooks/useLayoutDnd.js +0 -6
  121. package/admin/src/content-manager/pages/ListSettingsView/utils/ellipsisCardTitle.js +0 -7
  122. package/build/8694.6522968d.chunk.js +0 -247
  123. package/build/Admin-authenticatedApp.5562aedc.chunk.js +0 -79
  124. package/build/admin-app.014adc27.chunk.js +0 -110
  125. package/build/content-manager.84f81966.chunk.js +0 -1130
  126. package/build/main.841e0dcb.js +0 -2280
  127. package/build/review-workflows-settings.f7890c40.chunk.js +0 -106
@@ -6,8 +6,8 @@ import { getEmptyImage } from 'react-dnd-html5-backend';
6
6
  import { useIntl } from 'react-intl';
7
7
  import { Flex, Box, Typography } from '@strapi/design-system';
8
8
  import { Pencil, Cross, Drag } from '@strapi/icons';
9
- import CardPreview from './CardPreview';
10
- import ellipsisCardTitle from '../utils/ellipsisCardTitle';
9
+
10
+ import { CardDragPreview } from '../../App/components/CardDragPreview';
11
11
  import { getTrad, ItemTypes } from '../../../utils';
12
12
 
13
13
  const ActionButton = styled.button`
@@ -85,7 +85,6 @@ const DraggableCard = ({
85
85
  const dropRef = useRef(null);
86
86
  const [, forceRerenderAfterDnd] = useState(false);
87
87
  const editButtonRef = useRef();
88
- const cardEllipsisTitle = ellipsisCardTitle(labelField);
89
88
 
90
89
  const handleClickEditRow = () => {
91
90
  if (editButtonRef.current) {
@@ -93,6 +92,7 @@ const DraggableCard = ({
93
92
  }
94
93
  };
95
94
 
95
+ // TODO: this can be simplified a lot by using the useDragAndDrop() hook
96
96
  const [, drop] = useDrop({
97
97
  accept: ItemTypes.FIELD,
98
98
  hover(item, monitor) {
@@ -176,8 +176,8 @@ const DraggableCard = ({
176
176
 
177
177
  return (
178
178
  <FieldWrapper ref={refs ? refs.dropRef : null}>
179
- {isDragging && <CardPreview transparent labelField={cardEllipsisTitle} />}
180
- {!isDragging && isDraggingSibling && <CardPreview isSibling labelField={cardEllipsisTitle} />}
179
+ {isDragging && <CardDragPreview transparent labelField={labelField} />}
180
+ {!isDragging && isDraggingSibling && <CardDragPreview isSibling labelField={labelField} />}
181
181
 
182
182
  {!isDragging && !isDraggingSibling && (
183
183
  <FieldContainer
@@ -204,7 +204,7 @@ const DraggableCard = ({
204
204
  >
205
205
  <Drag />
206
206
  </DragButton>
207
- <Typography fontWeight="bold">{cardEllipsisTitle}</Typography>
207
+ <Typography fontWeight="bold">{labelField}</Typography>
208
208
  </Flex>
209
209
  <Flex paddingLeft={3}>
210
210
  <ActionButton
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useReducer, useRef } from 'react';
2
- import { useRBACProvider, useAppInfos, useStrapiApp } from '@strapi/helper-plugin';
2
+ import { useRBACProvider, useAppInfo, useStrapiApp } from '@strapi/helper-plugin';
3
3
  import getPluginSectionLinks from './utils/getPluginSectionLinks';
4
4
  import getGeneralLinks from './utils/getGeneralLinks';
5
5
  import reducer, { initialState } from './reducer';
@@ -7,7 +7,7 @@ import reducer, { initialState } from './reducer';
7
7
  const useMenu = () => {
8
8
  const [state, dispatch] = useReducer(reducer, initialState);
9
9
  const { allPermissions } = useRBACProvider();
10
- const { shouldUpdateStrapi } = useAppInfos();
10
+ const { shouldUpdateStrapi } = useAppInfo();
11
11
  const { menu } = useStrapiApp();
12
12
 
13
13
  // We are using a ref because we don't want our effect to have this in its dependencies array
@@ -1,10 +1,10 @@
1
1
  import { useEffect } from 'react';
2
- import { useAppInfos, useNotification } from '@strapi/helper-plugin';
2
+ import { useAppInfo, useNotification } from '@strapi/helper-plugin';
3
3
 
4
4
  const showUpdateNotif = !JSON.parse(localStorage.getItem('STRAPI_UPDATE_NOTIF'));
5
5
 
6
6
  const useReleaseNotification = () => {
7
- const { latestStrapiReleaseTag, shouldUpdateStrapi } = useAppInfos();
7
+ const { latestStrapiReleaseTag, shouldUpdateStrapi } = useAppInfo();
8
8
  const toggleNotification = useNotification();
9
9
 
10
10
  useEffect(() => {
@@ -1,12 +1,12 @@
1
1
  import { useEffect, useReducer } from 'react';
2
- import { hasPermissions, useRBACProvider, useStrapiApp, useAppInfos } from '@strapi/helper-plugin';
2
+ import { hasPermissions, useRBACProvider, useStrapiApp, useAppInfo } from '@strapi/helper-plugin';
3
3
 
4
4
  import reducer, { initialState } from './reducer';
5
5
  import init from './init';
6
6
 
7
7
  const useSettingsMenu = (noCheck = false) => {
8
8
  const { allPermissions: permissions } = useRBACProvider();
9
- const { shouldUpdateStrapi } = useAppInfos();
9
+ const { shouldUpdateStrapi } = useAppInfo();
10
10
  const { settings } = useStrapiApp();
11
11
 
12
12
  const [{ isLoading, menu }, dispatch] = useReducer(reducer, initialState, () =>
@@ -1,7 +1,7 @@
1
1
  import React, { useRef, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { useIntl } from 'react-intl';
4
- import { useAppInfos } from '@strapi/helper-plugin';
4
+ import { useAppInfo } from '@strapi/helper-plugin';
5
5
  import {
6
6
  Box,
7
7
  Button,
@@ -78,7 +78,7 @@ const Onboarding = () => {
78
78
  const triggerRef = useRef();
79
79
  const [isOpen, setIsOpen] = useState(false);
80
80
  const { formatMessage } = useIntl();
81
- const { communityEdition } = useAppInfos();
81
+ const { communityEdition } = useAppInfo();
82
82
 
83
83
  const handlePopoverVisibility = () => {
84
84
  setIsOpen((prev) => !prev);
@@ -13,7 +13,7 @@ import {
13
13
  useNotification,
14
14
  TrackingProvider,
15
15
  prefixFileUrlWithBackendUrl,
16
- useAppInfos,
16
+ useAppInfo,
17
17
  useFetchClient,
18
18
  } from '@strapi/helper-plugin';
19
19
  import { SkipToContent } from '@strapi/design-system';
@@ -39,7 +39,7 @@ function App() {
39
39
  isLoading: true,
40
40
  hasAdmin: false,
41
41
  });
42
- const appInfo = useAppInfos();
42
+ const appInfo = useAppInfo();
43
43
  const { get, post } = useFetchClient();
44
44
 
45
45
  const authRoutes = useMemo(() => {
@@ -6,7 +6,7 @@
6
6
  import React from 'react';
7
7
  import styled from 'styled-components';
8
8
  import { useIntl } from 'react-intl';
9
- import { useAppInfos } from '@strapi/helper-plugin';
9
+ import { useAppInfo } from '@strapi/helper-plugin';
10
10
  import { Typography, Box, Flex, Grid, GridItem } from '@strapi/design-system';
11
11
  import { Link, LinkButton } from '@strapi/design-system/v2';
12
12
  import { ExternalLink, Github, Discord, Reddit, Strapi, Twitter, Discourse } from '@strapi/icons';
@@ -131,7 +131,7 @@ const GridGap = styled(Grid)`
131
131
 
132
132
  const SocialLinks = () => {
133
133
  const { formatMessage } = useIntl();
134
- const { communityEdition } = useAppInfos();
134
+ const { communityEdition } = useAppInfo();
135
135
 
136
136
  const socialLinksExtended = [
137
137
  ...socialLinks,
@@ -6,7 +6,7 @@ import {
6
6
  useFocusWhenNavigate,
7
7
  useTracking,
8
8
  useNotification,
9
- useAppInfos,
9
+ useAppInfo,
10
10
  useQueryParams,
11
11
  } from '@strapi/helper-plugin';
12
12
  import {
@@ -43,7 +43,7 @@ const MarketPlacePage = () => {
43
43
  const [{ query }, setQuery] = useQueryParams();
44
44
  const debouncedSearch = useDebounce(query?.search, 500) || '';
45
45
 
46
- const { autoReload: isInDevelopmentMode, dependencies, useYarn, strapiVersion } = useAppInfos();
46
+ const { autoReload: isInDevelopmentMode, dependencies, useYarn, strapiVersion } = useAppInfo();
47
47
  const isOnline = useNavigatorOnLine();
48
48
 
49
49
  const npmPackageType = query?.npmPackageType || 'plugin';
@@ -4,7 +4,7 @@ import {
4
4
  Form,
5
5
  GenericInput,
6
6
  LoadingIndicatorPage,
7
- useAppInfos,
7
+ useAppInfo,
8
8
  useFocusWhenNavigate,
9
9
  useNotification,
10
10
  useOverlayBlocker,
@@ -65,7 +65,7 @@ const ProfilePage = () => {
65
65
  const [passwordConfirmShown, setPasswordConfirmShown] = useState(false);
66
66
  const [currentPasswordShown, setCurrentPasswordShown] = useState(false);
67
67
  const { changeLocale, localeNames } = useLocalesProvider();
68
- const { setUserDisplayName } = useAppInfos();
68
+ const { setUserDisplayName } = useAppInfo();
69
69
  const queryClient = useQueryClient();
70
70
  const { formatMessage } = useIntl();
71
71
  const { trackUsage } = useTracking();
@@ -2,7 +2,7 @@ import React, { useRef } from 'react';
2
2
  import { useQuery, useMutation, useQueryClient } from 'react-query';
3
3
  import { useIntl } from 'react-intl';
4
4
  import {
5
- useAppInfos,
5
+ useAppInfo,
6
6
  SettingsPageTitle,
7
7
  useFocusWhenNavigate,
8
8
  useNotification,
@@ -37,7 +37,7 @@ const ApplicationInfosPage = () => {
37
37
  const { formatMessage } = useIntl();
38
38
  const queryClient = useQueryClient();
39
39
  useFocusWhenNavigate();
40
- const appInfos = useAppInfos();
40
+ const appInfos = useAppInfo();
41
41
  const { latestStrapiReleaseTag, shouldUpdateStrapi, strapiVersion } = appInfos;
42
42
  const { updateProjectSettings } = useConfigurations();
43
43
 
@@ -8,18 +8,18 @@ import isObject from 'lodash/isObject';
8
8
  * of an object.
9
9
  * This utility is very helpful when dealing with parent<>children checkboxes
10
10
  */
11
- const updateValues = (obj, valueToSet) => {
11
+ const updateValues = (obj, valueToSet, isFieldUpdate = false) => {
12
12
  return Object.keys(obj).reduce((acc, current) => {
13
13
  const currentValue = obj[current];
14
14
 
15
- if (current === 'conditions') {
15
+ if (current === 'conditions' && !isFieldUpdate) {
16
16
  acc[current] = currentValue;
17
17
 
18
18
  return acc;
19
19
  }
20
20
 
21
21
  if (isObject(currentValue)) {
22
- return { ...acc, [current]: updateValues(currentValue, valueToSet) };
22
+ return { ...acc, [current]: updateValues(currentValue, valueToSet, current === 'fields') };
23
23
  }
24
24
 
25
25
  acc[current] = valueToSet;
@@ -10,7 +10,7 @@ import {
10
10
  GenericInput,
11
11
  SettingsPageTitle,
12
12
  auth,
13
- useAppInfos,
13
+ useAppInfo,
14
14
  useFocusWhenNavigate,
15
15
  useNotification,
16
16
  useOverlayBlocker,
@@ -46,7 +46,7 @@ const EditPage = ({ canUpdate }) => {
46
46
  params: { id },
47
47
  } = useRouteMatch('/settings/users/:id');
48
48
  const { push } = useHistory();
49
- const { setUserDisplayName } = useAppInfos();
49
+ const { setUserDisplayName } = useAppInfo();
50
50
  const toggleNotification = useNotification();
51
51
  const { lockApp, unlockApp } = useOverlayBlocker();
52
52
  useFocusWhenNavigate();
@@ -477,7 +477,7 @@
477
477
  "content-manager.components.DraggableCard.edit.field": "Modifier {item}",
478
478
  "content-manager.components.DraggableCard.move.field": "Déplacer {item}",
479
479
  "content-manager.components.DynamicTable.row-line": "ligne {number}",
480
- "content-manager.components.DynamicZone.ComponentPicker-label": "Choisir un compoosant",
480
+ "content-manager.components.DynamicZone.ComponentPicker-label": "Choisir un composant",
481
481
  "content-manager.components.DynamicZone.add-component": "Ajouter un composant à {componentName}",
482
482
  "content-manager.components.DynamicZone.delete-label": "Supprimer {name}",
483
483
  "content-manager.components.DynamicZone.error-message": "Le composant contient une ou des erreurs",
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5563],{30493:function(P,u,e){"use strict";e.d(u,{Z:function(){return s}});var t=e(32735),r=e(67879),n=e(60216),a=e.n(n),g=e(43383),i=e(66456),l=e(29439),h=e(82055),y=e(87933),A=e(41415),m=e(44647),x=e(67927);const p=({onRegenerate:T,idToRegenerate:D,backUrl:K,onError:U})=>{const{formatMessage:b}=(0,r.Z)(),[R,N]=(0,t.useState)(!1),{regenerateData:k,isLoadingConfirmation:H}=(0,x.rW)(K,D,T,U),Z=async()=>{k(),N(!1)};return t.createElement(t.Fragment,null,t.createElement(A.z,{startIcon:t.createElement(m.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>N(!0),name:"regenerate"},b({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(g.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(m.Z,null),isConfirmButtonLoading:H,isOpen:R,onToggleDialog:()=>N(!1),onConfirm:Z,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};p.defaultProps={onRegenerate(){},onError:void 0},p.propTypes={onRegenerate:a().func,idToRegenerate:a().oneOfType([a().number,a().string]).isRequired,backUrl:a().string.isRequired,onError:a().func};var o=p;const d=({title:T,token:D,setToken:K,canEditInputs:U,canRegenerate:b,isSubmitting:R,backUrl:N,regenerateUrl:k,onErrorRegenerate:H})=>{const{formatMessage:Z}=(0,r.Z)(),G=X=>{K({...D,accessKey:X})};return t.createElement(h.T,{title:D?.name||Z(T),primaryAction:U?t.createElement(y.k,{gap:2},b&&D?.id&&t.createElement(o,{backUrl:k,onRegenerate:G,idToRegenerate:D?.id,onError:H}),t.createElement(A.z,{disabled:R,loading:R,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},Z({id:"global.save",defaultMessage:"Save"}))):b&&D?.id&&t.createElement(o,{onRegenerate:G,idToRegenerate:D?.id,backUrl:k}),navigationAction:t.createElement(g.rU,{startIcon:t.createElement(l.Z,null),to:N},Z({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};d.propTypes={token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().oneOfType([a().number,a().string]),name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string}),canEditInputs:a().bool.isRequired,canRegenerate:a().bool.isRequired,setToken:a().func.isRequired,isSubmitting:a().bool.isRequired,backUrl:a().string.isRequired,title:a().shape({id:a().string,label:a().string}).isRequired,regenerateUrl:a().string.isRequired,onErrorRegenerate:a().func},d.defaultProps={token:void 0,onErrorRegenerate:void 0};var s=d},4321:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(80084),i=e(84967),l=e(49372),h=e(37944);const y=({token:A,errors:m,values:x,onChange:p,isCreating:o})=>{const{formatMessage:d}=(0,a.Z)();return t.createElement(t.Fragment,null,t.createElement(g.P,{name:"lifespan",label:d({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:x.lifespan!==null?x.lifespan:"0",error:m.lifespan?d(m.lifespan?.id?m.lifespan:{id:m.lifespan,defaultMessage:m.lifespan}):null,onChange:s=>{p({target:{name:"lifespan",value:s}})},required:!0,disabled:!o,placeholder:"Select"},t.createElement(i.W,{value:"604800000"},d({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(i.W,{value:"2592000000"},d({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(i.W,{value:"7776000000"},d({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(i.W,{value:"0"},d({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(l.Z,{variant:"pi",textColor:"neutral600"},!o&&`${d({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,h.IX)(A?.createdAt,parseInt(x.lifespan,10))}`))};y.propTypes={errors:n().shape({lifespan:n().string}),onChange:n().func.isRequired,values:n().shape({lifespan:n().oneOfType([n().number,n().string])}).isRequired,isCreating:n().bool.isRequired,token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},y.defaultProps={errors:{},token:{}},u.Z=y},93682:function(P,u,e){"use strict";var t=e(32735),r=e(67879),n=e(43383),a=e(50563),g=e(47765),i=e(11631),l=e(60216),h=e.n(l),y=e(59087),A=e.n(y);const m=({token:x,tokenType:p})=>{const{formatMessage:o}=(0,r.Z)(),d=(0,n.lm)(),{trackUsage:s}=(0,n.rS)(),T=(0,t.useRef)(s);return t.createElement(n.Y_,{endAction:x&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(y.CopyToClipboard,{onCopy:()=>{T.current("didCopyTokenKey",{tokenType:p}),d({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:x},t.createElement(a.h,{label:o({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(g.Z,null),style:{padding:0,height:"1rem"}}))),title:x||o({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:o(x?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(i.Z,null),iconBackground:"neutral100"})};m.defaultProps={token:null},m.propTypes={token:h().string,tokenType:h().string.isRequired},u.Z=m},42789:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(10508);const i=({errors:l,values:h,onChange:y,canEditInputs:A})=>{const{formatMessage:m}=(0,a.Z)();return t.createElement(g.g,{label:m({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:l.description?m(l.description?.id?l.description:{id:l.description,defaultMessage:l.description}):null,onChange:y,disabled:!A},h.description)};i.propTypes={errors:n().shape({description:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({description:n().string}).isRequired},i.defaultProps={errors:{}},u.Z=i},8377:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(10369);const i=({errors:l,values:h,onChange:y,canEditInputs:A})=>{const{formatMessage:m}=(0,a.Z)();return t.createElement(g.o,{name:"name",error:l.name?m(l.name?.id?l.name:{id:l.name,defaultMessage:l.name}):null,label:m({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:y,value:h.name,disabled:!A,required:!0})};i.propTypes={errors:n().shape({name:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string}).isRequired},i.defaultProps={errors:{}},u.Z=i},49638:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(80084),i=e(84967);const l=({name:h,errors:y,values:A,onChange:m,canEditInputs:x,options:p,label:o})=>{const{formatMessage:d}=(0,a.Z)();return t.createElement(g.P,{name:h,label:d({id:o.id,defaultMessage:o.defaultMessage}),value:A&&A[h],error:y[h]?d(y[h]?.id?y[h]:{id:y[h],defaultMessage:y[h]}):null,onChange:m,placeholder:"Select",required:!0,disabled:!x},p&&p.map(({value:s,label:T})=>t.createElement(i.W,{key:s,value:s},d(T))))};l.propTypes={name:n().string,options:n().arrayOf(n().shape({label:n().shape({id:n().string,defaultMessage:n().string}),value:n().string})),errors:n().shape({type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({type:n().string}).isRequired,label:n().shape({id:n().string,defaultMessage:n().string}).isRequired},l.defaultProps={name:"type",errors:{},options:[]},u.Z=l},68774:function(P,u,e){"use strict";e.d(u,{Z:function(){return t},f:function(){return r}});const t="api-token",r="transfer-token"},35563:function(P,u,e){"use strict";e.d(u,{Z:function(){return _e}});var t=e(32735),r=e(67879),n=e(43383),a=e(27649),g=e(17e3),i=e(87933),l=e(92802),h=e(53038),y=e(20108),A=e(8997),m=e(37944),x=e(82055),p=e(41415),o=e(66456),d=e(60216),s=e.n(d);const T=({apiTokenName:c})=>{const{formatMessage:E}=(0,r.Z)();return(0,n.go)(),t.createElement(a.o,{"aria-busy":"true"},t.createElement(n.SL,{name:"API Tokens"}),t.createElement(x.T,{primaryAction:t.createElement(p.z,{disabled:!0,startIcon:t.createElement(o.Z,null),type:"button",size:"L"},E({id:"global.save",defaultMessage:"Save"})),title:c||E({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),t.createElement(g.D,null,t.createElement(n.dO,null)))};T.defaultProps={apiTokenName:null},T.propTypes={apiTokenName:s().string};var D=T,K=e(83983);const U=(0,t.createContext)({}),b=({children:c,...E})=>t.createElement(U.Provider,{value:E},c),R=()=>(0,t.useContext)(U);b.propTypes={children:s().node.isRequired};var k=(c,E=[])=>({...c,selectedAction:null,routes:[],selectedActions:[],data:(0,m.mk)(E)}),H=e(97889),Z=e(82879),G=e.n(Z);const X={data:{},selectedActions:[]};var J=(c,E)=>(0,H.ZP)(c,f=>{switch(E.type){case"ON_CHANGE":{f.selectedActions.includes(E.value)?G()(f.selectedActions,E.value):f.selectedActions.push(E.value);break}case"SELECT_ALL_IN_PERMISSION":{E.value.every(C=>f.selectedActions.includes(C.actionId))?E.value.forEach(C=>{G()(f.selectedActions,C.actionId)}):E.value.forEach(C=>{f.selectedActions.push(C.actionId)});break}case"SELECT_ALL_ACTIONS":{f.selectedActions=[...f.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const I=f.data.allActionsIds.filter(C=>C.includes("find")||C.includes("findOne"));f.selectedActions=[...I];break}case"UPDATE_PERMISSIONS_LAYOUT":{f.data=(0,m.mk)(E.value);break}case"UPDATE_ROUTES":{f.routes={...E.value};break}case"UPDATE_PERMISSIONS":{f.selectedActions=[...E.value];break}case"SET_SELECTED_ACTION":{f.selectedAction=E.value;break}default:return f}}),w=e(15335),V=e(5803),$=e(49372),z=e(72850),ce=e(73400),se=e.n(ce),ae=e(83828),oe=e(61762),Pe=e(89966),Te=e(8284),Ce=e(45112),re=e(8471);const Me=re.iv`
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5563],{30493:function(P,u,e){"use strict";e.d(u,{Z:function(){return s}});var t=e(32735),r=e(67879),n=e(60216),a=e.n(n),g=e(24989),i=e(66456),l=e(29439),h=e(82055),y=e(87933),A=e(41415),m=e(44647),x=e(67927);const p=({onRegenerate:T,idToRegenerate:D,backUrl:K,onError:U})=>{const{formatMessage:b}=(0,r.Z)(),[R,N]=(0,t.useState)(!1),{regenerateData:k,isLoadingConfirmation:H}=(0,x.rW)(K,D,T,U),Z=async()=>{k(),N(!1)};return t.createElement(t.Fragment,null,t.createElement(A.z,{startIcon:t.createElement(m.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>N(!0),name:"regenerate"},b({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(g.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(m.Z,null),isConfirmButtonLoading:H,isOpen:R,onToggleDialog:()=>N(!1),onConfirm:Z,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};p.defaultProps={onRegenerate(){},onError:void 0},p.propTypes={onRegenerate:a().func,idToRegenerate:a().oneOfType([a().number,a().string]).isRequired,backUrl:a().string.isRequired,onError:a().func};var o=p;const d=({title:T,token:D,setToken:K,canEditInputs:U,canRegenerate:b,isSubmitting:R,backUrl:N,regenerateUrl:k,onErrorRegenerate:H})=>{const{formatMessage:Z}=(0,r.Z)(),G=X=>{K({...D,accessKey:X})};return t.createElement(h.T,{title:D?.name||Z(T),primaryAction:U?t.createElement(y.k,{gap:2},b&&D?.id&&t.createElement(o,{backUrl:k,onRegenerate:G,idToRegenerate:D?.id,onError:H}),t.createElement(A.z,{disabled:R,loading:R,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},Z({id:"global.save",defaultMessage:"Save"}))):b&&D?.id&&t.createElement(o,{onRegenerate:G,idToRegenerate:D?.id,backUrl:k}),navigationAction:t.createElement(g.rU,{startIcon:t.createElement(l.Z,null),to:N},Z({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};d.propTypes={token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().oneOfType([a().number,a().string]),name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string}),canEditInputs:a().bool.isRequired,canRegenerate:a().bool.isRequired,setToken:a().func.isRequired,isSubmitting:a().bool.isRequired,backUrl:a().string.isRequired,title:a().shape({id:a().string,label:a().string}).isRequired,regenerateUrl:a().string.isRequired,onErrorRegenerate:a().func},d.defaultProps={token:void 0,onErrorRegenerate:void 0};var s=d},4321:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(80084),i=e(84967),l=e(49372),h=e(37944);const y=({token:A,errors:m,values:x,onChange:p,isCreating:o})=>{const{formatMessage:d}=(0,a.Z)();return t.createElement(t.Fragment,null,t.createElement(g.P,{name:"lifespan",label:d({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:x.lifespan!==null?x.lifespan:"0",error:m.lifespan?d(m.lifespan?.id?m.lifespan:{id:m.lifespan,defaultMessage:m.lifespan}):null,onChange:s=>{p({target:{name:"lifespan",value:s}})},required:!0,disabled:!o,placeholder:"Select"},t.createElement(i.W,{value:"604800000"},d({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(i.W,{value:"2592000000"},d({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(i.W,{value:"7776000000"},d({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(i.W,{value:"0"},d({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(l.Z,{variant:"pi",textColor:"neutral600"},!o&&`${d({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,h.IX)(A?.createdAt,parseInt(x.lifespan,10))}`))};y.propTypes={errors:n().shape({lifespan:n().string}),onChange:n().func.isRequired,values:n().shape({lifespan:n().oneOfType([n().number,n().string])}).isRequired,isCreating:n().bool.isRequired,token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},y.defaultProps={errors:{},token:{}},u.Z=y},93682:function(P,u,e){"use strict";var t=e(32735),r=e(67879),n=e(24989),a=e(50563),g=e(47765),i=e(11631),l=e(60216),h=e.n(l),y=e(59087),A=e.n(y);const m=({token:x,tokenType:p})=>{const{formatMessage:o}=(0,r.Z)(),d=(0,n.lm)(),{trackUsage:s}=(0,n.rS)(),T=(0,t.useRef)(s);return t.createElement(n.Y_,{endAction:x&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(y.CopyToClipboard,{onCopy:()=>{T.current("didCopyTokenKey",{tokenType:p}),d({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:x},t.createElement(a.h,{label:o({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(g.Z,null),style:{padding:0,height:"1rem"}}))),title:x||o({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:o(x?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(i.Z,null),iconBackground:"neutral100"})};m.defaultProps={token:null},m.propTypes={token:h().string,tokenType:h().string.isRequired},u.Z=m},42789:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(10508);const i=({errors:l,values:h,onChange:y,canEditInputs:A})=>{const{formatMessage:m}=(0,a.Z)();return t.createElement(g.g,{label:m({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:l.description?m(l.description?.id?l.description:{id:l.description,defaultMessage:l.description}):null,onChange:y,disabled:!A},h.description)};i.propTypes={errors:n().shape({description:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({description:n().string}).isRequired},i.defaultProps={errors:{}},u.Z=i},8377:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(10369);const i=({errors:l,values:h,onChange:y,canEditInputs:A})=>{const{formatMessage:m}=(0,a.Z)();return t.createElement(g.o,{name:"name",error:l.name?m(l.name?.id?l.name:{id:l.name,defaultMessage:l.name}):null,label:m({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:y,value:h.name,disabled:!A,required:!0})};i.propTypes={errors:n().shape({name:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string}).isRequired},i.defaultProps={errors:{}},u.Z=i},49638:function(P,u,e){"use strict";var t=e(32735),r=e(60216),n=e.n(r),a=e(67879),g=e(80084),i=e(84967);const l=({name:h,errors:y,values:A,onChange:m,canEditInputs:x,options:p,label:o})=>{const{formatMessage:d}=(0,a.Z)();return t.createElement(g.P,{name:h,label:d({id:o.id,defaultMessage:o.defaultMessage}),value:A&&A[h],error:y[h]?d(y[h]?.id?y[h]:{id:y[h],defaultMessage:y[h]}):null,onChange:m,placeholder:"Select",required:!0,disabled:!x},p&&p.map(({value:s,label:T})=>t.createElement(i.W,{key:s,value:s},d(T))))};l.propTypes={name:n().string,options:n().arrayOf(n().shape({label:n().shape({id:n().string,defaultMessage:n().string}),value:n().string})),errors:n().shape({type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({type:n().string}).isRequired,label:n().shape({id:n().string,defaultMessage:n().string}).isRequired},l.defaultProps={name:"type",errors:{},options:[]},u.Z=l},68774:function(P,u,e){"use strict";e.d(u,{Z:function(){return t},f:function(){return r}});const t="api-token",r="transfer-token"},35563:function(P,u,e){"use strict";e.d(u,{Z:function(){return _e}});var t=e(32735),r=e(67879),n=e(24989),a=e(27649),g=e(17e3),i=e(87933),l=e(92802),h=e(53038),y=e(20108),A=e(8997),m=e(37944),x=e(82055),p=e(41415),o=e(66456),d=e(60216),s=e.n(d);const T=({apiTokenName:c})=>{const{formatMessage:E}=(0,r.Z)();return(0,n.go)(),t.createElement(a.o,{"aria-busy":"true"},t.createElement(n.SL,{name:"API Tokens"}),t.createElement(x.T,{primaryAction:t.createElement(p.z,{disabled:!0,startIcon:t.createElement(o.Z,null),type:"button",size:"L"},E({id:"global.save",defaultMessage:"Save"})),title:c||E({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),t.createElement(g.D,null,t.createElement(n.dO,null)))};T.defaultProps={apiTokenName:null},T.propTypes={apiTokenName:s().string};var D=T,K=e(83983);const U=(0,t.createContext)({}),b=({children:c,...E})=>t.createElement(U.Provider,{value:E},c),R=()=>(0,t.useContext)(U);b.propTypes={children:s().node.isRequired};var k=(c,E=[])=>({...c,selectedAction:null,routes:[],selectedActions:[],data:(0,m.mk)(E)}),H=e(97889),Z=e(82879),G=e.n(Z);const X={data:{},selectedActions:[]};var J=(c,E)=>(0,H.ZP)(c,f=>{switch(E.type){case"ON_CHANGE":{f.selectedActions.includes(E.value)?G()(f.selectedActions,E.value):f.selectedActions.push(E.value);break}case"SELECT_ALL_IN_PERMISSION":{E.value.every(C=>f.selectedActions.includes(C.actionId))?E.value.forEach(C=>{G()(f.selectedActions,C.actionId)}):E.value.forEach(C=>{f.selectedActions.push(C.actionId)});break}case"SELECT_ALL_ACTIONS":{f.selectedActions=[...f.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const I=f.data.allActionsIds.filter(C=>C.includes("find")||C.includes("findOne"));f.selectedActions=[...I];break}case"UPDATE_PERMISSIONS_LAYOUT":{f.data=(0,m.mk)(E.value);break}case"UPDATE_ROUTES":{f.routes={...E.value};break}case"UPDATE_PERMISSIONS":{f.selectedActions=[...E.value];break}case"SET_SELECTED_ACTION":{f.selectedAction=E.value;break}default:return f}}),w=e(15335),V=e(5803),$=e(49372),z=e(72850),ce=e(73400),se=e.n(ce),ae=e(83828),oe=e(61762),Pe=e(89966),Te=e(8284),Ce=e(45112),re=e(8471);const Me=re.iv`
2
2
  background: ${c=>c.theme.colors.primary100};
3
3
  svg {
4
4
  opacity: 1;
@@ -27,7 +27,7 @@
27
27
  `,pe=({controllers:c,label:E,orderNumber:f,disabled:I,onExpanded:C,indexExpandendCollapsedContent:v})=>{const{value:{onChangeSelectAll:j,onChange:Y,selectedActions:W,setSelectedAction:_,selectedAction:ee}}=R(),[F,le]=(0,t.useState)(!1),{formatMessage:te}=(0,r.Z)(),L=()=>{le(B=>!B),C(f)};(0,t.useEffect)(()=>{v!==null&&v!==f&&F&&le(!1)},[v,f,F]);const q=B=>B===ee;return t.createElement(ae.U,{expanded:F,onToggle:L,variant:f%2?"primary":"secondary"},t.createElement(oe.B,{title:se()(E)}),t.createElement(Pe.v,null,c?.map(B=>{const de=B.actions.every(O=>W.includes(O.actionId)),Ee=B.actions.some(O=>W.includes(O.actionId));return t.createElement(z.x,{key:`${E}.${B?.controller}`},t.createElement(i.k,{justifyContent:"space-between",alignItems:"center",padding:4},t.createElement(z.x,{paddingRight:4},t.createElement($.Z,{variant:"sigma",textColor:"neutral600"},B?.controller)),t.createElement(xe,null),t.createElement(z.x,{paddingLeft:4},t.createElement(Te.X,{value:de,indeterminate:!de&&Ee,onValueChange:()=>{j({target:{value:[...B.actions]}})},disabled:I},te({id:"app.utils.select-all",defaultMessage:"Select all"})))),t.createElement(w.r,{gap:4,padding:4},B?.actions&&B?.actions.map(O=>t.createElement(V.P,{col:6,key:O.actionId},t.createElement(Ae,{isActive:q(O.actionId),padding:2,hasRadius:!0},t.createElement(Te.X,{value:W.includes(O.actionId),name:O.actionId,onValueChange:()=>{Y({target:{value:O.actionId}})},disabled:I},O.action),t.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>_({target:{value:O.actionId}}),style:{display:"inline-flex",alignItems:"center"}},t.createElement(Ce.Z,null)))))))})))};pe.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},pe.propTypes={controllers:s().array,orderNumber:s().number,label:s().string.isRequired,disabled:s().bool,onExpanded:s().func,indexExpandendCollapsedContent:s().number};var Oe=pe;const ue=({section:c,...E})=>{const[f,I]=(0,t.useState)(null),C=v=>I(v);return t.createElement(z.x,{padding:4,background:"neutral0"},c&&c.map((v,j)=>t.createElement(Oe,{key:v.apiId,label:v.label,controllers:v.controllers,orderNumber:j,indexExpandendCollapsedContent:f,onExpanded:C,name:v.apiId,...E})))};ue.defaultProps={section:null},ue.propTypes={section:s().arrayOf(s().object)};var Re=ue,Ie=e(37213),De=e.n(Ie),ke=e(15738),Se=e.n(ke),Le=c=>{switch(c){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const Be=(0,re.ZP)(z.x)`
28
28
  margin: -1px;
29
29
  border-radius: ${({theme:c})=>c.spaces[1]} 0 0 ${({theme:c})=>c.spaces[1]};
30
- `;function ge({route:c}){const{formatMessage:E}=(0,r.Z)(),{method:f,handler:I,path:C}=c,v=C?Se()(C.split("/")):[],[j="",Y=""]=I?I.split("."):[],W=Le(c.method);return t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h3"},E({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",t.createElement("span",null,j),t.createElement($.Z,{variant:"delta",textColor:"primary600"},".",Y)),t.createElement(i.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},t.createElement(Be,{background:W.background,borderColor:W.border,padding:2},t.createElement($.Z,{fontWeight:"bold",textColor:W.text},f)),t.createElement(z.x,{paddingLeft:2,paddingRight:2},De()(v,_=>t.createElement($.Z,{key:_,textColor:_.includes(":")?"neutral600":"neutral900"},"/",_)))))}ge.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},ge.propTypes={route:s().shape({handler:s().string,method:s().string,path:s().string})};var Ue=ge,be=()=>{const{value:{selectedAction:c,routes:E}}=R(),{formatMessage:f}=(0,r.Z)(),I=c?.split(".")[0];return t.createElement(V.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},c?t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},E[I]?.map(C=>C.config.auth?.scope?.includes(c)||C.handler===c?t.createElement(Ue,{key:C.handler,route:C}):null)):t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h3"},f({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),t.createElement($.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))};const Ze=({...c})=>{const{value:{data:E}}=R(),{formatMessage:f}=(0,r.Z)();return t.createElement(w.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},t.createElement(V.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h2"},f({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),t.createElement($.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),E?.permissions&&t.createElement(Re,{section:E?.permissions,...c})),t.createElement(be,null))};var We=(0,t.memo)(Ze),Ke=e(4321),Ne=e(8377),$e=e(42789),je=e(49638);const me=({errors:c,onChange:E,canEditInputs:f,isCreating:I,values:C,apiToken:v,onDispatch:j,setHasChangedPermissions:Y})=>{const{formatMessage:W}=(0,r.Z)(),_=({target:{value:F}})=>{Y(!1),F==="full-access"&&j({type:"SELECT_ALL_ACTIONS"}),F==="read-only"&&j({type:"ON_CHANGE_READ_ONLY"})},ee=[{value:"read-only",label:{id:"Settings.tokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.tokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.tokens.types.custom",defaultMessage:"Custom"}}];return t.createElement(z.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement($.Z,{variant:"delta",as:"h2"},W({id:"global.details",defaultMessage:"Details"})),t.createElement(w.r,{gap:5},t.createElement(V.P,{key:"name",col:6,xs:12},t.createElement(Ne.Z,{errors:c,values:C,canEditInputs:f,onChange:E})),t.createElement(V.P,{key:"description",col:6,xs:12},t.createElement($e.Z,{errors:c,values:C,canEditInputs:f,onChange:E})),t.createElement(V.P,{key:"lifespan",col:6,xs:12},t.createElement(Ke.Z,{isCreating:I,errors:c,values:C,onChange:E,token:v})),t.createElement(V.P,{key:"type",col:6,xs:12},t.createElement(je.Z,{values:C,errors:c,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:F=>{_({target:{value:F}}),E({target:{name:"type",value:F}})},options:ee,canEditInputs:f})))))};me.propTypes={errors:s().shape({name:s().string,description:s().string,lifespan:s().string,type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string,description:s().string,lifespan:s().oneOfType([s().number,s().string]),type:s().string}).isRequired,isCreating:s().bool.isRequired,apiToken:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),onDispatch:s().func.isRequired,setHasChangedPermissions:s().func.isRequired},me.defaultProps={errors:{},apiToken:{}};var Fe=me,ze=e(93682),He=e(30493),ie=e(68774);const Ve="Name already taken";var _e=()=>{(0,n.go)();const{formatMessage:c}=(0,r.Z)(),{lockApp:E,unlockApp:f}=(0,n.o1)(),I=(0,n.lm)(),C=(0,h.k6)(),[v,j]=(0,t.useState)(C.location.state?.apiToken.accessKey?{...C.location.state.apiToken}:null),{trackUsage:Y}=(0,n.rS)(),W=(0,t.useRef)(Y),{setCurrentStep:_}=(0,n.c1)(),{allowedActions:{canCreate:ee,canUpdate:F,canRegenerate:le}}=(0,n.ss)(K.Z.settings["api-tokens"]),[te,L]=(0,t.useReducer)(J,X,M=>k(M,{})),{params:{id:q}}=(0,h.$B)("/settings/api-tokens/:id"),{get:B,post:de,put:Ee}=(0,n.kY)(),O=q==="create";(0,y.useQuery)("content-api-permissions",async()=>{const[M,Q]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async ne=>{const{data:S}=await B(ne);return S.data}));L({type:"UPDATE_PERMISSIONS_LAYOUT",value:M}),L({type:"UPDATE_ROUTES",value:Q}),v&&(v?.type==="read-only"&&L({type:"ON_CHANGE_READ_ONLY"}),v?.type==="full-access"&&L({type:"SELECT_ALL_ACTIONS"}),v?.type==="custom"&&L({type:"UPDATE_PERMISSIONS",value:v?.permissions}))},{onError(){I({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,t.useEffect)(()=>{W.current(O?"didAddTokenFromList":"didEditTokenFromList",{tokenType:ie.Z})},[O]);const{status:Ge}=(0,y.useQuery)(["api-token",q],async()=>{const{data:{data:M}}=await B(`/admin/api-tokens/${q}`);return j({...M}),M?.type==="read-only"&&L({type:"ON_CHANGE_READ_ONLY"}),M?.type==="full-access"&&L({type:"SELECT_ALL_ACTIONS"}),M?.type==="custom"&&L({type:"UPDATE_PERMISSIONS",value:M?.permissions}),M},{enabled:!O&&!v,onError(){I({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Ye=async(M,Q)=>{W.current(O?"willCreateToken":"willEditToken",{tokenType:ie.Z}),E();const ne=M.lifespan&&parseInt(M.lifespan,10)&&M.lifespan!=="0"?parseInt(M.lifespan,10):null;try{const{data:{data:S}}=O?await de("/admin/api-tokens",{...M,lifespan:ne,permissions:M.type==="custom"?te.selectedActions:null}):await Ee(`/admin/api-tokens/${q}`,{name:M.name,description:M.description,type:M.type,permissions:M.type==="custom"?te.selectedActions:null});O&&(C.replace(`/settings/api-tokens/${S.id}`,{apiToken:S}),_("apiTokens.success")),f(),j({...S}),I({type:"success",message:c(O?{id:"notification.success.apitokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.apitokenedited",defaultMessage:"API Token successfully edited"})}),W.current(O?"didCreateToken":"didEditToken",{type:v.type,tokenType:ie.Z})}catch(S){const he=(0,A.Iz)(S.response.data);Q.setErrors(he),S?.response?.data?.error?.message===Ve?I({type:"warning",message:S.response.data.message||"notification.error.tokennamenotunique"}):I({type:"warning",message:S?.response?.data?.message||"notification.error"}),f()}},[Qe,fe]=(0,t.useState)(!1),Xe={...te,onChange:({target:{value:M}})=>{fe(!0),L({type:"ON_CHANGE",value:M})},onChangeSelectAll:({target:{value:M}})=>{fe(!0),L({type:"SELECT_ALL_IN_PERMISSION",value:M})},setSelectedAction:({target:{value:M}})=>{L({type:"SET_SELECTED_ACTION",value:M})}},ye=F&&!O||ee&&O;return!O&&!v&&Ge!=="success"?t.createElement(D,{apiTokenName:v?.name}):t.createElement(b,{value:Xe},t.createElement(a.o,null,t.createElement(n.SL,{name:"API Tokens"}),t.createElement(l.J9,{validationSchema:m.fK,validateOnChange:!1,initialValues:{name:v?.name||"",description:v?.description||"",type:v?.type,lifespan:v?.lifespan?v.lifespan.toString():v?.lifespan},enableReinitialize:!0,onSubmit:(M,Q)=>Ye(M,Q)},({errors:M,handleChange:Q,isSubmitting:ne,values:S,setFieldValue:he})=>(Qe&&S?.type!=="custom"&&he("type","custom"),t.createElement(n.l0,null,t.createElement(He.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:v,setToken:j,canEditInputs:ye,canRegenerate:le,isSubmitting:ne,regenerateUrl:"/admin/api-tokens/"}),t.createElement(g.D,null,t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(v?.name)&&t.createElement(ze.Z,{token:v?.accessKey,tokenType:ie.Z}),t.createElement(Fe,{errors:M,onChange:Q,canEditInputs:ye,isCreating:O,values:S,apiToken:v,onDispatch:L,setHasChangedPermissions:fe}),t.createElement(We,{disabled:!ye||S?.type==="read-only"||S?.type==="full-access"}))))))))}},37944:function(P,u,e){"use strict";e.d(u,{IX:function(){return g},fK:function(){return y},mk:function(){return m}});var t=e(14723),r=e(85544),n=e(76698),g=(x,p,o="en")=>{if(p&&typeof p=="number"){const d=p/24/60/60/1e3;return(0,t.Z)((0,r.Z)(new Date(x),d),"PPP",{locale:n[o]})}return"Unlimited"},i=e(24346),l=e(43383),y=i.Ry().shape({name:i.Z_(l.I0.string).max(100).required(l.I0.required),type:i.Z_(l.I0.string).oneOf(["read-only","full-access","custom"]).required(l.I0.required),description:i.Z_().nullable(),lifespan:i.Rx().integer().min(0).nullable().defined(l.I0.required)}),m=x=>{const p={allActionsIds:[],permissions:[]};return p.permissions=Object.keys(x).map(o=>({apiId:o,label:o.split("::")[1],controllers:Object.keys(x[o].controllers).map(d=>({controller:d,actions:x[o].controllers[d].map(s=>{const T=`${o}.${d}.${s}`;return o.includes("api::")&&p.allActionsIds.push(T),{action:s,actionId:T}}).flat()})).flat()})),p}},60528:function(P){function u(e,t,r,n){for(var a=e.length,g=r+(n?1:-1);n?g--:++g<a;)if(t(e[g],g,e))return g;return-1}P.exports=u},87650:function(P,u,e){var t=e(60528),r=e(25556),n=e(54256);function a(g,i,l){return i===i?n(g,i,l):t(g,r,l)}P.exports=a},15880:function(P){function u(e,t,r,n){for(var a=r-1,g=e.length;++a<g;)if(n(e[a],t))return a;return-1}P.exports=u},25556:function(P){function u(e){return e!==e}P.exports=u},11224:function(P,u,e){var t=e(26460),r=e(87650),n=e(15880),a=e(76535),g=e(66438),i=Array.prototype,l=i.splice;function h(y,A,m,x){var p=x?n:r,o=-1,d=A.length,s=y;for(y===A&&(A=g(A)),m&&(s=t(y,a(m)));++o<d;)for(var T=0,D=A[o],K=m?m(D):D;(T=p(s,K,T,x))>-1;)s!==y&&l.call(s,T,1),l.call(y,T,1);return y}P.exports=h},54256:function(P){function u(e,t,r){for(var n=r-1,a=e.length;++n<a;)if(e[n]===t)return n;return-1}P.exports=u},82879:function(P,u,e){var t=e(94569),r=e(83147),n=t(r);P.exports=n},83147:function(P,u,e){var t=e(11224);function r(n,a){return n&&n.length&&a&&a.length?t(n,a):n}P.exports=r},15738:function(P,u,e){var t=e(4293);function r(n){var a=n==null?0:n.length;return a?t(n,1,a):[]}P.exports=r},83828:function(P,u,e){"use strict";e.d(u,{U:function(){return x},y:function(){return A}});var t=e(74512),r=e(32735),n=e(8471),a=e(91045),g=e(72850),i=e(87933),l=e(74971),h=e(49372);const y=({theme:p,expanded:o,variant:d,disabled:s,error:T})=>T?`1px solid ${p.colors.danger600} !important`:s?`1px solid ${p.colors.neutral150}`:o?`1px solid ${p.colors.primary600}`:d==="primary"?`1px solid ${p.colors.neutral0}`:`1px solid ${p.colors.neutral100}`,A=(0,n.ZP)(h.Z)``,m=(0,n.ZP)(g.x)`
30
+ `;function ge({route:c}){const{formatMessage:E}=(0,r.Z)(),{method:f,handler:I,path:C}=c,v=C?Se()(C.split("/")):[],[j="",Y=""]=I?I.split("."):[],W=Le(c.method);return t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h3"},E({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",t.createElement("span",null,j),t.createElement($.Z,{variant:"delta",textColor:"primary600"},".",Y)),t.createElement(i.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},t.createElement(Be,{background:W.background,borderColor:W.border,padding:2},t.createElement($.Z,{fontWeight:"bold",textColor:W.text},f)),t.createElement(z.x,{paddingLeft:2,paddingRight:2},De()(v,_=>t.createElement($.Z,{key:_,textColor:_.includes(":")?"neutral600":"neutral900"},"/",_)))))}ge.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},ge.propTypes={route:s().shape({handler:s().string,method:s().string,path:s().string})};var Ue=ge,be=()=>{const{value:{selectedAction:c,routes:E}}=R(),{formatMessage:f}=(0,r.Z)(),I=c?.split(".")[0];return t.createElement(V.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},c?t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},E[I]?.map(C=>C.config.auth?.scope?.includes(c)||C.handler===c?t.createElement(Ue,{key:C.handler,route:C}):null)):t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h3"},f({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),t.createElement($.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))};const Ze=({...c})=>{const{value:{data:E}}=R(),{formatMessage:f}=(0,r.Z)();return t.createElement(w.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},t.createElement(V.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement($.Z,{variant:"delta",as:"h2"},f({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),t.createElement($.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),E?.permissions&&t.createElement(Re,{section:E?.permissions,...c})),t.createElement(be,null))};var We=(0,t.memo)(Ze),Ke=e(4321),Ne=e(8377),$e=e(42789),je=e(49638);const me=({errors:c,onChange:E,canEditInputs:f,isCreating:I,values:C,apiToken:v,onDispatch:j,setHasChangedPermissions:Y})=>{const{formatMessage:W}=(0,r.Z)(),_=({target:{value:F}})=>{Y(!1),F==="full-access"&&j({type:"SELECT_ALL_ACTIONS"}),F==="read-only"&&j({type:"ON_CHANGE_READ_ONLY"})},ee=[{value:"read-only",label:{id:"Settings.tokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.tokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.tokens.types.custom",defaultMessage:"Custom"}}];return t.createElement(z.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement($.Z,{variant:"delta",as:"h2"},W({id:"global.details",defaultMessage:"Details"})),t.createElement(w.r,{gap:5},t.createElement(V.P,{key:"name",col:6,xs:12},t.createElement(Ne.Z,{errors:c,values:C,canEditInputs:f,onChange:E})),t.createElement(V.P,{key:"description",col:6,xs:12},t.createElement($e.Z,{errors:c,values:C,canEditInputs:f,onChange:E})),t.createElement(V.P,{key:"lifespan",col:6,xs:12},t.createElement(Ke.Z,{isCreating:I,errors:c,values:C,onChange:E,token:v})),t.createElement(V.P,{key:"type",col:6,xs:12},t.createElement(je.Z,{values:C,errors:c,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:F=>{_({target:{value:F}}),E({target:{name:"type",value:F}})},options:ee,canEditInputs:f})))))};me.propTypes={errors:s().shape({name:s().string,description:s().string,lifespan:s().string,type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({name:s().string,description:s().string,lifespan:s().oneOfType([s().number,s().string]),type:s().string}).isRequired,isCreating:s().bool.isRequired,apiToken:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().string,name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),onDispatch:s().func.isRequired,setHasChangedPermissions:s().func.isRequired},me.defaultProps={errors:{},apiToken:{}};var Fe=me,ze=e(93682),He=e(30493),ie=e(68774);const Ve="Name already taken";var _e=()=>{(0,n.go)();const{formatMessage:c}=(0,r.Z)(),{lockApp:E,unlockApp:f}=(0,n.o1)(),I=(0,n.lm)(),C=(0,h.k6)(),[v,j]=(0,t.useState)(C.location.state?.apiToken.accessKey?{...C.location.state.apiToken}:null),{trackUsage:Y}=(0,n.rS)(),W=(0,t.useRef)(Y),{setCurrentStep:_}=(0,n.c1)(),{allowedActions:{canCreate:ee,canUpdate:F,canRegenerate:le}}=(0,n.ss)(K.Z.settings["api-tokens"]),[te,L]=(0,t.useReducer)(J,X,M=>k(M,{})),{params:{id:q}}=(0,h.$B)("/settings/api-tokens/:id"),{get:B,post:de,put:Ee}=(0,n.kY)(),O=q==="create";(0,y.useQuery)("content-api-permissions",async()=>{const[M,Q]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async ne=>{const{data:S}=await B(ne);return S.data}));L({type:"UPDATE_PERMISSIONS_LAYOUT",value:M}),L({type:"UPDATE_ROUTES",value:Q}),v&&(v?.type==="read-only"&&L({type:"ON_CHANGE_READ_ONLY"}),v?.type==="full-access"&&L({type:"SELECT_ALL_ACTIONS"}),v?.type==="custom"&&L({type:"UPDATE_PERMISSIONS",value:v?.permissions}))},{onError(){I({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,t.useEffect)(()=>{W.current(O?"didAddTokenFromList":"didEditTokenFromList",{tokenType:ie.Z})},[O]);const{status:Ge}=(0,y.useQuery)(["api-token",q],async()=>{const{data:{data:M}}=await B(`/admin/api-tokens/${q}`);return j({...M}),M?.type==="read-only"&&L({type:"ON_CHANGE_READ_ONLY"}),M?.type==="full-access"&&L({type:"SELECT_ALL_ACTIONS"}),M?.type==="custom"&&L({type:"UPDATE_PERMISSIONS",value:M?.permissions}),M},{enabled:!O&&!v,onError(){I({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Ye=async(M,Q)=>{W.current(O?"willCreateToken":"willEditToken",{tokenType:ie.Z}),E();const ne=M.lifespan&&parseInt(M.lifespan,10)&&M.lifespan!=="0"?parseInt(M.lifespan,10):null;try{const{data:{data:S}}=O?await de("/admin/api-tokens",{...M,lifespan:ne,permissions:M.type==="custom"?te.selectedActions:null}):await Ee(`/admin/api-tokens/${q}`,{name:M.name,description:M.description,type:M.type,permissions:M.type==="custom"?te.selectedActions:null});O&&(C.replace(`/settings/api-tokens/${S.id}`,{apiToken:S}),_("apiTokens.success")),f(),j({...S}),I({type:"success",message:c(O?{id:"notification.success.apitokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.apitokenedited",defaultMessage:"API Token successfully edited"})}),W.current(O?"didCreateToken":"didEditToken",{type:v.type,tokenType:ie.Z})}catch(S){const he=(0,A.Iz)(S.response.data);Q.setErrors(he),S?.response?.data?.error?.message===Ve?I({type:"warning",message:S.response.data.message||"notification.error.tokennamenotunique"}):I({type:"warning",message:S?.response?.data?.message||"notification.error"}),f()}},[Qe,fe]=(0,t.useState)(!1),Xe={...te,onChange:({target:{value:M}})=>{fe(!0),L({type:"ON_CHANGE",value:M})},onChangeSelectAll:({target:{value:M}})=>{fe(!0),L({type:"SELECT_ALL_IN_PERMISSION",value:M})},setSelectedAction:({target:{value:M}})=>{L({type:"SET_SELECTED_ACTION",value:M})}},ye=F&&!O||ee&&O;return!O&&!v&&Ge!=="success"?t.createElement(D,{apiTokenName:v?.name}):t.createElement(b,{value:Xe},t.createElement(a.o,null,t.createElement(n.SL,{name:"API Tokens"}),t.createElement(l.J9,{validationSchema:m.fK,validateOnChange:!1,initialValues:{name:v?.name||"",description:v?.description||"",type:v?.type,lifespan:v?.lifespan?v.lifespan.toString():v?.lifespan},enableReinitialize:!0,onSubmit:(M,Q)=>Ye(M,Q)},({errors:M,handleChange:Q,isSubmitting:ne,values:S,setFieldValue:he})=>(Qe&&S?.type!=="custom"&&he("type","custom"),t.createElement(n.l0,null,t.createElement(He.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:v,setToken:j,canEditInputs:ye,canRegenerate:le,isSubmitting:ne,regenerateUrl:"/admin/api-tokens/"}),t.createElement(g.D,null,t.createElement(i.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(v?.name)&&t.createElement(ze.Z,{token:v?.accessKey,tokenType:ie.Z}),t.createElement(Fe,{errors:M,onChange:Q,canEditInputs:ye,isCreating:O,values:S,apiToken:v,onDispatch:L,setHasChangedPermissions:fe}),t.createElement(We,{disabled:!ye||S?.type==="read-only"||S?.type==="full-access"}))))))))}},37944:function(P,u,e){"use strict";e.d(u,{IX:function(){return g},fK:function(){return y},mk:function(){return m}});var t=e(14723),r=e(85544),n=e(76698),g=(x,p,o="en")=>{if(p&&typeof p=="number"){const d=p/24/60/60/1e3;return(0,t.Z)((0,r.Z)(new Date(x),d),"PPP",{locale:n[o]})}return"Unlimited"},i=e(24346),l=e(24989),y=i.Ry().shape({name:i.Z_(l.I0.string).max(100).required(l.I0.required),type:i.Z_(l.I0.string).oneOf(["read-only","full-access","custom"]).required(l.I0.required),description:i.Z_().nullable(),lifespan:i.Rx().integer().min(0).nullable().defined(l.I0.required)}),m=x=>{const p={allActionsIds:[],permissions:[]};return p.permissions=Object.keys(x).map(o=>({apiId:o,label:o.split("::")[1],controllers:Object.keys(x[o].controllers).map(d=>({controller:d,actions:x[o].controllers[d].map(s=>{const T=`${o}.${d}.${s}`;return o.includes("api::")&&p.allActionsIds.push(T),{action:s,actionId:T}}).flat()})).flat()})),p}},60528:function(P){function u(e,t,r,n){for(var a=e.length,g=r+(n?1:-1);n?g--:++g<a;)if(t(e[g],g,e))return g;return-1}P.exports=u},87650:function(P,u,e){var t=e(60528),r=e(25556),n=e(54256);function a(g,i,l){return i===i?n(g,i,l):t(g,r,l)}P.exports=a},15880:function(P){function u(e,t,r,n){for(var a=r-1,g=e.length;++a<g;)if(n(e[a],t))return a;return-1}P.exports=u},25556:function(P){function u(e){return e!==e}P.exports=u},11224:function(P,u,e){var t=e(26460),r=e(87650),n=e(15880),a=e(76535),g=e(66438),i=Array.prototype,l=i.splice;function h(y,A,m,x){var p=x?n:r,o=-1,d=A.length,s=y;for(y===A&&(A=g(A)),m&&(s=t(y,a(m)));++o<d;)for(var T=0,D=A[o],K=m?m(D):D;(T=p(s,K,T,x))>-1;)s!==y&&l.call(s,T,1),l.call(y,T,1);return y}P.exports=h},54256:function(P){function u(e,t,r){for(var n=r-1,a=e.length;++n<a;)if(e[n]===t)return n;return-1}P.exports=u},82879:function(P,u,e){var t=e(94569),r=e(83147),n=t(r);P.exports=n},83147:function(P,u,e){var t=e(11224);function r(n,a){return n&&n.length&&a&&a.length?t(n,a):n}P.exports=r},15738:function(P,u,e){var t=e(4293);function r(n){var a=n==null?0:n.length;return a?t(n,1,a):[]}P.exports=r},83828:function(P,u,e){"use strict";e.d(u,{U:function(){return x},y:function(){return A}});var t=e(74512),r=e(32735),n=e(8471),a=e(91045),g=e(72850),i=e(87933),l=e(74971),h=e(49372);const y=({theme:p,expanded:o,variant:d,disabled:s,error:T})=>T?`1px solid ${p.colors.danger600} !important`:s?`1px solid ${p.colors.neutral150}`:o?`1px solid ${p.colors.primary600}`:d==="primary"?`1px solid ${p.colors.neutral0}`:`1px solid ${p.colors.neutral100}`,A=(0,n.ZP)(h.Z)``,m=(0,n.ZP)(g.x)`
31
31
  border: ${y};
32
32
 
33
33
  &:hover:not([aria-disabled='true']) {
@@ -0,0 +1,50 @@
1
+ (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[6858],{95919:function(y,m,n){var r=n(80022);function f(c){return r(c)&&c!=+c}y.exports=f},80022:function(y,m,n){var r=n(94318),f=n(3387),c="[object Number]";function _(E){return typeof E=="number"||f(E)&&r(E)==c}y.exports=_},59578:function(y,m,n){var r=n(41119);function f(c){return r(c).toLowerCase()}y.exports=f},98178:function(y,m,n){"use strict";n.d(m,{P1:function(){return C}});var r="NOT_FOUND";function f(u){var a;return{get:function(t){return a&&u(a.key,t)?a.value:r},put:function(t,o){a={key:t,value:o}},getEntries:function(){return a?[a]:[]},clear:function(){a=void 0}}}function c(u,a){var e=[];function t(l){var p=e.findIndex(function(v){return a(l,v.key)});if(p>-1){var h=e[p];return p>0&&(e.splice(p,1),e.unshift(h)),h.value}return r}function o(l,p){t(l)===r&&(e.unshift({key:l,value:p}),e.length>u&&e.pop())}function i(){return e}function s(){e=[]}return{get:t,put:o,getEntries:i,clear:s}}var _=function(a,e){return a===e};function E(u){return function(e,t){if(e===null||t===null||e.length!==t.length)return!1;for(var o=e.length,i=0;i<o;i++)if(!u(e[i],t[i]))return!1;return!0}}function P(u,a){var e=typeof a=="object"?a:{equalityCheck:a},t=e.equalityCheck,o=t===void 0?_:t,i=e.maxSize,s=i===void 0?1:i,l=e.resultEqualityCheck,p=E(o),h=s===1?f(p):c(s,p);function v(){var d=h.get(arguments);if(d===r){if(d=u.apply(null,arguments),l){var g=h.getEntries(),x=g.find(function(O){return l(O.value,d)});x&&(d=x.value)}h.put(arguments,d)}return d}return v.clearCache=function(){return h.clear()},v}function j(u){var a=Array.isArray(u[0])?u[0]:u;if(!a.every(function(t){return typeof t=="function"})){var e=a.map(function(t){return typeof t=="function"?"function "+(t.name||"unnamed")+"()":typeof t}).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+e+"]")}return a}function M(u){for(var a=arguments.length,e=new Array(a>1?a-1:0),t=1;t<a;t++)e[t-1]=arguments[t];var o=function(){for(var s=arguments.length,l=new Array(s),p=0;p<s;p++)l[p]=arguments[p];var h=0,v,d={memoizeOptions:void 0},g=l.pop();if(typeof g=="object"&&(d=g,g=l.pop()),typeof g!="function")throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof g+"]");var x=d,O=x.memoizeOptions,b=O===void 0?e:O,Z=Array.isArray(b)?b:[b],D=j(l),R=u.apply(void 0,[function(){return h++,g.apply(null,arguments)}].concat(Z)),A=u(function(){for(var B=[],S=D.length,T=0;T<S;T++)B.push(D[T].apply(null,arguments));return v=R.apply(null,B),v});return Object.assign(A,{resultFunc:g,memoizedResultFunc:R,dependencies:D,lastResult:function(){return v},recomputations:function(){return h},resetRecomputations:function(){return h=0}}),A};return o}var C=M(P),w=function(a,e){if(e===void 0&&(e=C),typeof a!="object")throw new Error("createStructuredSelector expects first argument to be an object "+("where each property is a selector, instead received a "+typeof a));var t=Object.keys(a),o=e(t.map(function(i){return a[i]}),function(){for(var i=arguments.length,s=new Array(i),l=0;l<i;l++)s[l]=arguments[l];return s.reduce(function(p,h,v){return p[t[v]]=h,p},{})});return o}},83828:function(y,m,n){"use strict";n.d(m,{U:function(){return a},y:function(){return w}});var r=n(74512),f=n(32735),c=n(8471),_=n(91045),E=n(72850),P=n(87933),j=n(74971),M=n(49372);const C=({theme:e,expanded:t,variant:o,disabled:i,error:s})=>s?`1px solid ${e.colors.danger600} !important`:i?`1px solid ${e.colors.neutral150}`:t?`1px solid ${e.colors.primary600}`:o==="primary"?`1px solid ${e.colors.neutral0}`:`1px solid ${e.colors.neutral100}`,w=(0,c.ZP)(M.Z)``,u=(0,c.ZP)(E.x)`
2
+ border: ${C};
3
+
4
+ &:hover:not([aria-disabled='true']) {
5
+ border: 1px solid ${({theme:e})=>e.colors.primary600};
6
+
7
+ ${w} {
8
+ color: ${({theme:e,expanded:t})=>t?void 0:e.colors.primary700};
9
+ }
10
+
11
+ ${M.Z} {
12
+ color: ${({theme:e,expanded:t})=>t?void 0:e.colors.primary600};
13
+ }
14
+
15
+ & > ${P.k} {
16
+ background: ${({theme:e})=>e.colors.primary100};
17
+ }
18
+
19
+ [data-strapi-dropdown='true'] {
20
+ background: ${({theme:e})=>e.colors.primary200};
21
+ }
22
+ }
23
+ `,a=({children:e,disabled:t=!1,error:o,expanded:i=!1,hasErrorMessage:s=!0,id:l,onToggle:p,toggle:h,size:v="M",variant:d="primary",shadow:g})=>{const x=(0,j.M)(l),O=f.useMemo(()=>({expanded:i,onToggle:p,toggle:h,id:x,size:v,variant:d,disabled:t}),[t,i,x,p,v,h,d]);return(0,r.jsxs)(_.S.Provider,{value:O,children:[(0,r.jsx)(u,{"data-strapi-expanded":i,disabled:t,"aria-disabled":t,expanded:i,hasRadius:!0,variant:d,error:o,shadow:g,children:e}),o&&s&&(0,r.jsx)(E.x,{paddingTop:1,children:(0,r.jsx)(M.Z,{variant:"pi",textColor:"danger600",children:o})})]})}},89966:function(y,m,n){"use strict";n.d(m,{v:function(){return _}});var r=n(74512),f=n(91045),c=n(72850);const _=({children:E,...P})=>{const{expanded:j,id:M}=(0,f.A)();if(!j)return null;const C=`accordion-content-${M}`,w=`accordion-label-${M}`,u=`accordion-desc-${M}`;return(0,r.jsx)(c.x,{role:"region",id:C,"aria-labelledby":w,"aria-describedby":u,...P,children:E})}},91045:function(y,m,n){"use strict";n.d(m,{A:function(){return c},S:function(){return f}});var r=n(32735);const f=(0,r.createContext)({disabled:!1,expanded:!1,id:"",size:"M",variant:"primary"}),c=()=>(0,r.useContext)(f)},61762:function(y,m,n){"use strict";n.d(m,{B:function(){return e}});var r=n(74512),f=n(16899),c=n(8471),_=n(83828),E=n(91045);const P=({expanded:t,disabled:o,variant:i})=>{let s="neutral100";return t?s="primary100":o?s="neutral150":i==="primary"&&(s="neutral0"),s};var j=n(87933),M=n(99140),C=n(7563),w=n(49372);const u=(0,c.ZP)(C.A)`
24
+ text-align: left;
25
+
26
+ // necessary to make the ellipsis prop work on the title
27
+ > span {
28
+ max-width: 100%;
29
+ }
30
+
31
+ svg {
32
+ width: ${14/16}rem;
33
+ height: ${14/16}rem;
34
+
35
+ path {
36
+ fill: ${({theme:t,expanded:o})=>o?t.colors.primary600:t.colors.neutral500};
37
+ }
38
+ }
39
+ `,a=(0,c.ZP)(j.k)`
40
+ min-height: ${({theme:t,size:o})=>t.sizes.accordions[o]};
41
+ border-radius: ${({theme:t,expanded:o})=>o?`${t.borderRadius} ${t.borderRadius} 0 0`:t.borderRadius};
42
+
43
+ &:hover {
44
+ svg {
45
+ path {
46
+ fill: ${({theme:t})=>t.colors.primary600};
47
+ }
48
+ }
49
+ }
50
+ `,e=({title:t,description:o,as:i="span",togglePosition:s="right",action:l,...p})=>{const{onToggle:h,toggle:v,expanded:d,id:g,size:x,variant:O,disabled:b}=(0,E.A)(),Z=`accordion-content-${g}`,D=`accordion-label-${g}`,R=`accordion-desc-${g}`,A=x==="M"?6:4,$=x==="M"?A:A-2,B=P({expanded:d,disabled:b,variant:O}),S={as:i,fontWeight:x==="S"?"bold":void 0,id:D,textColor:d?"primary600":"neutral700",ellipsis:!0,variant:x==="M"?"delta":void 0},T=d?"primary600":"neutral600",W=d?"primary200":"neutral200",L=x==="M"?`${32/16}rem`:`${24/16}rem`,I=()=>{b||(v&&!h?(console.warn('Deprecation warning: Usage of "toggle" prop in Accordion component is deprecated. This is discouraged and will be removed in the next major release. Please use "onToggle" instead'),v()):h&&h())},U=(0,r.jsx)(j.k,{justifyContent:"center",borderRadius:"50%",height:L,width:L,transform:d?"rotate(180deg)":void 0,"data-strapi-dropdown":!0,"aria-hidden":!0,as:"span",background:W,cursor:b?"not-allowed":"pointer",onClick:I,shrink:0,children:(0,r.jsx)(M.J,{as:f.Z,width:x==="M"?`${11/16}rem`:`${8/16}rem`,color:d?"primary600":"neutral600"})});return(0,r.jsx)(a,{paddingBottom:$,paddingLeft:A,paddingRight:A,paddingTop:$,background:B,expanded:d,size:x,justifyContent:"space-between",cursor:b?"not-allowed":"",children:(0,r.jsxs)(j.k,{gap:3,flex:1,maxWidth:"100%",children:[s==="left"&&U,(0,r.jsx)(u,{onClick:I,"aria-disabled":b,"aria-expanded":d,"aria-controls":Z,"aria-labelledby":D,"data-strapi-accordion-toggle":!0,expanded:d,type:"button",flex:1,minWidth:0,...p,children:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(_.y,{...S,children:t}),o&&(0,r.jsx)(w.Z,{as:"p",id:R,textColor:T,children:o})]})}),s==="right"&&(0,r.jsxs)(j.k,{gap:3,children:[U,l]}),s==="left"&&l]})})}},47081:function(y,m,n){"use strict";n.d(m,{Z:function(){return c}});var r=n(74512);const f=_=>(0,r.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",..._,children:[(0,r.jsx)("path",{d:"M16.563 5.587a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M18.487 3.083c-.012.788-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574A1.943 1.943 0 0 1 14.9 2.11c.4-.684 1.2-1.066 1.981-.927a1.954 1.954 0 0 1 1.606 1.9c.011.748 1.17.748 1.158 0A3.138 3.138 0 0 0 17.565.17c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM16.563 14.372a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M18.487 11.867c-.012.789-.487 1.513-1.229 1.797a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.968 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.675 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.005ZM16.563 23.392a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M18.487 20.89c-.012.787-.487 1.512-1.229 1.796a1.954 1.954 0 0 1-2.184-.574 1.943 1.943 0 0 1-.174-2.196c.4-.684 1.2-1.066 1.981-.927.928.156 1.588.967 1.606 1.9.011.748 1.17.748 1.158 0a3.138 3.138 0 0 0-2.08-2.914c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.284 3.575.678 1.124 1.993 1.674 3.273 1.431 1.432-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.158-.006ZM7.378 5.622a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M9.302 3.119c-.011.788-.486 1.512-1.228 1.796a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38.205c-1.176-.423-2.567-.029-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.005ZM7.378 14.406a2.503 2.503 0 1 0 0-5.006 2.503 2.503 0 0 0 0 5.006Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M9.302 11.902c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927a1.943 1.943 0 0 1 1.605 1.9c.012.748 1.17.748 1.16 0A3.138 3.138 0 0 0 8.38 8.988c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.575.678 1.124 1.994 1.674 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.753-1.147-.753-1.159-.006ZM7.378 23.427a2.503 2.503 0 1 0 0-5.007 2.503 2.503 0 0 0 0 5.007Z",fill:"#212134"}),(0,r.jsx)("path",{d:"M9.302 20.924c-.011.788-.486 1.513-1.228 1.797a1.954 1.954 0 0 1-2.185-.574 1.943 1.943 0 0 1-.173-2.196c.4-.684 1.199-1.066 1.981-.927.933.156 1.594.967 1.605 1.9.012.748 1.17.748 1.16 0A3.139 3.139 0 0 0 8.38 18.01c-1.176-.423-2.567-.03-3.36.933-.83 1.002-.968 2.45-.285 3.569.678 1.124 1.994 1.675 3.274 1.431 1.431-.272 2.428-1.593 2.451-3.019.012-.747-1.147-.747-1.159 0Z",fill:"#212134"})]}),c=f},86308:function(y,m,n){"use strict";n.d(m,{Z:function(){return c}});var r=n(74512);const f=_=>(0,r.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",..._,children:[(0,r.jsx)("circle",{cx:12,cy:12,r:12,fill:"#212134"}),(0,r.jsx)("path",{d:"M17 12.569c0 .124-.1.224-.225.224h-3.981v3.982c0 .124-.101.225-.226.225h-1.136a.225.225 0 0 1-.226-.225v-3.981H7.226A.225.225 0 0 1 7 12.567v-1.136c0-.125.1-.226.225-.226h3.982V7.226c0-.124.1-.225.224-.225h1.138c.124 0 .224.1.224.225v3.982h3.982c.124 0 .225.1.225.224v1.138Z",fill:"#F6F6F9"})]}),c=f}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7259],{30493:function(I,E,e){e.d(E,{Z:function(){return v}});var t=e(32735),p=e(67879),n=e(60216),s=e.n(n),T=e(43383),a=e(66456),i=e(29439),u=e(82055),c=e(87933),M=e(41415),o=e(44647),m=e(67927);const f=({onRegenerate:R,idToRegenerate:r,backUrl:L,onError:x})=>{const{formatMessage:U}=(0,p.Z)(),[K,S]=(0,t.useState)(!1),{regenerateData:W,isLoadingConfirmation:k}=(0,m.rW)(L,r,R,x),B=async()=>{W(),S(!1)};return t.createElement(t.Fragment,null,t.createElement(M.z,{startIcon:t.createElement(o.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>S(!0),name:"regenerate"},U({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(T.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(o.Z,null),isConfirmButtonLoading:k,isOpen:K,onToggleDialog:()=>S(!1),onConfirm:B,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};f.defaultProps={onRegenerate(){},onError:void 0},f.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired,onError:s().func};var d=f;const l=({title:R,token:r,setToken:L,canEditInputs:x,canRegenerate:U,isSubmitting:K,backUrl:S,regenerateUrl:W,onErrorRegenerate:k})=>{const{formatMessage:B}=(0,p.Z)(),V=H=>{L({...r,accessKey:H})};return t.createElement(u.T,{title:r?.name||B(R),primaryAction:x?t.createElement(c.k,{gap:2},U&&r?.id&&t.createElement(d,{backUrl:W,onRegenerate:V,idToRegenerate:r?.id,onError:k}),t.createElement(M.z,{disabled:K,loading:K,startIcon:t.createElement(a.Z,null),type:"submit",size:"S"},B({id:"global.save",defaultMessage:"Save"}))):U&&r?.id&&t.createElement(d,{onRegenerate:V,idToRegenerate:r?.id,backUrl:W}),navigationAction:t.createElement(T.rU,{startIcon:t.createElement(i.Z,null),to:S},B({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};l.propTypes={token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().oneOfType([s().number,s().string]),name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),canEditInputs:s().bool.isRequired,canRegenerate:s().bool.isRequired,setToken:s().func.isRequired,isSubmitting:s().bool.isRequired,backUrl:s().string.isRequired,title:s().shape({id:s().string,label:s().string}).isRequired,regenerateUrl:s().string.isRequired,onErrorRegenerate:s().func},l.defaultProps={token:void 0,onErrorRegenerate:void 0};var v=l},4321:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(80084),a=e(84967),i=e(49372),u=e(37944);const c=({token:M,errors:o,values:m,onChange:f,isCreating:d})=>{const{formatMessage:l}=(0,s.Z)();return t.createElement(t.Fragment,null,t.createElement(T.P,{name:"lifespan",label:l({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:m.lifespan!==null?m.lifespan:"0",error:o.lifespan?l(o.lifespan?.id?o.lifespan:{id:o.lifespan,defaultMessage:o.lifespan}):null,onChange:v=>{f({target:{name:"lifespan",value:v}})},required:!0,disabled:!d,placeholder:"Select"},t.createElement(a.W,{value:"604800000"},l({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(a.W,{value:"2592000000"},l({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(a.W,{value:"7776000000"},l({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(a.W,{value:"0"},l({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(i.Z,{variant:"pi",textColor:"neutral600"},!d&&`${l({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,u.IX)(M?.createdAt,parseInt(m.lifespan,10))}`))};c.propTypes={errors:n().shape({lifespan:n().string}),onChange:n().func.isRequired,values:n().shape({lifespan:n().oneOfType([n().number,n().string])}).isRequired,isCreating:n().bool.isRequired,token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},c.defaultProps={errors:{},token:{}},E.Z=c},93682:function(I,E,e){var t=e(32735),p=e(67879),n=e(43383),s=e(50563),T=e(47765),a=e(11631),i=e(60216),u=e.n(i),c=e(59087),M=e.n(c);const o=({token:m,tokenType:f})=>{const{formatMessage:d}=(0,p.Z)(),l=(0,n.lm)(),{trackUsage:v}=(0,n.rS)(),R=(0,t.useRef)(v);return t.createElement(n.Y_,{endAction:m&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(c.CopyToClipboard,{onCopy:()=>{R.current("didCopyTokenKey",{tokenType:f}),l({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:m},t.createElement(s.h,{label:d({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(T.Z,null),style:{padding:0,height:"1rem"}}))),title:m||d({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:d(m?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(a.Z,null),iconBackground:"neutral100"})};o.defaultProps={token:null},o.propTypes={token:u().string,tokenType:u().string.isRequired},E.Z=o},42789:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(10508);const a=({errors:i,values:u,onChange:c,canEditInputs:M})=>{const{formatMessage:o}=(0,s.Z)();return t.createElement(T.g,{label:o({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:i.description?o(i.description?.id?i.description:{id:i.description,defaultMessage:i.description}):null,onChange:c,disabled:!M},u.description)};a.propTypes={errors:n().shape({description:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({description:n().string}).isRequired},a.defaultProps={errors:{}},E.Z=a},8377:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(10369);const a=({errors:i,values:u,onChange:c,canEditInputs:M})=>{const{formatMessage:o}=(0,s.Z)();return t.createElement(T.o,{name:"name",error:i.name?o(i.name?.id?i.name:{id:i.name,defaultMessage:i.name}):null,label:o({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:c,value:u.name,disabled:!M,required:!0})};a.propTypes={errors:n().shape({name:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string}).isRequired},a.defaultProps={errors:{}},E.Z=a},49638:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(80084),a=e(84967);const i=({name:u,errors:c,values:M,onChange:o,canEditInputs:m,options:f,label:d})=>{const{formatMessage:l}=(0,s.Z)();return t.createElement(T.P,{name:u,label:l({id:d.id,defaultMessage:d.defaultMessage}),value:M&&M[u],error:c[u]?l(c[u]?.id?c[u]:{id:c[u],defaultMessage:c[u]}):null,onChange:o,placeholder:"Select",required:!0,disabled:!m},f&&f.map(({value:v,label:R})=>t.createElement(a.W,{key:v,value:v},l(R))))};i.propTypes={name:n().string,options:n().arrayOf(n().shape({label:n().shape({id:n().string,defaultMessage:n().string}),value:n().string})),errors:n().shape({type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({type:n().string}).isRequired,label:n().shape({id:n().string,defaultMessage:n().string}).isRequired},i.defaultProps={name:"type",errors:{},options:[]},E.Z=i},68774:function(I,E,e){e.d(E,{Z:function(){return t},f:function(){return p}});const t="api-token",p="transfer-token"},37944:function(I,E,e){e.d(E,{IX:function(){return T},fK:function(){return c},mk:function(){return o}});var t=e(14723),p=e(85544),n=e(76698),T=(m,f,d="en")=>{if(f&&typeof f=="number"){const l=f/24/60/60/1e3;return(0,t.Z)((0,p.Z)(new Date(m),l),"PPP",{locale:n[d]})}return"Unlimited"},a=e(24346),i=e(43383),c=a.Ry().shape({name:a.Z_(i.I0.string).max(100).required(i.I0.required),type:a.Z_(i.I0.string).oneOf(["read-only","full-access","custom"]).required(i.I0.required),description:a.Z_().nullable(),lifespan:a.Rx().integer().min(0).nullable().defined(i.I0.required)}),o=m=>{const f={allActionsIds:[],permissions:[]};return f.permissions=Object.keys(m).map(d=>({apiId:d,label:d.split("::")[1],controllers:Object.keys(m[d].controllers).map(l=>({controller:l,actions:m[d].controllers[l].map(v=>{const R=`${d}.${l}.${v}`;return d.includes("api::")&&f.allActionsIds.push(R),{action:v,actionId:R}}).flat()})).flat()})),f}},37259:function(I,E,e){e.d(E,{Z:function(){return ne}});var t=e(32735),p=e(67879),n=e(92802),s=e(53038),T=e(20108),a=e(43383),i=e(27649),u=e(17e3),c=e(87933),M=e(8997),o=e(24346),f=o.Ry().shape({name:o.Z_(a.I0.string).max(100).required(a.I0.required),description:o.Z_().nullable(),lifespan:o.Rx().integer().min(0).nullable().defined(a.I0.required),permissions:o.Z_(a.I0.string).required(a.I0.required)}),d=e(82055),l=e(41415),v=e(66456),R=e(60216),r=e.n(R);const L=({transferTokenName:D})=>{const{formatMessage:h}=(0,p.Z)();return(0,a.go)(),t.createElement(i.o,{"aria-busy":"true"},t.createElement(a.SL,{name:"Transfer Tokens"}),t.createElement(d.T,{primaryAction:t.createElement(l.z,{disabled:!0,startIcon:t.createElement(v.Z,null),type:"button",size:"L"},h({id:"global.save",defaultMessage:"Save"})),title:D||h({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(u.D,null,t.createElement(a.dO,null)))};L.defaultProps={transferTokenName:null},L.propTypes={transferTokenName:r().string};var x=L,U=e(83983),K=e(72850),S=e(49372),W=e(15335),k=e(5803),B=e(4321),V=e(8377),H=e(42789),J=e(49638);const j=({errors:D,onChange:h,canEditInputs:Z,isCreating:O,values:A,transferToken:y})=>{const{formatMessage:N}=(0,p.Z)(),G=[{value:"push",label:{id:"Settings.transferTokens.types.push",defaultMessage:"Push"}},{value:"pull",label:{id:"Settings.transferTokens.types.pull",defaultMessage:"Pull"}},{value:"push-pull",label:{id:"Settings.transferTokens.types.push-pull",defaultMessage:"Full Access"}}];return t.createElement(K.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(c.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(S.Z,{variant:"delta",as:"h2"},N({id:"global.details",defaultMessage:"Details"})),t.createElement(W.r,{gap:5},t.createElement(k.P,{key:"name",col:6,xs:12},t.createElement(V.Z,{errors:D,values:A,canEditInputs:Z,onChange:h})),t.createElement(k.P,{key:"description",col:6,xs:12},t.createElement(H.Z,{errors:D,values:A,canEditInputs:Z,onChange:h})),t.createElement(k.P,{key:"lifespan",col:6,xs:12},t.createElement(B.Z,{isCreating:O,errors:D,values:A,onChange:h,token:y})),t.createElement(k.P,{key:"permissions",col:6,xs:12},t.createElement(J.Z,{name:"permissions",values:A,errors:D,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:F=>{h({target:{name:"permissions",value:F}})},options:G,canEditInputs:Z})))))};j.propTypes={errors:r().shape({name:r().string,description:r().string,lifespan:r().string,type:r().string}),onChange:r().func.isRequired,canEditInputs:r().bool.isRequired,values:r().shape({name:r().string,description:r().string,lifespan:r().oneOfType([r().number,r().string]),type:r().string}).isRequired,isCreating:r().bool.isRequired,transferToken:r().shape({id:r().oneOfType([r().number,r().string]),type:r().string,lifespan:r().string,name:r().string,accessKey:r().string,permissions:r().array,description:r().string,createdAt:r().string})},j.defaultProps={errors:{},transferToken:{}};var q=j,w=e(93682),ee=e(30493),$=e(68774);const te="Name already taken";var ne=()=>{(0,a.go)();const{formatMessage:D}=(0,p.Z)(),{lockApp:h,unlockApp:Z}=(0,a.o1)(),O=(0,a.lm)(),A=(0,s.k6)(),[y,N]=(0,t.useState)(A.location.state?.transferToken.accessKey?{...A.location.state.transferToken}:null),{trackUsage:G}=(0,a.rS)(),F=(0,t.useRef)(G),{setCurrentStep:se}=(0,a.c1)(),{allowedActions:{canCreate:ae,canUpdate:re,canRegenerate:ie}}=(0,a.ss)(U.Z.settings["transfer-tokens"]),{params:{id:z}}=(0,s.$B)("/settings/transfer-tokens/:id"),{get:oe,post:le,put:de}=(0,a.kY)(),P=z==="create",{formatAPIError:Q}=(0,a.So)();(0,t.useEffect)(()=>{F.current(P?"didAddTokenFromList":"didEditTokenFromList",{tokenType:$.f})},[P]);const{status:ce}=(0,T.useQuery)(["transfer-token",z],async()=>{const{data:{data:g}}=await oe(`/admin/transfer/tokens/${z}`);return N({...g}),g},{enabled:!P&&!y,onError(g){g.response.data.error.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:Q(g)})}}),ue=async(g,_)=>{F.current(P?"willCreateToken":"willEditToken",{tokenType:$.f}),h();const b=g.lifespan&&parseInt(g.lifespan,10)&&g.lifespan!=="0"?parseInt(g.lifespan,10):null,Y=g.permissions.split("-");try{const{data:{data:C}}=P?await le("/admin/transfer/tokens",{...g,lifespan:b,permissions:Y}):await de(`/admin/transfer/tokens/${z}`,{name:g.name,description:g.description,permissions:Y});Z(),P&&(A.replace(`/settings/transfer-tokens/${C.id}`,{transferToken:C}),se("transferTokens.success")),N({...C}),O({type:"success",message:D(P?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),F.current(P?"didCreateToken":"didEditToken",{type:y?.permissions,tokenType:$.f})}catch(C){const pe=(0,M.Iz)(C.response.data);_.setErrors(pe),C?.response?.data?.error?.message===te?O({type:"warning",message:C.response.data.message||"notification.error.tokennamenotunique"}):C?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:C?.response?.data?.message||"notification.error"}),Z()}},X=re&&!P||ae&&P;if(!P&&!y&&ce!=="success")return t.createElement(x,{transferTokenName:y?.name});const ge=g=>{g?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:Q(g)})};return t.createElement(i.o,null,t.createElement(a.SL,{name:"Transfer Tokens"}),t.createElement(n.J9,{validationSchema:f,validateOnChange:!1,initialValues:{name:y?.name||"",description:y?.description||"",lifespan:y?.lifespan?y.lifespan.toString():y?.lifespan,permissions:y?.permissions.join("-")},enableReinitialize:!0,onSubmit:(g,_)=>ue(g,_)},({errors:g,handleChange:_,isSubmitting:b,values:Y})=>t.createElement(a.l0,null,t.createElement(ee.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:y,setToken:N,canEditInputs:X,canRegenerate:ie,isSubmitting:b,regenerateUrl:"/admin/transfer/tokens/",onErrorRegenerate:ge}),t.createElement(u.D,null,t.createElement(c.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(y?.name)&&t.createElement(w.Z,{token:y?.accessKey,tokenType:$.f}),t.createElement(q,{errors:g,onChange:_,canEditInputs:X,isCreating:P,values:Y,transferToken:y}))))))}}}]);
1
+ "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[7259],{30493:function(I,E,e){e.d(E,{Z:function(){return v}});var t=e(32735),p=e(67879),n=e(60216),s=e.n(n),T=e(24989),a=e(66456),i=e(29439),u=e(82055),c=e(87933),M=e(41415),o=e(44647),m=e(67927);const f=({onRegenerate:R,idToRegenerate:r,backUrl:L,onError:x})=>{const{formatMessage:U}=(0,p.Z)(),[K,S]=(0,t.useState)(!1),{regenerateData:W,isLoadingConfirmation:k}=(0,m.rW)(L,r,R,x),B=async()=>{W(),S(!1)};return t.createElement(t.Fragment,null,t.createElement(M.z,{startIcon:t.createElement(o.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>S(!0),name:"regenerate"},U({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(T.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(o.Z,null),isConfirmButtonLoading:k,isOpen:K,onToggleDialog:()=>S(!1),onConfirm:B,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};f.defaultProps={onRegenerate(){},onError:void 0},f.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired,onError:s().func};var d=f;const l=({title:R,token:r,setToken:L,canEditInputs:x,canRegenerate:U,isSubmitting:K,backUrl:S,regenerateUrl:W,onErrorRegenerate:k})=>{const{formatMessage:B}=(0,p.Z)(),V=H=>{L({...r,accessKey:H})};return t.createElement(u.T,{title:r?.name||B(R),primaryAction:x?t.createElement(c.k,{gap:2},U&&r?.id&&t.createElement(d,{backUrl:W,onRegenerate:V,idToRegenerate:r?.id,onError:k}),t.createElement(M.z,{disabled:K,loading:K,startIcon:t.createElement(a.Z,null),type:"submit",size:"S"},B({id:"global.save",defaultMessage:"Save"}))):U&&r?.id&&t.createElement(d,{onRegenerate:V,idToRegenerate:r?.id,backUrl:W}),navigationAction:t.createElement(T.rU,{startIcon:t.createElement(i.Z,null),to:S},B({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};l.propTypes={token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().oneOfType([s().number,s().string]),name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),canEditInputs:s().bool.isRequired,canRegenerate:s().bool.isRequired,setToken:s().func.isRequired,isSubmitting:s().bool.isRequired,backUrl:s().string.isRequired,title:s().shape({id:s().string,label:s().string}).isRequired,regenerateUrl:s().string.isRequired,onErrorRegenerate:s().func},l.defaultProps={token:void 0,onErrorRegenerate:void 0};var v=l},4321:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(80084),a=e(84967),i=e(49372),u=e(37944);const c=({token:M,errors:o,values:m,onChange:f,isCreating:d})=>{const{formatMessage:l}=(0,s.Z)();return t.createElement(t.Fragment,null,t.createElement(T.P,{name:"lifespan",label:l({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:m.lifespan!==null?m.lifespan:"0",error:o.lifespan?l(o.lifespan?.id?o.lifespan:{id:o.lifespan,defaultMessage:o.lifespan}):null,onChange:v=>{f({target:{name:"lifespan",value:v}})},required:!0,disabled:!d,placeholder:"Select"},t.createElement(a.W,{value:"604800000"},l({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(a.W,{value:"2592000000"},l({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(a.W,{value:"7776000000"},l({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(a.W,{value:"0"},l({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(i.Z,{variant:"pi",textColor:"neutral600"},!d&&`${l({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,u.IX)(M?.createdAt,parseInt(m.lifespan,10))}`))};c.propTypes={errors:n().shape({lifespan:n().string}),onChange:n().func.isRequired,values:n().shape({lifespan:n().oneOfType([n().number,n().string])}).isRequired,isCreating:n().bool.isRequired,token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string})},c.defaultProps={errors:{},token:{}},E.Z=c},93682:function(I,E,e){var t=e(32735),p=e(67879),n=e(24989),s=e(50563),T=e(47765),a=e(11631),i=e(60216),u=e.n(i),c=e(59087),M=e.n(c);const o=({token:m,tokenType:f})=>{const{formatMessage:d}=(0,p.Z)(),l=(0,n.lm)(),{trackUsage:v}=(0,n.rS)(),R=(0,t.useRef)(v);return t.createElement(n.Y_,{endAction:m&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(c.CopyToClipboard,{onCopy:()=>{R.current("didCopyTokenKey",{tokenType:f}),l({type:"success",message:{id:"Settings.tokens.notification.copied"}})},text:m},t.createElement(s.h,{label:d({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),noBorder:!0,icon:t.createElement(T.Z,null),style:{padding:0,height:"1rem"}}))),title:m||d({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:d(m?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(a.Z,null),iconBackground:"neutral100"})};o.defaultProps={token:null},o.propTypes={token:u().string,tokenType:u().string.isRequired},E.Z=o},42789:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(10508);const a=({errors:i,values:u,onChange:c,canEditInputs:M})=>{const{formatMessage:o}=(0,s.Z)();return t.createElement(T.g,{label:o({id:"Settings.tokens.form.description",defaultMessage:"Description"}),name:"description",error:i.description?o(i.description?.id?i.description:{id:i.description,defaultMessage:i.description}):null,onChange:c,disabled:!M},u.description)};a.propTypes={errors:n().shape({description:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({description:n().string}).isRequired},a.defaultProps={errors:{}},E.Z=a},8377:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(10369);const a=({errors:i,values:u,onChange:c,canEditInputs:M})=>{const{formatMessage:o}=(0,s.Z)();return t.createElement(T.o,{name:"name",error:i.name?o(i.name?.id?i.name:{id:i.name,defaultMessage:i.name}):null,label:o({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:c,value:u.name,disabled:!M,required:!0})};a.propTypes={errors:n().shape({name:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string}).isRequired},a.defaultProps={errors:{}},E.Z=a},49638:function(I,E,e){var t=e(32735),p=e(60216),n=e.n(p),s=e(67879),T=e(80084),a=e(84967);const i=({name:u,errors:c,values:M,onChange:o,canEditInputs:m,options:f,label:d})=>{const{formatMessage:l}=(0,s.Z)();return t.createElement(T.P,{name:u,label:l({id:d.id,defaultMessage:d.defaultMessage}),value:M&&M[u],error:c[u]?l(c[u]?.id?c[u]:{id:c[u],defaultMessage:c[u]}):null,onChange:o,placeholder:"Select",required:!0,disabled:!m},f&&f.map(({value:v,label:R})=>t.createElement(a.W,{key:v,value:v},l(R))))};i.propTypes={name:n().string,options:n().arrayOf(n().shape({label:n().shape({id:n().string,defaultMessage:n().string}),value:n().string})),errors:n().shape({type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({type:n().string}).isRequired,label:n().shape({id:n().string,defaultMessage:n().string}).isRequired},i.defaultProps={name:"type",errors:{},options:[]},E.Z=i},68774:function(I,E,e){e.d(E,{Z:function(){return t},f:function(){return p}});const t="api-token",p="transfer-token"},37944:function(I,E,e){e.d(E,{IX:function(){return T},fK:function(){return c},mk:function(){return o}});var t=e(14723),p=e(85544),n=e(76698),T=(m,f,d="en")=>{if(f&&typeof f=="number"){const l=f/24/60/60/1e3;return(0,t.Z)((0,p.Z)(new Date(m),l),"PPP",{locale:n[d]})}return"Unlimited"},a=e(24346),i=e(24989),c=a.Ry().shape({name:a.Z_(i.I0.string).max(100).required(i.I0.required),type:a.Z_(i.I0.string).oneOf(["read-only","full-access","custom"]).required(i.I0.required),description:a.Z_().nullable(),lifespan:a.Rx().integer().min(0).nullable().defined(i.I0.required)}),o=m=>{const f={allActionsIds:[],permissions:[]};return f.permissions=Object.keys(m).map(d=>({apiId:d,label:d.split("::")[1],controllers:Object.keys(m[d].controllers).map(l=>({controller:l,actions:m[d].controllers[l].map(v=>{const R=`${d}.${l}.${v}`;return d.includes("api::")&&f.allActionsIds.push(R),{action:v,actionId:R}}).flat()})).flat()})),f}},37259:function(I,E,e){e.d(E,{Z:function(){return ne}});var t=e(32735),p=e(67879),n=e(92802),s=e(53038),T=e(20108),a=e(24989),i=e(27649),u=e(17e3),c=e(87933),M=e(8997),o=e(24346),f=o.Ry().shape({name:o.Z_(a.I0.string).max(100).required(a.I0.required),description:o.Z_().nullable(),lifespan:o.Rx().integer().min(0).nullable().defined(a.I0.required),permissions:o.Z_(a.I0.string).required(a.I0.required)}),d=e(82055),l=e(41415),v=e(66456),R=e(60216),r=e.n(R);const L=({transferTokenName:D})=>{const{formatMessage:h}=(0,p.Z)();return(0,a.go)(),t.createElement(i.o,{"aria-busy":"true"},t.createElement(a.SL,{name:"Transfer Tokens"}),t.createElement(d.T,{primaryAction:t.createElement(l.z,{disabled:!0,startIcon:t.createElement(v.Z,null),type:"button",size:"L"},h({id:"global.save",defaultMessage:"Save"})),title:D||h({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(u.D,null,t.createElement(a.dO,null)))};L.defaultProps={transferTokenName:null},L.propTypes={transferTokenName:r().string};var x=L,U=e(83983),K=e(72850),S=e(49372),W=e(15335),k=e(5803),B=e(4321),V=e(8377),H=e(42789),J=e(49638);const j=({errors:D,onChange:h,canEditInputs:Z,isCreating:O,values:A,transferToken:y})=>{const{formatMessage:N}=(0,p.Z)(),G=[{value:"push",label:{id:"Settings.transferTokens.types.push",defaultMessage:"Push"}},{value:"pull",label:{id:"Settings.transferTokens.types.pull",defaultMessage:"Pull"}},{value:"push-pull",label:{id:"Settings.transferTokens.types.push-pull",defaultMessage:"Full Access"}}];return t.createElement(K.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(c.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(S.Z,{variant:"delta",as:"h2"},N({id:"global.details",defaultMessage:"Details"})),t.createElement(W.r,{gap:5},t.createElement(k.P,{key:"name",col:6,xs:12},t.createElement(V.Z,{errors:D,values:A,canEditInputs:Z,onChange:h})),t.createElement(k.P,{key:"description",col:6,xs:12},t.createElement(H.Z,{errors:D,values:A,canEditInputs:Z,onChange:h})),t.createElement(k.P,{key:"lifespan",col:6,xs:12},t.createElement(B.Z,{isCreating:O,errors:D,values:A,onChange:h,token:y})),t.createElement(k.P,{key:"permissions",col:6,xs:12},t.createElement(J.Z,{name:"permissions",values:A,errors:D,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:F=>{h({target:{name:"permissions",value:F}})},options:G,canEditInputs:Z})))))};j.propTypes={errors:r().shape({name:r().string,description:r().string,lifespan:r().string,type:r().string}),onChange:r().func.isRequired,canEditInputs:r().bool.isRequired,values:r().shape({name:r().string,description:r().string,lifespan:r().oneOfType([r().number,r().string]),type:r().string}).isRequired,isCreating:r().bool.isRequired,transferToken:r().shape({id:r().oneOfType([r().number,r().string]),type:r().string,lifespan:r().string,name:r().string,accessKey:r().string,permissions:r().array,description:r().string,createdAt:r().string})},j.defaultProps={errors:{},transferToken:{}};var q=j,w=e(93682),ee=e(30493),$=e(68774);const te="Name already taken";var ne=()=>{(0,a.go)();const{formatMessage:D}=(0,p.Z)(),{lockApp:h,unlockApp:Z}=(0,a.o1)(),O=(0,a.lm)(),A=(0,s.k6)(),[y,N]=(0,t.useState)(A.location.state?.transferToken.accessKey?{...A.location.state.transferToken}:null),{trackUsage:G}=(0,a.rS)(),F=(0,t.useRef)(G),{setCurrentStep:se}=(0,a.c1)(),{allowedActions:{canCreate:ae,canUpdate:re,canRegenerate:ie}}=(0,a.ss)(U.Z.settings["transfer-tokens"]),{params:{id:z}}=(0,s.$B)("/settings/transfer-tokens/:id"),{get:oe,post:le,put:de}=(0,a.kY)(),P=z==="create",{formatAPIError:Q}=(0,a.So)();(0,t.useEffect)(()=>{F.current(P?"didAddTokenFromList":"didEditTokenFromList",{tokenType:$.f})},[P]);const{status:ce}=(0,T.useQuery)(["transfer-token",z],async()=>{const{data:{data:g}}=await oe(`/admin/transfer/tokens/${z}`);return N({...g}),g},{enabled:!P&&!y,onError(g){g.response.data.error.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:Q(g)})}}),ue=async(g,_)=>{F.current(P?"willCreateToken":"willEditToken",{tokenType:$.f}),h();const b=g.lifespan&&parseInt(g.lifespan,10)&&g.lifespan!=="0"?parseInt(g.lifespan,10):null,Y=g.permissions.split("-");try{const{data:{data:C}}=P?await le("/admin/transfer/tokens",{...g,lifespan:b,permissions:Y}):await de(`/admin/transfer/tokens/${z}`,{name:g.name,description:g.description,permissions:Y});Z(),P&&(A.replace(`/settings/transfer-tokens/${C.id}`,{transferToken:C}),se("transferTokens.success")),N({...C}),O({type:"success",message:D(P?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),F.current(P?"didCreateToken":"didEditToken",{type:y?.permissions,tokenType:$.f})}catch(C){const pe=(0,M.Iz)(C.response.data);_.setErrors(pe),C?.response?.data?.error?.message===te?O({type:"warning",message:C.response.data.message||"notification.error.tokennamenotunique"}):C?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:C?.response?.data?.message||"notification.error"}),Z()}},X=re&&!P||ae&&P;if(!P&&!y&&ce!=="success")return t.createElement(x,{transferTokenName:y?.name});const ge=g=>{g?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?O({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):O({type:"warning",message:Q(g)})};return t.createElement(i.o,null,t.createElement(a.SL,{name:"Transfer Tokens"}),t.createElement(n.J9,{validationSchema:f,validateOnChange:!1,initialValues:{name:y?.name||"",description:y?.description||"",lifespan:y?.lifespan?y.lifespan.toString():y?.lifespan,permissions:y?.permissions.join("-")},enableReinitialize:!0,onSubmit:(g,_)=>ue(g,_)},({errors:g,handleChange:_,isSubmitting:b,values:Y})=>t.createElement(a.l0,null,t.createElement(ee.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:y,setToken:N,canEditInputs:X,canRegenerate:ie,isSubmitting:b,regenerateUrl:"/admin/transfer/tokens/",onErrorRegenerate:ge}),t.createElement(u.D,null,t.createElement(c.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(y?.name)&&t.createElement(w.Z,{token:y?.accessKey,tokenType:$.f}),t.createElement(q,{errors:g,onChange:_,canEditInputs:X,isCreating:P,values:Y,transferToken:y}))))))}}}]);