@strapi/admin 4.12.1 → 4.12.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -1
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +7 -2
- package/admin/src/content-manager/pages/ListView/index.js +7 -1
- package/admin/src/hooks/index.js +0 -3
- package/admin/src/hooks/useAdminRolePermissions/__mocks__/index.js +5 -0
- package/admin/src/hooks/useAdminRolePermissions/index.js +34 -0
- package/admin/src/hooks/useAdminRoles/__mocks__/index.js +5 -0
- package/admin/src/hooks/useAdminRoles/index.js +40 -0
- package/admin/src/pages/InstalledPluginsPage/Plugins.js +2 -2
- package/admin/src/pages/InstalledPluginsPage/hooks/usePlugins/index.js +29 -0
- package/admin/src/pages/MarketplacePage/hooks/useFetchMarketplacePlugins/index.js +44 -0
- package/admin/src/pages/MarketplacePage/hooks/useFetchMarketplaceProviders/index.js +44 -0
- package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +2 -2
- package/admin/src/pages/SettingsPage/pages/Roles/CreatePage/index.js +24 -9
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/components/RoleForm/index.js +1 -0
- package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +34 -20
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +31 -84
- package/admin/src/pages/SettingsPage/pages/Roles/hooks/useAdminRolePermissionLayout/index.js +23 -0
- package/admin/src/translations/en.json +1 -1
- package/build/1049.f76cb14b.chunk.js +1 -0
- package/build/{2225.0e4f8c77.chunk.js → 2225.c6244756.chunk.js} +1 -1
- package/build/{Admin-authenticatedApp.8dfbc48d.chunk.js → Admin-authenticatedApp.f5ece8ff.chunk.js} +2 -2
- package/build/{Admin_marketplace.f0b87fce.chunk.js → Admin_marketplace.dde9c148.chunk.js} +6 -6
- package/build/Admin_pluginsPage.bbe79434.chunk.js +6 -0
- package/build/{Admin_profilePage.ca82c67b.chunk.js → Admin_profilePage.192edc52.chunk.js} +1 -1
- package/build/{Admin_settingsPage.50c867bf.chunk.js → Admin_settingsPage.97cb9d41.chunk.js} +1 -1
- package/build/admin-app.91898385.chunk.js +36 -0
- package/build/admin-edit-roles-page.6d567273.chunk.js +267 -0
- package/build/admin-roles-list.23ddff26.chunk.js +22 -0
- package/build/content-manager.2af15f57.chunk.js +1099 -0
- package/build/content-type-builder.40534de5.chunk.js +170 -0
- package/build/{en-json.01456e61.chunk.js → en-json.08c05fcf.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{main.1f8cc299.js → main.f13fc96c.js} +204 -204
- package/build/{runtime~main.80a43c16.js → runtime~main.bb4efc54.js} +1 -1
- package/build/sso-settings-page.12b6d8ae.chunk.js +1 -0
- package/build/transfer-tokens-list-page.22147d2c.chunk.js +16 -0
- package/build/{upload.77d8a64c.chunk.js → upload.37488080.chunk.js} +3 -3
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +15 -24
- package/index.js +2 -0
- package/package.json +8 -8
- package/scripts/build.js +1 -0
- package/server/controllers/role.js +9 -1
- package/server/services/role.js +3 -2
- package/webpack.config.js +2 -1
- package/admin/src/hooks/marketplace/useFetchMarketplacePlugins/index.js +0 -44
- package/admin/src/hooks/marketplace/useFetchMarketplaceProviders/index.js +0 -44
- package/admin/src/hooks/useFetchEnabledPlugins/index.js +0 -24
- package/admin/src/hooks/useFetchEnabledPlugins/utils/api.js +0 -10
- package/admin/src/hooks/useFetchPermissionsLayout/index.js +0 -42
- package/admin/src/hooks/useFetchPermissionsLayout/reducer.js +0 -35
- package/admin/src/hooks/useFetchRole/index.js +0 -68
- package/admin/src/hooks/useFetchRole/reducer.js +0 -33
- package/admin/src/hooks/useRolesList/index.js +0 -58
- package/admin/src/hooks/useRolesList/init.js +0 -5
- package/admin/src/hooks/useRolesList/reducer.js +0 -31
- package/build/1049.c3d082e9.chunk.js +0 -1
- package/build/Admin_pluginsPage.8728ff6e.chunk.js +0 -6
- package/build/admin-app.041dcd81.chunk.js +0 -36
- package/build/admin-edit-roles-page.a49b9f4f.chunk.js +0 -267
- package/build/admin-roles-list.0c129e98.chunk.js +0 -23
- package/build/content-manager.098eb004.chunk.js +0 -1099
- package/build/content-type-builder.64f4d6ac.chunk.js +0 -170
- package/build/sso-settings-page.81152e62.chunk.js +0 -1
- package/build/transfer-tokens-list-page.692eee77.chunk.js +0 -16
- /package/admin/src/{hooks/marketplace → pages/MarketplacePage}/constants.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback,
|
|
1
|
+
import React, { useCallback, useReducer, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
4
|
ActionLayout,
|
|
@@ -21,78 +21,27 @@ import {
|
|
|
21
21
|
LoadingIndicatorPage,
|
|
22
22
|
SearchURLQuery,
|
|
23
23
|
SettingsPageTitle,
|
|
24
|
-
|
|
25
|
-
useFilter,
|
|
24
|
+
useAPIErrorHandler,
|
|
26
25
|
useFocusWhenNavigate,
|
|
27
|
-
useNotification,
|
|
28
26
|
useQueryParams,
|
|
27
|
+
useNotification,
|
|
29
28
|
useRBAC,
|
|
30
29
|
} from '@strapi/helper-plugin';
|
|
31
30
|
import { Duplicate, Pencil, Plus, Trash } from '@strapi/icons';
|
|
32
|
-
import get from 'lodash/get';
|
|
33
31
|
import { useIntl } from 'react-intl';
|
|
34
32
|
import { useSelector } from 'react-redux';
|
|
35
33
|
import { useHistory } from 'react-router-dom';
|
|
36
34
|
|
|
37
|
-
import {
|
|
35
|
+
import { useAdminRoles } from '../../../../../hooks/useAdminRoles';
|
|
38
36
|
import { selectAdminPermissions } from '../../../../App/selectors';
|
|
39
37
|
|
|
40
38
|
import EmptyRole from './components/EmptyRole';
|
|
41
39
|
import BaseRoleRow from './components/RoleRow';
|
|
42
40
|
import reducer, { initialState } from './reducer';
|
|
43
41
|
|
|
44
|
-
const
|
|
45
|
-
useFocusWhenNavigate();
|
|
46
|
-
const { locale } = useIntl();
|
|
47
|
-
const permissions = useSelector(selectAdminPermissions);
|
|
48
|
-
const {
|
|
49
|
-
isLoading: isLoadingForPermissions,
|
|
50
|
-
allowedActions: { canCreate, canDelete, canRead, canUpdate },
|
|
51
|
-
} = useRBAC(permissions.settings.roles);
|
|
52
|
-
|
|
53
|
-
const { getData, roles, isLoading } = useRolesList(false);
|
|
54
|
-
const [{ query }] = useQueryParams();
|
|
55
|
-
const _q = query?._q || '';
|
|
56
|
-
|
|
57
|
-
const { includes } = useFilter(locale, {
|
|
58
|
-
sensitivity: 'base',
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* @type {Intl.Collator}
|
|
63
|
-
*/
|
|
64
|
-
const formatter = useCollator(locale, {
|
|
65
|
-
sensitivity: 'base',
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
const sortedRoles = (roles || [])
|
|
69
|
-
.filter((role) => includes(role.name, _q) || includes(role.description, _q))
|
|
70
|
-
.sort(
|
|
71
|
-
(a, b) => formatter.compare(a.name, b.name) || formatter.compare(a.description, b.description)
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
useEffect(() => {
|
|
75
|
-
if (!isLoadingForPermissions && canRead) {
|
|
76
|
-
getData();
|
|
77
|
-
}
|
|
78
|
-
}, [isLoadingForPermissions, canRead, getData]);
|
|
79
|
-
|
|
80
|
-
return {
|
|
81
|
-
isLoadingForPermissions,
|
|
82
|
-
canCreate,
|
|
83
|
-
canDelete,
|
|
84
|
-
canRead,
|
|
85
|
-
canUpdate,
|
|
86
|
-
isLoading,
|
|
87
|
-
getData,
|
|
88
|
-
sortedRoles,
|
|
89
|
-
roles,
|
|
90
|
-
};
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
const useRoleActions = ({ getData, canCreate, canDelete, canUpdate }) => {
|
|
42
|
+
const useRoleActions = ({ canCreate, canDelete, canUpdate, refetchRoles }) => {
|
|
94
43
|
const { formatMessage } = useIntl();
|
|
95
|
-
|
|
44
|
+
const { formatAPIError } = useAPIErrorHandler();
|
|
96
45
|
const toggleNotification = useNotification();
|
|
97
46
|
const [isWarningDeleteAllOpened, setIsWarningDeleteAllOpenend] = useState(false);
|
|
98
47
|
const { push } = useHistory();
|
|
@@ -113,26 +62,16 @@ const useRoleActions = ({ getData, canCreate, canDelete, canUpdate }) => {
|
|
|
113
62
|
ids: [roleToDelete],
|
|
114
63
|
});
|
|
115
64
|
|
|
116
|
-
await
|
|
65
|
+
await refetchRoles();
|
|
117
66
|
|
|
118
67
|
dispatch({
|
|
119
68
|
type: 'RESET_DATA_TO_DELETE',
|
|
120
69
|
});
|
|
121
|
-
} catch (
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
toggleNotification({
|
|
127
|
-
type: 'warning',
|
|
128
|
-
message: errorsMsg,
|
|
129
|
-
});
|
|
130
|
-
} else {
|
|
131
|
-
toggleNotification({
|
|
132
|
-
type: 'warning',
|
|
133
|
-
message: { id: 'notification.error' },
|
|
134
|
-
});
|
|
135
|
-
}
|
|
70
|
+
} catch (error) {
|
|
71
|
+
toggleNotification({
|
|
72
|
+
type: 'warning',
|
|
73
|
+
message: formatAPIError(error),
|
|
74
|
+
});
|
|
136
75
|
}
|
|
137
76
|
handleToggleModal();
|
|
138
77
|
};
|
|
@@ -244,17 +183,25 @@ const useRoleActions = ({ getData, canCreate, canDelete, canUpdate }) => {
|
|
|
244
183
|
|
|
245
184
|
const RoleListPage = () => {
|
|
246
185
|
const { formatMessage } = useIntl();
|
|
186
|
+
useFocusWhenNavigate();
|
|
187
|
+
const permissions = useSelector(selectAdminPermissions);
|
|
188
|
+
const [{ query }] = useQueryParams();
|
|
189
|
+
const {
|
|
190
|
+
isLoading: isLoadingForPermissions,
|
|
191
|
+
allowedActions: { canCreate, canDelete, canRead, canUpdate },
|
|
192
|
+
} = useRBAC(permissions.settings.roles);
|
|
247
193
|
|
|
248
194
|
const {
|
|
249
|
-
|
|
250
|
-
canCreate,
|
|
251
|
-
canRead,
|
|
252
|
-
canDelete,
|
|
253
|
-
canUpdate,
|
|
195
|
+
roles,
|
|
254
196
|
isLoading,
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
197
|
+
refetch: refetchRoles,
|
|
198
|
+
} = useAdminRoles(
|
|
199
|
+
{ filters: query?._q ? { name: { $containsi: query._q } } : undefined },
|
|
200
|
+
{
|
|
201
|
+
cacheTime: 0,
|
|
202
|
+
enabled: !isLoadingForPermissions && canRead,
|
|
203
|
+
}
|
|
204
|
+
);
|
|
258
205
|
|
|
259
206
|
const {
|
|
260
207
|
handleNewRoleClick,
|
|
@@ -263,12 +210,12 @@ const RoleListPage = () => {
|
|
|
263
210
|
showModalConfirmButtonLoading,
|
|
264
211
|
handleToggleModal,
|
|
265
212
|
handleDeleteData,
|
|
266
|
-
} = useRoleActions({
|
|
213
|
+
} = useRoleActions({ refetchRoles, canCreate, canDelete, canUpdate });
|
|
267
214
|
|
|
268
215
|
// ! TODO - Show the search bar only if the user is allowed to read - add the search input
|
|
269
216
|
// canRead
|
|
270
217
|
|
|
271
|
-
const rowCount =
|
|
218
|
+
const rowCount = roles.length + 1;
|
|
272
219
|
const colCount = 6;
|
|
273
220
|
|
|
274
221
|
if (isLoadingForPermissions) {
|
|
@@ -370,7 +317,7 @@ const RoleListPage = () => {
|
|
|
370
317
|
</Tr>
|
|
371
318
|
</Thead>
|
|
372
319
|
<Tbody>
|
|
373
|
-
{
|
|
320
|
+
{roles?.map((role, index) => (
|
|
374
321
|
<BaseRoleRow
|
|
375
322
|
key={role.id}
|
|
376
323
|
id={role.id}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useFetchClient } from '@strapi/helper-plugin';
|
|
2
|
+
import { useQuery } from 'react-query';
|
|
3
|
+
|
|
4
|
+
export const useAdminRolePermissionLayout = (id, queryOptions = {}) => {
|
|
5
|
+
const { get } = useFetchClient();
|
|
6
|
+
|
|
7
|
+
const { data, error, isError, isLoading } = useQuery(
|
|
8
|
+
['permissions', id],
|
|
9
|
+
async () => {
|
|
10
|
+
const {
|
|
11
|
+
data: { data },
|
|
12
|
+
} = await get('/admin/permissions', {
|
|
13
|
+
// TODO: check with BE why we deviate from our usual admin API format here
|
|
14
|
+
params: { role: id },
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
return data;
|
|
18
|
+
},
|
|
19
|
+
queryOptions
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
return { data, error, isError, isLoading };
|
|
23
|
+
};
|
|
@@ -733,7 +733,7 @@
|
|
|
733
733
|
"content-manager.containers.ListPage.items": "{number, plural, =0 {items} one {item} other {items}}",
|
|
734
734
|
"content-manager.containers.ListPage.table-headers.publishedAt": "State",
|
|
735
735
|
"content-manager.containers.ListPage.selectedEntriesModal.title": "Publish entries",
|
|
736
|
-
"content-manager.containers.ListPage.selectedEntriesModal.selectedCount": "<b>{readyToPublishCount}</b> {readyToPublishCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
|
|
736
|
+
"content-manager.containers.ListPage.selectedEntriesModal.selectedCount": "<b>{alreadyPublishedCount}</b> {alreadyPublishedCount, plural, =0 {entries} one {entry} other {entries}} already published. <b>{readyToPublishCount}</b> {readyToPublishCount, plural, =0 {entries} one {entry} other {entries}} ready to publish. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
|
|
737
737
|
"content-manager.containers.ListPage.selectedEntriesModal.publishedCount": "<b>{publishedCount}</b> {publishedCount, plural, =0 {entries} one {entry} other {entries}} published. <b>{withErrorsCount}</b> {withErrorsCount, plural, =0 {entries} one {entry} other {entries}} waiting for action.",
|
|
738
738
|
"content-manager.containers.ListSettingsView.modal-form.edit-label": "Edit {fieldName}",
|
|
739
739
|
"content-manager.containers.SettingPage.add.field": "Insert another field",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1049],{39404:function(A,T,e){e.d(T,{Z:function(){return M}});var t=e(32735),y=e(82055),c=e(87933),o=e(41415),s=e(19565),a=e(66456),r=e(29439),f=e(60216),n=e.n(f),m=e(67879),u=e(44647),E=e(79652);const d=({onRegenerate:R,idToRegenerate:O,backUrl:L,onError:W})=>{const{formatMessage:i}=(0,m.Z)(),[K,B]=(0,t.useState)(!1),{regenerateData:U,isLoadingConfirmation:x}=(0,E.rW)(L,O,R,W),h=async()=>{U(),B(!1)};return t.createElement(t.Fragment,null,t.createElement(o.z,{startIcon:t.createElement(u.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>B(!0),name:"regenerate"},i({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(s.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(u.Z,null),isConfirmButtonLoading:x,isOpen:K,onToggleDialog:()=>B(!1),onConfirm:h,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"}}))};d.defaultProps={onRegenerate(){},onError:void 0},d.propTypes={onRegenerate:n().func,idToRegenerate:n().oneOfType([n().number,n().string]).isRequired,backUrl:n().string.isRequired,onError:n().func};var g=d;const l=({title:R,token:O,setToken:L,canEditInputs:W,canRegenerate:i,isSubmitting:K,backUrl:B,regenerateUrl:U,onErrorRegenerate:x})=>{const{formatMessage:h}=(0,m.Z)(),z=j=>{L({...O,accessKey:j})};return t.createElement(y.T,{title:O?.name||h(R),primaryAction:W?t.createElement(c.k,{gap:2},i&&O?.id&&t.createElement(g,{backUrl:U,onRegenerate:z,idToRegenerate:O?.id,onError:x}),t.createElement(o.z,{disabled:K,loading:K,startIcon:t.createElement(a.Z,null),type:"submit",size:"S"},h({id:"global.save",defaultMessage:"Save"}))):i&&O?.id&&t.createElement(g,{onRegenerate:z,idToRegenerate:O?.id,backUrl:U}),navigationAction:t.createElement(s.rU,{startIcon:t.createElement(r.Z,null),to:B},h({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};l.propTypes={token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().oneOfType([n().number,n().string]),name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string}),canEditInputs:n().bool.isRequired,canRegenerate:n().bool.isRequired,setToken:n().func.isRequired,isSubmitting:n().bool.isRequired,backUrl:n().string.isRequired,title:n().shape({id:n().string,label:n().string}).isRequired,regenerateUrl:n().string.isRequired,onErrorRegenerate:n().func},l.defaultProps={token:void 0,onErrorRegenerate:void 0};var M=l},82505:function(A,T,e){var t=e(32735),y=e(68465),c=e(84967),o=e(49372),s=e(60216),a=e.n(s),r=e(67879),f=e(25652);const n=({token:m,errors:u,values:E,onChange:d,isCreating:g})=>{const{formatMessage:l}=(0,r.Z)();return t.createElement(t.Fragment,null,t.createElement(y.P,{name:"lifespan",label:l({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:E.lifespan!==null?E.lifespan:"0",error:u.lifespan?l(u.lifespan?.id?u.lifespan:{id:u.lifespan,defaultMessage:u.lifespan}):null,onChange:M=>{d({target:{name:"lifespan",value:M}})},required:!0,disabled:!g,placeholder:"Select"},t.createElement(c.W,{value:"604800000"},l({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(c.W,{value:"2592000000"},l({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(c.W,{value:"7776000000"},l({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(c.W,{value:"0"},l({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Z,{variant:"pi",textColor:"neutral600"},!g&&`${l({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,f.IX)(m?.createdAt,parseInt(E.lifespan,10))}`))};n.propTypes={errors:a().shape({lifespan:a().string}),onChange:a().func.isRequired,values:a().shape({lifespan:a().oneOfType([a().number,a().string])}).isRequired,isCreating:a().bool.isRequired,token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().string,name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string})},n.defaultProps={errors:{},token:{}},T.Z=n},7210:function(A,T,e){var t=e(32735),y=e(50563),c=e(19565),o=e(47765),s=e(11631),a=e(60216),r=e.n(a),f=e(67879);const n=({token:m,tokenType:u})=>{const{formatMessage:E}=(0,f.Z)(),d=(0,c.lm)(),{trackUsage:g}=(0,c.rS)(),{copy:l}=(0,c.VP)(),M=R=>async()=>{await l(R)&&(g("didCopyTokenKey",{tokenType:u}),d({type:"success",message:{id:"Settings.tokens.notification.copied"}}))};return t.createElement(c.Y_,{endAction:m&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(y.h,{label:E({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),onClick:M(m),noBorder:!0,icon:t.createElement(o.Z,null),style:{padding:0,height:"1rem"}})),title:m||E({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:E(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(s.Z,null),iconBackground:"neutral100"})};n.defaultProps={token:null},n.propTypes={token:r().string,tokenType:r().string.isRequired},T.Z=n},58380:function(A,T,e){var t=e(32735),y=e(33475),c=e(60216),o=e.n(c),s=e(67879);const a=({errors:r,values:f,onChange:n,canEditInputs:m})=>{const{formatMessage:u}=(0,s.Z)();return t.createElement(y.g,{label:u({id:"Settings.tokens.form.description",defaultMessage:"Description"}),id:"description",error:r.description?u(r.description?.id?r.description:{id:r.description,defaultMessage:r.description}):null,onChange:n,disabled:!m},f.description)};a.propTypes={errors:o().shape({description:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({description:o().string}).isRequired},a.defaultProps={errors:{}},T.Z=a},37823:function(A,T,e){var t=e(32735),y=e(10369),c=e(60216),o=e.n(c),s=e(67879);const a=({errors:r,values:f,onChange:n,canEditInputs:m})=>{const{formatMessage:u}=(0,s.Z)();return t.createElement(y.o,{name:"name",error:r.name?u(r.name?.id?r.name:{id:r.name,defaultMessage:r.name}):null,label:u({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:n,value:f.name,disabled:!m,required:!0})};a.propTypes={errors:o().shape({name:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({name:o().string}).isRequired},a.defaultProps={errors:{}},T.Z=a},32655:function(A,T,e){var t=e(32735),y=e(68465),c=e(84967),o=e(60216),s=e.n(o),a=e(67879);const r=({name:f,errors:n,values:m,onChange:u,canEditInputs:E,options:d,label:g})=>{const{formatMessage:l}=(0,a.Z)();return t.createElement(y.P,{name:f,label:l({id:g.id,defaultMessage:g.defaultMessage}),value:m&&m[f],error:n[f]?l(n[f]?.id?n[f]:{id:n[f],defaultMessage:n[f]}):null,onChange:u,placeholder:"Select",required:!0,disabled:!E},d&&d.map(({value:M,label:R})=>t.createElement(c.W,{key:M,value:M},l(R))))};r.propTypes={name:s().string,options:s().arrayOf(s().shape({label:s().shape({id:s().string,defaultMessage:s().string}),value:s().string})),errors:s().shape({type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({type:s().string}).isRequired,label:s().shape({id:s().string,defaultMessage:s().string}).isRequired},r.defaultProps={name:"type",errors:{},options:[]},T.Z=r},49756:function(A,T,e){e.d(T,{Z:function(){return t},f:function(){return y}});const t="api-token",y="transfer-token"},25652:function(A,T,e){e.d(T,{IX:function(){return s},fK:function(){return n},mk:function(){return u}});var t=e(14723),y=e(85544),c=e(76698),s=(E,d,g="en")=>{if(d&&typeof d=="number"){const l=d/24/60/60/1e3;return(0,t.Z)((0,y.Z)(new Date(E),l),"PPP",{locale:c[g]})}return"Unlimited"},a=e(19565),r=e(24346),n=r.Ry().shape({name:r.Z_(a.I0.string).max(100).required(a.I0.required),type:r.Z_(a.I0.string).oneOf(["read-only","full-access","custom"]).required(a.I0.required),description:r.Z_().nullable(),lifespan:r.Rx().integer().min(0).nullable().defined(a.I0.required)}),u=E=>{const d={allActionsIds:[],permissions:[]};return d.permissions=Object.keys(E).map(g=>({apiId:g,label:g.split("::")[1],controllers:Object.keys(E[g].controllers).map(l=>({controller:l,actions:E[g].controllers[l].map(M=>{const R=`${g}.${l}.${M}`;return g.includes("api::")&&d.allActionsIds.push(R),{action:M,actionId:R}}).flat()})).flat()})),d}},1930:function(A,T,e){e.d(T,{Z:function(){return ne}});var t=e(32735),y=e(27649),c=e(17e3),o=e(87933),s=e(19565),a=e(92802),r=e(67879),f=e(20108),n=e(15062),m=e(53038),u=e(24388),E=e(30305),d=e(49756),g=e(39404),l=e(7210),M=e(72850),R=e(49372),O=e(15335),L=e(5803),W=e(60216),i=e.n(W),K=e(82505),B=e(58380),U=e(37823),x=e(32655);const h=({errors:C,onChange:k,canEditInputs:Z,isCreating:D,values:S,transferToken:v})=>{const{formatMessage:F}=(0,r.Z)(),Q=[{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(M.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(R.Z,{variant:"delta",as:"h2"},F({id:"global.details",defaultMessage:"Details"})),t.createElement(O.r,{gap:5},t.createElement(L.P,{key:"name",col:6,xs:12},t.createElement(U.Z,{errors:C,values:S,canEditInputs:Z,onChange:k})),t.createElement(L.P,{key:"description",col:6,xs:12},t.createElement(B.Z,{errors:C,values:S,canEditInputs:Z,onChange:k})),t.createElement(L.P,{key:"lifespan",col:6,xs:12},t.createElement(K.Z,{isCreating:D,errors:C,values:S,onChange:k,token:v})),t.createElement(L.P,{key:"permissions",col:6,xs:12},t.createElement(x.Z,{name:"permissions",values:S,errors:C,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:V=>{k({target:{name:"permissions",value:V}})},options:Q,canEditInputs:Z})))))};h.propTypes={errors:i().shape({name:i().string,description:i().string,lifespan:i().string,type:i().string}),onChange:i().func.isRequired,canEditInputs:i().bool.isRequired,values:i().shape({name:i().string,description:i().string,lifespan:i().oneOfType([i().number,i().string]),type:i().string}).isRequired,isCreating:i().bool.isRequired,transferToken:i().shape({id:i().oneOfType([i().number,i().string]),type:i().string,lifespan:i().string,name:i().string,accessKey:i().string,permissions:i().array,description:i().string,createdAt:i().string})},h.defaultProps={errors:{},transferToken:{}};var z=h,j=e(82055),_=e(41415),q=e(66456);const G=({transferTokenName:C})=>{const{formatMessage:k}=(0,r.Z)();return(0,s.go)(),t.createElement(y.o,{"aria-busy":"true"},t.createElement(s.SL,{name:"Transfer Tokens"}),t.createElement(j.T,{primaryAction:t.createElement(_.z,{disabled:!0,startIcon:t.createElement(q.Z,null),type:"button",size:"L"},k({id:"global.save",defaultMessage:"Save"})),title:C||k({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(c.D,null,t.createElement(s.dO,null)))};G.defaultProps={transferTokenName:null},G.propTypes={transferTokenName:i().string};var w=G,N=e(24346),ee=N.Ry().shape({name:N.Z_(s.I0.string).max(100).required(s.I0.required),description:N.Z_().nullable(),lifespan:N.Rx().integer().min(0).nullable().defined(s.I0.required),permissions:N.Z_(s.I0.string).required(s.I0.required)});const te="Name already taken";var ne=()=>{(0,s.go)();const{formatMessage:C}=(0,r.Z)(),{lockApp:k,unlockApp:Z}=(0,s.o1)(),D=(0,s.lm)(),S=(0,m.k6)(),[v,F]=(0,t.useState)(S.location.state?.transferToken.accessKey?{...S.location.state.transferToken}:null),{trackUsage:Q}=(0,s.rS)(),V=(0,t.useRef)(Q),{setCurrentStep:se}=(0,s.c1)(),ae=(0,n.v9)(E._),{allowedActions:{canCreate:re,canUpdate:ie,canRegenerate:oe}}=(0,s.ss)(ae.settings["transfer-tokens"]),{params:{id:Y}}=(0,m.$B)("/settings/transfer-tokens/:id"),{get:le,post:de,put:ce}=(0,s.kY)(),P=Y==="create",{formatAPIError:J}=(0,s.So)();(0,t.useEffect)(()=>{V.current(P?"didAddTokenFromList":"didEditTokenFromList",{tokenType:d.f})},[P]);const{status:ue}=(0,f.useQuery)(["transfer-token",Y],async()=>{const{data:{data:p}}=await le(`/admin/transfer/tokens/${Y}`);return F({...p}),p},{enabled:!P&&!v,onError(p){p.response.data.error.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:J(p)})}}),ge=async(p,$)=>{V.current(P?"willCreateToken":"willEditToken",{tokenType:d.f}),k();const X=p.lifespan&&parseInt(p.lifespan,10)&&p.lifespan!=="0"?parseInt(p.lifespan,10):null,H=p.permissions.split("-");try{const{data:{data:I}}=P?await de("/admin/transfer/tokens",{...p,lifespan:X,permissions:H}):await ce(`/admin/transfer/tokens/${Y}`,{name:p.name,description:p.description,permissions:H});Z(),P&&(S.replace(`/settings/transfer-tokens/${I.id}`,{transferToken:I}),se("transferTokens.success")),F({...I}),D({type:"success",message:C(P?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),V.current(P?"didCreateToken":"didEditToken",{type:v?.permissions,tokenType:d.f})}catch(I){const fe=(0,u.Iz)(I.response.data);$.setErrors(fe),I?.response?.data?.error?.message===te?D({type:"warning",message:I.response.data.message||"notification.error.tokennamenotunique"}):I?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:I?.response?.data?.message||"notification.error"}),Z()}},b=ie&&!P||re&&P;if(!P&&!v&&ue!=="success")return t.createElement(w,{transferTokenName:v?.name});const pe=p=>{p?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:J(p)})};return t.createElement(y.o,null,t.createElement(s.SL,{name:"Transfer Tokens"}),t.createElement(a.J9,{validationSchema:ee,validateOnChange:!1,initialValues:{name:v?.name||"",description:v?.description||"",lifespan:v?.lifespan?v.lifespan.toString():v?.lifespan,permissions:v?.permissions.join("-")},enableReinitialize:!0,onSubmit:(p,$)=>ge(p,$)},({errors:p,handleChange:$,isSubmitting:X,values:H})=>t.createElement(s.l0,null,t.createElement(g.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:v,setToken:F,canEditInputs:b,canRegenerate:oe,isSubmitting:X,regenerateUrl:"/admin/transfer/tokens/",onErrorRegenerate:pe}),t.createElement(c.D,null,t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(v?.name)&&t.createElement(l.Z,{token:v?.accessKey,tokenType:d.f}),t.createElement(z,{errors:p,onChange:$,canEditInputs:b,isCreating:P,values:H,transferToken:v}))))))}}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2225],{39404:function(C,m,e){"use strict";e.d(m,{Z:function(){return M}});var t=e(32735),u=e(82055),r=e(87933),o=e(41415),a=e(19565),i=e(66456),d=e(29439),v=e(60216),s=e.n(v),y=e(67879),h=e(44647),n=e(2160);const g=({onRegenerate:P,idToRegenerate:I,backUrl:K,onError:N})=>{const{formatMessage:k}=(0,y.Z)(),[A,B]=(0,t.useState)(!1),{regenerateData:R,isLoadingConfirmation:H}=(0,n.rW)(K,I,P,N),Z=async()=>{R(),B(!1)};return t.createElement(t.Fragment,null,t.createElement(o.z,{startIcon:t.createElement(h.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>B(!0),name:"regenerate"},k({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(a.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(h.Z,null),isConfirmButtonLoading:H,isOpen:A,onToggleDialog:()=>B(!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"}}))};g.defaultProps={onRegenerate(){},onError:void 0},g.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired,onError:s().func};var l=g;const c=({title:P,token:I,setToken:K,canEditInputs:N,canRegenerate:k,isSubmitting:A,backUrl:B,regenerateUrl:R,onErrorRegenerate:H})=>{const{formatMessage:Z}=(0,y.Z)(),Y=Q=>{K({...I,accessKey:Q})};return t.createElement(u.T,{title:I?.name||Z(P),primaryAction:N?t.createElement(r.k,{gap:2},k&&I?.id&&t.createElement(l,{backUrl:R,onRegenerate:Y,idToRegenerate:I?.id,onError:H}),t.createElement(o.z,{disabled:A,loading:A,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},Z({id:"global.save",defaultMessage:"Save"}))):k&&I?.id&&t.createElement(l,{onRegenerate:Y,idToRegenerate:I?.id,backUrl:R}),navigationAction:t.createElement(a.rU,{startIcon:t.createElement(d.Z,null),to:B},Z({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};c.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},c.defaultProps={token:void 0,onErrorRegenerate:void 0};var M=c},82505:function(C,m,e){"use strict";var t=e(32735),u=e(68465),r=e(84967),o=e(49372),a=e(60216),i=e.n(a),d=e(67879),v=e(25652);const s=({token:y,errors:h,values:n,onChange:g,isCreating:l})=>{const{formatMessage:c}=(0,d.Z)();return t.createElement(t.Fragment,null,t.createElement(u.P,{name:"lifespan",label:c({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:n.lifespan!==null?n.lifespan:"0",error:h.lifespan?c(h.lifespan?.id?h.lifespan:{id:h.lifespan,defaultMessage:h.lifespan}):null,onChange:M=>{g({target:{name:"lifespan",value:M}})},required:!0,disabled:!l,placeholder:"Select"},t.createElement(r.W,{value:"604800000"},c({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(r.W,{value:"2592000000"},c({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(r.W,{value:"7776000000"},c({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(r.W,{value:"0"},c({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Z,{variant:"pi",textColor:"neutral600"},!l&&`${c({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,v.IX)(y?.createdAt,parseInt(n.lifespan,10))}`))};s.propTypes={errors:i().shape({lifespan:i().string}),onChange:i().func.isRequired,values:i().shape({lifespan:i().oneOfType([i().number,i().string])}).isRequired,isCreating:i().bool.isRequired,token:i().shape({id:i().oneOfType([i().number,i().string]),type:i().string,lifespan:i().string,name:i().string,accessKey:i().string,permissions:i().array,description:i().string,createdAt:i().string})},s.defaultProps={errors:{},token:{}},m.Z=s},7210:function(C,m,e){"use strict";var t=e(32735),u=e(50563),r=e(19565),o=e(47765),a=e(11631),i=e(60216),d=e.n(i),v=e(67879);const s=({token:y,tokenType:h})=>{const{formatMessage:n}=(0,v.Z)(),g=(0,r.lm)(),{trackUsage:l}=(0,r.rS)(),{copy:c}=(0,r.VP)(),M=P=>async()=>{await c(P)&&(l("didCopyTokenKey",{tokenType:h}),g({type:"success",message:{id:"Settings.tokens.notification.copied"}}))};return t.createElement(r.Y_,{endAction:y&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(u.h,{label:n({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),onClick:M(y),noBorder:!0,icon:t.createElement(o.Z,null),style:{padding:0,height:"1rem"}})),title:y||n({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:n(y?{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"})};s.defaultProps={token:null},s.propTypes={token:d().string,tokenType:d().string.isRequired},m.Z=s},58380:function(C,m,e){"use strict";var t=e(32735),u=e(33475),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:v,onChange:s,canEditInputs:y})=>{const{formatMessage:h}=(0,a.Z)();return t.createElement(u.g,{label:h({id:"Settings.tokens.form.description",defaultMessage:"Description"}),id:"description",error:d.description?h(d.description?.id?d.description:{id:d.description,defaultMessage:d.description}):null,onChange:s,disabled:!y},v.description)};i.propTypes={errors:o().shape({description:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({description:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},37823:function(C,m,e){"use strict";var t=e(32735),u=e(10369),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:v,onChange:s,canEditInputs:y})=>{const{formatMessage:h}=(0,a.Z)();return t.createElement(u.o,{name:"name",error:d.name?h(d.name?.id?d.name:{id:d.name,defaultMessage:d.name}):null,label:h({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:s,value:v.name,disabled:!y,required:!0})};i.propTypes={errors:o().shape({name:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({name:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},32655:function(C,m,e){"use strict";var t=e(32735),u=e(68465),r=e(84967),o=e(60216),a=e.n(o),i=e(67879);const d=({name:v,errors:s,values:y,onChange:h,canEditInputs:n,options:g,label:l})=>{const{formatMessage:c}=(0,i.Z)();return t.createElement(u.P,{name:v,label:c({id:l.id,defaultMessage:l.defaultMessage}),value:y&&y[v],error:s[v]?c(s[v]?.id?s[v]:{id:s[v],defaultMessage:s[v]}):null,onChange:h,placeholder:"Select",required:!0,disabled:!n},g&&g.map(({value:M,label:P})=>t.createElement(r.W,{key:M,value:M},c(P))))};d.propTypes={name:a().string,options:a().arrayOf(a().shape({label:a().shape({id:a().string,defaultMessage:a().string}),value:a().string})),errors:a().shape({type:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({type:a().string}).isRequired,label:a().shape({id:a().string,defaultMessage:a().string}).isRequired},d.defaultProps={name:"type",errors:{},options:[]},m.Z=d},49756:function(C,m,e){"use strict";e.d(m,{Z:function(){return t},f:function(){return u}});const t="api-token",u="transfer-token"},72225:function(C,m,e){"use strict";e.d(m,{Z:function(){return Ge}});var t=e(32735),u=e(27649),r=e(17e3),o=e(87933),a=e(19565),i=e(92802),d=e(67879),v=e(20108),s=e(15062),y=e(53038),h=e(60216),n=e.n(h);const g=(0,t.createContext)({}),l=({children:p,...E})=>t.createElement(g.Provider,{value:E},p),c=()=>(0,t.useContext)(g);l.propTypes={children:n().node.isRequired};var M=e(24388),P=e(30305),I=e(49756),K=e(39404),N=e(7210),k=e(72850),A=e(49372),B=e(15335),R=e(5803),H=e(82505),Z=e(58380),Y=e(37823),Q=e(32655);const J=({errors:p,onChange:E,canEditInputs:f,isCreating:D,values:x,apiToken:S,onDispatch:O,setHasChangedPermissions:V})=>{const{formatMessage:j}=(0,d.Z)(),F=({target:{value:z}})=>{V(!1),z==="full-access"&&O({type:"SELECT_ALL_ACTIONS"}),z==="read-only"&&O({type:"ON_CHANGE_READ_ONLY"})},w=[{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(k.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(A.Z,{variant:"delta",as:"h2"},j({id:"global.details",defaultMessage:"Details"})),t.createElement(B.r,{gap:5},t.createElement(R.P,{key:"name",col:6,xs:12},t.createElement(Y.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"description",col:6,xs:12},t.createElement(Z.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"lifespan",col:6,xs:12},t.createElement(H.Z,{isCreating:D,errors:p,values:x,onChange:E,token:S})),t.createElement(R.P,{key:"type",col:6,xs:12},t.createElement(Q.Z,{values:x,errors:p,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:z=>{F({target:{value:z}}),E({target:{name:"type",value:z}})},options:w,canEditInputs:f})))))};J.propTypes={errors:n().shape({name:n().string,description:n().string,lifespan:n().string,type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string,description:n().string,lifespan:n().oneOfType([n().number,n().string]),type:n().string}).isRequired,isCreating:n().bool.isRequired,apiToken: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}),onDispatch:n().func.isRequired,setHasChangedPermissions:n().func.isRequired},J.defaultProps={errors:{},apiToken:{}};var X=J,ne=e(82055),le=e(41415),de=e(66456);const _=({apiTokenName:p})=>{const{formatMessage:E}=(0,d.Z)();return(0,a.go)(),t.createElement(u.o,{"aria-busy":"true"},t.createElement(a.SL,{name:"API Tokens"}),t.createElement(ne.T,{primaryAction:t.createElement(le.z,{disabled:!0,startIcon:t.createElement(de.Z,null),type:"button",size:"L"},E({id:"global.save",defaultMessage:"Save"})),title:p||E({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),t.createElement(r.D,null,t.createElement(a.dO,null)))};_.defaultProps={apiTokenName:null},_.propTypes={apiTokenName:n().string};var ce=_,se=e(37213),ae=e.n(se),oe=e(15738),Me=e.n(oe),re=e(8471),Ae=p=>{switch(p){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 xe=(0,re.ZP)(k.x)`
|
|
1
|
+
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2225],{39404:function(C,m,e){"use strict";e.d(m,{Z:function(){return M}});var t=e(32735),u=e(82055),r=e(87933),o=e(41415),a=e(19565),i=e(66456),d=e(29439),v=e(60216),s=e.n(v),y=e(67879),h=e(44647),n=e(79652);const g=({onRegenerate:P,idToRegenerate:I,backUrl:K,onError:N})=>{const{formatMessage:k}=(0,y.Z)(),[A,B]=(0,t.useState)(!1),{regenerateData:R,isLoadingConfirmation:H}=(0,n.rW)(K,I,P,N),Z=async()=>{R(),B(!1)};return t.createElement(t.Fragment,null,t.createElement(o.z,{startIcon:t.createElement(h.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>B(!0),name:"regenerate"},k({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(a.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(h.Z,null),isConfirmButtonLoading:H,isOpen:A,onToggleDialog:()=>B(!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"}}))};g.defaultProps={onRegenerate(){},onError:void 0},g.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired,onError:s().func};var l=g;const c=({title:P,token:I,setToken:K,canEditInputs:N,canRegenerate:k,isSubmitting:A,backUrl:B,regenerateUrl:R,onErrorRegenerate:H})=>{const{formatMessage:Z}=(0,y.Z)(),Y=Q=>{K({...I,accessKey:Q})};return t.createElement(u.T,{title:I?.name||Z(P),primaryAction:N?t.createElement(r.k,{gap:2},k&&I?.id&&t.createElement(l,{backUrl:R,onRegenerate:Y,idToRegenerate:I?.id,onError:H}),t.createElement(o.z,{disabled:A,loading:A,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},Z({id:"global.save",defaultMessage:"Save"}))):k&&I?.id&&t.createElement(l,{onRegenerate:Y,idToRegenerate:I?.id,backUrl:R}),navigationAction:t.createElement(a.rU,{startIcon:t.createElement(d.Z,null),to:B},Z({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};c.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},c.defaultProps={token:void 0,onErrorRegenerate:void 0};var M=c},82505:function(C,m,e){"use strict";var t=e(32735),u=e(68465),r=e(84967),o=e(49372),a=e(60216),i=e.n(a),d=e(67879),v=e(25652);const s=({token:y,errors:h,values:n,onChange:g,isCreating:l})=>{const{formatMessage:c}=(0,d.Z)();return t.createElement(t.Fragment,null,t.createElement(u.P,{name:"lifespan",label:c({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:n.lifespan!==null?n.lifespan:"0",error:h.lifespan?c(h.lifespan?.id?h.lifespan:{id:h.lifespan,defaultMessage:h.lifespan}):null,onChange:M=>{g({target:{name:"lifespan",value:M}})},required:!0,disabled:!l,placeholder:"Select"},t.createElement(r.W,{value:"604800000"},c({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(r.W,{value:"2592000000"},c({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(r.W,{value:"7776000000"},c({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(r.W,{value:"0"},c({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Z,{variant:"pi",textColor:"neutral600"},!l&&`${c({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,v.IX)(y?.createdAt,parseInt(n.lifespan,10))}`))};s.propTypes={errors:i().shape({lifespan:i().string}),onChange:i().func.isRequired,values:i().shape({lifespan:i().oneOfType([i().number,i().string])}).isRequired,isCreating:i().bool.isRequired,token:i().shape({id:i().oneOfType([i().number,i().string]),type:i().string,lifespan:i().string,name:i().string,accessKey:i().string,permissions:i().array,description:i().string,createdAt:i().string})},s.defaultProps={errors:{},token:{}},m.Z=s},7210:function(C,m,e){"use strict";var t=e(32735),u=e(50563),r=e(19565),o=e(47765),a=e(11631),i=e(60216),d=e.n(i),v=e(67879);const s=({token:y,tokenType:h})=>{const{formatMessage:n}=(0,v.Z)(),g=(0,r.lm)(),{trackUsage:l}=(0,r.rS)(),{copy:c}=(0,r.VP)(),M=P=>async()=>{await c(P)&&(l("didCopyTokenKey",{tokenType:h}),g({type:"success",message:{id:"Settings.tokens.notification.copied"}}))};return t.createElement(r.Y_,{endAction:y&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(u.h,{label:n({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),onClick:M(y),noBorder:!0,icon:t.createElement(o.Z,null),style:{padding:0,height:"1rem"}})),title:y||n({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:n(y?{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"})};s.defaultProps={token:null},s.propTypes={token:d().string,tokenType:d().string.isRequired},m.Z=s},58380:function(C,m,e){"use strict";var t=e(32735),u=e(33475),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:v,onChange:s,canEditInputs:y})=>{const{formatMessage:h}=(0,a.Z)();return t.createElement(u.g,{label:h({id:"Settings.tokens.form.description",defaultMessage:"Description"}),id:"description",error:d.description?h(d.description?.id?d.description:{id:d.description,defaultMessage:d.description}):null,onChange:s,disabled:!y},v.description)};i.propTypes={errors:o().shape({description:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({description:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},37823:function(C,m,e){"use strict";var t=e(32735),u=e(10369),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:v,onChange:s,canEditInputs:y})=>{const{formatMessage:h}=(0,a.Z)();return t.createElement(u.o,{name:"name",error:d.name?h(d.name?.id?d.name:{id:d.name,defaultMessage:d.name}):null,label:h({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:s,value:v.name,disabled:!y,required:!0})};i.propTypes={errors:o().shape({name:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({name:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},32655:function(C,m,e){"use strict";var t=e(32735),u=e(68465),r=e(84967),o=e(60216),a=e.n(o),i=e(67879);const d=({name:v,errors:s,values:y,onChange:h,canEditInputs:n,options:g,label:l})=>{const{formatMessage:c}=(0,i.Z)();return t.createElement(u.P,{name:v,label:c({id:l.id,defaultMessage:l.defaultMessage}),value:y&&y[v],error:s[v]?c(s[v]?.id?s[v]:{id:s[v],defaultMessage:s[v]}):null,onChange:h,placeholder:"Select",required:!0,disabled:!n},g&&g.map(({value:M,label:P})=>t.createElement(r.W,{key:M,value:M},c(P))))};d.propTypes={name:a().string,options:a().arrayOf(a().shape({label:a().shape({id:a().string,defaultMessage:a().string}),value:a().string})),errors:a().shape({type:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({type:a().string}).isRequired,label:a().shape({id:a().string,defaultMessage:a().string}).isRequired},d.defaultProps={name:"type",errors:{},options:[]},m.Z=d},49756:function(C,m,e){"use strict";e.d(m,{Z:function(){return t},f:function(){return u}});const t="api-token",u="transfer-token"},72225:function(C,m,e){"use strict";e.d(m,{Z:function(){return Ge}});var t=e(32735),u=e(27649),r=e(17e3),o=e(87933),a=e(19565),i=e(92802),d=e(67879),v=e(20108),s=e(15062),y=e(53038),h=e(60216),n=e.n(h);const g=(0,t.createContext)({}),l=({children:p,...E})=>t.createElement(g.Provider,{value:E},p),c=()=>(0,t.useContext)(g);l.propTypes={children:n().node.isRequired};var M=e(24388),P=e(30305),I=e(49756),K=e(39404),N=e(7210),k=e(72850),A=e(49372),B=e(15335),R=e(5803),H=e(82505),Z=e(58380),Y=e(37823),Q=e(32655);const J=({errors:p,onChange:E,canEditInputs:f,isCreating:D,values:x,apiToken:S,onDispatch:O,setHasChangedPermissions:V})=>{const{formatMessage:j}=(0,d.Z)(),F=({target:{value:z}})=>{V(!1),z==="full-access"&&O({type:"SELECT_ALL_ACTIONS"}),z==="read-only"&&O({type:"ON_CHANGE_READ_ONLY"})},w=[{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(k.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(A.Z,{variant:"delta",as:"h2"},j({id:"global.details",defaultMessage:"Details"})),t.createElement(B.r,{gap:5},t.createElement(R.P,{key:"name",col:6,xs:12},t.createElement(Y.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"description",col:6,xs:12},t.createElement(Z.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"lifespan",col:6,xs:12},t.createElement(H.Z,{isCreating:D,errors:p,values:x,onChange:E,token:S})),t.createElement(R.P,{key:"type",col:6,xs:12},t.createElement(Q.Z,{values:x,errors:p,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:z=>{F({target:{value:z}}),E({target:{name:"type",value:z}})},options:w,canEditInputs:f})))))};J.propTypes={errors:n().shape({name:n().string,description:n().string,lifespan:n().string,type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string,description:n().string,lifespan:n().oneOfType([n().number,n().string]),type:n().string}).isRequired,isCreating:n().bool.isRequired,apiToken: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}),onDispatch:n().func.isRequired,setHasChangedPermissions:n().func.isRequired},J.defaultProps={errors:{},apiToken:{}};var X=J,ne=e(82055),le=e(41415),de=e(66456);const _=({apiTokenName:p})=>{const{formatMessage:E}=(0,d.Z)();return(0,a.go)(),t.createElement(u.o,{"aria-busy":"true"},t.createElement(a.SL,{name:"API Tokens"}),t.createElement(ne.T,{primaryAction:t.createElement(le.z,{disabled:!0,startIcon:t.createElement(de.Z,null),type:"button",size:"L"},E({id:"global.save",defaultMessage:"Save"})),title:p||E({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),t.createElement(r.D,null,t.createElement(a.dO,null)))};_.defaultProps={apiTokenName:null},_.propTypes={apiTokenName:n().string};var ce=_,se=e(37213),ae=e.n(se),oe=e(15738),Me=e.n(oe),re=e(8471),Ae=p=>{switch(p){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 xe=(0,re.ZP)(k.x)`
|
|
2
2
|
margin: -1px;
|
|
3
3
|
border-radius: ${({theme:p})=>p.spaces[1]} 0 0 ${({theme:p})=>p.spaces[1]};
|
|
4
4
|
`;function pe({route:p}){const{formatMessage:E}=(0,d.Z)(),{method:f,handler:D,path:x}=p,S=x?Me()(x.split("/")):[],[O="",V=""]=D?D.split("."):[],j=Ae(p.method);return t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement(A.Z,{variant:"delta",as:"h3"},E({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",t.createElement("span",null,O),t.createElement(A.Z,{variant:"delta",textColor:"primary600"},".",V)),t.createElement(o.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},t.createElement(xe,{background:j.background,borderColor:j.border,padding:2},t.createElement(A.Z,{fontWeight:"bold",textColor:j.text},f)),t.createElement(k.x,{paddingLeft:2,paddingRight:2},ae()(S,F=>t.createElement(A.Z,{key:F,textColor:F.includes(":")?"neutral600":"neutral900"},"/",F)))))}pe.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},pe.propTypes={route:n().shape({handler:n().string,method:n().string,path:n().string})};var Oe=pe,Re=()=>{const{value:{selectedAction:p,routes:E}}=c(),{formatMessage:f}=(0,d.Z)(),D=p?.split(".")[0];return t.createElement(R.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},p?t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},E[D]?.map(x=>x.config.auth?.scope?.includes(p)||x.handler===p?t.createElement(Oe,{key:x.handler,route:x}):null)):t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement(A.Z,{variant:"delta",as:"h3"},f({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),t.createElement(A.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"}))))},Ie=e(83828),De=e(61762),ke=e(89966),Te=e(8284),Se=e(45112),Le=e(73400),Be=e.n(Le);const Ce=(0,re.iv)`
|
package/build/{Admin-authenticatedApp.8dfbc48d.chunk.js → Admin-authenticatedApp.f5ece8ff.chunk.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{63546:function(K,T,n){n.r(T),n.d(T,{default:function(){return jt}});var e=n(32735),s=n(19565),b=n(33795),Z=n.n(b),y=n(20108),M={i8:"4.12.
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{63546:function(K,T,n){n.r(T),n.d(T,{default:function(){return jt}});var e=n(32735),s=n(19565),b=n(33795),Z=n.n(b),y=n(20108),M={i8:"4.12.4"},S=n(79652),L=n(24388),P=n(74506),F=n(51968),D=n(15062),f=n(53038),Re=n(88311),ee=n.n(Re),Ae=n(75974),m=n(87933),te=n(71933),ne=n(67563),Le=n(50563),v=n(72850),V=n(41415),ae=n(35331),Oe=n(60216),r=n.n(Oe),B=n(67879),C=n(8471);const xe=(0,C.ZP)(m.k)`
|
|
2
2
|
position: fixed;
|
|
3
3
|
z-index: 4;
|
|
4
4
|
inset: 0;
|
|
@@ -76,4 +76,4 @@
|
|
|
76
76
|
:hover {
|
|
77
77
|
text-decoration: underline;
|
|
78
78
|
}
|
|
79
|
-
`;var yt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:i}=(0,B.Z)(),{communityEdition:d}=(0,s.L7)(),u=()=>{o(p=>!p)},h=[...mt,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:rt.Z,href:d?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(v.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(gt,{"aria-label":i(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:u,ref:t},e.createElement(X.J,{as:a?ae.Z:it.Z,color:"buttonNeutral0"})),a&&e.createElement(te.h,null,e.createElement(ot.VY,{padding:0,onDimiss:u,source:t,placement:"top-end",spacing:12},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(fe,{fontWeight:"bold"},i({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(Ee,{as:"a",href:he.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},i(he.label))),e.createElement(de.i,null),pt.map(({href:p,duration:g,label:l},I)=>e.createElement(ft,{as:"a",href:p,target:"_blank",rel:"noreferrer noopener",key:p,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(v.x,{paddingRight:5},e.createElement(E.Z,{textColor:"neutral200",variant:"alpha"},I+1)),e.createElement(v.x,{position:"relative"},e.createElement(Et,{src:ct,alt:""}),e.createElement(ht,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(X.J,{as:lt.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(E.Z,{fontWeight:"bold"},i(l)),e.createElement(st.T,null,":"),e.createElement(E.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:p,href:g,icon:l})=>e.createElement(m.k,{gap:3,key:g},e.createElement(X.J,{as:l,color:"primary600"}),e.createElement(Ee,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},i(p))))))))};const vt=(0,e.lazy)(()=>Promise.all([n.e(3739),n.e(9806),n.e(4546),n.e(994)]).then(n.bind(n,2046))),Ct=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,83555))),Tt=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,61317))),Mt=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,87802))),ye=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,33248))),St=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,7703))),Pt=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,94987))),ve=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,10898))),It=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,D.I0)(),o=(0,D.v9)(i=>i.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:at.eb}))},[o])};var Rt=()=>{It();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,S.H9)(),{menu:i}=(0,s.j1)(),{showTutorials:d}=(0,S.um)(),u=(0,e.useMemo)(()=>i.filter(h=>h.Component).map(({to:h,Component:p,exact:g})=>(0,L.ot)(p,h,g)),[i]);return t?e.createElement(s.dO,null):e.createElement(P.DndProvider,{backend:F.PD},e.createElement(nt,{sideNav:e.createElement(_e,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(f.rs,null,e.createElement(f.AW,{path:"/",component:Ct,exact:!0}),e.createElement(f.AW,{path:"/me",component:Pt,exact:!0}),e.createElement(f.AW,{path:"/content-manager",component:vt}),u,e.createElement(f.AW,{path:"/settings/:settingId",component:ve}),e.createElement(f.AW,{path:"/settings",component:ve,exact:!0}),e.createElement(f.AW,{path:"/marketplace"},e.createElement(Mt,null)),e.createElement(f.AW,{path:"/list-plugins",exact:!0},e.createElement(Tt,null)),e.createElement(f.AW,{path:"/404",component:ye}),e.createElement(f.AW,{path:"/500",component:St}),e.createElement(f.AW,{path:"",component:ye}))),e.createElement(Qe,null),d&&e.createElement(yt,null)))},At=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),Lt=n(3040),Ot=n.n(Lt);const Ce={plugins:null};var xt=(t=Ce,a)=>(0,le.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{Ot()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),bt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(xt,Ce,()=>At(t)),i=(0,e.useRef)(u=>{o({type:"SET_PLUGIN_READY",pluginId:u})});if(Object.keys(a).some(u=>a[u].isReady===!1)){const u=Object.keys(a).reduce((h,p)=>{const g=a[p].initializer;if(g){const l=a[p].pluginId;h.push(e.createElement(g,{key:l,setPlugin:i.current}))}return h},[]);return e.createElement(e.Fragment,null,u,e.createElement(s.dO,null))}return e.createElement(Rt,null)},Te=n(82702);const Dt=()=>({type:Te.l}),kt=t=>({type:Te.m,permissions:t}),Me=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:i}=(0,D.v9)(u=>u.rbacProvider),d=(0,D.I0)();return(0,e.useEffect)(()=>(d(kt(a)),()=>{d(Dt())}),[a,d]),i?e.createElement(s.oL.Provider,{value:{allPermissions:i,refetchPermissions:o}},t):e.createElement(s.dO,null)};Me.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Zt=Me,Bt=n(54770),q=n.n(Bt),Se=(t,a)=>!q().valid(t)||!q().valid(a)?!1:q().lt(t,a);const Pe=M.i8,Wt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:_}=(0,s.tg)(),Gt=async t=>{try{const a=await fetch("https://api.github.com/repos/strapi/strapi/releases/latest");if(!a.ok)throw new Error("Failed to fetch latest Strapi version.");const{tag_name:o}=await a.json();return Se(Pe,o)&&Wt&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${o}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),o}catch{return Pe}},Nt=async()=>{try{const{data:t,headers:a}=await _("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Ut=async()=>{try{const{data:t,headers:a}=await _("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Ft=async()=>{try{const{data:{data:{roles:t}}}=await _("/admin/users/me");return t}catch(t){throw new Error(t)}},Ie=M.i8;var jt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=s.I8.getUserInfo(),i=Z()(o,"username")||(0,L.Pp)(o.firstname,o.lastname),[d,u]=(0,e.useState)(i),[h,p]=(0,e.useState)(null),{showReleaseNotification:g}=(0,S.um)(),[{data:l,status:I},{data:k,isLoading:$},{data:Q,status:G,refetch:R,isFetching:z},{data:A}]=(0,y.useQueries)([{queryKey:"app-infos",queryFn:Nt},{queryKey:"strapi-release",queryFn:()=>Gt(a),enabled:g,initialData:Ie},{queryKey:"admin-users-permission",queryFn:Ut,initialData:[]},{queryKey:"user-roles",queryFn:Ft}]),O=Se(Ie,k);return(0,e.useEffect)(()=>{A&&A.find(({code:U})=>U==="strapi-super-admin")&&l?.autoReload&&t(!0)},[A,l,t]),(0,e.useEffect)(()=>{(async()=>{const U=await(0,L.Qy)(o);p(U)})()},[o]),$||(z||I==="loading"||G==="loading")?e.createElement(s.dO,null):I==="error"?e.createElement("div",null,"error..."):e.createElement(s.iq,{...l,userId:h,latestStrapiReleaseTag:k,setUserDisplayName:u,shouldUpdateStrapi:O,userDisplayName:d},e.createElement(Zt,{permissions:Q,refetchPermissions:R},e.createElement(bt,null)))}},79348:function(K,T,n){var e=n(32735),s=n(72850),b=n(19565),Z=n(60216),y=n.n(Z),M=n(47806);const S=({type:L,...P})=>e.createElement(s.x,{width:(0,b.Q1)(2),height:"100%",background:L===M.VM?"neutral300":"primary500",hasRadius:!0,...P});S.defaultProps={type:M.VM},S.propTypes={type:y().oneOf([M.lW,M.hx,M.VM])},T.Z=S},13856:function(K,T,n){var e=n(32735),s=n(87933),b=n(99140),Z=n(49372),y=n(19565),M=n(66456),S=n(60216),L=n.n(S),P=n(47806);const F=({type:D,number:f})=>D===P.hx?e.createElement(s.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(b.J,{as:M.Z,"aria-hidden":!0,width:(0,y.Q1)(16),color:"neutral0"})):D===P.lW?e.createElement(s.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(Z.Z,{fontWeight:"semiBold",textColor:"neutral0"},f)):e.createElement(s.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(Z.Z,{fontWeight:"semiBold",textColor:"neutral600"},f));F.defaultProps={number:void 0,type:P.VM},F.propTypes={number:L().number,type:L().oneOf([P.lW,P.hx,P.VM])},T.Z=F},47806:function(K,T,n){n.d(T,{VM:function(){return b},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",b="isNotDone"},75974:function(K,T){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};T.Z=n}}]);
|
|
79
|
+
`;var yt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:i}=(0,B.Z)(),{communityEdition:d}=(0,s.L7)(),u=()=>{o(p=>!p)},h=[...mt,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:rt.Z,href:d?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(v.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(gt,{"aria-label":i(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:u,ref:t},e.createElement(X.J,{as:a?ae.Z:it.Z,color:"buttonNeutral0"})),a&&e.createElement(te.h,null,e.createElement(ot.VY,{padding:0,onDimiss:u,source:t,placement:"top-end",spacing:12},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(fe,{fontWeight:"bold"},i({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(Ee,{as:"a",href:he.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},i(he.label))),e.createElement(de.i,null),pt.map(({href:p,duration:g,label:l},I)=>e.createElement(ft,{as:"a",href:p,target:"_blank",rel:"noreferrer noopener",key:p,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(v.x,{paddingRight:5},e.createElement(E.Z,{textColor:"neutral200",variant:"alpha"},I+1)),e.createElement(v.x,{position:"relative"},e.createElement(Et,{src:ct,alt:""}),e.createElement(ht,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(X.J,{as:lt.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(E.Z,{fontWeight:"bold"},i(l)),e.createElement(st.T,null,":"),e.createElement(E.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:p,href:g,icon:l})=>e.createElement(m.k,{gap:3,key:g},e.createElement(X.J,{as:l,color:"primary600"}),e.createElement(Ee,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},i(p))))))))};const vt=(0,e.lazy)(()=>Promise.all([n.e(3739),n.e(9806),n.e(4546),n.e(994)]).then(n.bind(n,2046))),Ct=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,83555))),Tt=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,91534))),Mt=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,95018))),ye=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,33248))),St=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,7703))),Pt=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,94987))),ve=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,10898))),It=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,D.I0)(),o=(0,D.v9)(i=>i.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:at.eb}))},[o])};var Rt=()=>{It();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,S.H9)(),{menu:i}=(0,s.j1)(),{showTutorials:d}=(0,S.um)(),u=(0,e.useMemo)(()=>i.filter(h=>h.Component).map(({to:h,Component:p,exact:g})=>(0,L.ot)(p,h,g)),[i]);return t?e.createElement(s.dO,null):e.createElement(P.DndProvider,{backend:F.PD},e.createElement(nt,{sideNav:e.createElement(_e,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(f.rs,null,e.createElement(f.AW,{path:"/",component:Ct,exact:!0}),e.createElement(f.AW,{path:"/me",component:Pt,exact:!0}),e.createElement(f.AW,{path:"/content-manager",component:vt}),u,e.createElement(f.AW,{path:"/settings/:settingId",component:ve}),e.createElement(f.AW,{path:"/settings",component:ve,exact:!0}),e.createElement(f.AW,{path:"/marketplace"},e.createElement(Mt,null)),e.createElement(f.AW,{path:"/list-plugins",exact:!0},e.createElement(Tt,null)),e.createElement(f.AW,{path:"/404",component:ye}),e.createElement(f.AW,{path:"/500",component:St}),e.createElement(f.AW,{path:"",component:ye}))),e.createElement(Qe,null),d&&e.createElement(yt,null)))},At=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),Lt=n(3040),Ot=n.n(Lt);const Ce={plugins:null};var xt=(t=Ce,a)=>(0,le.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{Ot()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),bt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(xt,Ce,()=>At(t)),i=(0,e.useRef)(u=>{o({type:"SET_PLUGIN_READY",pluginId:u})});if(Object.keys(a).some(u=>a[u].isReady===!1)){const u=Object.keys(a).reduce((h,p)=>{const g=a[p].initializer;if(g){const l=a[p].pluginId;h.push(e.createElement(g,{key:l,setPlugin:i.current}))}return h},[]);return e.createElement(e.Fragment,null,u,e.createElement(s.dO,null))}return e.createElement(Rt,null)},Te=n(82702);const Dt=()=>({type:Te.l}),kt=t=>({type:Te.m,permissions:t}),Me=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:i}=(0,D.v9)(u=>u.rbacProvider),d=(0,D.I0)();return(0,e.useEffect)(()=>(d(kt(a)),()=>{d(Dt())}),[a,d]),i?e.createElement(s.oL.Provider,{value:{allPermissions:i,refetchPermissions:o}},t):e.createElement(s.dO,null)};Me.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Zt=Me,Bt=n(54770),q=n.n(Bt),Se=(t,a)=>!q().valid(t)||!q().valid(a)?!1:q().lt(t,a);const Pe=M.i8,Wt=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:_}=(0,s.tg)(),Gt=async t=>{try{const a=await fetch("https://api.github.com/repos/strapi/strapi/releases/latest");if(!a.ok)throw new Error("Failed to fetch latest Strapi version.");const{tag_name:o}=await a.json();return Se(Pe,o)&&Wt&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${o}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),o}catch{return Pe}},Nt=async()=>{try{const{data:t,headers:a}=await _("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Ut=async()=>{try{const{data:t,headers:a}=await _("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},Ft=async()=>{try{const{data:{data:{roles:t}}}=await _("/admin/users/me");return t}catch(t){throw new Error(t)}},Ie=M.i8;var jt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=s.I8.getUserInfo(),i=Z()(o,"username")||(0,L.Pp)(o.firstname,o.lastname),[d,u]=(0,e.useState)(i),[h,p]=(0,e.useState)(null),{showReleaseNotification:g}=(0,S.um)(),[{data:l,status:I},{data:k,isLoading:$},{data:Q,status:G,refetch:R,isFetching:z},{data:A}]=(0,y.useQueries)([{queryKey:"app-infos",queryFn:Nt},{queryKey:"strapi-release",queryFn:()=>Gt(a),enabled:g,initialData:Ie},{queryKey:"admin-users-permission",queryFn:Ut,initialData:[]},{queryKey:"user-roles",queryFn:Ft}]),O=Se(Ie,k);return(0,e.useEffect)(()=>{A&&A.find(({code:U})=>U==="strapi-super-admin")&&l?.autoReload&&t(!0)},[A,l,t]),(0,e.useEffect)(()=>{(async()=>{const U=await(0,L.Qy)(o);p(U)})()},[o]),$||(z||I==="loading"||G==="loading")?e.createElement(s.dO,null):I==="error"?e.createElement("div",null,"error..."):e.createElement(s.iq,{...l,userId:h,latestStrapiReleaseTag:k,setUserDisplayName:u,shouldUpdateStrapi:O,userDisplayName:d},e.createElement(Zt,{permissions:Q,refetchPermissions:R},e.createElement(bt,null)))}},79348:function(K,T,n){var e=n(32735),s=n(72850),b=n(19565),Z=n(60216),y=n.n(Z),M=n(47806);const S=({type:L,...P})=>e.createElement(s.x,{width:(0,b.Q1)(2),height:"100%",background:L===M.VM?"neutral300":"primary500",hasRadius:!0,...P});S.defaultProps={type:M.VM},S.propTypes={type:y().oneOf([M.lW,M.hx,M.VM])},T.Z=S},13856:function(K,T,n){var e=n(32735),s=n(87933),b=n(99140),Z=n(49372),y=n(19565),M=n(66456),S=n(60216),L=n.n(S),P=n(47806);const F=({type:D,number:f})=>D===P.hx?e.createElement(s.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(b.J,{as:M.Z,"aria-hidden":!0,width:(0,y.Q1)(16),color:"neutral0"})):D===P.lW?e.createElement(s.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(Z.Z,{fontWeight:"semiBold",textColor:"neutral0"},f)):e.createElement(s.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,y.Q1)(30),height:(0,y.Q1)(30),justifyContent:"center"},e.createElement(Z.Z,{fontWeight:"semiBold",textColor:"neutral600"},f));F.defaultProps={number:void 0,type:P.VM},F.propTypes={number:L().number,type:L().oneOf([P.lW,P.hx,P.VM])},T.Z=F},47806:function(K,T,n){n.d(T,{VM:function(){return b},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",b="isNotDone"},75974:function(K,T){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};T.Z=n}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5516],{99097:function(j,b,n){var e=n(32735);const M=(P,R)=>{const[L,v]=(0,e.useState)(P);return(0,e.useEffect)(()=>{const C=setTimeout(()=>{v(P)},R);return()=>{clearTimeout(C)}},[P,R]),L};b.Z=M},
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5516],{99097:function(j,b,n){var e=n(32735);const M=(P,R)=>{const[L,v]=(0,e.useState)(P);return(0,e.useEffect)(()=>{const C=setTimeout(()=>{v(P)},R);return()=>{clearTimeout(C)}},[P,R]),L};b.Z=M},95018:function(j,b,n){n.r(b),n.d(b,{MarketPlacePage:function(){return fe},default:function(){return yt}});var e=n(32735),M=n(96709),P=n(27649),R=n(17e3),L=n(91215),v=n(87933),C=n(90980),f=n(72850),Ee=n(61774),F=n(3653),g=n(19565),Me=n(74758),E=n(67879),ye=n(15062),ke=n(99097),be=()=>{const a=typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0,[s,i]=(0,e.useState)(a),l=()=>i(!0),r=()=>i(!1);return(0,e.useEffect)(()=>(window.addEventListener("online",l),window.addEventListener("offline",r),()=>{window.removeEventListener("online",l),window.removeEventListener("offline",r)}),[]),s},Re=n(30305),w=n(99140),O=n(74512);const Ce=a=>(0,O.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 32 32",...a,children:[(0,O.jsx)("path",{fill:"#AC73E6",d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z"}),(0,O.jsx)("path",{fill:"#fff",fillRule:"evenodd",d:"M15.027 13.839c-3.19-.836-6.305-1.064-10.18-.608-1.215.152-1.063 1.975.076 2.203.304.836.456 2.355.912 3.267.987 2.279 5.622 1.975 7.369.835 1.14-.683 1.443-2.279 1.9-3.494.227-.684 1.595-.684 1.822 0 .38 1.215.76 2.81 1.9 3.494 1.747 1.14 6.381 1.444 7.369-.835.456-.912.607-2.431.911-3.267 1.14-.228 1.216-2.051.076-2.203-3.874-.456-6.989-.228-10.18.608-.455.075-1.519.075-1.975 0Z",clipRule:"evenodd"})]}),xe=Ce;var X=n(47361),Se=()=>{const{formatMessage:a}=(0,E.Z)(),{trackUsage:s}=(0,g.rS)();return e.createElement("a",{href:"https://strapi.canny.io/plugin-requests",target:"_blank",rel:"noopener noreferrer nofollow",style:{textDecoration:"none"},onClick:()=>s("didMissMarketplacePlugin")},e.createElement(g.Y_,{title:a({id:"admin.pages.MarketPlacePage.missingPlugin.title",defaultMessage:"Documentation"}),subtitle:a({id:"admin.pages.MarketPlacePage.missingPlugin.description",defaultMessage:"Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!"}),icon:e.createElement(xe,null),iconBackground:"alternative100",endAction:e.createElement(w.J,{as:X.Z,color:"neutral600",width:3,height:3,marginLeft:2})}))},Te=n(66995),z=n(41415),Ze=n(35331),we=n(5644),De=n(60216),t=n.n(De),D=n(8471),Ne=n(5383),_=n(68465),ee=n(84967);const te=({message:a,value:s,onChange:i,possibleFilters:l,onClear:r,customizeContent:d})=>{const o=(c,p)=>`${c} (${p})`;return e.createElement(_.P,{"data-testid":`${a}-button`,label:a,placeholder:a,size:"M",onChange:i,onClear:r,value:s,customizeContent:d,multi:!0},Object.entries(l).map(([c,p])=>e.createElement(ee.W,{"data-testid":`${c}-${p}`,key:c,value:c},o(c,p))))};te.propTypes={message:t().string.isRequired,value:t().array.isRequired,onChange:t().func.isRequired,possibleFilters:t().object.isRequired,onClear:t().func.isRequired,customizeContent:t().func.isRequired};var ae=te;const ne=({source:a,onToggle:s,query:i,npmPackageType:l,possibleCategories:r,possibleCollections:d,handleSelectChange:o,handleSelectClear:c})=>{const{formatMessage:p}=(0,E.Z)();return e.createElement(Ne.J2,{source:a,onDismiss:s,padding:3,spacing:4},e.createElement(Oe,{direction:"column",alignItems:"stretch",gap:1},e.createElement(ae,{message:p({id:"admin.pages.MarketPlacePage.filters.collections",defaultMessage:"Collections"}),value:i?.collections||[],onChange:m=>{o({collections:m})},onClear:()=>c("collections"),possibleFilters:d,customizeContent:m=>p({id:"admin.pages.MarketPlacePage.filters.collectionsSelected",defaultMessage:"{count, plural, =0 {No collections} one {# collection} other {# collections}} selected"},{count:m.length})}),l==="plugin"&&e.createElement(ae,{message:p({id:"admin.pages.MarketPlacePage.filters.categories",defaultMessage:"Categories"}),value:i?.categories||[],onChange:m=>{o({categories:m})},onClear:()=>c("categories"),possibleFilters:r,customizeContent:m=>p({id:"admin.pages.MarketPlacePage.filters.categoriesSelected",defaultMessage:"{count, plural, =0 {No categories} one {# category} other {# categories}} selected"},{count:m.length}),name:"categories"})))};ne.propTypes={onToggle:t().func.isRequired,source:t().shape({current:t().instanceOf(Element)}).isRequired,query:t().object.isRequired,npmPackageType:t().oneOf(["plugin","provider"]).isRequired,possibleCollections:t().object.isRequired,possibleCategories:t().object.isRequired,handleSelectChange:t().func.isRequired,handleSelectClear:t().func.isRequired};var Le=ne;const Oe=(0,D.ZP)(v.k)`
|
|
2
2
|
/* Hide the label, every input needs a label. */
|
|
3
3
|
label {
|
|
4
4
|
border: 0;
|
|
@@ -12,24 +12,24 @@
|
|
|
12
12
|
}
|
|
13
13
|
`,U=({name:a,handleRemove:s})=>e.createElement(f.x,{padding:1},e.createElement(Te.V,{icon:e.createElement(Ze.Z,null),onClick:s},a)),je=(0,D.ZP)(z.z)`
|
|
14
14
|
height: ${({theme:a})=>a.sizes.input.S};
|
|
15
|
-
`,se=({possibleCollections:a,possibleCategories:s,npmPackageType:
|
|
15
|
+
`,se=({possibleCollections:a,possibleCategories:s,npmPackageType:i,query:l,handleSelectClear:r,handleSelectChange:d})=>{const[o,c]=(0,e.useState)(!1),p=(0,e.useRef)(),{formatMessage:m}=(0,E.Z)(),h=()=>c(u=>!u),y=(u,k)=>{const T={[k]:l[k].filter(N=>N!==u)};d(T)};return e.createElement(e.Fragment,null,e.createElement(f.x,{paddingTop:1,paddingBottom:1},e.createElement(je,{variant:"tertiary",ref:p,"data-testid":"filters-button",startIcon:e.createElement(we.Z,null),onClick:h,size:"S"},m({id:"app.utils.filters",defaultMessage:"Filters"})),o&&e.createElement(Le,{onToggle:h,source:p,query:l,handleSelectClear:r,handleSelectChange:d,possibleCollections:a,possibleCategories:s,npmPackageType:i})),l.collections?.map(u=>e.createElement(U,{name:u,key:u,handleRemove:()=>y(u,"collections")})),i==="plugin"&&l.categories?.map(u=>e.createElement(U,{name:u,key:u,handleRemove:()=>y(u,"categories")})))};U.propTypes={name:t().string.isRequired,handleRemove:t().func.isRequired},se.propTypes={npmPackageType:t().oneOf(["plugin","provider"]).isRequired,possibleCollections:t().object.isRequired,possibleCategories:t().object.isRequired,query:t().object.isRequired,handleSelectChange:t().func.isRequired,handleSelectClear:t().func.isRequired};var Be=se,Ie=n(23866),$e=n(15335),Ae=n(5803),S=n(49372),Ve=n(54725);const Fe=D.ZP.div`
|
|
16
16
|
display: grid;
|
|
17
17
|
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
18
18
|
grid-gap: ${({theme:a})=>a.spaces[4]};
|
|
19
19
|
`,ze=(0,D.ZP)(f.x)`
|
|
20
20
|
background: ${({theme:a})=>`linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${a.colors.neutral150} 100%)`};
|
|
21
21
|
opacity: 0.33;
|
|
22
|
-
`,Ue=()=>e.createElement(
|
|
22
|
+
`,Ue=()=>e.createElement(Fe,null,Array(12).fill(null).map((a,s)=>e.createElement(ze,{key:`empty-plugin-card-${s}`,height:"234px",hasRadius:!0}))),re=({content:a})=>e.createElement(f.x,{position:"relative","data-testid":"marketplace-results"},e.createElement(Ue,null),e.createElement(f.x,{position:"absolute",top:11,width:"100%"},e.createElement(v.k,{alignItems:"center",justifyContent:"center",direction:"column"},e.createElement(w.J,{as:Ve.Z,color:"",width:"160px",height:"88px"}),e.createElement(f.x,{paddingTop:6},e.createElement(S.Z,{variant:"delta",as:"p",textColor:"neutral600"},a)))));re.propTypes={content:t().string.isRequired};var He=re,H=n(63919),ie=n(95489),Qe=n(38705),Ge=n(24443),We=n.n(Ge),Je=n(47750),Ke=n(66456),le=n(47765),Ye=n(54770),oe=n.n(Ye);const B=({description:a,installMessage:s,disabled:i,handleCopy:l,pluginName:r})=>e.createElement(H.u,{"data-testid":`tooltip-${r}`,description:a},e.createElement(f.x,null,e.createElement(z.z,{size:"S",startIcon:e.createElement(le.Z,null),variant:"secondary",disabled:i,onClick:l},s))),Q=({strapiPeerDepVersion:a,strapiAppVersion:s,handleCopy:i,pluginName:l})=>{const{formatMessage:r}=(0,E.Z)(),d=oe().validRange(a),o=oe().satisfies(s,d),c=r({id:"admin.pages.MarketPlacePage.plugin.copy",defaultMessage:"Copy install command"});if(s){if(!d)return e.createElement(B,{installMessage:c,pluginName:l,description:r({id:"admin.pages.MarketPlacePage.plugin.version.null",defaultMessage:'Unable to verify compatibility with your Strapi version: "{strapiAppVersion}"'},{strapiAppVersion:s}),handleCopy:i});if(!o)return e.createElement(B,{installMessage:c,pluginName:l,description:r({id:"admin.pages.MarketPlacePage.plugin.version",defaultMessage:'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'},{strapiAppVersion:s,versionRange:d}),disabled:!0})}return e.createElement(z.z,{size:"S",startIcon:e.createElement(le.Z,null),variant:"secondary",onClick:i},c)};B.defaultProps={disabled:!1,handleCopy:null},B.propTypes={description:t().string.isRequired,installMessage:t().string.isRequired,disabled:t().bool,handleCopy:t().func,pluginName:t().string.isRequired},Q.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},Q.propTypes={strapiAppVersion:t().string,strapiPeerDepVersion:t().string,handleCopy:t().func.isRequired,pluginName:t().string.isRequired};var qe=Q;const G=({isInstalled:a,isInDevelopmentMode:s,commandToCopy:i,strapiAppVersion:l,strapiPeerDepVersion:r,pluginName:d})=>{const o=(0,g.lm)(),{formatMessage:c}=(0,E.Z)(),{trackUsage:p}=(0,g.rS)(),{copy:m}=(0,g.VP)(),h=async()=>{await m(i)&&(p("willInstallPlugin"),o({type:"success",message:{id:"admin.pages.MarketPlacePage.plugin.copy.success"}}))};return a?e.createElement(f.x,{paddingLeft:4},e.createElement(w.J,{as:Ke.Z,marginRight:2,width:12,height:12,color:"success600"}),e.createElement(S.Z,{variant:"omega",textColor:"success600",fontWeight:"bold"},c({id:"admin.pages.MarketPlacePage.plugin.installed",defaultMessage:"Installed"}))):s?e.createElement(qe,{strapiAppVersion:l,strapiPeerDepVersion:r,handleCopy:h,pluginName:d}):null};G.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},G.propTypes={isInstalled:t().bool.isRequired,isInDevelopmentMode:t().bool.isRequired,commandToCopy:t().string.isRequired,strapiAppVersion:t().string,strapiPeerDepVersion:t().string,pluginName:t().string.isRequired};var Xe=G,_e=n(9026),et=n(33904),tt=n(4511),at=n(33844);const nt=(0,D.ZP)(_e.i)`
|
|
23
23
|
width: ${(0,g.Q1)(12)};
|
|
24
24
|
transform: rotate(90deg);
|
|
25
|
-
`,W=({githubStars:a,npmDownloads:s,npmPackageType:
|
|
25
|
+
`,W=({githubStars:a,npmDownloads:s,npmPackageType:i})=>{const{formatMessage:l}=(0,E.Z)();return e.createElement(v.k,{gap:1},!!a&&e.createElement(e.Fragment,null,e.createElement(w.J,{as:et.Z,height:(0,g.Q1)(12),width:(0,g.Q1)(12),"aria-hidden":!0}),e.createElement(w.J,{as:tt.Z,height:(0,g.Q1)(12),width:(0,g.Q1)(12),color:"warning500","aria-hidden":!0}),e.createElement("p",{"aria-label":l({id:`admin.pages.MarketPlacePage.${i}.githubStars`,defaultMessage:"This {package} was starred {starsCount} on GitHub"},{starsCount:a,package:i})},e.createElement(S.Z,{variant:"pi",textColor:"neutral800"},a)),e.createElement(nt,{unsetMargin:!1,background:"neutral200"})),e.createElement(w.J,{as:at.Z,height:(0,g.Q1)(12),width:(0,g.Q1)(12),"aria-hidden":!0}),e.createElement("p",{"aria-label":l({id:`admin.pages.MarketPlacePage.${i}.downloads`,defaultMessage:"This {package} has {downloadsCount} weekly downloads"},{downloadsCount:s,package:i})},e.createElement(S.Z,{variant:"pi",textColor:"neutral800"},s)))};W.defaultProps={githubStars:0,npmDownloads:0},W.propTypes={githubStars:t().number,npmDownloads:t().number,npmPackageType:t().string.isRequired};var st=W;const rt=(0,D.ZP)(S.Z)`
|
|
26
26
|
/* stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix */
|
|
27
27
|
display: -webkit-box;
|
|
28
28
|
-webkit-box-orient: vertical;
|
|
29
29
|
-webkit-line-clamp: 2;
|
|
30
30
|
/* stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix */
|
|
31
31
|
overflow: hidden;
|
|
32
|
-
`,J=({npmPackage:a,isInstalled:s,useYarn:
|
|
32
|
+
`,J=({npmPackage:a,isInstalled:s,useYarn:i,isInDevelopmentMode:l,npmPackageType:r,strapiAppVersion:d})=>{const{attributes:o}=a,{formatMessage:c}=(0,E.Z)(),{trackUsage:p}=(0,g.rS)(),m=i?`yarn add ${o.npmPackageName}`:`npm install ${o.npmPackageName}`,h=c({id:"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi",defaultMessage:"Made by Strapi"}),y=`https://market.strapi.io/${We().plural(r)}/${o.slug}`;return e.createElement(v.k,{direction:"column",justifyContent:"space-between",paddingTop:4,paddingRight:4,paddingBottom:4,paddingLeft:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",height:"100%",alignItems:"normal","data-testid":"npm-package-card"},e.createElement(f.x,null,e.createElement(v.k,{direction:"row",justifyContent:"space-between",alignItems:"flex-start"},e.createElement(f.x,{as:"img",src:o.logo.url,alt:`${o.name} logo`,hasRadius:!0,width:11,height:11}),e.createElement(st,{githubStars:o.githubStars,npmDownloads:o.npmDownloads,npmPackageType:r})),e.createElement(f.x,{paddingTop:4},e.createElement(S.Z,{as:"h3",variant:"delta"},e.createElement(v.k,{alignItems:"center"},o.name,o.validated&&!o.madeByStrapi&&e.createElement(H.u,{description:c({id:"admin.pages.MarketPlacePage.plugin.tooltip.verified",defaultMessage:"Plugin verified by Strapi"})},e.createElement(v.k,null,e.createElement(w.J,{as:Qe.Z,marginLeft:2,color:"success600"}))),o.madeByStrapi&&e.createElement(H.u,{description:h},e.createElement(v.k,null,e.createElement(f.x,{as:"img",src:Je,alt:h,marginLeft:1,width:6,height:"auto"})))))),e.createElement(f.x,{paddingTop:2},e.createElement(rt,{as:"p",variant:"omega",textColor:"neutral600"},o.description))),e.createElement(v.k,{gap:2,style:{alignSelf:"flex-end"},paddingTop:6},e.createElement(ie.Q,{size:"S",href:y,isExternal:!0,endIcon:e.createElement(X.Z,null),"aria-label":c({id:"admin.pages.MarketPlacePage.plugin.info.label",defaultMessage:"Learn more about {pluginName}"},{pluginName:o.name}),variant:"tertiary",onClick:()=>p("didPluginLearnMore")},c({id:"admin.pages.MarketPlacePage.plugin.info.text",defaultMessage:"More"})),e.createElement(Xe,{isInstalled:s,isInDevelopmentMode:l,commandToCopy:m,strapiAppVersion:d,strapiPeerDepVersion:o.strapiVersion,pluginName:o.name})))};J.defaultProps={isInDevelopmentMode:!1,strapiAppVersion:null},J.propTypes={npmPackage:t().shape({id:t().string.isRequired,attributes:t().shape({name:t().string.isRequired,description:t().string.isRequired,slug:t().string.isRequired,npmPackageName:t().string.isRequired,npmPackageUrl:t().string.isRequired,repositoryUrl:t().string.isRequired,logo:t().object.isRequired,developerName:t().string.isRequired,validated:t().bool.isRequired,madeByStrapi:t().bool.isRequired,strapiCompatibility:t().oneOf(["v3","v4"]),strapiVersion:t().string,githubStars:t().number,npmDownloads:t().number}).isRequired}).isRequired,isInstalled:t().bool.isRequired,useYarn:t().bool.isRequired,isInDevelopmentMode:t().bool,npmPackageType:t().string.isRequired,strapiAppVersion:t().string};var it=J;const K=({status:a,npmPackages:s,installedPackageNames:i,useYarn:l,isInDevelopmentMode:r,npmPackageType:d,strapiAppVersion:o,debouncedSearch:c})=>{const{formatMessage:p}=(0,E.Z)();if(a==="error")return e.createElement(v.k,{paddingTop:8},e.createElement(g.Hn,null));if(a==="loading")return e.createElement(v.k,{justifyContent:"center",paddingTop:8},e.createElement(Ie.a,null,"Loading content..."));const m=p({id:"admin.pages.MarketPlacePage.search.empty",defaultMessage:'No result for "{target}"'},{target:c});return s.length===0?e.createElement(He,{content:m}):e.createElement($e.r,{gap:4,"data-testid":"marketplace-results"},s.map(h=>e.createElement(Ae.P,{col:4,s:6,xs:12,style:{height:"100%"},key:h.id},e.createElement(it,{npmPackage:h,isInstalled:i.includes(h.attributes.npmPackageName),useYarn:l,isInDevelopmentMode:r,npmPackageType:d,strapiAppVersion:o}))))};K.defaultProps={npmPackages:[],installedPackageNames:[],strapiAppVersion:null,debouncedSearch:""},K.propTypes={status:t().string.isRequired,npmPackages:t().array,installedPackageNames:t().arrayOf(t().string),useYarn:t().bool.isRequired,isInDevelopmentMode:t().bool.isRequired,npmPackageType:t().string.isRequired,strapiAppVersion:t().string,debouncedSearch:t().string};var ce=K;const de=({pagination:a})=>e.createElement(f.x,{paddingTop:4},e.createElement(v.k,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(g.v4,{options:["12","24","50","100"],defaultValue:"24"}),e.createElement(g.tU,{pagination:a})));de.propTypes={pagination:t().shape({page:t().number.isRequired,pageCount:t().number.isRequired,pageSize:t().number.isRequired,total:t().number.isRequired}).isRequired};var lt=de,ot=n.p+"9d5d788027e86620c234.svg",ct=n(82055);const dt=a=>(0,O.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1rem",height:"1rem",fill:"none",viewBox:"0 0 24 25",...a,children:(0,O.jsx)("path",{fill:"#212134",fillRule:"evenodd",d:"M13.571 18.272H10.43v-8.47H2.487a.2.2 0 0 1-.14-.343L11.858.058a.2.2 0 0 1 .282 0l9.513 9.4a.2.2 0 0 1-.14.343H13.57v8.47ZM2.2 21.095a.2.2 0 0 0-.2.2v2.424c0 .11.09.2.2.2h19.6a.2.2 0 0 0 .2-.2v-2.424a.2.2 0 0 0-.2-.2H2.2Z",clipRule:"evenodd"})}),gt=dt,Y=({isOnline:a,npmPackageType:s})=>{const{formatMessage:i}=(0,E.Z)(),{trackUsage:l}=(0,g.rS)(),r=s==="provider"?"didSubmitProvider":"didSubmitPlugin";return e.createElement(ct.T,{title:i({id:"global.marketplace",defaultMessage:"Marketplace"}),subtitle:i({id:"admin.pages.MarketPlacePage.subtitle",defaultMessage:"Get more out of Strapi"}),primaryAction:a&&e.createElement(ie.Q,{startIcon:e.createElement(gt,null),variant:"tertiary",href:`https://market.strapi.io/submit-${s}`,onClick:()=>l(r),isExternal:!0},i({id:`admin.pages.MarketPlacePage.submit.${s}.link`,defaultMessage:`Submit ${s}`}))})};var ge=Y;Y.defaultProps={npmPackageType:"plugin"},Y.propTypes={isOnline:t().bool.isRequired,npmPackageType:t().string};var ut=()=>{const{formatMessage:a}=(0,E.Z)();return e.createElement(M.A,null,e.createElement(P.o,null,e.createElement(ge,{isOnline:!1}),e.createElement(v.k,{width:"100%",direction:"column",alignItems:"center",justifyContent:"center",paddingTop:(0,g.Q1)(120)},e.createElement(f.x,{paddingBottom:2},e.createElement(S.Z,{textColor:"neutral700",variant:"alpha"},a({id:"admin.pages.MarketPlacePage.offline.title",defaultMessage:"You are offline"}))),e.createElement(f.x,{paddingBottom:6},e.createElement(S.Z,{textColor:"neutral700",variant:"epsilon"},a({id:"admin.pages.MarketPlacePage.offline.subtitle",defaultMessage:"You need to be connected to the Internet to access Strapi Market."}))),e.createElement("img",{src:ot,alt:"offline",style:{width:"88px",height:"88px"}}))))};const pt=(0,D.ZP)(f.x)`
|
|
33
33
|
font-weight: ${({theme:a})=>a.fontWeights.semiBold};
|
|
34
34
|
|
|
35
35
|
span {
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
position: absolute;
|
|
48
48
|
width: 1px;
|
|
49
49
|
}
|
|
50
|
-
`,ue=({sortQuery:a,handleSelectChange:s})=>{const{formatMessage:
|
|
50
|
+
`,ue=({sortQuery:a,handleSelectChange:s})=>{const{formatMessage:i}=(0,E.Z)(),l={"name:asc":{selected:{id:"admin.pages.MarketPlacePage.sort.alphabetical.selected",defaultMessage:"Sort by alphabetical order"},option:{id:"admin.pages.MarketPlacePage.sort.alphabetical",defaultMessage:"Alphabetical order"}},"submissionDate:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.newest.selected",defaultMessage:"Sort by newest"},option:{id:"admin.pages.MarketPlacePage.sort.newest",defaultMessage:"Newest"}},"githubStars:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.githubStars.selected",defaultMessage:"Sort by GitHub stars"},option:{id:"admin.pages.MarketPlacePage.sort.githubStars",defaultMessage:"Number of GitHub stars"}},"npmDownloads:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.npmDownloads.selected",defaultMessage:"Sort by npm downloads"},option:{id:"admin.pages.MarketPlacePage.sort.npmDownloads",defaultMessage:"Number of downloads"}}};return e.createElement(pt,null,e.createElement(_.P,{size:"S",id:"sort-by-select",value:a,customizeContent:()=>i(l[a].selected),onChange:r=>{s({sort:r})},label:i({id:"admin.pages.MarketPlacePage.sort.label",defaultMessage:"Sort by"})},Object.entries(l).map(([r,d])=>e.createElement(ee.W,{key:r,value:r},i(d.option)))))};ue.propTypes={sortQuery:t().string.isRequired,handleSelectChange:t().func.isRequired};var mt=ue,ft=n(94638),ht=n(33348),I=n.n(ht),pe=n(20108);const me="https://market-api.strapi.io",vt=(a,s={})=>{const i=(0,g.lm)();return(0,pe.useQuery)(["marketplace","plugins",s],async()=>{try{const l=I().stringify(I().parse(s)),r=await fetch(`${me}/plugins?${l}`);if(!r.ok)throw new Error("Failed to fetch marketplace plugins.");return await r.json()}catch{}return null},{onSuccess(){a&&a()},onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})},Pt=(a,s={})=>{const i=(0,g.lm)();return(0,pe.useQuery)(["marketplace","providers",s],async()=>{try{const l=I().stringify(I().parse(s)),r=await fetch(`${me}/providers?${l}`);if(!r.ok)throw new Error("Failed to fetch marketplace providers.");return await r.json()}catch{}return null},{onSuccess(){a&&a()},onError(){i({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};function Et({npmPackageType:a,debouncedSearch:s,query:i,tabQuery:l}){const{notifyStatus:r}=(0,ft.G)(),{formatMessage:d}=(0,E.Z)(),o=d({id:"global.marketplace",defaultMessage:"Marketplace"}),c=()=>{r(d({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:o}))},p={page:i?.page||1,pageSize:i?.pageSize||24},{data:m,status:h}=vt(c,{...l.plugin,pagination:p,search:s}),{data:y,status:u}=Pt(c,{...l.provider,pagination:p,search:s}),k=a==="plugin"?m:y,T=a==="plugin"?h:u,[N,$]=(0,e.useState)({}),[A,V]=(0,e.useState)({});(0,e.useEffect)(()=>{T==="success"&&$(k.meta.collections),h==="success"&&V(m.meta.categories)},[m?.meta.categories,h,k?.meta.collections,T]);const{pagination:q}=T==="success"?k.meta:{};return{pluginsResponse:m,providersResponse:y,pluginsStatus:h,providersStatus:u,possibleCollections:N,possibleCategories:A,pagination:q}}var Mt=Et;const fe=()=>{const{formatMessage:a}=(0,E.Z)(),{trackUsage:s}=(0,g.rS)(),i=(0,e.useRef)(s),l=(0,g.lm)(),[{query:r},d]=(0,g.Kx)(),o=(0,ke.Z)(r?.search,500)||"",{autoReload:c,dependencies:p,useYarn:m,strapiVersion:h}=(0,g.L7)(),y=be(),u=r?.npmPackageType||"plugin",[k,T]=(0,e.useState)({plugin:u==="plugin"?{...r}:{},provider:u==="provider"?{...r}:{}});(0,g.go)(),(0,e.useEffect)(()=>{i.current("didGoToMarketplace")},[]),(0,e.useEffect)(()=>{c||l({type:"info",message:{id:"admin.pages.MarketPlacePage.production",defaultMessage:"Manage plugins from the development environment"},blockTransition:!0})},[l,c]);const{pluginsResponse:N,providersResponse:$,pluginsStatus:A,providersStatus:V,possibleCollections:q,possibleCategories:kt,pagination:he}=Mt({npmPackageType:u,debouncedSearch:o,query:r,tabQuery:k});if(!y)return e.createElement(ut,null);const bt=Z=>{const x=Z===0?"plugin":"provider",Ct=k[x]&&Object.keys(k[x]).length;d(Ct?{...k[x],search:r?.search||"",npmPackageType:x,page:1}:{npmPackageType:x,collections:[],categories:[],sort:"name:asc",page:1,search:r?.search||""})},ve=Z=>{d({...Z,page:1}),T(x=>({...x,[u]:{...x[u],...Z}}))},Rt=Z=>{d({[Z]:[],page:null},"remove"),T(x=>({...x,[u]:{}}))},Pe=Object.keys(p);return e.createElement(M.A,null,e.createElement(P.o,null,e.createElement(Me.q,{title:a({id:"admin.pages.MarketPlacePage.helmet",defaultMessage:"Marketplace - Plugins"})}),e.createElement(ge,{isOnline:y,npmPackageType:u}),e.createElement(R.D,null,e.createElement(L.v,{label:a({id:"admin.pages.MarketPlacePage.tab-group.label",defaultMessage:"Plugins and Providers for Strapi"}),id:"tabs",variant:"simple",initialSelectedTabIndex:["plugin","provider"].indexOf(u),onTabChange:bt},e.createElement(v.k,{justifyContent:"space-between",paddingBottom:4},e.createElement(C.m,null,e.createElement(C.O,null,a({id:"admin.pages.MarketPlacePage.plugins",defaultMessage:"Plugins"})," ",A==="success"?`(${N.meta.pagination.total})`:"..."),e.createElement(C.O,null,a({id:"admin.pages.MarketPlacePage.providers",defaultMessage:"Providers"})," ",V==="success"?`(${$.meta.pagination.total})`:"...")),e.createElement(f.x,{width:"25%"},e.createElement(Ee.w,{name:"searchbar",onClear:()=>d({search:"",page:1}),value:r?.search,onChange:Z=>d({search:Z.target.value,page:1}),clearLabel:a({id:"admin.pages.MarketPlacePage.search.clear",defaultMessage:"Clear the search"}),placeholder:a({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})},a({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})))),e.createElement(v.k,{paddingBottom:4,gap:2},e.createElement(mt,{sortQuery:r?.sort||"name:asc",handleSelectChange:ve}),e.createElement(Be,{npmPackageType:u,possibleCollections:q,possibleCategories:kt,query:r||{},handleSelectChange:ve,handleSelectClear:Rt})),e.createElement(F.n,null,e.createElement(F.x,null,e.createElement(ce,{npmPackages:N?.data,status:A,installedPackageNames:Pe,useYarn:m,isInDevelopmentMode:c,npmPackageType:"plugin",strapiAppVersion:h,debouncedSearch:o})),e.createElement(F.x,null,e.createElement(ce,{npmPackages:$?.data,status:V,installedPackageNames:Pe,useYarn:m,isInDevelopmentMode:c,npmPackageType:"provider",debouncedSearch:o})))),he&&e.createElement(lt,{pagination:he}),e.createElement(f.x,{paddingTop:8},e.createElement(Se,null)))))};var yt=()=>{const a=(0,ye.v9)(Re._);return e.createElement(g.O4,{permissions:a.marketplace.main},e.createElement(fe,null))}},96709:function(j,b,n){n.d(b,{A:function(){return v}});var e=n(74512),M=n(8471),P=n(72850);const R=(0,M.ZP)(P.x)`
|
|
51
51
|
display: grid;
|
|
52
52
|
grid-template-columns: ${({hasSideNav:C})=>C?"auto 1fr":"1fr"};
|
|
53
53
|
`,L=(0,M.ZP)(P.x)`
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[3677],{91534:function(y,o,e){e.r(o),e.d(o,{default:function(){return D}});var t=e(32735),l=e(19565),r=e(74758),i=e(67879),m=e(15062),E=e(30305),a=e(94638),u=e(96709),P=e(27649),T=e(82055),C=e(17e3),x=e(56755),L=e(33827),h=e(94547),d=e(19786),g=e(49372),A=e(35658),I=e(20108);const O=n=>{const s=(0,l.lm)(),{get:c}=(0,l.kY)();return(0,I.useQuery)(["plugins"],async()=>{const{data:f}=await c("/admin/plugins");return f},{onSuccess(){n&&n()},onError(){s({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};var Z=()=>{const{formatMessage:n}=(0,i.Z)(),{notifyStatus:s}=(0,a.G)();(0,l.go)();const c=n({id:"global.plugins",defaultMessage:"Plugins"}),f=()=>{s(n({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:c}))},{status:p,data:M}=O(f);return p!=="success"&&p!=="error"?t.createElement(u.A,null,t.createElement(P.o,{"aria-busy":!0},t.createElement(l.dO,null))):t.createElement(u.A,null,t.createElement(P.o,null,t.createElement(T.T,{title:c,subtitle:n({id:"app.components.ListPluginsPage.description",defaultMessage:"List of the installed plugins in the project."})}),t.createElement(C.D,null,t.createElement(x.i,{colCount:2,rowCount:M?.plugins?.length??0+1},t.createElement(L.h,null,t.createElement(h.Tr,null,t.createElement(d.Th,null,t.createElement(g.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.name",defaultMessage:"Name"}))),t.createElement(d.Th,null,t.createElement(g.Z,{variant:"sigma",textColor:"neutral600"},n({id:"global.description",defaultMessage:"description"}))))),t.createElement(A.p,null,M.plugins.map(({name:v,displayName:B,description:N})=>t.createElement(h.Tr,{key:v},t.createElement(d.Td,null,t.createElement(g.Z,{textColor:"neutral800",variant:"omega",fontWeight:"bold"},n({id:`global.plugins.${v}`,defaultMessage:B}))),t.createElement(d.Td,null,t.createElement(g.Z,{textColor:"neutral800"},n({id:`global.plugins.${v}.description`,defaultMessage:N}))))))))))},D=()=>{const{formatMessage:n}=(0,i.Z)(),s=(0,m.v9)(E._);return t.createElement(l.O4,{permissions:s.marketplace.main},t.createElement(r.q,{title:n({id:"global.plugins",defaultMessage:"Plugins"})}),t.createElement(Z,null))}},96709:function(y,o,e){e.d(o,{A:function(){return E}});var t=e(74512),l=e(8471),r=e(72850);const i=(0,l.ZP)(r.x)`
|
|
2
|
+
display: grid;
|
|
3
|
+
grid-template-columns: ${({hasSideNav:a})=>a?"auto 1fr":"1fr"};
|
|
4
|
+
`,m=(0,l.ZP)(r.x)`
|
|
5
|
+
overflow-x: hidden;
|
|
6
|
+
`,E=({sideNav:a,children:u})=>(0,t.jsxs)(i,{hasSideNav:!!a,children:[a,(0,t.jsx)(m,{paddingBottom:10,children:u})]})}}]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9497],{94987:function(q,Z,a){a.r(Z),a.d(Z,{default:function(){return ce}});var e=a(32735),c=a(94638),S=a(27649),j=a(82055),x=a(17e3),G=a(41415),h=a(72850),P=a(87933),l=a(19565),M=a(66456),y=a(92802),L=a(74758),C=a(67879),b=a(20108),_=a(51399),ee=a(
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[9497],{94987:function(q,Z,a){a.r(Z),a.d(Z,{default:function(){return ce}});var e=a(32735),c=a(94638),S=a(27649),j=a(82055),x=a(17e3),G=a(41415),h=a(72850),P=a(87933),l=a(19565),M=a(66456),y=a(92802),L=a(74758),C=a(67879),b=a(20108),_=a(51399),ee=a(79652),W=a(24388),Y=a(10369),ae=a(63642),R=a(49372),O=a(15335),u=a(5803),D=a(54894),F=a(60492),te=a(60216),t=a.n(te),$=a(8471);const X=(0,$.ZP)(Y.o)`
|
|
2
2
|
::-ms-reveal {
|
|
3
3
|
display: none;
|
|
4
4
|
}
|