@strapi/admin 4.10.0-beta.0 → 4.10.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +14 -0
- package/admin/src/components/LanguageProvider/index.js +1 -1
- package/admin/src/components/LocalesProvider/__mocks__/useLocalesProvider.js +7 -0
- package/admin/src/components/LocalesProvider/index.js +2 -3
- package/admin/src/content-manager/components/CollectionTypeFormWrapper/index.js +3 -6
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +2 -0
- package/admin/src/content-manager/components/DynamicTable/index.js +11 -29
- package/admin/src/content-manager/components/EditViewDataManagerProvider/reducer.js +12 -6
- package/admin/src/content-manager/components/EditViewDataManagerProvider/utils/findAllAndReplace.js +10 -3
- package/admin/src/content-manager/components/InputUID/endActionStyle.js +4 -13
- package/admin/src/content-manager/components/InputUID/index.js +95 -72
- package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +4 -8
- package/admin/src/content-manager/pages/App/LeftMenu/index.js +56 -35
- package/admin/src/content-manager/pages/App/actions.js +19 -7
- package/admin/src/content-manager/pages/App/constants.js +3 -3
- package/admin/src/content-manager/pages/App/index.js +5 -4
- package/admin/src/content-manager/pages/App/reducer.js +7 -6
- package/admin/src/content-manager/pages/App/selectors.js +3 -0
- package/admin/src/content-manager/pages/App/{useModels.js → useContentManagerInitData.js} +29 -28
- package/admin/src/content-manager/pages/App/utils/generateModelsLinks.js +2 -2
- package/admin/src/content-manager/pages/App/utils/getContentTypeLinks.js +17 -15
- package/admin/src/content-manager/pages/EditSettingsView/components/ModalForm.js +4 -5
- package/admin/src/content-manager/pages/EditSettingsView/index.js +4 -0
- package/admin/src/content-manager/pages/EditSettingsView/reducer.js +6 -7
- package/admin/src/content-manager/pages/EditSettingsView/utils/layout.js +1 -30
- package/admin/src/content-manager/pages/EditView/DeleteLink/index.js +5 -11
- package/admin/src/content-manager/pages/EditView/index.js +2 -7
- package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/actions.js +6 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/constants.js +1 -0
- package/admin/src/content-manager/sharedReducers/crudReducer/reducer.js +5 -0
- package/admin/src/hooks/useConfigurations/__mocks__/index.js +7 -0
- package/admin/src/hooks/useFetchMarketplacePlugins/utils/api.js +7 -8
- package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +5 -0
- package/admin/src/hooks/useRegenerate/index.js +12 -7
- package/admin/src/pages/AuthPage/components/Register/index.js +46 -38
- package/admin/src/pages/HomePage/SocialLinks.js +1 -1
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +3 -3
- package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -9
- package/admin/src/pages/MarketplacePage/components/NpmPackagesPagination/index.js +26 -0
- package/admin/src/pages/MarketplacePage/components/OfflineLayout/index.js +45 -0
- package/admin/src/pages/MarketplacePage/index.js +80 -175
- package/admin/src/pages/MarketplacePage/utils/useMarketplaceData.js +85 -0
- package/admin/src/pages/SettingsPage/components/Tokens/FormHead/index.js +4 -0
- package/admin/src/pages/SettingsPage/components/Tokens/Regenerate/index.js +5 -3
- package/admin/src/pages/SettingsPage/components/Tokens/TokenTypeSelect/index.js +7 -5
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/components/RoleRow/index.js +12 -4
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +21 -2
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/components/FormTransferTokenContainer/index.js +41 -0
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/index.js +53 -9
- package/admin/src/pages/SettingsPage/pages/TransferTokens/EditView/utils/schema.js +1 -0
- package/admin/src/pages/SettingsPage/pages/TransferTokens/ListView/index.js +27 -5
- package/admin/src/translations/en.json +51 -49
- package/admin/src/translations/ru.json +51 -19
- package/build/1387.84b454d3.chunk.js +1 -0
- package/build/1657.45231968.chunk.js +168 -0
- package/build/3081.bcf9a12f.chunk.js +108 -0
- package/build/462.8fff7f3b.chunk.js +71 -0
- package/build/4628.20631dd1.chunk.js +1 -0
- package/build/5542.b8240e3f.chunk.js +70 -0
- package/build/5563.905daa13.chunk.js +79 -0
- package/build/6404.68405699.chunk.js +100 -0
- package/build/7259.b7d00cea.chunk.js +1 -0
- package/build/8694.6522968d.chunk.js +247 -0
- package/build/Admin-authenticatedApp.52c88751.chunk.js +79 -0
- package/build/Admin_InternalErrorPage.15c6bf07.chunk.js +1 -0
- package/build/Admin_homePage.f9309c6d.chunk.js +73 -0
- package/build/Admin_marketplace.56bc1008.chunk.js +31 -0
- package/build/Admin_pluginsPage.f6b52ee9.chunk.js +6 -0
- package/build/Admin_profilePage.9112cffc.chunk.js +15 -0
- package/build/Admin_settingsPage.257b3477.chunk.js +79 -0
- package/build/Upload_ConfigureTheView.eaaec495.chunk.js +1 -0
- package/build/admin-app.dfaeea5d.chunk.js +110 -0
- package/build/admin-edit-roles-page.4f1858e9.chunk.js +280 -0
- package/build/admin-edit-users.7e14d85f.chunk.js +10 -0
- package/build/admin-roles-list.329c1f63.chunk.js +31 -0
- package/build/admin-users.d02de059.chunk.js +34 -0
- package/build/api-tokens-create-page.97595e12.chunk.js +1 -0
- package/build/api-tokens-edit-page.cd36e30e.chunk.js +1 -0
- package/build/api-tokens-list-page.6757c7b9.chunk.js +16 -0
- package/build/audit-logs-settings-page.19d90bda.chunk.js +76 -0
- package/build/content-manager.def692c2.chunk.js +1130 -0
- package/build/content-type-builder-list-view.9c2c020c.chunk.js +214 -0
- package/build/content-type-builder-translation-en-json.510e88ca.chunk.js +1 -0
- package/build/content-type-builder.5e1f4afc.chunk.js +126 -0
- package/build/email-settings-page.1095e1ab.chunk.js +10 -0
- package/build/en-json.08303b37.chunk.js +1 -0
- package/build/{highlight.js.26ef649f.chunk.js → highlight.js.28a1547e.chunk.js} +2 -2
- package/build/i18n-settings-page.7d80aae0.chunk.js +60 -0
- package/build/index.html +1 -1
- package/build/main.120be100.js +2280 -0
- package/build/review-workflows-settings.9092ed72.chunk.js +106 -0
- package/build/ru-json.e0662702.chunk.js +1 -0
- package/build/{runtime~main.5a95bee6.js → runtime~main.112b3101.js} +2 -2
- package/build/sso-settings-page.1dd4886e.chunk.js +1 -0
- package/build/transfer-tokens-create-page.ec2ca215.chunk.js +1 -0
- package/build/transfer-tokens-edit-page.22bf28e5.chunk.js +1 -0
- package/build/transfer-tokens-list-page.cf8c77f2.chunk.js +16 -0
- package/build/upload-settings.945fdcfa.chunk.js +13 -0
- package/build/{upload-translation-th-json.3847dae0.chunk.js → upload-translation-th-json.98d35574.chunk.js} +1 -1
- package/build/upload.a86b1054.chunk.js +33 -0
- package/build/users-advanced-settings-page.5b5a9baa.chunk.js +8 -0
- package/build/users-email-settings-page.e5506eb4.chunk.js +23 -0
- package/build/users-providers-settings-page.e32089c2.chunk.js +28 -0
- package/build/users-roles-settings-page.2f85dcec.chunk.js +30 -0
- package/build/webhook-edit-page.213f0075.chunk.js +75 -0
- package/build/webhook-list-page.5beb2a5c.chunk.js +71 -0
- package/{admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStage.js → ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/ReviewWorkflowsStageEE.js} +2 -2
- package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/getTableColumn.js +45 -0
- package/ee/admin/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +3 -0
- package/ee/admin/content-manager/pages/EditView/InformationBox/InformationBoxEE.js +61 -18
- package/ee/admin/hooks/useLicenseLimitNotification/index.js +1 -1
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/hooks/useAuditLogsData.js +6 -3
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/index.js +15 -5
- package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +52 -45
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/ReviewWorkflows.js +8 -4
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/components/Stages/Stage/Stage.js +2 -2
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/hooks/useReviewWorkflows.js +2 -2
- package/ee/admin/pages/SettingsPage/pages/ReviewWorkflows/reducer/index.js +2 -1
- package/ee/server/content-types/workflow/index.js +0 -3
- package/ee/server/content-types/workflow-stage/index.js +0 -5
- package/ee/server/controllers/workflows/stages/index.js +8 -1
- package/ee/server/register.js +3 -1
- package/ee/server/services/audit-logs.js +75 -16
- package/ee/server/services/review-workflows/entity-service-decorator.js +17 -5
- package/ee/server/services/review-workflows/review-workflows.js +27 -91
- package/ee/server/services/review-workflows/stages.js +108 -7
- package/ee/server/utils/persisted-tables.js +114 -22
- package/ee/server/utils/review-workflows.js +9 -0
- package/jest.config.front.js +1 -6
- package/package.json +24 -22
- package/server/controllers/transfer/runner.js +4 -2
- package/server/middlewares/data-transfer.js +4 -1
- package/server/routes/transfer.js +13 -4
- package/server/services/constants.js +4 -0
- package/server/services/transfer/permission.js +1 -1
- package/server/services/transfer/token.js +33 -31
- package/server/validation/transfer/token.js +10 -2
- package/webpack.config.js +6 -2
- package/admin/src/content-manager/components/DynamicTable/CellContent/ReviewWorkflowsStage/index.js +0 -1
- package/admin/src/content-manager/pages/App/LeftMenu/utils/index.js +0 -1
- package/admin/src/content-manager/pages/App/LeftMenu/utils/matchByTitle.js +0 -24
- package/build/2263.4c5916f9.chunk.js +0 -98
- package/build/4049.64715f20.chunk.js +0 -1
- package/build/4649.213b8a3b.chunk.js +0 -30
- package/build/6985.66cca29c.chunk.js +0 -1
- package/build/7259.aefb51e8.chunk.js +0 -1
- package/build/8469.853c822b.chunk.js +0 -1
- package/build/9505.dbe702ab.chunk.js +0 -14
- package/build/9816.01ee964f.chunk.js +0 -2
- package/build/Admin-authenticatedApp.f50ad423.chunk.js +0 -79
- package/build/Admin_InternalErrorPage.4ad8b0df.chunk.js +0 -1
- package/build/Admin_homePage.1411fb7c.chunk.js +0 -68
- package/build/Admin_marketplace.02608d56.chunk.js +0 -22
- package/build/Admin_pluginsPage.15e3b0fd.chunk.js +0 -1
- package/build/Admin_profilePage.76afeca0.chunk.js +0 -15
- package/build/Admin_settingsPage.147755cd.chunk.js +0 -9
- package/build/Upload_ConfigureTheView.34dde278.chunk.js +0 -1
- package/build/admin-app.55dd7921.chunk.js +0 -112
- package/build/admin-edit-roles-page.cf543488.chunk.js +0 -216
- package/build/admin-edit-users.31c20712.chunk.js +0 -10
- package/build/admin-roles-list.489c501f.chunk.js +0 -2
- package/build/admin-users.3e111a7d.chunk.js +0 -11
- package/build/api-tokens-create-page.4328b852.chunk.js +0 -1
- package/build/api-tokens-edit-page.bce5050f.chunk.js +0 -1
- package/build/api-tokens-list-page.93f24348.chunk.js +0 -16
- package/build/audit-logs-settings-page.7be97e82.chunk.js +0 -1
- package/build/content-manager.4480ae88.chunk.js +0 -1137
- package/build/content-type-builder-list-view.cf38fe2f.chunk.js +0 -191
- package/build/content-type-builder-translation-en-json.7961593e.chunk.js +0 -1
- package/build/content-type-builder.af9abf1e.chunk.js +0 -126
- package/build/email-settings-page.4bdbef9a.chunk.js +0 -3
- package/build/en-json.697b4bcf.chunk.js +0 -1
- package/build/i18n-settings-page.2bb5be96.chunk.js +0 -1
- package/build/main.af8c0f31.js +0 -3790
- package/build/review-workflows-settings.7a7dc773.chunk.js +0 -57
- package/build/ru-json.6a01cea6.chunk.js +0 -1
- package/build/sso-settings-page.272b87c8.chunk.js +0 -1
- package/build/transfer-tokens-create-page.a1f14bb1.chunk.js +0 -1
- package/build/transfer-tokens-edit-page.00ee1c74.chunk.js +0 -1
- package/build/transfer-tokens-list-page.ce37354b.chunk.js +0 -16
- package/build/upload-settings.0875e973.chunk.js +0 -1
- package/build/upload.c7da1611.chunk.js +0 -13
- package/build/users-advanced-settings-page.1d3c14c7.chunk.js +0 -1
- package/build/users-email-settings-page.e8db68c4.chunk.js +0 -1
- package/build/users-providers-settings-page.14cac425.chunk.js +0 -1
- package/build/users-roles-settings-page.2ea4de84.chunk.js +0 -30
- package/build/webhook-edit-page.329141a5.chunk.js +0 -23
- package/build/webhook-list-page.029957a4.chunk.js +0 -1
- package/ee/server/migrations/review-workflows.js +0 -39
- package/ee/server/utils/test.js +0 -11
- /package/admin/src/{content-manager/components/InputUID/useDebounce.js → hooks/useDebounce/index.js} +0 -0
|
@@ -5,6 +5,7 @@ import { Box, Grid, GridItem, Flex, Typography } from '@strapi/design-system';
|
|
|
5
5
|
import LifeSpanInput from '../../../../../components/Tokens/LifeSpanInput';
|
|
6
6
|
import TokenName from '../../../../../components/Tokens/TokenName';
|
|
7
7
|
import TokenDescription from '../../../../../components/Tokens/TokenDescription';
|
|
8
|
+
import TokenTypeSelect from '../../../../../components/Tokens/TokenTypeSelect';
|
|
8
9
|
|
|
9
10
|
const FormTransferTokenContainer = ({
|
|
10
11
|
errors,
|
|
@@ -16,6 +17,30 @@ const FormTransferTokenContainer = ({
|
|
|
16
17
|
}) => {
|
|
17
18
|
const { formatMessage } = useIntl();
|
|
18
19
|
|
|
20
|
+
const typeOptions = [
|
|
21
|
+
{
|
|
22
|
+
value: 'push',
|
|
23
|
+
label: {
|
|
24
|
+
id: 'Settings.transferTokens.types.push',
|
|
25
|
+
defaultMessage: 'Push',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
value: 'pull',
|
|
30
|
+
label: {
|
|
31
|
+
id: 'Settings.transferTokens.types.pull',
|
|
32
|
+
defaultMessage: 'Pull',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
value: 'push-pull',
|
|
37
|
+
label: {
|
|
38
|
+
id: 'Settings.transferTokens.types.push-pull',
|
|
39
|
+
defaultMessage: 'Full Access',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
];
|
|
43
|
+
|
|
19
44
|
return (
|
|
20
45
|
<Box
|
|
21
46
|
background="neutral0"
|
|
@@ -59,6 +84,22 @@ const FormTransferTokenContainer = ({
|
|
|
59
84
|
token={transferToken}
|
|
60
85
|
/>
|
|
61
86
|
</GridItem>
|
|
87
|
+
<GridItem key="permissions" col={6} xs={12}>
|
|
88
|
+
<TokenTypeSelect
|
|
89
|
+
name="permissions"
|
|
90
|
+
values={values}
|
|
91
|
+
errors={errors}
|
|
92
|
+
label={{
|
|
93
|
+
id: 'Settings.tokens.form.type',
|
|
94
|
+
defaultMessage: 'Token type',
|
|
95
|
+
}}
|
|
96
|
+
onChange={(value) => {
|
|
97
|
+
onChange({ target: { name: 'permissions', value } });
|
|
98
|
+
}}
|
|
99
|
+
options={typeOptions}
|
|
100
|
+
canEditInputs={canEditInputs}
|
|
101
|
+
/>
|
|
102
|
+
</GridItem>
|
|
62
103
|
</Grid>
|
|
63
104
|
</Flex>
|
|
64
105
|
</Box>
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
useGuidedTour,
|
|
14
14
|
useRBAC,
|
|
15
15
|
useFetchClient,
|
|
16
|
+
useAPIErrorHandler,
|
|
16
17
|
} from '@strapi/helper-plugin';
|
|
17
18
|
import { ContentLayout, Main, Flex } from '@strapi/design-system';
|
|
18
19
|
import { formatAPIErrors } from '../../../../../utils';
|
|
@@ -52,6 +53,8 @@ const TransferTokenCreateView = () => {
|
|
|
52
53
|
|
|
53
54
|
const isCreating = id === 'create';
|
|
54
55
|
|
|
56
|
+
const { formatAPIError } = useAPIErrorHandler();
|
|
57
|
+
|
|
55
58
|
useEffect(() => {
|
|
56
59
|
trackUsageRef.current(isCreating ? 'didAddTokenFromList' : 'didEditTokenFromList', {
|
|
57
60
|
tokenType: TRANSFER_TOKEN_TYPE,
|
|
@@ -73,11 +76,22 @@ const TransferTokenCreateView = () => {
|
|
|
73
76
|
},
|
|
74
77
|
{
|
|
75
78
|
enabled: !isCreating && !transferToken,
|
|
76
|
-
onError() {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
onError(err) {
|
|
80
|
+
if (err.response.data.error.details?.code === 'INVALID_TOKEN_SALT') {
|
|
81
|
+
toggleNotification({
|
|
82
|
+
type: 'warning',
|
|
83
|
+
message: {
|
|
84
|
+
id: 'notification.error.invalid.configuration',
|
|
85
|
+
defaultMessage:
|
|
86
|
+
'You have an invalid configuration, check your server log for more information.',
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
} else {
|
|
90
|
+
toggleNotification({
|
|
91
|
+
type: 'warning',
|
|
92
|
+
message: formatAPIError(err),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
81
95
|
},
|
|
82
96
|
}
|
|
83
97
|
);
|
|
@@ -92,6 +106,8 @@ const TransferTokenCreateView = () => {
|
|
|
92
106
|
? parseInt(body.lifespan, 10)
|
|
93
107
|
: null;
|
|
94
108
|
|
|
109
|
+
const permissions = body.permissions.split('-');
|
|
110
|
+
|
|
95
111
|
try {
|
|
96
112
|
const {
|
|
97
113
|
data: { data: response },
|
|
@@ -99,13 +115,12 @@ const TransferTokenCreateView = () => {
|
|
|
99
115
|
? await post(`/admin/transfer/tokens`, {
|
|
100
116
|
...body,
|
|
101
117
|
lifespan: lifespanVal,
|
|
102
|
-
permissions
|
|
118
|
+
permissions,
|
|
103
119
|
})
|
|
104
120
|
: await put(`/admin/transfer/tokens/${id}`, {
|
|
105
121
|
name: body.name,
|
|
106
122
|
description: body.description,
|
|
107
|
-
|
|
108
|
-
permissions: ['push'],
|
|
123
|
+
permissions,
|
|
109
124
|
});
|
|
110
125
|
|
|
111
126
|
unlockApp();
|
|
@@ -132,7 +147,7 @@ const TransferTokenCreateView = () => {
|
|
|
132
147
|
});
|
|
133
148
|
|
|
134
149
|
trackUsageRef.current(isCreating ? 'didCreateToken' : 'didEditToken', {
|
|
135
|
-
type: transferToken?.
|
|
150
|
+
type: transferToken?.permissions,
|
|
136
151
|
tokenType: TRANSFER_TOKEN_TYPE,
|
|
137
152
|
});
|
|
138
153
|
} catch (err) {
|
|
@@ -144,6 +159,15 @@ const TransferTokenCreateView = () => {
|
|
|
144
159
|
type: 'warning',
|
|
145
160
|
message: err.response.data.message || 'notification.error.tokennamenotunique',
|
|
146
161
|
});
|
|
162
|
+
} else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {
|
|
163
|
+
toggleNotification({
|
|
164
|
+
type: 'warning',
|
|
165
|
+
message: {
|
|
166
|
+
id: 'notification.error.invalid.configuration',
|
|
167
|
+
defaultMessage:
|
|
168
|
+
'You have an invalid configuration, check your server log for more information.',
|
|
169
|
+
},
|
|
170
|
+
});
|
|
147
171
|
} else {
|
|
148
172
|
toggleNotification({
|
|
149
173
|
type: 'warning',
|
|
@@ -161,6 +185,24 @@ const TransferTokenCreateView = () => {
|
|
|
161
185
|
return <LoadingView transferTokenName={transferToken?.name} />;
|
|
162
186
|
}
|
|
163
187
|
|
|
188
|
+
const handleErrorRegenerate = (err) => {
|
|
189
|
+
if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {
|
|
190
|
+
toggleNotification({
|
|
191
|
+
type: 'warning',
|
|
192
|
+
message: {
|
|
193
|
+
id: 'notification.error.invalid.configuration',
|
|
194
|
+
defaultMessage:
|
|
195
|
+
'You have an invalid configuration, check your server log for more information.',
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
} else {
|
|
199
|
+
toggleNotification({
|
|
200
|
+
type: 'warning',
|
|
201
|
+
message: formatAPIError(err),
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
|
|
164
206
|
return (
|
|
165
207
|
<Main>
|
|
166
208
|
<SettingsPageTitle name="Transfer Tokens" />
|
|
@@ -173,6 +215,7 @@ const TransferTokenCreateView = () => {
|
|
|
173
215
|
lifespan: transferToken?.lifespan
|
|
174
216
|
? transferToken.lifespan.toString()
|
|
175
217
|
: transferToken?.lifespan,
|
|
218
|
+
permissions: transferToken?.permissions.join('-'),
|
|
176
219
|
}}
|
|
177
220
|
enableReinitialize
|
|
178
221
|
onSubmit={(body, actions) => handleSubmit(body, actions)}
|
|
@@ -192,6 +235,7 @@ const TransferTokenCreateView = () => {
|
|
|
192
235
|
canRegenerate={canRegenerate}
|
|
193
236
|
isSubmitting={isSubmitting}
|
|
194
237
|
regenerateUrl="/admin/transfer/tokens/"
|
|
238
|
+
onErrorRegenerate={handleErrorRegenerate}
|
|
195
239
|
/>
|
|
196
240
|
<ContentLayout>
|
|
197
241
|
<Flex direction="column" alignItems="stretch" gap={6}>
|
|
@@ -5,6 +5,7 @@ const schema = yup.object().shape({
|
|
|
5
5
|
name: yup.string(translatedErrors.string).max(100).required(translatedErrors.required),
|
|
6
6
|
description: yup.string().nullable(),
|
|
7
7
|
lifespan: yup.number().integer().min(0).nullable().defined(translatedErrors.required),
|
|
8
|
+
permissions: yup.string(translatedErrors.string).required(translatedErrors.required),
|
|
8
9
|
});
|
|
9
10
|
|
|
10
11
|
export default schema;
|
|
@@ -77,11 +77,24 @@ const TransferTokenListView = () => {
|
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
enabled: canRead,
|
|
80
|
-
onError() {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
80
|
+
onError(err) {
|
|
81
|
+
console.log('error', err);
|
|
82
|
+
|
|
83
|
+
if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {
|
|
84
|
+
toggleNotification({
|
|
85
|
+
type: 'warning',
|
|
86
|
+
message: {
|
|
87
|
+
id: 'notification.error.invalid.configuration',
|
|
88
|
+
defaultMessage:
|
|
89
|
+
'You have an invalid configuration, check your server log for more information.',
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
} else {
|
|
93
|
+
toggleNotification({
|
|
94
|
+
type: 'warning',
|
|
95
|
+
message: { id: 'notification.error', defaultMessage: 'An error occured' },
|
|
96
|
+
});
|
|
97
|
+
}
|
|
85
98
|
},
|
|
86
99
|
}
|
|
87
100
|
);
|
|
@@ -101,6 +114,15 @@ const TransferTokenListView = () => {
|
|
|
101
114
|
onError(err) {
|
|
102
115
|
if (err?.response?.data?.data) {
|
|
103
116
|
toggleNotification({ type: 'warning', message: err.response.data.data });
|
|
117
|
+
} else if (err?.response?.data?.error?.details?.code === 'INVALID_TOKEN_SALT') {
|
|
118
|
+
toggleNotification({
|
|
119
|
+
type: 'warning',
|
|
120
|
+
message: {
|
|
121
|
+
id: 'notification.error.invalid.configuration',
|
|
122
|
+
defaultMessage:
|
|
123
|
+
'You have an invalid configuration, check your server log for more information.',
|
|
124
|
+
},
|
|
125
|
+
});
|
|
104
126
|
} else {
|
|
105
127
|
toggleNotification({
|
|
106
128
|
type: 'warning',
|
|
@@ -84,54 +84,19 @@
|
|
|
84
84
|
"Settings.apiTokens.ListView.headers.lastUsedAt": "Last used",
|
|
85
85
|
"Settings.apiTokens.ListView.headers.name": "Name",
|
|
86
86
|
"Settings.apiTokens.ListView.headers.type": "Token type",
|
|
87
|
-
"Settings.apiTokens.regenerate": "Regenerate",
|
|
88
|
-
"Settings.apiTokens.createPage.title": "Create API Token",
|
|
89
|
-
"Settings.transferTokens.createPage.title": "Create Transfer Token",
|
|
90
|
-
"Settings.tokens.RegenerateDialog.title": "Regenerate token",
|
|
91
87
|
"Settings.apiTokens.addFirstToken": "Add your first API Token",
|
|
92
88
|
"Settings.apiTokens.addNewToken": "Add new API Token",
|
|
93
|
-
"Settings.tokens.copy.editMessage": "For security reasons, you can only see your token once.",
|
|
94
|
-
"Settings.tokens.copy.editTitle": "This token isn’t accessible anymore.",
|
|
95
|
-
"Settings.tokens.copy.lastWarning": "Make sure to copy this token, you won’t be able to see it again!",
|
|
96
89
|
"Settings.apiTokens.create": "Create new API Token",
|
|
90
|
+
"Settings.apiTokens.createPage.BoundRoute.title": "Bound route to",
|
|
97
91
|
"Settings.apiTokens.createPage.permissions.description": "Only actions bound by a route are listed below.",
|
|
92
|
+
"Settings.apiTokens.createPage.permissions.header.hint": "Select the application's actions or the plugin's actions and click on the cog icon to display the bound route",
|
|
93
|
+
"Settings.apiTokens.createPage.permissions.header.title": "Advanced settings",
|
|
98
94
|
"Settings.apiTokens.createPage.permissions.title": "Permissions",
|
|
95
|
+
"Settings.apiTokens.createPage.title": "Create API Token",
|
|
99
96
|
"Settings.apiTokens.description": "List of generated tokens to consume the API",
|
|
100
|
-
"Settings.apiTokens.createPage.BoundRoute.title": "Bound route to",
|
|
101
|
-
"Settings.apiTokens.createPage.permissions.header.title": "Advanced settings",
|
|
102
|
-
"Settings.apiTokens.createPage.permissions.header.hint": "Select the application's actions or the plugin's actions and click on the cog icon to display the bound route",
|
|
103
|
-
"Settings.tokens.duration.30-days": "30 days",
|
|
104
|
-
"Settings.tokens.duration.7-days": "7 days",
|
|
105
|
-
"Settings.tokens.duration.90-days": "90 days",
|
|
106
|
-
"Settings.tokens.duration.expiration-date": "Expiration date",
|
|
107
|
-
"Settings.tokens.duration.unlimited": "Unlimited",
|
|
108
97
|
"Settings.apiTokens.emptyStateLayout": "You don’t have any content yet...",
|
|
109
|
-
"Settings.
|
|
110
|
-
"Settings.
|
|
111
|
-
"Settings.tokens.form.name": "Name",
|
|
112
|
-
"Settings.tokens.form.description": "Description",
|
|
113
|
-
"Settings.tokens.notification.copied": "Token copied to clipboard.",
|
|
114
|
-
"Settings.tokens.popUpWarning.message": "Are you sure you want to regenerate this token?",
|
|
115
|
-
"Settings.tokens.Button.cancel": "Cancel",
|
|
116
|
-
"Settings.tokens.Button.regenerate": "Regenerate",
|
|
117
|
-
"Settings.tokens.types.full-access": "Full access",
|
|
118
|
-
"Settings.tokens.types.read-only": "Read-only",
|
|
119
|
-
"Settings.tokens.types.custom": "Custom",
|
|
120
|
-
"Settings.tokens.regenerate": "Regenerate",
|
|
121
|
-
"Settings.transferTokens.title": "Transfer Tokens",
|
|
122
|
-
"Settings.transferTokens.description": "List of generated transfer tokens",
|
|
123
|
-
"Settings.transferTokens.create": "Create new Transfer Token",
|
|
124
|
-
"Settings.transferTokens.addFirstToken": "Add your first Transfer Token",
|
|
125
|
-
"Settings.transferTokens.addNewToken": "Add new Transfer Token",
|
|
126
|
-
"Settings.transferTokens.emptyStateLayout": "You don’t have any content yet...",
|
|
127
|
-
"Settings.tokens.ListView.headers.name": "Name",
|
|
128
|
-
"Settings.tokens.ListView.headers.description": "Description",
|
|
129
|
-
"Settings.transferTokens.ListView.headers.type": "Token type",
|
|
130
|
-
"Settings.tokens.ListView.headers.createdAt": "Created at",
|
|
131
|
-
"Settings.tokens.ListView.headers.lastUsedAt": "Last used",
|
|
132
|
-
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
|
|
133
|
-
"Settings.application.ee.admin-seats.at-limit-tooltip": "At limit: add seats to invite more users",
|
|
134
|
-
"Settings.application.ee.admin-seats.add-seats": "{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}",
|
|
98
|
+
"Settings.apiTokens.regenerate": "Regenerate",
|
|
99
|
+
"Settings.apiTokens.title": "API Tokens",
|
|
135
100
|
"Settings.application.customization": "Customization",
|
|
136
101
|
"Settings.application.customization.auth-logo.carousel-hint": "Replace the logo in the authentication pages",
|
|
137
102
|
"Settings.application.customization.carousel-hint": "Change the admin panel logo (Max dimension: {dimension}x{dimension}, Max file size: {size}KB)",
|
|
@@ -165,6 +130,9 @@
|
|
|
165
130
|
"Settings.application.description": "Administration panel’s global information",
|
|
166
131
|
"Settings.application.edition-title": "current plan",
|
|
167
132
|
"Settings.application.ee-or-ce": "{communityEdition, select, true {Community Edition} other {Enterprise Edition}}",
|
|
133
|
+
"Settings.application.ee.admin-seats.add-seats": "{isHostedOnStrapiCloud, select, true {Add seats} other {Contact sales}}",
|
|
134
|
+
"Settings.application.ee.admin-seats.at-limit-tooltip": "At limit: add seats to invite more users",
|
|
135
|
+
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
|
|
168
136
|
"Settings.application.get-help": "Get help",
|
|
169
137
|
"Settings.application.link-pricing": "See all pricing plans",
|
|
170
138
|
"Settings.application.link-upgrade": "Upgrade your admin panel",
|
|
@@ -280,6 +248,39 @@
|
|
|
280
248
|
"Settings.sso.form.registration.description": "Create new user on SSO login if no account exists",
|
|
281
249
|
"Settings.sso.form.registration.label": "Auto-registration",
|
|
282
250
|
"Settings.sso.title": "Single Sign-On",
|
|
251
|
+
"Settings.tokens.Button.cancel": "Cancel",
|
|
252
|
+
"Settings.tokens.Button.regenerate": "Regenerate",
|
|
253
|
+
"Settings.tokens.ListView.headers.createdAt": "Created at",
|
|
254
|
+
"Settings.tokens.ListView.headers.description": "Description",
|
|
255
|
+
"Settings.tokens.ListView.headers.lastUsedAt": "Last used",
|
|
256
|
+
"Settings.tokens.ListView.headers.name": "Name",
|
|
257
|
+
"Settings.tokens.RegenerateDialog.title": "Regenerate token",
|
|
258
|
+
"Settings.tokens.copy.editMessage": "For security reasons, you can only see your token once.",
|
|
259
|
+
"Settings.tokens.copy.editTitle": "This token isn’t accessible anymore.",
|
|
260
|
+
"Settings.tokens.copy.lastWarning": "Make sure to copy this token, you won’t be able to see it again!",
|
|
261
|
+
"Settings.tokens.duration.30-days": "30 days",
|
|
262
|
+
"Settings.tokens.duration.7-days": "7 days",
|
|
263
|
+
"Settings.tokens.duration.90-days": "90 days",
|
|
264
|
+
"Settings.tokens.duration.expiration-date": "Expiration date",
|
|
265
|
+
"Settings.tokens.duration.unlimited": "Unlimited",
|
|
266
|
+
"Settings.tokens.form.description": "Description",
|
|
267
|
+
"Settings.tokens.form.duration": "Token duration",
|
|
268
|
+
"Settings.tokens.form.name": "Name",
|
|
269
|
+
"Settings.tokens.form.type": "Token type",
|
|
270
|
+
"Settings.tokens.notification.copied": "Token copied to clipboard.",
|
|
271
|
+
"Settings.tokens.popUpWarning.message": "Are you sure you want to regenerate this token?",
|
|
272
|
+
"Settings.tokens.regenerate": "Regenerate",
|
|
273
|
+
"Settings.tokens.types.custom": "Custom",
|
|
274
|
+
"Settings.tokens.types.full-access": "Full access",
|
|
275
|
+
"Settings.tokens.types.read-only": "Read-only",
|
|
276
|
+
"Settings.transferTokens.ListView.headers.type": "Token type",
|
|
277
|
+
"Settings.transferTokens.addFirstToken": "Add your first Transfer Token",
|
|
278
|
+
"Settings.transferTokens.addNewToken": "Add new Transfer Token",
|
|
279
|
+
"Settings.transferTokens.create": "Create new Transfer Token",
|
|
280
|
+
"Settings.transferTokens.createPage.title": "Create Transfer Token",
|
|
281
|
+
"Settings.transferTokens.description": "List of generated transfer tokens",
|
|
282
|
+
"Settings.transferTokens.emptyStateLayout": "You don’t have any content yet...",
|
|
283
|
+
"Settings.transferTokens.title": "Transfer Tokens",
|
|
283
284
|
"Settings.webhooks.create": "Create a webhook",
|
|
284
285
|
"Settings.webhooks.create.header": "Create new header",
|
|
285
286
|
"Settings.webhooks.created": "Webhook created",
|
|
@@ -375,13 +376,13 @@
|
|
|
375
376
|
"app.component.table.view": "{target} details",
|
|
376
377
|
"app.components.BlockLink.blog": "Blog",
|
|
377
378
|
"app.components.BlockLink.blog.content": "Read the latest news about Strapi and the ecosystem.",
|
|
379
|
+
"app.components.BlockLink.cloud": "Strapi Cloud",
|
|
380
|
+
"app.components.BlockLink.cloud.content": "A fully composable, and collaborative platform to boost your team velocity.",
|
|
378
381
|
"app.components.BlockLink.code": "Code examples",
|
|
379
382
|
"app.components.BlockLink.code.content": "Learn by testing real projects developed the community.",
|
|
380
383
|
"app.components.BlockLink.documentation.content": "Discover the essential concepts, guides and instructions.",
|
|
381
384
|
"app.components.BlockLink.tutorial": "Tutorials",
|
|
382
385
|
"app.components.BlockLink.tutorial.content": "Follow step-by-step instructions to use and customize Strapi.",
|
|
383
|
-
"app.components.BlockLink.cloud": "Strapi Cloud",
|
|
384
|
-
"app.components.BlockLink.cloud.content": "A fully composable, and collaborative platform to boost your team velocity.",
|
|
385
386
|
"app.components.Button.cancel": "Cancel",
|
|
386
387
|
"app.components.Button.confirm": "Confirm",
|
|
387
388
|
"app.components.Button.reset": "Reset",
|
|
@@ -870,25 +871,26 @@
|
|
|
870
871
|
"light": "Light",
|
|
871
872
|
"notification.contentType.relations.conflict": "Content type has conflicting relations",
|
|
872
873
|
"notification.default.title": "Information:",
|
|
874
|
+
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})",
|
|
875
|
+
"notification.ee.warning.over-.message": "Add seats to {licenseLimitStatus, select, OVER_LIMIT {invite} AT_LIMIT {re-enable}} Users. If you already did it but it's not reflected in Strapi yet, make sure to restart your app.",
|
|
873
876
|
"notification.error": "An error occurred",
|
|
877
|
+
"notification.error.invalid.configuration": "You have an invalid configuration, check your server log for more information.",
|
|
874
878
|
"notification.error.layout": "Couldn't retrieve the layout",
|
|
879
|
+
"notification.error.tokennamenotunique": "Name already assigned to another token",
|
|
875
880
|
"notification.form.error.fields": "The form contains some errors",
|
|
876
881
|
"notification.form.success.fields": "Changes saved",
|
|
877
882
|
"notification.link-copied": "Link copied into the clipboard",
|
|
878
883
|
"notification.permission.not-allowed-read": "You are not allowed to see this document",
|
|
884
|
+
"notification.success.apitokencreated": "API Token successfully created",
|
|
885
|
+
"notification.success.apitokenedited": "API Token successfully edited",
|
|
879
886
|
"notification.success.delete": "The item has been deleted",
|
|
880
887
|
"notification.success.saved": "Saved",
|
|
881
888
|
"notification.success.title": "Success:",
|
|
882
|
-
"notification.success.apitokencreated": "API Token successfully created",
|
|
883
|
-
"notification.success.apitokenedited": "API Token successfully edited",
|
|
884
889
|
"notification.success.transfertokencreated": "Transfer Token successfully created",
|
|
885
890
|
"notification.success.transfertokenedited": "Transfer Token successfully edited",
|
|
886
|
-
"notification.error.tokennamenotunique": "Name already assigned to another token",
|
|
887
891
|
"notification.version.update.message": "A new version of Strapi is available!",
|
|
888
|
-
"notification.warning.title": "Warning:",
|
|
889
892
|
"notification.warning.404": "404 - Not found",
|
|
890
|
-
"notification.
|
|
891
|
-
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})",
|
|
893
|
+
"notification.warning.title": "Warning:",
|
|
892
894
|
"or": "OR",
|
|
893
895
|
"request.error.model.unknown": "This model doesn't exist",
|
|
894
896
|
"selectButtonTitle": "Select",
|
|
@@ -79,36 +79,24 @@
|
|
|
79
79
|
"Roles.RoleRow.user-count": "{number, plural, =0 {# пользователей} one {# пользователь} other {# пользователей}}",
|
|
80
80
|
"Roles.components.List.empty.withSearch": "Нет роли, соответствующей поиску ({search})...",
|
|
81
81
|
"Settings.PageTitle": "Настройки — {name}",
|
|
82
|
-
"Settings.tokens.Button.cancel": "Отмена",
|
|
83
|
-
"Settings.tokens.Button.regenerate": "Восстановить",
|
|
84
82
|
"Settings.apiTokens.ListView.headers.createdAt": "Создан",
|
|
85
83
|
"Settings.apiTokens.ListView.headers.description": "Описание",
|
|
86
84
|
"Settings.apiTokens.ListView.headers.lastUsedAt": "Последнее использование",
|
|
87
85
|
"Settings.apiTokens.ListView.headers.name": "Название",
|
|
88
86
|
"Settings.apiTokens.ListView.headers.type": "Тип токена",
|
|
89
|
-
"Settings.tokens.RegenerateDialog.title": "Восстановить токен",
|
|
90
87
|
"Settings.apiTokens.addFirstToken": "Добавьте свой первый API-токен",
|
|
91
88
|
"Settings.apiTokens.addNewToken": "Добавить новый API-токен",
|
|
92
|
-
"Settings.tokens.copy.editMessage": "Из соображений безопасности вы можете увидеть свой токен только один раз.",
|
|
93
|
-
"Settings.tokens.copy.editTitle": "Этот токен больше не доступен.",
|
|
94
|
-
"Settings.tokens.copy.lastWarning": "Обязательно скопируйте этот токен, вы больше не сможете его увидеть!",
|
|
95
89
|
"Settings.apiTokens.create": "Создайте новый API-токен",
|
|
90
|
+
"Settings.apiTokens.createPage.BoundRoute.title": "Связанный маршрут к",
|
|
96
91
|
"Settings.apiTokens.createPage.permissions.description": "Ниже перечислены только действия, связанные с маршрутом.",
|
|
92
|
+
"Settings.apiTokens.createPage.permissions.header.hint": "Выберите действия для приложения или плагина и нажмите на значок шестеренки, чтобы отобразить связанный маршрут",
|
|
93
|
+
"Settings.apiTokens.createPage.permissions.header.title": "Дополнительные настройки",
|
|
97
94
|
"Settings.apiTokens.createPage.permissions.title": "Разрешения",
|
|
95
|
+
"Settings.apiTokens.createPage.title": "Создать API-токен",
|
|
98
96
|
"Settings.apiTokens.description": "Список сгенерированных токенов для использования API",
|
|
99
|
-
"Settings.tokens.duration.30-days": "30 дней",
|
|
100
|
-
"Settings.tokens.duration.7-days": "7 дней",
|
|
101
|
-
"Settings.tokens.duration.90-days": "90 дней",
|
|
102
|
-
"Settings.tokens.duration.expiration-date": "Срок действия",
|
|
103
|
-
"Settings.tokens.duration.unlimited": "Неограниченный",
|
|
104
97
|
"Settings.apiTokens.emptyStateLayout": "У вас ещё нет контента...",
|
|
105
|
-
"Settings.
|
|
106
|
-
"Settings.tokens.form.type": "Тип токена",
|
|
107
|
-
"Settings.tokens.notification.copied": "Токен скопирован в буфер обмена.",
|
|
108
|
-
"Settings.tokens.popUpWarning.message": "Вы уверены, что хотите восстановить этот токен?",
|
|
98
|
+
"Settings.apiTokens.regenerate": "Перегенерировать",
|
|
109
99
|
"Settings.apiTokens.title": "API-токены",
|
|
110
|
-
"Settings.tokens.types.full-access": "Полный доступ",
|
|
111
|
-
"Settings.tokens.types.read-only": "Только для чтения",
|
|
112
100
|
"Settings.application.customization": "Персонализация",
|
|
113
101
|
"Settings.application.customization.auth-logo.carousel-hint": "Замените логотип на странице авторизации",
|
|
114
102
|
"Settings.application.customization.carousel-hint": "Изменить логотип панели администратора (максимальный размер: {dimension}x{dimension}, максимальный размер файла: {size}KB)",
|
|
@@ -142,6 +130,9 @@
|
|
|
142
130
|
"Settings.application.description": "Посмотреть детали вашего проекта",
|
|
143
131
|
"Settings.application.edition-title": "Текущий план",
|
|
144
132
|
"Settings.application.ee-or-ce": "{communityEdition, select, true {Community Edition} other {Enterprise Edition}}",
|
|
133
|
+
"Settings.application.ee.admin-seats.add-seats": "{isHostedOnStrapiCloud, select, true {Добавить места} other {Обратитесь в отдел продаж}}",
|
|
134
|
+
"Settings.application.ee.admin-seats.at-limit-tooltip": "При исчерпании лимита: добавьте места, чтобы пригласить больше пользователей",
|
|
135
|
+
"Settings.application.ee.admin-seats.count": "<text>{enforcementUserCount}</text>/{permittedSeats}",
|
|
145
136
|
"Settings.application.get-help": "Получить помощь",
|
|
146
137
|
"Settings.application.link-pricing": "Посмотреть все тарифы",
|
|
147
138
|
"Settings.application.link-upgrade": "Обновить ваше приложение",
|
|
@@ -252,6 +243,39 @@
|
|
|
252
243
|
"Settings.sso.form.registration.description": "Создать нового пользователя при входе через SSO, если учётной записи нет",
|
|
253
244
|
"Settings.sso.form.registration.label": "Авто-регистрация",
|
|
254
245
|
"Settings.sso.title": "Функция единого входа",
|
|
246
|
+
"Settings.tokens.Button.cancel": "Отмена",
|
|
247
|
+
"Settings.tokens.Button.regenerate": "Восстановить",
|
|
248
|
+
"Settings.tokens.ListView.headers.createdAt": "Создан",
|
|
249
|
+
"Settings.tokens.ListView.headers.description": "Описание",
|
|
250
|
+
"Settings.tokens.ListView.headers.lastUsedAt": "Последний раз использовался",
|
|
251
|
+
"Settings.tokens.ListView.headers.name": "Название",
|
|
252
|
+
"Settings.tokens.RegenerateDialog.title": "Восстановить токен",
|
|
253
|
+
"Settings.tokens.copy.editMessage": "Из соображений безопасности вы можете увидеть свой токен только один раз.",
|
|
254
|
+
"Settings.tokens.copy.editTitle": "Этот токен больше не доступен.",
|
|
255
|
+
"Settings.tokens.copy.lastWarning": "Обязательно скопируйте этот токен, вы больше не сможете его увидеть!",
|
|
256
|
+
"Settings.tokens.duration.30-days": "30 дней",
|
|
257
|
+
"Settings.tokens.duration.7-days": "7 дней",
|
|
258
|
+
"Settings.tokens.duration.90-days": "90 дней",
|
|
259
|
+
"Settings.tokens.duration.expiration-date": "Срок действия",
|
|
260
|
+
"Settings.tokens.duration.unlimited": "Неограниченный",
|
|
261
|
+
"Settings.tokens.form.description": "Описание",
|
|
262
|
+
"Settings.tokens.form.duration": "Срок действия токена",
|
|
263
|
+
"Settings.tokens.form.name": "Название",
|
|
264
|
+
"Settings.tokens.form.type": "Тип токена",
|
|
265
|
+
"Settings.tokens.notification.copied": "Токен скопирован в буфер обмена.",
|
|
266
|
+
"Settings.tokens.popUpWarning.message": "Вы уверены, что хотите восстановить этот токен?",
|
|
267
|
+
"Settings.tokens.regenerate": "Перегенерировать",
|
|
268
|
+
"Settings.tokens.types.custom": "Пользовательский тип",
|
|
269
|
+
"Settings.tokens.types.full-access": "Полный доступ",
|
|
270
|
+
"Settings.tokens.types.read-only": "Только для чтения",
|
|
271
|
+
"Settings.transferTokens.ListView.headers.type": "Тип токена",
|
|
272
|
+
"Settings.transferTokens.addFirstToken": "Добавьте свой первый токен для передачи",
|
|
273
|
+
"Settings.transferTokens.addNewToken": "Добавить новый токен для передачи",
|
|
274
|
+
"Settings.transferTokens.create": "Создать новый токен для передачи",
|
|
275
|
+
"Settings.transferTokens.createPage.title": "Создать передачу токена",
|
|
276
|
+
"Settings.transferTokens.description": "Список сгенерированных токенов для передачи",
|
|
277
|
+
"Settings.transferTokens.emptyStateLayout": "У вас ещё нет никакого контента...",
|
|
278
|
+
"Settings.transferTokens.title": "Передача токенов",
|
|
255
279
|
"Settings.webhooks.create": "Создание webhook`а",
|
|
256
280
|
"Settings.webhooks.create.header": "Создание нового заголовка",
|
|
257
281
|
"Settings.webhooks.created": "Webhook создан",
|
|
@@ -342,10 +366,13 @@
|
|
|
342
366
|
"app.component.search.label": "Искать {target}",
|
|
343
367
|
"app.component.table.duplicate": "Дубликат {target}",
|
|
344
368
|
"app.component.table.edit": "Редактировать {target}",
|
|
369
|
+
"app.component.table.read": "Читать {target}",
|
|
345
370
|
"app.component.table.select.one-entry": "Выбрать {target}",
|
|
346
371
|
"app.component.table.view": "{target} детали",
|
|
347
372
|
"app.components.BlockLink.blog": "Блог",
|
|
348
373
|
"app.components.BlockLink.blog.content": "Читайте последние новости о Strapi и экосистеме.",
|
|
374
|
+
"app.components.BlockLink.cloud": "Strapi Cloud",
|
|
375
|
+
"app.components.BlockLink.cloud.content": "Полностью настраиваемая платформа для совместной работы, повышающая скорость работы вашей команды.",
|
|
349
376
|
"app.components.BlockLink.code": "Примеры кода",
|
|
350
377
|
"app.components.BlockLink.code.content": "Учитесь, тестируя реальные проекты, разработанные сообществом.",
|
|
351
378
|
"app.components.BlockLink.documentation.content": "Откройте для себя основные понятия, руководства и инструкции.",
|
|
@@ -838,18 +865,23 @@
|
|
|
838
865
|
"light": "Светлая",
|
|
839
866
|
"notification.contentType.relations.conflict": "Тип контента имеет конфликтующие отношения",
|
|
840
867
|
"notification.default.title": "Информация:",
|
|
868
|
+
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {БОЛЬШЕ ЧЕМ} AT_LIMIT {РОВНО}} seat limit ({currentUserCount}/{permittedSeats})",
|
|
869
|
+
"notification.ee.warning.over-.message": "Добавить места чтобы {licenseLimitStatus, select, OVER_LIMIT {пригласить} AT_LIMIT {повторно подкючить}} пользователей. Если вы уже сделали это, но это ещё не отображается в Strapi, обязательно перезапустите своё приложение.",
|
|
841
870
|
"notification.error": "Произошла ошибка",
|
|
871
|
+
"notification.error.invalid.configuration": "У вас неправильная конфигурация настроек, проверьте журнал вашего сервера для получения дополнительной информации.",
|
|
842
872
|
"notification.error.layout": "Не удалось получить макет",
|
|
843
873
|
"notification.error.tokennamenotunique": "Имя уже присвоено другому токену",
|
|
844
874
|
"notification.form.error.fields": "Форма содержит некоторые ошибки",
|
|
845
875
|
"notification.form.success.fields": "Изменения сохранены",
|
|
846
876
|
"notification.link-copied": "Ссылка скопирована в буфер обмена",
|
|
847
877
|
"notification.permission.not-allowed-read": "Вам не разрешено просматривать этот документ",
|
|
878
|
+
"notification.success.apitokencreated": "API-токен успешно создан",
|
|
879
|
+
"notification.success.apitokenedited": "API-токен успешно отредактирован",
|
|
848
880
|
"notification.success.delete": "Элемент удален",
|
|
849
881
|
"notification.success.saved": "Сохранено",
|
|
850
882
|
"notification.success.title": "Успех:",
|
|
851
|
-
"notification.success.
|
|
852
|
-
"notification.success.
|
|
883
|
+
"notification.success.transfertokencreated": "Токен для передачи успешно создан",
|
|
884
|
+
"notification.success.transfertokenedited": "Токен для передачи успешно изменён",
|
|
853
885
|
"notification.version.update.message": "Доступна новая версия Strapi!",
|
|
854
886
|
"notification.warning.404": "404 — Не найдено",
|
|
855
887
|
"notification.warning.title": "Внимание:",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1387],{49776:function(D,g,s){s.d(g,{j:function(){return l}});var d={};function l(){return d}function h(o){d=o}},46784:function(D,g,s){s.d(g,{Z:function(){return m}});var d=s(907),l=s(96256),h=s(10420),o=s(49776);function m(c,f){var b,T,O,w,_,y,p,W;(0,l.Z)(1,arguments);var U=(0,o.j)(),P=(0,h.Z)((b=(T=(O=(w=f?.weekStartsOn)!==null&&w!==void 0?w:f==null||(_=f.locale)===null||_===void 0||(y=_.options)===null||y===void 0?void 0:y.weekStartsOn)!==null&&O!==void 0?O:U.weekStartsOn)!==null&&T!==void 0?T:(p=U.locale)===null||p===void 0||(W=p.options)===null||W===void 0?void 0:W.weekStartsOn)!==null&&b!==void 0?b:0);if(!(P>=0&&P<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var L=(0,d.Z)(c),X=L.getUTCDay(),V=(X<P?7:0)+X-P;return L.setUTCDate(L.getUTCDate()-V),L.setUTCHours(0,0,0,0),L}},14723:function(D,g,s){s.d(g,{Z:function(){return De}});var d=s(96256);function l(n){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?l=function(e){return typeof e}:l=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(n)}function h(n){return(0,d.Z)(1,arguments),n instanceof Date||l(n)==="object"&&Object.prototype.toString.call(n)==="[object Date]"}var o=s(907);function m(n){if((0,d.Z)(1,arguments),!h(n)&&typeof n!="number")return!1;var t=(0,o.Z)(n);return!isNaN(Number(t))}var c=s(10420);function f(n,t){(0,d.Z)(2,arguments);var e=(0,o.Z)(n).getTime(),a=(0,c.Z)(t);return new Date(e+a)}function b(n,t){(0,d.Z)(2,arguments);var e=(0,c.Z)(t);return f(n,-e)}var T=864e5;function O(n){(0,d.Z)(1,arguments);var t=(0,o.Z)(n),e=t.getTime();t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0);var a=t.getTime(),r=e-a;return Math.floor(r/T)+1}function w(n){(0,d.Z)(1,arguments);var t=1,e=(0,o.Z)(n),a=e.getUTCDay(),r=(a<t?7:0)+a-t;return e.setUTCDate(e.getUTCDate()-r),e.setUTCHours(0,0,0,0),e}function _(n){(0,d.Z)(1,arguments);var t=(0,o.Z)(n),e=t.getUTCFullYear(),a=new Date(0);a.setUTCFullYear(e+1,0,4),a.setUTCHours(0,0,0,0);var r=w(a),i=new Date(0);i.setUTCFullYear(e,0,4),i.setUTCHours(0,0,0,0);var u=w(i);return t.getTime()>=r.getTime()?e+1:t.getTime()>=u.getTime()?e:e-1}function y(n){(0,d.Z)(1,arguments);var t=_(n),e=new Date(0);e.setUTCFullYear(t,0,4),e.setUTCHours(0,0,0,0);var a=w(e);return a}var p=6048e5;function W(n){(0,d.Z)(1,arguments);var t=(0,o.Z)(n),e=w(t).getTime()-y(t).getTime();return Math.round(e/p)+1}var U=s(46784),P=s(49776);function L(n,t){var e,a,r,i,u,C,x,k;(0,d.Z)(1,arguments);var S=(0,o.Z)(n),E=S.getUTCFullYear(),N=(0,P.j)(),Z=(0,c.Z)((e=(a=(r=(i=t?.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(u=t.locale)===null||u===void 0||(C=u.options)===null||C===void 0?void 0:C.firstWeekContainsDate)!==null&&r!==void 0?r:N.firstWeekContainsDate)!==null&&a!==void 0?a:(x=N.locale)===null||x===void 0||(k=x.options)===null||k===void 0?void 0:k.firstWeekContainsDate)!==null&&e!==void 0?e:1);if(!(Z>=1&&Z<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var Y=new Date(0);Y.setUTCFullYear(E+1,0,Z),Y.setUTCHours(0,0,0,0);var A=(0,U.Z)(Y,t),H=new Date(0);H.setUTCFullYear(E,0,Z),H.setUTCHours(0,0,0,0);var B=(0,U.Z)(H,t);return S.getTime()>=A.getTime()?E+1:S.getTime()>=B.getTime()?E:E-1}function X(n,t){var e,a,r,i,u,C,x,k;(0,d.Z)(1,arguments);var S=(0,P.j)(),E=(0,c.Z)((e=(a=(r=(i=t?.firstWeekContainsDate)!==null&&i!==void 0?i:t==null||(u=t.locale)===null||u===void 0||(C=u.options)===null||C===void 0?void 0:C.firstWeekContainsDate)!==null&&r!==void 0?r:S.firstWeekContainsDate)!==null&&a!==void 0?a:(x=S.locale)===null||x===void 0||(k=x.options)===null||k===void 0?void 0:k.firstWeekContainsDate)!==null&&e!==void 0?e:1),N=L(n,t),Z=new Date(0);Z.setUTCFullYear(N,0,E),Z.setUTCHours(0,0,0,0);var Y=(0,U.Z)(Z,t);return Y}var V=6048e5;function ue(n,t){(0,d.Z)(1,arguments);var e=(0,o.Z)(n),a=(0,U.Z)(e,t).getTime()-X(e,t).getTime();return Math.round(a/V)+1}var v=s(24319),de={y:function(t,e){var a=t.getUTCFullYear(),r=a>0?a:1-a;return(0,v.Z)(e==="yy"?r%100:r,e.length)},M:function(t,e){var a=t.getUTCMonth();return e==="M"?String(a+1):(0,v.Z)(a+1,2)},d:function(t,e){return(0,v.Z)(t.getUTCDate(),e.length)},a:function(t,e){var a=t.getUTCHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return a.toUpperCase();case"aaa":return a;case"aaaaa":return a[0];case"aaaa":default:return a==="am"?"a.m.":"p.m."}},h:function(t,e){return(0,v.Z)(t.getUTCHours()%12||12,e.length)},H:function(t,e){return(0,v.Z)(t.getUTCHours(),e.length)},m:function(t,e){return(0,v.Z)(t.getUTCMinutes(),e.length)},s:function(t,e){return(0,v.Z)(t.getUTCSeconds(),e.length)},S:function(t,e){var a=e.length,r=t.getUTCMilliseconds(),i=Math.floor(r*Math.pow(10,a-3));return(0,v.Z)(i,e.length)}},F=de,I={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},se={G:function(t,e,a){var r=t.getUTCFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return a.era(r,{width:"abbreviated"});case"GGGGG":return a.era(r,{width:"narrow"});case"GGGG":default:return a.era(r,{width:"wide"})}},y:function(t,e,a){if(e==="yo"){var r=t.getUTCFullYear(),i=r>0?r:1-r;return a.ordinalNumber(i,{unit:"year"})}return F.y(t,e)},Y:function(t,e,a,r){var i=L(t,r),u=i>0?i:1-i;if(e==="YY"){var C=u%100;return(0,v.Z)(C,2)}return e==="Yo"?a.ordinalNumber(u,{unit:"year"}):(0,v.Z)(u,e.length)},R:function(t,e){var a=_(t);return(0,v.Z)(a,e.length)},u:function(t,e){var a=t.getUTCFullYear();return(0,v.Z)(a,e.length)},Q:function(t,e,a){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"Q":return String(r);case"QQ":return(0,v.Z)(r,2);case"Qo":return a.ordinalNumber(r,{unit:"quarter"});case"QQQ":return a.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return a.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return a.quarter(r,{width:"wide",context:"formatting"})}},q:function(t,e,a){var r=Math.ceil((t.getUTCMonth()+1)/3);switch(e){case"q":return String(r);case"qq":return(0,v.Z)(r,2);case"qo":return a.ordinalNumber(r,{unit:"quarter"});case"qqq":return a.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return a.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return a.quarter(r,{width:"wide",context:"standalone"})}},M:function(t,e,a){var r=t.getUTCMonth();switch(e){case"M":case"MM":return F.M(t,e);case"Mo":return a.ordinalNumber(r+1,{unit:"month"});case"MMM":return a.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return a.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return a.month(r,{width:"wide",context:"formatting"})}},L:function(t,e,a){var r=t.getUTCMonth();switch(e){case"L":return String(r+1);case"LL":return(0,v.Z)(r+1,2);case"Lo":return a.ordinalNumber(r+1,{unit:"month"});case"LLL":return a.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return a.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return a.month(r,{width:"wide",context:"standalone"})}},w:function(t,e,a,r){var i=ue(t,r);return e==="wo"?a.ordinalNumber(i,{unit:"week"}):(0,v.Z)(i,e.length)},I:function(t,e,a){var r=W(t);return e==="Io"?a.ordinalNumber(r,{unit:"week"}):(0,v.Z)(r,e.length)},d:function(t,e,a){return e==="do"?a.ordinalNumber(t.getUTCDate(),{unit:"date"}):F.d(t,e)},D:function(t,e,a){var r=O(t);return e==="Do"?a.ordinalNumber(r,{unit:"dayOfYear"}):(0,v.Z)(r,e.length)},E:function(t,e,a){var r=t.getUTCDay();switch(e){case"E":case"EE":case"EEE":return a.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return a.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(r,{width:"short",context:"formatting"});case"EEEE":default:return a.day(r,{width:"wide",context:"formatting"})}},e:function(t,e,a,r){var i=t.getUTCDay(),u=(i-r.weekStartsOn+8)%7||7;switch(e){case"e":return String(u);case"ee":return(0,v.Z)(u,2);case"eo":return a.ordinalNumber(u,{unit:"day"});case"eee":return a.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return a.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(i,{width:"short",context:"formatting"});case"eeee":default:return a.day(i,{width:"wide",context:"formatting"})}},c:function(t,e,a,r){var i=t.getUTCDay(),u=(i-r.weekStartsOn+8)%7||7;switch(e){case"c":return String(u);case"cc":return(0,v.Z)(u,e.length);case"co":return a.ordinalNumber(u,{unit:"day"});case"ccc":return a.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return a.day(i,{width:"narrow",context:"standalone"});case"cccccc":return a.day(i,{width:"short",context:"standalone"});case"cccc":default:return a.day(i,{width:"wide",context:"standalone"})}},i:function(t,e,a){var r=t.getUTCDay(),i=r===0?7:r;switch(e){case"i":return String(i);case"ii":return(0,v.Z)(i,e.length);case"io":return a.ordinalNumber(i,{unit:"day"});case"iii":return a.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return a.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return a.day(r,{width:"short",context:"formatting"});case"iiii":default:return a.day(r,{width:"wide",context:"formatting"})}},a:function(t,e,a){var r=t.getUTCHours(),i=r/12>=1?"pm":"am";switch(e){case"a":case"aa":return a.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return a.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return a.dayPeriod(i,{width:"narrow",context:"formatting"});case"aaaa":default:return a.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(t,e,a){var r=t.getUTCHours(),i;switch(r===12?i=I.noon:r===0?i=I.midnight:i=r/12>=1?"pm":"am",e){case"b":case"bb":return a.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return a.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return a.dayPeriod(i,{width:"narrow",context:"formatting"});case"bbbb":default:return a.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(t,e,a){var r=t.getUTCHours(),i;switch(r>=17?i=I.evening:r>=12?i=I.afternoon:r>=4?i=I.morning:i=I.night,e){case"B":case"BB":case"BBB":return a.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return a.dayPeriod(i,{width:"narrow",context:"formatting"});case"BBBB":default:return a.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(t,e,a){if(e==="ho"){var r=t.getUTCHours()%12;return r===0&&(r=12),a.ordinalNumber(r,{unit:"hour"})}return F.h(t,e)},H:function(t,e,a){return e==="Ho"?a.ordinalNumber(t.getUTCHours(),{unit:"hour"}):F.H(t,e)},K:function(t,e,a){var r=t.getUTCHours()%12;return e==="Ko"?a.ordinalNumber(r,{unit:"hour"}):(0,v.Z)(r,e.length)},k:function(t,e,a){var r=t.getUTCHours();return r===0&&(r=24),e==="ko"?a.ordinalNumber(r,{unit:"hour"}):(0,v.Z)(r,e.length)},m:function(t,e,a){return e==="mo"?a.ordinalNumber(t.getUTCMinutes(),{unit:"minute"}):F.m(t,e)},s:function(t,e,a){return e==="so"?a.ordinalNumber(t.getUTCSeconds(),{unit:"second"}):F.s(t,e)},S:function(t,e){return F.S(t,e)},X:function(t,e,a,r){var i=r._originalDate||t,u=i.getTimezoneOffset();if(u===0)return"Z";switch(e){case"X":return re(u);case"XXXX":case"XX":return $(u);case"XXXXX":case"XXX":default:return $(u,":")}},x:function(t,e,a,r){var i=r._originalDate||t,u=i.getTimezoneOffset();switch(e){case"x":return re(u);case"xxxx":case"xx":return $(u);case"xxxxx":case"xxx":default:return $(u,":")}},O:function(t,e,a,r){var i=r._originalDate||t,u=i.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+ae(u,":");case"OOOO":default:return"GMT"+$(u,":")}},z:function(t,e,a,r){var i=r._originalDate||t,u=i.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+ae(u,":");case"zzzz":default:return"GMT"+$(u,":")}},t:function(t,e,a,r){var i=r._originalDate||t,u=Math.floor(i.getTime()/1e3);return(0,v.Z)(u,e.length)},T:function(t,e,a,r){var i=r._originalDate||t,u=i.getTime();return(0,v.Z)(u,e.length)}};function ae(n,t){var e=n>0?"-":"+",a=Math.abs(n),r=Math.floor(a/60),i=a%60;if(i===0)return e+String(r);var u=t||"";return e+String(r)+u+(0,v.Z)(i,2)}function re(n,t){if(n%60===0){var e=n>0?"-":"+";return e+(0,v.Z)(Math.abs(n)/60,2)}return $(n,t)}function $(n,t){var e=t||"",a=n>0?"-":"+",r=Math.abs(n),i=(0,v.Z)(Math.floor(r/60),2),u=(0,v.Z)(r%60,2);return a+i+e+u}var le=se,ne=function(t,e){switch(t){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},ie=function(t,e){switch(t){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},ce=function(t,e){var a=t.match(/(P+)(p+)?/)||[],r=a[1],i=a[2];if(!i)return ne(t,e);var u;switch(r){case"P":u=e.dateTime({width:"short"});break;case"PP":u=e.dateTime({width:"medium"});break;case"PPP":u=e.dateTime({width:"long"});break;case"PPPP":default:u=e.dateTime({width:"full"});break}return u.replace("{{date}}",ne(r,e)).replace("{{time}}",ie(i,e))},fe={p:ie,P:ce},me=fe,ve=s(22774),he=["D","DD"],ge=["YY","YYYY"];function we(n){return he.indexOf(n)!==-1}function be(n){return ge.indexOf(n)!==-1}function oe(n,t,e){if(n==="YYYY")throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(n==="YY")throw new RangeError("Use `yy` instead of `YY` (in `".concat(t,"`) for formatting years to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(n==="D")throw new RangeError("Use `d` instead of `D` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"));if(n==="DD")throw new RangeError("Use `dd` instead of `DD` (in `".concat(t,"`) for formatting days of the month to the input `").concat(e,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md"))}var ye=s(54828),Te=ye.Z,Oe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,pe=/^'([^]*?)'?$/,Ce=/''/g,Me=/[a-zA-Z]/;function De(n,t,e){var a,r,i,u,C,x,k,S,E,N,Z,Y,A,H,B,K,J,z;(0,d.Z)(2,arguments);var Ze=String(t),j=(0,P.j)(),Q=(a=(r=e?.locale)!==null&&r!==void 0?r:j.locale)!==null&&a!==void 0?a:Te,ee=(0,c.Z)((i=(u=(C=(x=e?.firstWeekContainsDate)!==null&&x!==void 0?x:e==null||(k=e.locale)===null||k===void 0||(S=k.options)===null||S===void 0?void 0:S.firstWeekContainsDate)!==null&&C!==void 0?C:j.firstWeekContainsDate)!==null&&u!==void 0?u:(E=j.locale)===null||E===void 0||(N=E.options)===null||N===void 0?void 0:N.firstWeekContainsDate)!==null&&i!==void 0?i:1);if(!(ee>=1&&ee<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var te=(0,c.Z)((Z=(Y=(A=(H=e?.weekStartsOn)!==null&&H!==void 0?H:e==null||(B=e.locale)===null||B===void 0||(K=B.options)===null||K===void 0?void 0:K.weekStartsOn)!==null&&A!==void 0?A:j.weekStartsOn)!==null&&Y!==void 0?Y:(J=j.locale)===null||J===void 0||(z=J.options)===null||z===void 0?void 0:z.weekStartsOn)!==null&&Z!==void 0?Z:0);if(!(te>=0&&te<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");if(!Q.localize)throw new RangeError("locale must contain localize property");if(!Q.formatLong)throw new RangeError("locale must contain formatLong property");var q=(0,o.Z)(n);if(!m(q))throw new RangeError("Invalid time value");var We=(0,ve.Z)(q),xe=b(q,We),ke={firstWeekContainsDate:ee,weekStartsOn:te,locale:Q,_originalDate:q},Ee=Ze.match(_e).map(function(M){var R=M[0];if(R==="p"||R==="P"){var G=me[R];return G(M,Q.formatLong)}return M}).join("").match(Oe).map(function(M){if(M==="''")return"'";var R=M[0];if(R==="'")return Pe(M);var G=le[R];if(G)return!(e!=null&&e.useAdditionalWeekYearTokens)&&be(M)&&oe(M,t,String(n)),!(e!=null&&e.useAdditionalDayOfYearTokens)&&we(M)&&oe(M,t,String(n)),G(xe,M,Q.localize,ke);if(R.match(Me))throw new RangeError("Format string contains an unescaped latin alphabet character `"+R+"`");return M}).join("");return Ee}function Pe(n){var t=n.match(pe);return t?t[1].replace(Ce,"'"):n}},39446:function(D,g,s){s.d(g,{Z:function(){return d}});function d(l){return function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=h.width?String(h.width):l.defaultWidth,m=l.formats[o]||l.formats[l.defaultWidth];return m}}},56565:function(D,g,s){s.d(g,{Z:function(){return d}});function d(l){return function(h,o){var m=o!=null&&o.context?String(o.context):"standalone",c;if(m==="formatting"&&l.formattingValues){var f=l.defaultFormattingWidth||l.defaultWidth,b=o!=null&&o.width?String(o.width):f;c=l.formattingValues[b]||l.formattingValues[f]}else{var T=l.defaultWidth,O=o!=null&&o.width?String(o.width):l.defaultWidth;c=l.values[O]||l.values[T]}var w=l.argumentCallback?l.argumentCallback(h):h;return c[w]}}},29450:function(D,g,s){s.d(g,{Z:function(){return d}});function d(o){return function(m){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=c.width,b=f&&o.matchPatterns[f]||o.matchPatterns[o.defaultMatchWidth],T=m.match(b);if(!T)return null;var O=T[0],w=f&&o.parsePatterns[f]||o.parsePatterns[o.defaultParseWidth],_=Array.isArray(w)?h(w,function(W){return W.test(O)}):l(w,function(W){return W.test(O)}),y;y=o.valueCallback?o.valueCallback(_):_,y=c.valueCallback?c.valueCallback(y):y;var p=m.slice(O.length);return{value:y,rest:p}}}function l(o,m){for(var c in o)if(o.hasOwnProperty(c)&&m(o[c]))return c}function h(o,m){for(var c=0;c<o.length;c++)if(m(o[c]))return c}},60965:function(D,g,s){s.d(g,{Z:function(){return d}});function d(l){return function(h){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},m=h.match(l.matchPattern);if(!m)return null;var c=m[0],f=h.match(l.parsePattern);if(!f)return null;var b=l.valueCallback?l.valueCallback(f[0]):f[0];b=o.valueCallback?o.valueCallback(b):b;var T=h.slice(c.length);return{value:b,rest:T}}}},10661:function(D,g){var s={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},d=function(h,o,m){var c,f=s[h];return typeof f=="string"?c=f:o===1?c=f.one:c=f.other.replace("{{count}}",o.toString()),m!=null&&m.addSuffix?m.comparison&&m.comparison>0?"in "+c:c+" ago":c};g.Z=d},57459:function(D,g){var s={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},d=function(h,o,m,c){return s[h]};g.Z=d},52855:function(D,g,s){var d=s(56565),l={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},h={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},o={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},m={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},c={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},f={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},b=function(w,_){var y=Number(w),p=y%100;if(p>20||p<10)switch(p%10){case 1:return y+"st";case 2:return y+"nd";case 3:return y+"rd"}return y+"th"},T={ordinalNumber:b,era:(0,d.Z)({values:l,defaultWidth:"wide"}),quarter:(0,d.Z)({values:h,defaultWidth:"wide",argumentCallback:function(w){return w-1}}),month:(0,d.Z)({values:o,defaultWidth:"wide"}),day:(0,d.Z)({values:m,defaultWidth:"wide"}),dayPeriod:(0,d.Z)({values:c,defaultWidth:"wide",formattingValues:f,defaultFormattingWidth:"wide"})};g.Z=T},63614:function(D,g,s){var d=s(29450),l=s(60965),h=/^(\d+)(th|st|nd|rd)?/i,o=/\d+/i,m={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},c={any:[/^b/i,/^(a|c)/i]},f={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},b={any:[/1/i,/2/i,/3/i,/4/i]},T={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},O={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},w={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},_={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},y={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},p={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},W={ordinalNumber:(0,l.Z)({matchPattern:h,parsePattern:o,valueCallback:function(P){return parseInt(P,10)}}),era:(0,d.Z)({matchPatterns:m,defaultMatchWidth:"wide",parsePatterns:c,defaultParseWidth:"any"}),quarter:(0,d.Z)({matchPatterns:f,defaultMatchWidth:"wide",parsePatterns:b,defaultParseWidth:"any",valueCallback:function(P){return P+1}}),month:(0,d.Z)({matchPatterns:T,defaultMatchWidth:"wide",parsePatterns:O,defaultParseWidth:"any"}),day:(0,d.Z)({matchPatterns:w,defaultMatchWidth:"wide",parsePatterns:_,defaultParseWidth:"any"}),dayPeriod:(0,d.Z)({matchPatterns:y,defaultMatchWidth:"any",parsePatterns:p,defaultParseWidth:"any"})};g.Z=W},54828:function(D,g,s){s.d(g,{Z:function(){return _}});var d=s(10661),l=s(39446),h={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},o={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},m={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},c={date:(0,l.Z)({formats:h,defaultWidth:"full"}),time:(0,l.Z)({formats:o,defaultWidth:"full"}),dateTime:(0,l.Z)({formats:m,defaultWidth:"full"})},f=c,b=s(57459),T=s(52855),O=s(63614),w={code:"en-US",formatDistance:d.Z,formatLong:f,formatRelative:b.Z,localize:T.Z,match:O.Z,options:{weekStartsOn:0,firstWeekContainsDate:1}},_=w},29439:function(D,g,s){s.d(g,{Z:function(){return h}});var d=s(74512);const l=o=>(0,d.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...o,children:(0,d.jsx)("path",{d:"M24 13.3a.2.2 0 0 1-.2.2H5.74l8.239 8.239a.2.2 0 0 1 0 .282L12.14 23.86a.2.2 0 0 1-.282 0L.14 12.14a.2.2 0 0 1 0-.282L11.86.14a.2.2 0 0 1 .282 0L13.98 1.98a.2.2 0 0 1 0 .282L5.74 10.5H23.8c.11 0 .2.09.2.2v2.6Z",fill:"#212134"})}),h=l}}]);
|