@strapi/admin 4.12.0 → 4.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/admin/src/components/LeftMenu/index.js +1 -1
- package/admin/src/components/PluginsInitializer/index.js +23 -0
- package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +9 -14
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/cleanData.js +1 -1
- package/admin/src/content-manager/components/InputUID/index.js +2 -3
- package/admin/src/content-manager/components/RelationInput/RelationInput.js +1 -1
- package/admin/src/content-manager/components/RelationInputDataManager/utils/getRelationLink.js +1 -3
- package/admin/src/content-manager/components/RelationInputDataManager/utils/select.js +4 -6
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +7 -9
- package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +1 -3
- package/admin/src/content-manager/pages/EditSettingsView/index.js +31 -18
- package/admin/src/content-manager/pages/ListSettingsView/components/EditFieldForm.js +1 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/Settings.js +1 -3
- package/admin/src/content-manager/pages/ListSettingsView/components/SortDisplayedFields.js +14 -32
- package/admin/src/content-manager/pages/ListSettingsView/index.js +50 -40
- package/admin/src/content-manager/pages/ListView/components/BulkActionButtons/SelectedEntriesModal/index.js +7 -2
- package/admin/src/content-manager/pages/ListView/components/CellContent/RelationMultiple/index.js +2 -2
- package/admin/src/content-manager/pages/ListView/index.js +10 -4
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +1 -1
- package/admin/src/content-manager/utils/checkIfAttributeIsDisplayable.js +2 -4
- package/admin/src/content-manager/utils/index.js +0 -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/AuthPage/components/Register/index.js +4 -0
- package/admin/src/pages/AuthPage/constants.js +2 -2
- 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/ar.json +9 -3
- package/admin/src/translations/ca.json +8 -2
- package/admin/src/translations/de.json +8 -2
- package/admin/src/translations/dk.json +8 -2
- package/admin/src/translations/en.json +9 -3
- package/admin/src/translations/es.json +9 -3
- package/admin/src/translations/eu.json +8 -2
- package/admin/src/translations/fr.json +9 -2
- package/admin/src/translations/gu.json +8 -2
- package/admin/src/translations/hi.json +9 -3
- package/admin/src/translations/hu.json +9 -3
- package/admin/src/translations/ja.json +12 -6
- package/admin/src/translations/ko.json +12 -6
- package/admin/src/translations/ml.json +8 -2
- package/admin/src/translations/nl.json +8 -2
- package/admin/src/translations/pl.json +8 -2
- package/admin/src/translations/pt-BR.json +8 -2
- package/admin/src/translations/ru.json +8 -2
- package/admin/src/translations/sa.json +9 -3
- package/admin/src/translations/sk.json +8 -2
- package/admin/src/translations/sv.json +7 -2
- package/admin/src/translations/tr.json +8 -2
- package/admin/src/translations/zh-Hans.json +8 -2
- package/admin/src/translations/zh.json +8 -2
- package/admin/src/utils/index.js +0 -1
- package/build/1049.f76cb14b.chunk.js +1 -0
- package/build/1386.879bcd90.chunk.js +7 -0
- package/build/{2225.15d1df72.chunk.js → 2225.c6244756.chunk.js} +1 -1
- package/build/2379.f1641312.chunk.js +1 -0
- package/build/2395.46f8d0c1.chunk.js +26 -0
- package/build/2801.5cef5ec8.chunk.js +1 -0
- package/build/{3483.e2ee2547.chunk.js → 3483.03c24f96.chunk.js} +1 -1
- package/build/3929.5632f24d.chunk.js +114 -0
- package/build/4546.cfafae68.chunk.js +1 -0
- package/build/6691.4985ef22.chunk.js +105 -0
- package/build/7464.3e64a1d5.chunk.js +1 -0
- package/build/8276.10a3f883.chunk.js +26 -0
- package/build/{9806.aa25371d.chunk.js → 9806.3392505e.chunk.js} +2 -2
- package/build/{Admin-authenticatedApp.376233ff.chunk.js → Admin-authenticatedApp.3c585a0d.chunk.js} +3 -3
- 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.a968035f.chunk.js → Admin_profilePage.192edc52.chunk.js} +1 -1
- package/build/{Admin_settingsPage.8c600d1a.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-edit-users.67704088.chunk.js → admin-edit-users.79eeb125.chunk.js} +1 -1
- package/build/admin-roles-list.23ddff26.chunk.js +22 -0
- package/build/{admin-users.3279ffb0.chunk.js → admin-users.123aa08e.chunk.js} +1 -1
- package/build/ar-json.74e40bc7.chunk.js +1 -0
- package/build/{ca-json.a53c10b6.chunk.js → ca-json.fc6001d3.chunk.js} +1 -1
- package/build/content-manager.2af15f57.chunk.js +1099 -0
- package/build/{de-json.b3be02c7.chunk.js → de-json.e72545cf.chunk.js} +1 -1
- package/build/dk-json.e77140ef.chunk.js +1 -0
- package/build/{en-json.e34140fc.chunk.js → en-json.08c05fcf.chunk.js} +1 -1
- package/build/es-json.b1f2284b.chunk.js +1 -0
- package/build/{eu-json.633025f0.chunk.js → eu-json.63d0a898.chunk.js} +1 -1
- package/build/{fr-json.aa8839d2.chunk.js → fr-json.33c6428b.chunk.js} +1 -1
- package/build/{gu-json.5bd62812.chunk.js → gu-json.7efe8cc2.chunk.js} +1 -1
- package/build/{hi-json.9104eb78.chunk.js → hi-json.0d633692.chunk.js} +1 -1
- package/build/{hu-json.9f4aae42.chunk.js → hu-json.c74b6a1e.chunk.js} +1 -1
- package/build/index.html +1 -1
- package/build/{ja-json.91286391.chunk.js → ja-json.e1959a1c.chunk.js} +1 -1
- package/build/{ko-json.fcf3ec4b.chunk.js → ko-json.ce5d6d94.chunk.js} +1 -1
- package/build/main.f13fc96c.js +2856 -0
- package/build/{ml-json.557aa14c.chunk.js → ml-json.940d7ace.chunk.js} +1 -1
- package/build/{nl-json.b2b16eea.chunk.js → nl-json.fe38f0fb.chunk.js} +1 -1
- package/build/{pl-json.f094a417.chunk.js → pl-json.d55e8e78.chunk.js} +1 -1
- package/build/{pt-BR-json.dec7fb01.chunk.js → pt-BR-json.ae0a0d2e.chunk.js} +1 -1
- package/build/review-workflows-settings-create-view.cb08cfa2.chunk.js +1 -0
- package/build/review-workflows-settings-edit-view.3c7cbe63.chunk.js +1 -0
- package/build/review-workflows-settings-list-view.1611dc1f.chunk.js +56 -0
- package/build/{ru-json.8193d8c4.chunk.js → ru-json.1c976644.chunk.js} +1 -1
- package/build/{runtime~main.58ec8df6.js → runtime~main.2902859a.js} +1 -1
- package/build/{sa-json.a56836f1.chunk.js → sa-json.2c03ef4e.chunk.js} +1 -1
- package/build/sk-json.b41847e8.chunk.js +1 -0
- package/build/sso-settings-page.12b6d8ae.chunk.js +1 -0
- package/build/{sv-json.fd0e86c6.chunk.js → sv-json.568cb7ae.chunk.js} +1 -1
- package/build/{tr-json.56c32cf6.chunk.js → tr-json.c9f22432.chunk.js} +1 -1
- package/build/upload-settings.7f93d4c0.chunk.js +14 -0
- package/build/upload.37488080.chunk.js +58 -0
- package/build/users-advanced-settings-page.f0760eb8.chunk.js +9 -0
- package/build/users-email-settings-page.ff4b32f3.chunk.js +9 -0
- package/build/users-providers-settings-page.48de0306.chunk.js +14 -0
- package/build/users-roles-settings-page.3f9f063e.chunk.js +30 -0
- package/build/{zh-Hans-json.36d81cdc.chunk.js → zh-Hans-json.937b395b.chunk.js} +1 -1
- package/build/{zh-json.1cc86ff0.chunk.js → zh-json.bfc2e036.chunk.js} +1 -1
- package/ee/admin/hooks/useAuthProviders/index.js +1 -3
- package/ee/admin/pages/AuthResponse/index.js +1 -3
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +35 -32
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/CreateView/CreateView.js +1 -7
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/EditView/EditView.js +16 -14
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/pages/ListView/ListView.js +32 -31
- package/ee/admin/pages/SettingsPage/pages/SingleSignOn/index.js +16 -26
- package/ee/server/config/admin-actions.js +6 -6
- package/ee/server/services/review-workflows/entity-service-decorator.js +4 -3
- package/index.js +2 -0
- package/package.json +16 -16
- package/scripts/build.js +1 -0
- package/server/controllers/role.js +9 -1
- package/server/middlewares/rateLimit.js +6 -2
- package/server/services/role.js +3 -2
- package/server/services/transfer/token.js +27 -4
- package/server/validation/authentication/register.js +2 -2
- package/webpack.config.js +2 -1
- package/admin/src/content-manager/components/SingleTypeFormWrapper/utils/getRequestUrl.js +0 -5
- package/admin/src/content-manager/components/SingleTypeFormWrapper/utils/index.js +0 -2
- package/admin/src/content-manager/pages/EditSettingsView/utils/api.js +0 -16
- package/admin/src/content-manager/pages/ListSettingsView/init.js +0 -9
- package/admin/src/content-manager/utils/getRequestUrl.js +0 -4
- 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/admin/src/utils/getRequestUrl.js +0 -3
- package/build/1049.758a01f5.chunk.js +0 -1
- package/build/1386.762d6eb8.chunk.js +0 -7
- package/build/2379.0ca87a89.chunk.js +0 -1
- package/build/2395.df7a044a.chunk.js +0 -26
- package/build/2801.b1140c9b.chunk.js +0 -1
- package/build/4546.ff9fdf30.chunk.js +0 -1
- package/build/6691.f880a0b6.chunk.js +0 -105
- package/build/7065.ec811562.chunk.js +0 -114
- package/build/7464.8a6c1e6c.chunk.js +0 -1
- package/build/8276.6c7b8e6e.chunk.js +0 -26
- package/build/Admin_pluginsPage.8728ff6e.chunk.js +0 -6
- package/build/admin-app.1c3f7fd6.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/ar-json.f530bc3f.chunk.js +0 -1
- package/build/content-manager.e9205db1.chunk.js +0 -1103
- package/build/dk-json.842aa391.chunk.js +0 -1
- package/build/es-json.f57b5335.chunk.js +0 -1
- package/build/main.1e3b0985.js +0 -2856
- package/build/review-workflows-settings-create-view.05758184.chunk.js +0 -1
- package/build/review-workflows-settings-edit-view.c33f7c58.chunk.js +0 -1
- package/build/review-workflows-settings-list-view.f055e1be.chunk.js +0 -56
- package/build/sk-json.bf2f057a.chunk.js +0 -1
- package/build/sso-settings-page.7c9b2fd9.chunk.js +0 -1
- package/build/upload-settings.cac210a0.chunk.js +0 -14
- package/build/upload.cbfeefa5.chunk.js +0 -58
- package/build/users-advanced-settings-page.18379a56.chunk.js +0 -9
- package/build/users-email-settings-page.a87978e5.chunk.js +0 -9
- package/build/users-providers-settings-page.8876c1ee.chunk.js +0 -14
- package/build/users-roles-settings-page.0431f48c.chunk.js +0 -30
- /package/admin/src/{hooks/marketplace → pages/MarketplacePage}/constants.js +0 -0
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { useEffect, useReducer } from 'react';
|
|
2
|
-
|
|
3
|
-
import { useFetchClient } from '@strapi/helper-plugin';
|
|
4
|
-
|
|
5
|
-
import reducer, { initialState } from './reducer';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* TODO: refactor this to use react-query and move it to the `Roles` SettingsPage
|
|
9
|
-
*/
|
|
10
|
-
const useFetchPermissionsLayout = (id) => {
|
|
11
|
-
const [{ data, error, isLoading }, dispatch] = useReducer(reducer, initialState);
|
|
12
|
-
const { get } = useFetchClient();
|
|
13
|
-
|
|
14
|
-
useEffect(() => {
|
|
15
|
-
const getData = async () => {
|
|
16
|
-
try {
|
|
17
|
-
dispatch({
|
|
18
|
-
type: 'GET_DATA',
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const {
|
|
22
|
-
data: { data },
|
|
23
|
-
} = await get('/admin/permissions', {
|
|
24
|
-
params: { role: id },
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
dispatch({
|
|
28
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
29
|
-
data,
|
|
30
|
-
});
|
|
31
|
-
} catch (err) {
|
|
32
|
-
// silence is golden
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
getData();
|
|
37
|
-
}, [id, get]);
|
|
38
|
-
|
|
39
|
-
return { data, error, isLoading };
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export default useFetchPermissionsLayout;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
data: {},
|
|
6
|
-
error: null,
|
|
7
|
-
isLoading: true,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const reducer = (state, action) =>
|
|
11
|
-
produce(state, (draftState) => {
|
|
12
|
-
switch (action.type) {
|
|
13
|
-
case 'GET_DATA': {
|
|
14
|
-
draftState.isLoading = true;
|
|
15
|
-
draftState.data = {};
|
|
16
|
-
draftState.error = null;
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
case 'GET_DATA_SUCCEEDED': {
|
|
20
|
-
draftState.data = action.data;
|
|
21
|
-
draftState.isLoading = false;
|
|
22
|
-
draftState.error = null;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
case 'GET_DATA_ERROR': {
|
|
26
|
-
draftState.isLoading = false;
|
|
27
|
-
draftState.error = action.error;
|
|
28
|
-
break;
|
|
29
|
-
}
|
|
30
|
-
default:
|
|
31
|
-
return draftState;
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export default reducer;
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useReducer } from 'react';
|
|
2
|
-
|
|
3
|
-
import { useFetchClient, useNotification } from '@strapi/helper-plugin';
|
|
4
|
-
|
|
5
|
-
import reducer, { initialState } from './reducer';
|
|
6
|
-
|
|
7
|
-
const useFetchRole = (id) => {
|
|
8
|
-
const toggleNotification = useNotification();
|
|
9
|
-
const [state, dispatch] = useReducer(reducer, initialState);
|
|
10
|
-
|
|
11
|
-
const { get } = useFetchClient();
|
|
12
|
-
|
|
13
|
-
useEffect(() => {
|
|
14
|
-
if (id) {
|
|
15
|
-
const fetchRole = async (roleId) => {
|
|
16
|
-
try {
|
|
17
|
-
const [
|
|
18
|
-
{
|
|
19
|
-
data: { data: role },
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
data: { data: permissions },
|
|
23
|
-
},
|
|
24
|
-
] = await Promise.all(
|
|
25
|
-
[`roles/${roleId}`, `roles/${roleId}/permissions`].map((endPoint) =>
|
|
26
|
-
get(`/admin/${endPoint}`)
|
|
27
|
-
)
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
dispatch({
|
|
31
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
32
|
-
role,
|
|
33
|
-
permissions,
|
|
34
|
-
});
|
|
35
|
-
} catch (err) {
|
|
36
|
-
console.error(err);
|
|
37
|
-
|
|
38
|
-
dispatch({
|
|
39
|
-
type: 'GET_DATA_ERROR',
|
|
40
|
-
});
|
|
41
|
-
toggleNotification({
|
|
42
|
-
type: 'warning',
|
|
43
|
-
message: { id: 'notification.error' },
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
fetchRole(id);
|
|
49
|
-
} else {
|
|
50
|
-
dispatch({
|
|
51
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
52
|
-
role: {},
|
|
53
|
-
permissions: [],
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}, [get, id, toggleNotification]);
|
|
57
|
-
|
|
58
|
-
const handleSubmitSucceeded = useCallback((data) => {
|
|
59
|
-
dispatch({
|
|
60
|
-
type: 'ON_SUBMIT_SUCCEEDED',
|
|
61
|
-
...data,
|
|
62
|
-
});
|
|
63
|
-
}, []);
|
|
64
|
-
|
|
65
|
-
return { ...state, onSubmitSucceeded: handleSubmitSucceeded };
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export default useFetchRole;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
role: {},
|
|
6
|
-
permissions: {},
|
|
7
|
-
isLoading: true,
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
const reducer = (state, action) =>
|
|
11
|
-
produce(state, (draftState) => {
|
|
12
|
-
switch (action.type) {
|
|
13
|
-
case 'GET_DATA_SUCCEEDED': {
|
|
14
|
-
draftState.role = action.role;
|
|
15
|
-
draftState.permissions = action.permissions;
|
|
16
|
-
draftState.isLoading = false;
|
|
17
|
-
break;
|
|
18
|
-
}
|
|
19
|
-
case 'GET_DATA_ERROR': {
|
|
20
|
-
draftState.isLoading = false;
|
|
21
|
-
break;
|
|
22
|
-
}
|
|
23
|
-
case 'ON_SUBMIT_SUCCEEDED': {
|
|
24
|
-
draftState.role.name = action.name;
|
|
25
|
-
draftState.role.description = action.description;
|
|
26
|
-
break;
|
|
27
|
-
}
|
|
28
|
-
default:
|
|
29
|
-
return draftState;
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
export default reducer;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useCallback, useEffect, useReducer } from 'react';
|
|
2
|
-
|
|
3
|
-
import { getFetchClient, useNotification } from '@strapi/helper-plugin';
|
|
4
|
-
import get from 'lodash/get';
|
|
5
|
-
|
|
6
|
-
import init from './init';
|
|
7
|
-
import reducer, { initialState } from './reducer';
|
|
8
|
-
|
|
9
|
-
const useRolesList = (shouldFetchData = true) => {
|
|
10
|
-
const toggleNotification = useNotification();
|
|
11
|
-
const [{ roles, isLoading }, dispatch] = useReducer(reducer, initialState, () =>
|
|
12
|
-
init(initialState, shouldFetchData)
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
if (shouldFetchData) {
|
|
17
|
-
fetchRolesList();
|
|
18
|
-
}
|
|
19
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
20
|
-
}, [shouldFetchData]);
|
|
21
|
-
|
|
22
|
-
const fetchRolesList = useCallback(async () => {
|
|
23
|
-
// TODO: evaluate to replace it with a useFetchClient when we work on the useCallback to remove
|
|
24
|
-
const fetchClient = getFetchClient();
|
|
25
|
-
|
|
26
|
-
try {
|
|
27
|
-
dispatch({
|
|
28
|
-
type: 'GET_DATA',
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
const {
|
|
32
|
-
data: { data },
|
|
33
|
-
} = await fetchClient.get('/admin/roles');
|
|
34
|
-
|
|
35
|
-
dispatch({
|
|
36
|
-
type: 'GET_DATA_SUCCEEDED',
|
|
37
|
-
data,
|
|
38
|
-
});
|
|
39
|
-
} catch (err) {
|
|
40
|
-
const message = get(err, ['response', 'payload', 'message'], 'An error occured');
|
|
41
|
-
|
|
42
|
-
dispatch({
|
|
43
|
-
type: 'GET_DATA_ERROR',
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
if (message !== 'Forbidden') {
|
|
47
|
-
toggleNotification({
|
|
48
|
-
type: 'warning',
|
|
49
|
-
message,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}, [toggleNotification]);
|
|
54
|
-
|
|
55
|
-
return { roles, isLoading, getData: fetchRolesList };
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
export default useRolesList;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/* eslint-disable consistent-return */
|
|
2
|
-
import produce from 'immer';
|
|
3
|
-
|
|
4
|
-
export const initialState = {
|
|
5
|
-
roles: [],
|
|
6
|
-
isLoading: true,
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
const reducer = (state, action) =>
|
|
10
|
-
produce(state, (draftState) => {
|
|
11
|
-
switch (action.type) {
|
|
12
|
-
case 'GET_DATA': {
|
|
13
|
-
draftState.isLoading = true;
|
|
14
|
-
draftState.roles = [];
|
|
15
|
-
break;
|
|
16
|
-
}
|
|
17
|
-
case 'GET_DATA_SUCCEEDED': {
|
|
18
|
-
draftState.roles = action.data;
|
|
19
|
-
draftState.isLoading = false;
|
|
20
|
-
break;
|
|
21
|
-
}
|
|
22
|
-
case 'GET_DATA_ERROR': {
|
|
23
|
-
draftState.isLoading = false;
|
|
24
|
-
break;
|
|
25
|
-
}
|
|
26
|
-
default:
|
|
27
|
-
return draftState;
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
export default reducer;
|
|
@@ -1 +0,0 @@
|
|
|
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(2160);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(86209),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,7 +0,0 @@
|
|
|
1
|
-
(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1386],{31386:function(R,m,c){"use strict";c.r(m),c.d(m,{ROUTES_EE:function(){return t}});var u=c(32735),a=c(19565),l=c(49189),d=c.n(l),h=c(67879),n=c(53038),r=c(86209);const g=()=>{const{params:{authResponse:o}}=(0,n.$B)("/auth/login/:authResponse"),{formatMessage:e}=(0,h.Z)(),{push:f}=(0,n.k6)(),p=(0,u.useRef)(e);let i=(0,u.useCallback)(()=>{f(`/auth/oops?info=${encodeURIComponent(p.current({id:"Auth.form.button.login.providers.error",defaultMessage:"We cannot connect you through the selected provider."}))}`)},[f]);const{get:s}=(0,a.kY)(),v=(0,u.useCallback)(async()=>{try{const E=d().get("jwtToken");if(a.I8.clearAppStorage(),E){a.I8.setToken(E,!0);const I=(0,r.IF)("users/me"),{data:{data:A}}=await s(I);a.I8.setUserInfo(A,!0),d().remove("jwtToken"),f("/auth/login")}}catch{i()}},[s,f,i]);return(0,u.useEffect)(()=>{o==="error"&&i(),o==="success"&&v()},[o,v,i]),u.createElement(a.dO,null)};var C=null;const t=[{Component:()=>({default:g}),to:"/auth/login/:authResponse",exact:!0}]},49189:function(R,m,c){var u,a;/*!
|
|
2
|
-
* JavaScript Cookie v2.2.1
|
|
3
|
-
* https://github.com/js-cookie/js-cookie
|
|
4
|
-
*
|
|
5
|
-
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack
|
|
6
|
-
* Released under the MIT license
|
|
7
|
-
*/(function(l){var d;if(u=l,a=typeof u=="function"?u.call(m,c,m,R):u,a!==void 0&&(R.exports=a),d=!0,R.exports=l(),d=!0,!d){var h=window.Cookies,n=window.Cookies=l();n.noConflict=function(){return window.Cookies=h,n}}})(function(){function l(){for(var n=0,r={};n<arguments.length;n++){var g=arguments[n];for(var C in g)r[C]=g[C]}return r}function d(n){return n.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function h(n){function r(){}function g(t,o,e){if(!(typeof document>"u")){e=l({path:"/"},r.defaults,e),typeof e.expires=="number"&&(e.expires=new Date(new Date*1+e.expires*864e5)),e.expires=e.expires?e.expires.toUTCString():"";try{var f=JSON.stringify(o);/^[\{\[]/.test(f)&&(o=f)}catch{}o=n.write?n.write(o,t):encodeURIComponent(String(o)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var p="";for(var i in e)e[i]&&(p+="; "+i,e[i]!==!0&&(p+="="+e[i].split(";")[0]));return document.cookie=t+"="+o+p}}function C(t,o){if(!(typeof document>"u")){for(var e={},f=document.cookie?document.cookie.split("; "):[],p=0;p<f.length;p++){var i=f[p].split("="),s=i.slice(1).join("=");!o&&s.charAt(0)==='"'&&(s=s.slice(1,-1));try{var v=d(i[0]);if(s=(n.read||n)(s,v)||d(s),o)try{s=JSON.parse(s)}catch{}if(e[v]=s,t===v)break}catch{}}return t?e[t]:e}}return r.set=g,r.get=function(t){return C(t,!1)},r.getJSON=function(t){return C(t,!0)},r.remove=function(t,o){g(t,"",l(o,{expires:-1}))},r.defaults={},r.withConverter=h,r}return h(function(){})})}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2379],{50337:function(U,c,t){t.d(c,{pl:function(){return g},aY:function(){return R},q5:function(){return r.q}});var e=t(32735),n=t(19565),E=t(86209),f=t(97889);const m={data:[],isLoading:!0};var L=(s,l)=>(0,f.ZP)(s,i=>{switch(l.type){case"GET_DATA_SUCCEEDED":{i.data=l.data,i.isLoading=!1;break}case"GET_DATA_ERROR":{i.isLoading=!1;break}default:return i}}),g=({ssoEnabled:s})=>{const[l,i]=(0,e.useReducer)(L,m),D=(0,n.lm)(),{get:T}=(0,n.kY)();return(0,e.useEffect)(()=>{(async()=>{try{if(!s){i({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:u}=await T((0,E.IF)("providers"));i({type:"GET_DATA_SUCCEEDED",data:u})}catch(u){console.error(u),i({type:"GET_DATA_ERROR"}),D({type:"warning",message:{id:"notification.error"}})}})()},[T,s,D]),l},a=t(36866),A=t.n(a),o=t(67879),O=t(53038),r=t(53104);const I="strapi-notification-seat-limit",P="https://cloud.strapi.io/profile/billing",C="https://strapi.io/billing/request-seats";var R=()=>{const{formatMessage:s}=(0,o.Z)();let{license:l,isError:i,isLoading:D}=(0,r.q)();const T=(0,n.lm)(),{pathname:p}=(0,O.TH)(),{enforcementUserCount:u,permittedSeats:_,licenseLimitStatus:d,isHostedOnStrapiCloud:S}=l;(0,e.useEffect)(()=>{if(i||D)return;const B=!A()(_)&&!window.sessionStorage.getItem(`${I}-${p}`)&&(d==="AT_LIMIT"||d==="OVER_LIMIT");let y;d==="OVER_LIMIT"?y="warning":d==="AT_LIMIT"&&(y="softWarning"),B&&T({type:y,message:s({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:d}),title:s({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:d,enforcementUserCount:u,permittedSeats:_}),link:{url:S?P:C,label:s({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:S})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${I}-${p}`,!0)}})},[T,l,p,s,D,_,d,u,S,i])}},53104:function(U,c,t){t.d(c,{q:function(){return f}});var e=t(32735),n=t(19565),E=t(20108);function f({enabled:m}={enabled:!0}){const{get:v}=(0,n.kY)(),{data:L,isError:M,isLoading:g}=(0,E.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:o}}=await v("/admin/license-limit-information");return o},{enabled:m}),a=L??{},A=e.useCallback(o=>(a?.features??[]).find(r=>r.name===o)?.options??{},[a?.features]);return{license:a,getFeature:A,isError:M,isLoading:g}}},42379:function(U,c,t){t.r(c),t.d(c,{CreateActionEE:function(){return r}});var e=t(32735),n=t(87933),E=t(63919),f=t(99140),m=t(41415),v=t(69932),L=t(7961),M=t(36866),g=t.n(M),a=t(60216),A=t.n(a),o=t(67879),O=t(50337);const r=({onClick:I})=>{const{formatMessage:P}=(0,o.Z)(),{license:{permittedSeats:C,shouldStopCreate:h},isError:R,isLoading:s}=(0,O.q5)();return R||s?null:e.createElement(n.k,{gap:2},!g()(C)&&h&&e.createElement(E.u,{description:P({id:"Settings.application.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"}),position:"left"},e.createElement(f.J,{width:`${14/16}rem`,height:`${14/16}rem`,color:"danger500",as:v.Z})),e.createElement(m.z,{"data-testid":"create-user-button",onClick:I,startIcon:e.createElement(L.Z,null),size:"S",disabled:h},P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"})))};r.propTypes={onClick:A().func.isRequired}}}]);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2395],{50337:function(I,f,t){t.d(f,{pl:function(){return D},aY:function(){return n},q5:function(){return a.q}});var e=t(32735),u=t(19565),m=t(86209),g=t(97889);const P={data:[],isLoading:!0};var r=(o,p)=>(0,g.ZP)(o,l=>{switch(p.type){case"GET_DATA_SUCCEEDED":{l.data=p.data,l.isLoading=!1;break}case"GET_DATA_ERROR":{l.isLoading=!1;break}default:return l}}),D=({ssoEnabled:o})=>{const[p,l]=(0,e.useReducer)(r,P),A=(0,u.lm)(),{get:h}=(0,u.kY)();return(0,e.useEffect)(()=>{(async()=>{try{if(!o){l({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:v}=await h((0,m.IF)("providers"));l({type:"GET_DATA_SUCCEEDED",data:v})}catch(v){console.error(v),l({type:"GET_DATA_ERROR"}),A({type:"warning",message:{id:"notification.error"}})}})()},[h,o,A]),p},d=t(36866),_=t.n(d),c=t(67879),T=t(53038),a=t(53104);const E="strapi-notification-seat-limit",s="https://cloud.strapi.io/profile/billing",L="https://strapi.io/billing/request-seats";var n=()=>{const{formatMessage:o}=(0,c.Z)();let{license:p,isError:l,isLoading:A}=(0,a.q)();const h=(0,u.lm)(),{pathname:y}=(0,T.TH)(),{enforcementUserCount:v,permittedSeats:C,licenseLimitStatus:M,isHostedOnStrapiCloud:U}=p;(0,e.useEffect)(()=>{if(l||A)return;const B=!_()(C)&&!window.sessionStorage.getItem(`${E}-${y}`)&&(M==="AT_LIMIT"||M==="OVER_LIMIT");let S;M==="OVER_LIMIT"?S="warning":M==="AT_LIMIT"&&(S="softWarning"),B&&h({type:S,message:o({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:M}),title:o({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:M,enforcementUserCount:v,permittedSeats:C}),link:{url:U?s:L,label:o({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:U})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${E}-${y}`,!0)}})},[h,p,y,o,A,C,M,v,U,l])}},53104:function(I,f,t){t.d(f,{q:function(){return g}});var e=t(32735),u=t(19565),m=t(20108);function g({enabled:P}={enabled:!0}){const{get:O}=(0,u.kY)(),{data:r,isError:i,isLoading:D}=(0,m.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:c}}=await O("/admin/license-limit-information");return c},{enabled:P}),d=r??{},_=e.useCallback(c=>(d?.features??[]).find(a=>a.name===c)?.options??{},[d?.features]);return{license:d,getFeature:_,isError:i,isLoading:D}}},82395:function(I,f,t){t.r(f),t.d(f,{LoginEE:function(){return E}});var e=t(32735),u=t(9026),m=t(72850),g=t(87933),P=t(49372),O=t(60216),r=t.n(O),i=t(67879),D=t(8471),d=t(11060),_=t(24436),c=t(50337),T=t(68726);const a=(0,D.ZP)(u.i)`
|
|
2
|
-
flex: 1;
|
|
3
|
-
`,E=s=>{const L=window.strapi.features.isEnabled(window.strapi.features.SSO),{isLoading:R,data:n}=(0,c.pl)({ssoEnabled:L}),{formatMessage:o}=(0,i.Z)();return!L||!R&&n.length===0?e.createElement(d.ZP,null,e.createElement(_.Z,{...s})):e.createElement(d.ZP,null,e.createElement(_.Z,{...s},e.createElement(m.x,{paddingTop:7},e.createElement(g.k,{direction:"column",alignItems:"stretch",gap:7},e.createElement(g.k,null,e.createElement(a,null),e.createElement(m.x,{paddingLeft:3,paddingRight:3},e.createElement(P.Z,{variant:"sigma",textColor:"neutral600"},o({id:"Auth.login.sso.divider"}))),e.createElement(a,null)),e.createElement(T.Z,{providers:n,displayAllProviders:!1})))))};E.defaultProps={onSubmit:s=>s.preventDefault(),requestError:null},E.propTypes={formErrors:r().object.isRequired,modifiedData:r().object.isRequired,onChange:r().func.isRequired,onSubmit:r().func,requestError:r().object}},68726:function(I,f,t){var e=t(32735),u=t(87933),m=t(63919),g=t(49372),P=t(15335),O=t(5803),r=t(60216),i=t.n(r),D=t(67879),d=t(14911),_=t(8471);const c=_.ZP.a`
|
|
4
|
-
width: ${136/16}rem;
|
|
5
|
-
display: flex;
|
|
6
|
-
justify-content: center;
|
|
7
|
-
align-items: center;
|
|
8
|
-
height: ${48/16}rem;
|
|
9
|
-
border: 1px solid ${({theme:s})=>s.colors.neutral150};
|
|
10
|
-
border-radius: ${({theme:s})=>s.borderRadius};
|
|
11
|
-
text-decoration: inherit;
|
|
12
|
-
&:link {
|
|
13
|
-
text-decoration: none;
|
|
14
|
-
}
|
|
15
|
-
color: ${({theme:s})=>s.colors.neutral600};
|
|
16
|
-
`,T=(0,_.ZP)(u.k)`
|
|
17
|
-
& a:not(:first-child):not(:last-child) {
|
|
18
|
-
margin: 0 ${({theme:s})=>s.spaces[2]};
|
|
19
|
-
}
|
|
20
|
-
& a:first-child {
|
|
21
|
-
margin-right: ${({theme:s})=>s.spaces[2]};
|
|
22
|
-
}
|
|
23
|
-
& a:last-child {
|
|
24
|
-
margin-left: ${({theme:s})=>s.spaces[2]};
|
|
25
|
-
}
|
|
26
|
-
`,a=({provider:s})=>e.createElement(m.u,{label:s.displayName},e.createElement(c,{href:`${window.strapi.backendURL}/admin/connect/${s.uid}`},s.icon?e.createElement("img",{src:s.icon,"aria-hidden":!0,alt:"",height:"32px"}):e.createElement(g.Z,null,s.displayName)));a.propTypes={provider:i().shape({icon:i().string,displayName:i().string.isRequired,uid:i().string.isRequired}).isRequired};const E=({providers:s,displayAllProviders:L})=>{const{formatMessage:R}=(0,D.Z)();return L?e.createElement(P.r,{gap:4},s.map(n=>e.createElement(O.P,{key:n.uid,col:4},e.createElement(a,{provider:n})))):s.length>2&&!L?e.createElement(P.r,{gap:4},s.slice(0,2).map(n=>e.createElement(O.P,{key:n.uid,col:4},e.createElement(a,{provider:n}))),e.createElement(O.P,{col:4},e.createElement(m.u,{label:R({id:"global.see-more"})},e.createElement(c,{as:d.rU,to:"/auth/providers"},e.createElement("span",{"aria-hidden":!0},"\u2022\u2022\u2022"))))):e.createElement(T,{justifyContent:"center"},s.map(n=>e.createElement(a,{key:n.uid,provider:n})))};E.defaultProps={displayAllProviders:!0},E.propTypes={providers:i().arrayOf(i().object).isRequired,displayAllProviders:i().bool},f.Z=E}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2801],{50337:function(C,r,t){t.d(r,{pl:function(){return v},aY:function(){return U},q5:function(){return g.q}});var s=t(32735),n=t(19565),c=t(86209),l=t(97889);const T={data:[],isLoading:!0};var A=(i,a)=>(0,l.ZP)(i,e=>{switch(a.type){case"GET_DATA_SUCCEEDED":{e.data=a.data,e.isLoading=!1;break}case"GET_DATA_ERROR":{e.isLoading=!1;break}default:return e}}),v=({ssoEnabled:i})=>{const[a,e]=(0,s.useReducer)(A,T),E=(0,n.lm)(),{get:m}=(0,n.kY)();return(0,s.useEffect)(()=>{(async()=>{try{if(!i){e({type:"GET_DATA_SUCCEEDED",data:[]});return}const{data:u}=await m((0,c.IF)("providers"));e({type:"GET_DATA_SUCCEEDED",data:u})}catch(u){console.error(u),e({type:"GET_DATA_ERROR"}),E({type:"warning",message:{id:"notification.error"}})}})()},[m,i,E]),a},d=t(36866),h=t.n(d),f=t(67879),P=t(53038),g=t(53104);const R="strapi-notification-seat-limit",y="https://cloud.strapi.io/profile/billing",M="https://strapi.io/billing/request-seats";var U=()=>{const{formatMessage:i}=(0,f.Z)();let{license:a,isError:e,isLoading:E}=(0,g.q)();const m=(0,n.lm)(),{pathname:L}=(0,P.TH)(),{enforcementUserCount:u,permittedSeats:I,licenseLimitStatus:o,isHostedOnStrapiCloud:p}=a;(0,s.useEffect)(()=>{if(e||E)return;const N=!h()(I)&&!window.sessionStorage.getItem(`${R}-${L}`)&&(o==="AT_LIMIT"||o==="OVER_LIMIT");let D;o==="OVER_LIMIT"?D="warning":o==="AT_LIMIT"&&(D="softWarning"),N&&m({type:D,message:i({id:"notification.ee.warning.over-.message",defaultMessage:"Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} other {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app."},{licenseLimitStatus:o}),title:i({id:"notification.ee.warning.at-seat-limit.title",defaultMessage:"{licenseLimitStatus, select, OVER_LIMIT {Over} other {At}} seat limit ({enforcementUserCount}/{permittedSeats})"},{licenseLimitStatus:o,enforcementUserCount:u,permittedSeats:I}),link:{url:p?y:M,label:i({id:"notification.ee.warning.seat-limit.link",defaultMessage:"{isHostedOnStrapiCloud, select, true {ADD SEATS} other {CONTACT SALES}}"},{isHostedOnStrapiCloud:p})},blockTransition:!0,onClose(){window.sessionStorage.setItem(`${R}-${L}`,!0)}})},[m,a,L,i,E,I,o,u,p,e])}},53104:function(C,r,t){t.d(r,{q:function(){return l}});var s=t(32735),n=t(19565),c=t(20108);function l({enabled:T}={enabled:!0}){const{get:S}=(0,n.kY)(),{data:A,isError:O,isLoading:v}=(0,c.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:f}}=await S("/admin/license-limit-information");return f},{enabled:T}),d=A??{},h=s.useCallback(f=>(d?.features??[]).find(g=>g.name===f)?.options??{},[d?.features]);return{license:d,getFeature:h,isError:O,isLoading:v}}},12801:function(C,r,t){t.r(r),t.d(r,{UserListPageEE:function(){return l}});var s=t(32735),n=t(99528),c=t(50337);function l(){return(0,c.aY)(),s.createElement(n.W,null)}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[4546],{17379:function(j,D,s){s.d(D,{r:function(){return C}});var f=s(32735),p=s(72850),O=s(60216),A=s.n(O),F=s(74506);function k(L,M,y){if(!L||!M)return{display:"none"};const{x:I,y:x}=y;return{transform:`translate(${I}px, ${x}px)`}}function C({renderItem:L}){const{itemType:M,isDragging:y,item:I,initialOffset:x,currentOffset:W,mouseOffset:Z}=(0,F.useDragLayer)(E=>({item:E.getItem(),itemType:E.getItemType(),initialOffset:E.getInitialSourceClientOffset(),currentOffset:E.getSourceClientOffset(),isDragging:E.isDragging(),mouseOffset:E.getClientOffset()}));return y?f.createElement(p.x,{height:"100%",left:0,position:"fixed",pointerEvents:"none",top:0,zIndex:100,width:"100%"},f.createElement(p.x,{style:k(x,W,Z)},L({type:M,item:I}))):null}C.propTypes={renderItem:A().func.isRequired}},75430:function(j,D,s){var f=s(32735);const p=(0,f.createContext)();var O=null},69242:function(j,D,s){s.d(D,{PL:function(){return F},Y9:function(){return k.Y},zE:function(){return se},Ky:function(){return ce},fi:function(){return z},zH:function(){return de},r5:function(){return me}});var f=s(32735),p=s(15062),O=s(53634),F=()=>{const e=(0,p.v9)(O.Z),t=(0,f.useCallback)(n=>e?.components?.[n]??{},[e]);return{...e,getComponentLayout:t}},k=s(77622),C=s(19565),L=s(84306),M=s(20716),y=s(97889);const I={error:null,isLoading:!0,layout:{},layouts:{}};var W=(e,t)=>(0,y.ZP)(e,n=>{switch(t.type){case"GET_DATA":{n.isLoading=!0,n.error=null,n.layout={};break}case"GET_DATA_SUCCEEDED":{const r=t.data.contentType.uid;n.layout=t.data,n.layouts[r]=t.data,n.isLoading=!1;break}case"GET_DATA_ERROR":{n.isLoading=!1,n.error=t.error;break}case"SET_LAYOUT_FROM_STATE":{n.error=null,n.layout=e.layouts[t.uid];break}case"UPDATE_LAYOUT":{const r=e.layout;n.layout={...r,contentType:{uid:r.contentType.uid,...t.newLayout.contentType}},n.layouts[r.contentType.uid]={...r,contentType:{uid:r.contentType.uid,...t.newLayout.contentType}};break}default:return n}}),Z=s(99381),E=s.n(Z),G=s(33795),R=s.n(G),w=s(3040),S=s.n(w),re=s(97724);const Q=(e,t)=>t.find(n=>n.uid===e),H=(e,t)=>{const n=X(e,t),r=P(n.contentType,t),i=J(n.contentType,n.components);return S()(n,["contentType","layouts","edit"],r),S()(n,["contentType","layouts","list"],i),Object.keys(n.components).forEach(u=>{const c=P(n.components[u],t);S()(n,["components",u,"layouts","edit"],c)}),n},X=(e,t)=>{const n=(0,re.w8)(E()(e),t,"contentType"),{components:r,contentType:i}=n,u=c=>Object.keys(c.metadatas).reduce((d,h)=>{const T=R()(c,["attributes",h],{});let v=c.metadatas[h];if(T.type==="relation"){const b=Q(T.targetModel,t),N=v.edit.mainField,V={name:N,schema:R()(b,["attributes",N])};v={list:{...v.list,mainField:V},edit:{...v.edit,mainField:V}}}return d[h]=v,d},{});return S()(n,["contentType","metadatas"],u(i)),Object.keys(r).forEach(c=>{const d=r[c],h=u(d);S()(n,["components",c,"metadatas"],h)}),n},P=(e,t)=>e.layouts.edit.reduce((n,r)=>{const i=r.map(u=>{const c=R()(e,["attributes",u.name],{}),d={...u,fieldSchema:c,metadatas:R()(e,["metadatas",u.name,"edit"],{})};if(c.type==="relation"){const T=Q(c.targetModel,t).pluginOptions||{};S()(d,"targetModelPluginOptions",T),S()(d,"queryInfos",{shouldDisplayRelationLink:Y(e,u.name,t)})}return d});return n.push(i),n},[]),J=(e,t)=>e.layouts.list.reduce((r,i)=>{const u=R()(e,["attributes",i],{}),c=R()(e,["metadatas",i,"list"],{}),d=u.type;if(d==="relation")return r.push({key:`__${i}_key__`,name:i,fieldSchema:u,metadatas:c}),r;if(d==="component"){const h=t[u.component],T=h.settings.mainField,v=h.attributes[T];return r.push({key:`__${i}_key__`,name:i,fieldSchema:u,metadatas:{...c,mainField:{...v,name:T}}}),r}return r.push({key:`__${i}_key__`,name:i,fieldSchema:u,metadatas:c}),r},[]),Y=(e,t,n)=>{const r=R()(e,["attributes",t,"targetModel"],"");return K(n).includes(r)},K=e=>e.filter(t=>t.isDisplayed).map(({uid:t})=>t);var $=H,se=e=>{const[{error:t,isLoading:n,layout:r,layouts:i},u]=(0,f.useReducer)(W,I),c=(0,f.useMemo)(M.Vo,[]),{schemas:d}=(0,p.v9)(N=>c(N),p.wU),h=(0,f.useRef)(!0),{get:T}=(0,C.kY)(),v=(0,f.useCallback)(async(N,V)=>{if(i[N]){u({type:"SET_LAYOUT_FROM_STATE",uid:N});return}u({type:"GET_DATA"});try{const{data:{data:ne}}=await T(`/content-manager/content-types/${N}/configuration`,{cancelToken:V.token});u({type:"GET_DATA_SUCCEEDED",data:$(ne,d)})}catch(ne){if(L.default.isCancel(ne))return;h.current&&console.error(ne),h.current&&u({type:"GET_DATA_ERROR",error:ne})}},[i,d,T]);(0,f.useEffect)(()=>()=>{h.current=!1},[]),(0,f.useEffect)(()=>{const V=L.default.CancelToken.source();return v(e,V),()=>{V.cancel("Operation canceled by the user.")}},[e,v]);const b=(0,f.useCallback)(N=>{u({type:"UPDATE_LAYOUT",newLayout:$(N,d)})},[d]);return{error:t,isLoading:n,layout:r,updateLayout:b}},oe=e=>e["content-manager_app"].collectionTypeLinks,ie=s(85973),ae=s.n(ie),B=s(33348);const ue=(e,t)=>Object.keys(e).reduce((n,r)=>{const i=e[r],u=R()(t,[r],i);return ae()(i)?{...n,[r]:ue(i,u)}:(n[r]=u,n)},{});var m=(e,t,n)=>{const r=e.find(({to:v})=>v.includes(t));if(!r)return"/";const{to:i,search:u}=r,c=(0,B.parse)(u),d=(0,B.parse)(n.substring(1)),h=ue(c,d);return`${i}?${(0,B.stringify)(h,{encode:!1})}`},ce=e=>{const[{rawQuery:t}]=(0,C.Kx)(),n=(0,p.v9)(oe);return m(n,e,t)},ge=s(15655),le=s(53038),z=()=>{const{search:e}=(0,le.TH)(),t=e?(0,B.parse)(e.substring(1)):{};return t.plugins?(0,B.stringify)({plugins:t.plugins},{encode:!1}):""};const de=e=>{const t=(0,f.useRef)();return(0,f.useEffect)(()=>{t.current=e},[e]),t.current};var U=s(85149);const g=(e,t,n)=>({type:U.m,permissions:e,__meta__:{plugins:t,containerName:n}}),ee=()=>({type:U.Q}),fe=e=>e["content-manager_rbacManager"].permissions,te=e=>e.rbacProvider.collectionTypesRelatedPermissions;var me=(e,t,n="listView")=>{const r=(0,p.v9)(te),i=(0,p.v9)(fe),u=(0,p.I0)(),c=r[t];return(0,f.useEffect)(()=>c?(u(g(c,e?e.plugins:null,n)),()=>{u(ee())}):()=>{},[c,u,e,n]),i},o=s(75430);const l=()=>useContext(WysiwygContext);var a=null},77622:function(j,D,s){s.d(D,{Y:function(){return F}});var f=s(32735),p=s(74506),O=s.n(p),A=s(15655);const F=(k,{type:C="STRAPI_DND",index:L,item:M={},onStart:y,onEnd:I,onGrabItem:x,onDropItem:W,onCancel:Z,onMoveItem:E,dropSensitivity:G="regular"})=>{const R=(0,f.useRef)(null),[{handlerId:w},S]=(0,p.useDrop)({accept:C,collect(P){return{handlerId:P.getHandlerId()}},hover(P,J){if(!R.current)return;const Y=P.index,K=L;if(Y!==K){if(G==="regular"){const $=R.current.getBoundingClientRect(),q=($.bottom-$.top)/2,_=J.getClientOffset().y-$.top;if(Y<K&&_<q||Y>K&&_>q)return}E(K,Y),P.index=K}}}),[{isDragging:re},Q,H]=(0,p.useDrag)({type:C,item(){y&&y();const{width:P}=R.current?.getBoundingClientRect()??{};return{index:L,width:P,...M}},end(){I&&I()},canDrag:k,isDragging:M.id?P=>M.id===P.getItem().id:void 0,collect:P=>({isDragging:P.isDragging()})}),X=(0,A.A)(k,L,{onGrabItem:x,onDropItem:W,onCancel:Z,onMoveItem:E});return[{handlerId:w,isDragging:re,handleKeyDown:X},R,S,Q,H]}},15655:function(j,D,s){s.d(D,{A:function(){return p}});var f=s(32735);const p=(O,A,{onCancel:F,onDropItem:k,onGrabItem:C,onMoveItem:L})=>{const[M,y]=(0,f.useState)(!1),I=E=>{M&&(E==="UP"?L(A-1,A):E==="DOWN"&&L(A+1,A))},x=()=>{M?(k&&k(A),y(!1)):(C&&C(A),y(!0))},W=()=>{M&&(y(!1),F&&F(A))};return E=>{if(O&&!(E.key==="Tab"&&!M))switch(E.preventDefault(),E.key){case" ":case"Enter":x();break;case"Escape":W();break;case"ArrowDown":case"ArrowRight":I("DOWN");break;case"ArrowUp":case"ArrowLeft":I("UP");break;default:}}}},20716:function(j,D,s){s.d(D,{Jg:function(){return L},KQ:function(){return k},Vo:function(){return C},Yg:function(){return O}});var f=s(98178),p=s(60371);const O=()=>y=>y["content-manager_app"]||p.E,A=()=>createSelector(O(),y=>y),F=()=>createSelector(O(),y=>y.models),k=()=>(0,f.P1)(O(),y=>({collectionTypeLinks:y.collectionTypeLinks,singleTypeLinks:y.singleTypeLinks})),C=()=>(0,f.P1)(O(),({components:y,models:I})=>({schemas:[...y,...I]})),L=(0,f.P1)(O(),y=>y.fieldSizes);var M=null},53634:function(j,D){const s=f=>f["content-manager_editViewLayoutManager"].currentLayout;D.Z=s},24381:function(j,D){D.Z={COMPONENT:"component",EDIT_FIELD:"editField",FIELD:"field",DYNAMIC_ZONE:"dynamicZone",RELATION:"relation"}},7921:function(j,D){const s=f=>`content-manager.${f}`;D.Z=s},97724:function(j,D,s){s.d(D,{_Q:function(){return _.Z},W3:function(){return A},ko:function(){return L},FE:function(){return y},Di:function(){return Z},Ex:function(){return me},du:function(){return w},TA:function(){return Q},Ts:function(){return J},Uo:function(){return K},IF:function(){return q},OB:function(){return se.Z},w8:function(){return ye},kc:function(){return ce}});var f=s(99381),p=s.n(f),A=(o,l,a)=>{if(Array.isArray(o)&&l>=0&&a>=0&&l<=o.length-1&&a<=o.length-1){const e=p()(o),t=e.splice(l,1);return e.splice(a,0,t[0]),e}return o},F=s(59578),k=s.n(F),L=o=>{const l=o.type;return l==="relation"?!k()(o.relationType).includes("morph"):!["json","dynamiczone","richtext","password"].includes(l)&&!!l};const M=(o,l)=>{typeof o=="function"?o(l):o!=null&&(o.current=l)},y=(...o)=>l=>o.forEach(a=>M(a,l));var I=s(33795),x=s.n(I);const W=(o,l)=>Object.keys(o).reduce((a,e)=>{const t=x()(o,[e],{}),{default:n,component:r,type:i,required:u,min:c,repeatable:d}=t;if(n!==void 0&&(a[e]=n),i==="component"){const h=l?.[r]?.attributes??{},T=W(h,l);if(u===!0&&(a[e]=d===!0?[]:T),c&&d===!0&&u){a[e]=[];for(let v=0;v<c;v+=1)a[e].push(T)}}return i==="dynamiczone"&&u===!0&&(a[e]=[]),a},{});var Z=W,E=s(9086),G=s.n(E),w=({layouts:o,metadatas:l,...a})=>{const e=o.list.map(r=>r.name?r.name:r),t=Object.keys(l).reduce((r,i)=>{const u=x()(l,[i],{});let c=u.edit;return c.mainField&&(c={...c,mainField:u.edit.mainField.name}),{...r,[i]:{edit:c,list:G()(u.list,["mainField"])}}},{}),n=o.edit.map(r=>r.map(({name:i,size:u})=>({name:i,size:u})));return{...a,layouts:{edit:n,list:e},metadatas:t}};const S=(o,l)=>o.map(a=>({...a,subject:l}));var Q=o=>{const l={create:[{action:"plugin::content-manager.explorer.create",subject:null}],delete:[{action:"plugin::content-manager.explorer.delete",subject:null}],publish:[{action:"plugin::content-manager.explorer.publish",subject:null}],read:[{action:"plugin::content-manager.explorer.read",subject:null}],update:[{action:"plugin::content-manager.explorer.update",subject:null}]};return Object.keys(l).reduce((a,e)=>(a[e]=S(l[e],o),a),{})},H=s(95919),X=s.n(H),J=o=>o.split(".").filter(l=>X()(parseInt(l,10))),K=o=>{if(o.length===0)return-1;const l=Math.max.apply(Math,o.map(a=>a.__temp_key__??0));return Number.isNaN(l)?-1:l},q=o=>`/content-manager/${o}`,se=s(7921),_=s(24381),oe=s(86349),ie=s.n(oe),ae=s(3040),B=s.n(ae),ye=(o,l,a)=>{const e=i=>l.find(u=>u.uid===i),t=Object.assign({},o),n=o[a].uid,r=e(n);return B()(t,[a],ie()({},r,o[a])),Object.keys(o.components).forEach(i=>{const u=e(i);B()(t,["components",i],{...o.components[i],...u})}),t},m=s(19565),ce=(o,l,a)=>{const e=(t,n)=>Object.keys(t).reduce((r,i)=>{const u=(0,m.UN)(n,i),c=x()(t,i),d=(0,m.k2)(n,[i,"component"]),h=(0,m.k2)(n,[i,"repeatable"]);return u==="dynamiczone"?(r[i]=c.map(T=>e(T,a[T.__component])),r):u==="component"?(h?r[i]=c&&c.map(T=>e(T,a[d])):r[i]=c&&e(c,a[d]),r):(u!=="password"&&(r[i]=c),r)},{});return e(o,l)},ge=s(51355),le=s.n(ge),pe=s(86834),z=s.n(pe),de=s(78746),U=s.n(de),g=s(24346),ee=s(73347);g.kM(g.nK,"defined",function(){return this.test("defined",m.I0.required,o=>o!==void 0)}),g.kM(g.IX,"notEmptyMin",function(o){return this.test("notEmptyMin",m.I0.min,l=>z()(l)?!0:l.length>=o)}),g.kM(g.Z_,"isInferior",function(o,l){return this.test("isInferior",o,function(a){return!a||Number.isNaN(U()(a))?!0:U()(l)>=U()(a)})}),g.kM(g.Z_,"isSuperior",function(o,l){return this.test("isSuperior",o,function(a){return!a||Number.isNaN(U()(a))?!0:U()(a)>=U()(l)})});const fe=o=>x()(o,["attributes"],{}),te=(o,{components:l},a={isCreatingEntry:!0,isDraft:!0,isFromComponent:!1})=>{const e=fe(o);return g.Ry().shape(Object.keys(e).reduce((t,n)=>{const r=e[n];if(r.type!=="relation"&&r.type!=="component"&&r.type!=="dynamiczone"){const i=he(r.type,r,a);t[n]=i}if(r.type==="relation"&&(t[n]=["oneWay","oneToOne","manyToOne","oneToManyMorph","oneToOneMorph"].includes(r.relationType)?g.Ry().nullable():g.IX().nullable()),r.type==="component"){const i=te(l[r.component],{components:l},{...a,isFromComponent:!0});if(r.repeatable===!0){const{min:c,max:d,required:h}=r;let T=g.Vo(v=>{let b=g.IX().of(i);return c?h?b=b.min(c,m.I0.min):h!==!0&&z()(v)?b=b.nullable():b=b.min(c,m.I0.min):h&&!a.isDraft&&(b=b.min(1,m.I0.required)),d&&(b=b.max(d,m.I0.max)),b});return t[n]=T,t}const u=g.Vo(c=>c!==void 0?r.required===!0&&!a.isDraft?i.defined():i.nullable():r.required===!0?g.Ry().defined():g.Ry().nullable());return t[n]=u,t}if(r.type==="dynamiczone"){let i=g.IX().of(g.Vo(({__component:d})=>te(l[d],{components:l},{...a,isFromComponent:!0})));const{max:u,min:c}=r;c?r.required?i=i.test("min",m.I0.min,d=>a.isCreatingEntry?d&&d.length>=c:d===void 0?!0:d!==null&&d.length>=c).test("required",m.I0.required,d=>a.isCreatingEntry?d!==null||d!==void 0:d===void 0?!0:d!==null):i=i.notEmptyMin(c):r.required&&!a.isDraft&&(i=i.test("required",m.I0.required,d=>a.isCreatingEntry?d!==null||d!==void 0:d===void 0?!0:d!==null)),u&&(i=i.max(u,m.I0.max)),t[n]=i}return t},{}))},he=(o,l,a)=>{let e=g.nK();return["string","uid","text","richtext","email","password","enumeration"].includes(o)&&(e=g.Z_()),o==="json"&&(e=g.nK(m.I0.json).test("isJSON",m.I0.json,t=>{if(!t||!t.length)return!0;try{return JSON.parse(t),!0}catch{return!1}}).nullable().test("required",m.I0.required,t=>!(l.required&&(!t||!t.length)))),o==="email"&&(e=e.email(m.I0.email)),["number","integer","float","decimal"].includes(o)&&(e=g.Rx().transform(t=>X()(t)?void 0:t).typeError()),o==="biginteger"&&(e=g.Z_().matches(/^-?\d*$/)),["date","datetime"].includes(o)&&(e=g.hT()),Object.keys(l).forEach(t=>{const n=l[t];if(n||!le()(n)&&Number.isInteger(Math.floor(n))||n===0)switch(t){case"required":{a.isDraft||(o==="password"&&a.isCreatingEntry&&(e=e.required(m.I0.required)),o!=="password"&&(a.isCreatingEntry?e=e.required(m.I0.required):e=e.test("required",m.I0.required,r=>r===void 0&&!a.isFromComponent?!0:(0,ee.Z)(o)?r===0?!0:!!r:o==="boolean"?r!=null:o==="date"||o==="datetime"?typeof r=="string"?!z()(r):!z()(r?.toString()):!z()(r))));break}case"max":{o==="biginteger"?e=e.isInferior(m.I0.max,n):e=e.max(n,m.I0.max);break}case"maxLength":e=e.max(n,m.I0.maxLength);break;case"min":{o==="biginteger"?e=e.isSuperior(m.I0.min,n):e=e.min(n,m.I0.min);break}case"minLength":{a.isDraft||(e=e.min(n,m.I0.minLength));break}case"regex":e=e.matches(new RegExp(n),{message:m.I0.regex,excludeEmptyString:!l.required});break;case"lowercase":["text","textarea","email","string"].includes(o)&&(e=e.strict().lowercase());break;case"uppercase":["text","textarea","email","string"].includes(o)&&(e=e.strict().uppercase());break;case"positive":(0,ee.Z)(o)&&(e=e.positive());break;case"negative":(0,ee.Z)(o)&&(e=e.negative());break;default:e=e.nullable()}}),e};var me=te},73347:function(j,D,s){s.d(D,{Z:function(){return f}});function f(p){return["integer","biginteger","decimal","float","number"].includes(p)}}}]);
|