@strapi/admin 4.9.1 → 4.9.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/LanguageProvider/index.js +1 -1
- 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/EditViewDataManagerProvider/reducer.js +9 -5
- package/admin/src/content-manager/components/InputUID/index.js +1 -1
- 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 +3 -2
- 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/hooks/useFetchMarketplacePlugins/utils/api.js +7 -8
- package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +5 -0
- package/admin/src/pages/HomePage/SocialLinks.js +1 -1
- package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +1 -1
- 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/pages/Roles/ListPage/components/RoleRow/index.js +12 -4
- package/admin/src/pages/SettingsPage/pages/Roles/ListPage/index.js +21 -2
- package/admin/src/translations/en.json +51 -50
- package/admin/src/translations/ru.json +51 -19
- package/build/{Admin-authenticatedApp.a168aa38.chunk.js → Admin-authenticatedApp.217db666.chunk.js} +5 -5
- package/build/{Admin_homePage.da2181fe.chunk.js → Admin_homePage.f9309c6d.chunk.js} +1 -1
- package/build/Admin_marketplace.56bc1008.chunk.js +31 -0
- package/build/{Admin_settingsPage.cb63220f.chunk.js → Admin_settingsPage.1dbfc9ce.chunk.js} +1 -1
- package/build/{admin-app.8cde5b22.chunk.js → admin-app.558af642.chunk.js} +6 -6
- package/build/admin-roles-list.329c1f63.chunk.js +31 -0
- package/build/audit-logs-settings-page.19d90bda.chunk.js +76 -0
- package/build/content-manager.d1565bfc.chunk.js +1132 -0
- package/build/content-type-builder-translation-en-json.6c8e69ab.chunk.js +1 -0
- package/build/content-type-builder.9d780e7f.chunk.js +126 -0
- package/build/en-json.cf600231.chunk.js +1 -0
- package/build/index.html +1 -1
- package/build/main.ef8db4a2.js +2280 -0
- package/build/ru-json.e0662702.chunk.js +1 -0
- package/build/{runtime~main.03cdff31.js → runtime~main.3a92d953.js} +2 -2
- package/build/users-roles-settings-page.2f85dcec.chunk.js +30 -0
- 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/package.json +10 -10
- package/webpack.config.js +5 -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/9347.058ddb22.chunk.js +0 -1
- package/build/Admin_marketplace.99e25059.chunk.js +0 -31
- package/build/admin-roles-list.97e198f9.chunk.js +0 -31
- package/build/audit-logs-settings-page.ca9a3c46.chunk.js +0 -76
- package/build/content-manager.ba088a66.chunk.js +0 -1132
- package/build/content-type-builder-translation-en-json.e577d595.chunk.js +0 -1
- package/build/content-type-builder.fef159db.chunk.js +0 -126
- package/build/en-json.b052667a.chunk.js +0 -1
- package/build/main.0df5f5ca.js +0 -2280
- package/build/ru-json.6a01cea6.chunk.js +0 -1
- package/build/users-roles-settings-page.9359e4d1.chunk.js +0 -30
- /package/admin/src/{content-manager/components/InputUID/useDebounce.js → hooks/useDebounce/index.js} +0 -0
|
@@ -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",
|
|
@@ -275,6 +243,39 @@
|
|
|
275
243
|
"Settings.sso.form.registration.description": "Create new user on SSO login if no account exists",
|
|
276
244
|
"Settings.sso.form.registration.label": "Auto-registration",
|
|
277
245
|
"Settings.sso.title": "Single Sign-On",
|
|
246
|
+
"Settings.tokens.Button.cancel": "Cancel",
|
|
247
|
+
"Settings.tokens.Button.regenerate": "Regenerate",
|
|
248
|
+
"Settings.tokens.ListView.headers.createdAt": "Created at",
|
|
249
|
+
"Settings.tokens.ListView.headers.description": "Description",
|
|
250
|
+
"Settings.tokens.ListView.headers.lastUsedAt": "Last used",
|
|
251
|
+
"Settings.tokens.ListView.headers.name": "Name",
|
|
252
|
+
"Settings.tokens.RegenerateDialog.title": "Regenerate token",
|
|
253
|
+
"Settings.tokens.copy.editMessage": "For security reasons, you can only see your token once.",
|
|
254
|
+
"Settings.tokens.copy.editTitle": "This token isn’t accessible anymore.",
|
|
255
|
+
"Settings.tokens.copy.lastWarning": "Make sure to copy this token, you won’t be able to see it again!",
|
|
256
|
+
"Settings.tokens.duration.30-days": "30 days",
|
|
257
|
+
"Settings.tokens.duration.7-days": "7 days",
|
|
258
|
+
"Settings.tokens.duration.90-days": "90 days",
|
|
259
|
+
"Settings.tokens.duration.expiration-date": "Expiration date",
|
|
260
|
+
"Settings.tokens.duration.unlimited": "Unlimited",
|
|
261
|
+
"Settings.tokens.form.description": "Description",
|
|
262
|
+
"Settings.tokens.form.duration": "Token duration",
|
|
263
|
+
"Settings.tokens.form.name": "Name",
|
|
264
|
+
"Settings.tokens.form.type": "Token type",
|
|
265
|
+
"Settings.tokens.notification.copied": "Token copied to clipboard.",
|
|
266
|
+
"Settings.tokens.popUpWarning.message": "Are you sure you want to regenerate this token?",
|
|
267
|
+
"Settings.tokens.regenerate": "Regenerate",
|
|
268
|
+
"Settings.tokens.types.custom": "Custom",
|
|
269
|
+
"Settings.tokens.types.full-access": "Full access",
|
|
270
|
+
"Settings.tokens.types.read-only": "Read-only",
|
|
271
|
+
"Settings.transferTokens.ListView.headers.type": "Token type",
|
|
272
|
+
"Settings.transferTokens.addFirstToken": "Add your first Transfer Token",
|
|
273
|
+
"Settings.transferTokens.addNewToken": "Add new Transfer Token",
|
|
274
|
+
"Settings.transferTokens.create": "Create new Transfer Token",
|
|
275
|
+
"Settings.transferTokens.createPage.title": "Create Transfer Token",
|
|
276
|
+
"Settings.transferTokens.description": "List of generated transfer tokens",
|
|
277
|
+
"Settings.transferTokens.emptyStateLayout": "You don’t have any content yet...",
|
|
278
|
+
"Settings.transferTokens.title": "Transfer Tokens",
|
|
278
279
|
"Settings.webhooks.create": "Create a webhook",
|
|
279
280
|
"Settings.webhooks.create.header": "Create new header",
|
|
280
281
|
"Settings.webhooks.created": "Webhook created",
|
|
@@ -370,13 +371,13 @@
|
|
|
370
371
|
"app.component.table.view": "{target} details",
|
|
371
372
|
"app.components.BlockLink.blog": "Blog",
|
|
372
373
|
"app.components.BlockLink.blog.content": "Read the latest news about Strapi and the ecosystem.",
|
|
374
|
+
"app.components.BlockLink.cloud": "Strapi Cloud",
|
|
375
|
+
"app.components.BlockLink.cloud.content": "A fully composable, and collaborative platform to boost your team velocity.",
|
|
373
376
|
"app.components.BlockLink.code": "Code examples",
|
|
374
377
|
"app.components.BlockLink.code.content": "Learn by testing real projects developed the community.",
|
|
375
378
|
"app.components.BlockLink.documentation.content": "Discover the essential concepts, guides and instructions.",
|
|
376
379
|
"app.components.BlockLink.tutorial": "Tutorials",
|
|
377
380
|
"app.components.BlockLink.tutorial.content": "Follow step-by-step instructions to use and customize Strapi.",
|
|
378
|
-
"app.components.BlockLink.cloud": "Strapi Cloud",
|
|
379
|
-
"app.components.BlockLink.cloud.content": "A fully composable, and collaborative platform to boost your team velocity.",
|
|
380
381
|
"app.components.Button.cancel": "Cancel",
|
|
381
382
|
"app.components.Button.confirm": "Confirm",
|
|
382
383
|
"app.components.Button.reset": "Reset",
|
|
@@ -864,26 +865,26 @@
|
|
|
864
865
|
"light": "Light",
|
|
865
866
|
"notification.contentType.relations.conflict": "Content type has conflicting relations",
|
|
866
867
|
"notification.default.title": "Information:",
|
|
868
|
+
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})",
|
|
869
|
+
"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.",
|
|
867
870
|
"notification.error": "An error occurred",
|
|
871
|
+
"notification.error.invalid.configuration": "You have an invalid configuration, check your server log for more information.",
|
|
868
872
|
"notification.error.layout": "Couldn't retrieve the layout",
|
|
873
|
+
"notification.error.tokennamenotunique": "Name already assigned to another token",
|
|
869
874
|
"notification.form.error.fields": "The form contains some errors",
|
|
870
875
|
"notification.form.success.fields": "Changes saved",
|
|
871
876
|
"notification.link-copied": "Link copied into the clipboard",
|
|
872
877
|
"notification.permission.not-allowed-read": "You are not allowed to see this document",
|
|
878
|
+
"notification.success.apitokencreated": "API Token successfully created",
|
|
879
|
+
"notification.success.apitokenedited": "API Token successfully edited",
|
|
873
880
|
"notification.success.delete": "The item has been deleted",
|
|
874
881
|
"notification.success.saved": "Saved",
|
|
875
882
|
"notification.success.title": "Success:",
|
|
876
|
-
"notification.success.apitokencreated": "API Token successfully created",
|
|
877
|
-
"notification.success.apitokenedited": "API Token successfully edited",
|
|
878
883
|
"notification.success.transfertokencreated": "Transfer Token successfully created",
|
|
879
884
|
"notification.success.transfertokenedited": "Transfer Token successfully edited",
|
|
880
|
-
"notification.error.tokennamenotunique": "Name already assigned to another token",
|
|
881
|
-
"notification.error.invalid.configuration": "You have an invalid configuration, check your server log for more information.",
|
|
882
885
|
"notification.version.update.message": "A new version of Strapi is available!",
|
|
883
|
-
"notification.warning.title": "Warning:",
|
|
884
886
|
"notification.warning.404": "404 - Not found",
|
|
885
|
-
"notification.
|
|
886
|
-
"notification.ee.warning.at-seat-limit.title": "{licenseLimitStatus, select, OVER_LIMIT {Over} AT_LIMIT {At}} seat limit ({currentUserCount}/{permittedSeats})",
|
|
887
|
+
"notification.warning.title": "Warning:",
|
|
887
888
|
"or": "OR",
|
|
888
889
|
"request.error.model.unknown": "This model doesn't exist",
|
|
889
890
|
"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": "Внимание:",
|
package/build/{Admin-authenticatedApp.a168aa38.chunk.js → Admin-authenticatedApp.217db666.chunk.js}
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(Q,S,n){n.r(S),n.d(S,{default:function(){return Kt}});var e=n(32735),s=n(43383),O=n(20108),C=n(33795),b=n.n(C),I={i8:"4.9.
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[801],{29761:function(Q,S,n){n.r(S),n.d(S,{default:function(){return Kt}});var e=n(32735),s=n(43383),O=n(20108),C=n(33795),b=n.n(C),I={i8:"4.9.2"},T=n(67927),f=n(53038),y=n(15062),N=n(74506),$=n(51968),z=n(88311),se=n.n(z),xe=n(58107),M=n(8471),be=n(60216),r=n.n(be),B=n(67879),m=n(87933),re=n(71933),V=n(67563),De=n(50563),P=n(72850),H=n(41415),ie=n(35331);const ke=(0,M.ZP)(m.k)`
|
|
2
2
|
position: fixed;
|
|
3
3
|
z-index: 4;
|
|
4
4
|
inset: 0;
|
|
5
5
|
/* this is theme.colors.neutral800 with opacity */
|
|
6
6
|
background: ${({theme:t})=>`${t.colors.neutral800}1F`};
|
|
7
|
-
`,le=({onClose:t,onSkip:a,children:o,hideSkip:i})=>{const{formatMessage:p}=(0,B.Z)();return e.createElement(re.h,null,e.createElement(
|
|
7
|
+
`,le=({onClose:t,onSkip:a,children:o,hideSkip:i})=>{const{formatMessage:p}=(0,B.Z)();return e.createElement(re.h,null,e.createElement(ke,{onClick:t,padding:8,justifyContent:"center"},e.createElement(V.i,{onEscape:t},e.createElement(m.k,{direction:"column",alignItems:"stretch",background:"neutral0",width:(0,s.Q1)(660),shadow:"popupShadow",hasRadius:!0,padding:4,gap:8,role:"dialog","aria-modal":!0,onClick:d=>d.stopPropagation()},e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(De.h,{onClick:t,"aria-label":p({id:"app.utils.close-label",defaultMessage:"Close"}),icon:e.createElement(ie.Z,null)})),e.createElement(P.x,{paddingLeft:7,paddingRight:7,paddingBottom:i?8:0},o),!i&&e.createElement(m.k,{justifyContent:"flex-end"},e.createElement(H.z,{variant:"tertiary",onClick:a},p({id:"app.components.GuidedTour.skip",defaultMessage:"Skip the tour"})))))))};le.propTypes={children:r().node.isRequired,onClose:r().func.isRequired,onSkip:r().func.isRequired,hideSkip:r().bool.isRequired};var Ze=le,ce=n(97889);const de={stepContent:null,sectionIndex:null,stepIndex:null,hasSectionAfter:!1,hasStepAfter:!1};var Be=(t=de,a)=>(0,ce.ZP)(t,o=>{switch(a.type){case"UPDATE_MODAL":{o.stepContent=a.content,o.sectionIndex=a.newSectionIndex,o.stepIndex=a.newStepIndex,o.hasSectionAfter=a.newHasSectionAfter,o.hasStepAfter=a.newHasStepAfter;break}default:return o}}),E=n(49372),ue=n(8482);const We=M.ZP.li`
|
|
8
8
|
list-style: disc;
|
|
9
9
|
&::marker {
|
|
10
10
|
color: ${({theme:t})=>t.colors.neutral800};
|
|
11
11
|
}
|
|
12
|
-
`,pe=({id:t,defaultMessage:a})=>{const{formatMessage:o}=(0,B.Z)();return e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:4,paddingBottom:6},o({id:t,defaultMessage:a},{documentationLink:Ge,b:Ne,p:Ue,light:Fe,ul:je,li:Qe}))},Ge=t=>e.createElement(E.Z,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},t),Ne=t=>e.createElement(E.Z,{fontWeight:"semiBold"},t),Ue=t=>e.createElement(E.Z,null,t),Fe=t=>e.createElement(E.Z,{textColor:"neutral600"},t),je=t=>e.createElement(P.x,{paddingLeft:6},e.createElement("ul",null,t)),Qe=t=>e.createElement(We,null,t);pe.propTypes={id:r().string.isRequired,defaultMessage:r().string.isRequired};var $e=pe,Y=n(78024),ze=n(14317);const J=({number:t,last:a,type:o})=>e.createElement(P.x,{paddingTop:3,paddingBottom:a?0:3},e.createElement(ze.Z,{number:t,type:o}));J.defaultProps={number:void 0,last:!1,type:""},J.propTypes={number:r().number,last:r().bool,type:r().string};var me=J,W=n(23678);const w=({title:t,content:a,cta:o,onCtaClick:i,sectionIndex:p,stepIndex:d,hasSectionAfter:h})=>{const{formatMessage:u}=(0,B.Z)(),g=p>0,c=d>0,v=p+1;return e.createElement(e.Fragment,null,e.createElement(m.k,{alignItems:"stretch"},e.createElement(m.k,{marginRight:8,justifyContent:"center",minWidth:(0,s.Q1)(30)},g&&e.createElement(Y.Z,{type:W.hx,minHeight:(0,s.Q1)(24)})),e.createElement(E.Z,{variant:"sigma",textColor:"primary600"},u({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(m.k,null,e.createElement(m.k,{marginRight:8,minWidth:(0,s.Q1)(30)},e.createElement(me,{number:p+1,type:c?W.hx:W.lW})),e.createElement(E.Z,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},u(t))),e.createElement(m.k,{alignItems:"stretch"},e.createElement(m.k,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,s.Q1)(30)},h&&e.createElement(e.Fragment,null,e.createElement(Y.Z,{type:W.hx}),c&&e.createElement(me,{number:v+1,type:W.lW,last:!0}))),e.createElement(P.x,null,e.createElement($e,{...a}),o&&(o.target?e.createElement(s.Qj,{endIcon:e.createElement(ue.Z,null),onClick:i,to:o.target},u(o.title)):e.createElement(H.z,{endIcon:e.createElement(ue.Z,null),onClick:i},u(o.title))))),c&&h&&e.createElement(P.x,{paddingTop:3},e.createElement(m.k,{marginRight:8,justifyContent:"center",width:(0,s.Q1)(30)},e.createElement(Y.Z,{type:W.hx,minHeight:(0,s.Q1)(24)}))))};w.defaultProps={currentStep:null,cta:void 0},w.propTypes={sectionIndex:r().number.isRequired,stepIndex:r().number.isRequired,hasSectionAfter:r().bool.isRequired,content:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired}).isRequired,cta:r().shape({target:r().string,title:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired})}),currentStep:r().string,onCtaClick:r().func.isRequired,title:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired}).isRequired};var Ke=w,Ve=()=>{const{currentStep:t,guidedTourState:a,setCurrentStep:o,setStepState:i,isGuidedTourVisible:p,setSkipped:d}=(0,s.c1)(),[h,u]=(0,e.useState)(t),[{stepContent:g,sectionIndex:c,stepIndex:v,hasSectionAfter:D,hasStepAfter:L},F]=(0,e.useReducer)(Be,de),{trackUsage:G}=(0,s.rS)();(0,e.useEffect)(()=>{if(!t){u(!1);return}const[
|
|
12
|
+
`,pe=({id:t,defaultMessage:a})=>{const{formatMessage:o}=(0,B.Z)();return e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:4,paddingBottom:6},o({id:t,defaultMessage:a},{documentationLink:Ge,b:Ne,p:Ue,light:Fe,ul:je,li:Qe}))},Ge=t=>e.createElement(E.Z,{as:"a",textColor:"primary600",target:"_blank",rel:"noopener noreferrer",href:"https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters"},t),Ne=t=>e.createElement(E.Z,{fontWeight:"semiBold"},t),Ue=t=>e.createElement(E.Z,null,t),Fe=t=>e.createElement(E.Z,{textColor:"neutral600"},t),je=t=>e.createElement(P.x,{paddingLeft:6},e.createElement("ul",null,t)),Qe=t=>e.createElement(We,null,t);pe.propTypes={id:r().string.isRequired,defaultMessage:r().string.isRequired};var $e=pe,Y=n(78024),ze=n(14317);const J=({number:t,last:a,type:o})=>e.createElement(P.x,{paddingTop:3,paddingBottom:a?0:3},e.createElement(ze.Z,{number:t,type:o}));J.defaultProps={number:void 0,last:!1,type:""},J.propTypes={number:r().number,last:r().bool,type:r().string};var me=J,W=n(23678);const w=({title:t,content:a,cta:o,onCtaClick:i,sectionIndex:p,stepIndex:d,hasSectionAfter:h})=>{const{formatMessage:u}=(0,B.Z)(),g=p>0,c=d>0,v=p+1;return e.createElement(e.Fragment,null,e.createElement(m.k,{alignItems:"stretch"},e.createElement(m.k,{marginRight:8,justifyContent:"center",minWidth:(0,s.Q1)(30)},g&&e.createElement(Y.Z,{type:W.hx,minHeight:(0,s.Q1)(24)})),e.createElement(E.Z,{variant:"sigma",textColor:"primary600"},u({id:"app.components.GuidedTour.title",defaultMessage:"3 steps to get started"}))),e.createElement(m.k,null,e.createElement(m.k,{marginRight:8,minWidth:(0,s.Q1)(30)},e.createElement(me,{number:p+1,type:c?W.hx:W.lW})),e.createElement(E.Z,{variant:"alpha",fontWeight:"bold",textColor:"neutral800",as:"h3",id:"title"},u(t))),e.createElement(m.k,{alignItems:"stretch"},e.createElement(m.k,{marginRight:8,direction:"column",justifyContent:"center",minWidth:(0,s.Q1)(30)},h&&e.createElement(e.Fragment,null,e.createElement(Y.Z,{type:W.hx}),c&&e.createElement(me,{number:v+1,type:W.lW,last:!0}))),e.createElement(P.x,null,e.createElement($e,{...a}),o&&(o.target?e.createElement(s.Qj,{endIcon:e.createElement(ue.Z,null),onClick:i,to:o.target},u(o.title)):e.createElement(H.z,{endIcon:e.createElement(ue.Z,null),onClick:i},u(o.title))))),c&&h&&e.createElement(P.x,{paddingTop:3},e.createElement(m.k,{marginRight:8,justifyContent:"center",width:(0,s.Q1)(30)},e.createElement(Y.Z,{type:W.hx,minHeight:(0,s.Q1)(24)}))))};w.defaultProps={currentStep:null,cta:void 0},w.propTypes={sectionIndex:r().number.isRequired,stepIndex:r().number.isRequired,hasSectionAfter:r().bool.isRequired,content:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired}).isRequired,cta:r().shape({target:r().string,title:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired})}),currentStep:r().string,onCtaClick:r().func.isRequired,title:r().shape({id:r().string.isRequired,defaultMessage:r().string.isRequired}).isRequired};var Ke=w,Ve=()=>{const{currentStep:t,guidedTourState:a,setCurrentStep:o,setStepState:i,isGuidedTourVisible:p,setSkipped:d}=(0,s.c1)(),[h,u]=(0,e.useState)(t),[{stepContent:g,sectionIndex:c,stepIndex:v,hasSectionAfter:D,hasStepAfter:L},F]=(0,e.useReducer)(Be,de),{trackUsage:G}=(0,s.rS)();(0,e.useEffect)(()=>{if(!t){u(!1);return}const[k]=se()(a,t);u(!k&&p)},[t,a,p]),(0,e.useEffect)(()=>{if(t){const[k]=se()(xe.Z,t),x=Object.keys(a),[A,l]=t.split("."),Z=x.indexOf(A),K=Object.keys(a[A]).indexOf(l),ne=Z<x.length-1,ae=K<Object.keys(a[A]).length-1;F({type:"UPDATE_MODAL",content:k,newSectionIndex:Z,newStepIndex:K,newHasSectionAfter:ne,newHasStepAfter:ae})}},[t,a]);const R=()=>{i(t,!0),G(g.trackingEvent),o(null)},j=()=>{d(!0),o(null),G("didSkipGuidedtour")};return h&&g?e.createElement(Ze,{hideSkip:!L&&!D,onSkip:j,onClose:R},e.createElement(Ke,{...g,onCtaClick:R,currentStep:t,sectionIndex:c,stepIndex:v,hasSectionAfter:D})):null},U=n(14911),ge=n(9026),He=n(15300),Ye=n(61450),Je=n(1897),X=n(78464),he=n(42889),we=n(25390),Xe=n(64838),qe=n(9371),_e=n(73165),et=n(92967);const tt=(0,M.ZP)(P.x)`
|
|
13
13
|
width: ${150/16}rem;
|
|
14
14
|
position: absolute;
|
|
15
15
|
bottom: ${({theme:t})=>t.spaces[9]};
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
fill: ${({theme:t})=>t.colors.danger600};
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
`,Ee=({generalSectionLinks:t,pluginsSectionLinks:a})=>{const o=(0,e.useRef)(),[i,p]=(0,e.useState)(!1),{logos:{menu:d}}=(0,T.um)(),[h,u]=(0,s.Yw)("navbar-condensed",!1),{userDisplayName:g}=(0,s.QI)(),{formatMessage:c}=(0,B.Z)(),{trackUsage:v}=(0,s.rS)(),{pathname:D}=(0,f.TH)(),L=(0,f.k6)(),{post:F}=(0,s.tg)(),G=g.split(" ").map(l=>l.substring(0,1)).join("").substring(0,2),R=()=>p(l=>!l),j=async()=>{await F("/admin/logout"),s.I8.clearAppStorage(),R(),L.push("/auth/login")},
|
|
35
|
+
`,Ee=({generalSectionLinks:t,pluginsSectionLinks:a})=>{const o=(0,e.useRef)(),[i,p]=(0,e.useState)(!1),{logos:{menu:d}}=(0,T.um)(),[h,u]=(0,s.Yw)("navbar-condensed",!1),{userDisplayName:g}=(0,s.QI)(),{formatMessage:c}=(0,B.Z)(),{trackUsage:v}=(0,s.rS)(),{pathname:D}=(0,f.TH)(),L=(0,f.k6)(),{post:F}=(0,s.tg)(),G=g.split(" ").map(l=>l.substring(0,1)).join("").substring(0,2),R=()=>p(l=>!l),j=async()=>{await F("/admin/logout"),s.I8.clearAppStorage(),R(),L.push("/auth/login")},k=l=>{!l.currentTarget.contains(l.relatedTarget)&&l.relatedTarget?.parentElement?.id!=="main-nav-user-button"&&p(!1)},x=(l=null)=>{v("willNavigate",{from:D,to:l})},A=c({id:"app.components.LeftMenu.navbrand.title",defaultMessage:"Strapi Dashboard"});return e.createElement(He.$,{condensed:h},e.createElement(Ye.D,{as:U.OL,workplace:c({id:"app.components.LeftMenu.navbrand.workplace",defaultMessage:"Workplace"}),title:A,icon:e.createElement("img",{src:d.custom||d.default,alt:c({id:"app.components.LeftMenu.logo.alt",defaultMessage:"Application logo"})})}),e.createElement(ge.i,null),e.createElement(Je._,null,e.createElement(X.O,{as:U.OL,to:"/content-manager",icon:e.createElement(_e.Z,null),onClick:()=>x("/content-manager")},c({id:"global.content-manager",defaultMessage:"Content manager"})),a.length>0?e.createElement(he.y,{label:c({id:"app.components.LeftMenu.plugins",defaultMessage:"Plugins"})},a.map(l=>{const Z=l.icon;return e.createElement(X.O,{as:U.OL,to:l.to,key:l.to,icon:e.createElement(Z,null),onClick:()=>x(l.to)},c(l.intlLabel))})):null,t.length>0?e.createElement(he.y,{label:c({id:"app.components.LeftMenu.general",defaultMessage:"General"})},t.map(l=>{const Z=l.icon;return e.createElement(X.O,{as:U.OL,badgeContent:l.notificationsCount>0&&l.notificationsCount.toString()||void 0,to:l.to,key:l.to,icon:e.createElement(Z,null),onClick:()=>x(l.to)},c(l.intlLabel))})):null),e.createElement(we.q,null,e.createElement(Xe.r,{id:"main-nav-user-button",ref:o,onClick:R,initials:G},g),i&&e.createElement(tt,{onBlur:k,padding:1,shadow:"tableShadow",background:"neutral0",hasRadius:!0},e.createElement(V.i,{onEscape:R},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:0},e.createElement(fe,{tabIndex:0,onClick:R,to:"/me"},e.createElement(E.Z,null,c({id:"global.profile",defaultMessage:"Profile"}))),e.createElement(fe,{tabIndex:0,onClick:j,logout:"logout",to:"/auth/login"},e.createElement(E.Z,{textColor:"danger600"},c({id:"app.components.LeftMenu.logout",defaultMessage:"Logout"})),e.createElement(et.Z,null))))),e.createElement(qe.w,{onClick:()=>u(l=>!l)},c(h?{id:"app.components.LeftMenu.expand",defaultMessage:"Expand the navbar"}:{id:"app.components.LeftMenu.collapse",defaultMessage:"Collapse the navbar"}))))};Ee.propTypes={generalSectionLinks:r().array.isRequired,pluginsSectionLinks:r().array.isRequired};var nt=Ee,at=n(10728);const ot=(0,M.ZP)(P.x)`
|
|
36
36
|
flex: 1;
|
|
37
37
|
`,ye=({children:t,sideNav:a})=>{const{formatMessage:o}=(0,B.Z)();return e.createElement(P.x,{background:"neutral100"},e.createElement(at.z,null,o({id:"skipToContent",defaultMessage:"Skip to content"})),e.createElement(m.k,{alignItems:"flex-start"},a,e.createElement(ot,null,t)))};ye.propTypes={children:r().node.isRequired,sideNav:r().node.isRequired};var st=ye,q=n(8997),rt=n(26648),_=n(99140),it=n(28351),lt=n(3685),ct=n(45323),dt=n(29685),ut=n(2438),pt=n.p+"19eb2dfcf2603eb55733.png",mt=n(37272),gt=n(78429);const ht=[{label:{id:"app.components.Onboarding.link.build-content",defaultMessage:"Build a content architecture"},href:"https://www.youtube.com/watch?v=G9GjN0RxhkE",duration:"5:48"},{label:{id:"app.components.Onboarding.link.manage-content",defaultMessage:"Add & manage content"},href:"https://www.youtube.com/watch?v=DEZw4KbybAI",duration:"3:18"},{label:{id:"app.components.Onboarding.link.manage-media",defaultMessage:"Manage media"},href:"https://www.youtube.com/watch?v=-61MuiMQb38",duration:"3:41"}],ve={href:"https://www.youtube.com/playlist?list=PL7Q0DQYATmvidz6lEmwE5nIcOAYagxWqq",label:{id:"app.components.Onboarding.link.more-videos",defaultMessage:"Watch more videos"}},ft=[{label:{id:"global.documentation",defaultMessage:"documentation"},href:"https://docs.strapi.io",icon:mt.Z},{label:{id:"app.static.links.cheatsheet",defaultMessage:"cheatsheet"},href:"https://strapi-showcase.s3-us-west-2.amazonaws.com/CheatSheet.pdf",icon:gt.Z}],Et=(0,M.ZP)(H.z)`
|
|
38
38
|
border-radius: 50%;
|
|
@@ -76,4 +76,4 @@
|
|
|
76
76
|
:hover {
|
|
77
77
|
text-decoration: underline;
|
|
78
78
|
}
|
|
79
|
-
`;var Tt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:i}=(0,B.Z)(),{communityEdition:p}=(0,s.QI)(),d=()=>{o(u=>!u)},h=[...ft,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:ct.Z,href:p?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(P.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(Et,{"aria-label":i(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:d,ref:t},e.createElement(_.J,{as:a?ie.Z:dt.Z,color:"buttonNeutral0"})),a&&e.createElement(re.h,null,e.createElement(it.M.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(V.i,{onEscape:d},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(Ce,{fontWeight:"bold"},i({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(Te,{as:"a",href:ve.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},i(ve.label))),e.createElement(ge.i,null),ht.map(({href:u,duration:g,label:c},v)=>e.createElement(vt,{as:"a",href:u,target:"_blank",rel:"noreferrer noopener",key:u,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(P.x,{paddingRight:5},e.createElement(E.Z,{textColor:"neutral200",variant:"alpha"},v+1)),e.createElement(P.x,{position:"relative"},e.createElement(Ct,{src:pt,alt:""}),e.createElement(yt,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(_.J,{as:ut.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(E.Z,{fontWeight:"bold"},i(c)),e.createElement(lt.T,null,":"),e.createElement(E.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:u,href:g,icon:c})=>e.createElement(m.k,{gap:3,key:g},e.createElement(_.J,{as:c,color:"primary600"}),e.createElement(Te,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},i(u)))))))))};const Mt=(0,e.lazy)(()=>Promise.all([n.e(9347),n.e(462),n.e(1657),n.e(994)]).then(n.bind(n,58153))),Pt=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,55129))),St=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),It=(0,e.lazy)(()=>Promise.all([n.e(9347),n.e(5516)]).then(n.bind(n,42052))),Me=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),Rt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),At=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),Pe=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,74750))),Ot=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,y.I0)(),o=(0,y.v9)(i=>i.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:rt.e}))},[o])};var Lt=()=>{Ot();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,T.H9)(),{menu:i}=(0,s.j1)(),{showTutorials:p}=(0,T.um)(),d=(0,e.useMemo)(()=>i.filter(h=>h.Component).map(({to:h,Component:u,exact:g})=>(0,q.ot)(u,h,g)),[i]);return t?e.createElement(s.dO,null):e.createElement(N.DndProvider,{backend:$.PD},e.createElement(st,{sideNav:e.createElement(nt,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(f.rs,null,e.createElement(f.AW,{path:"/",component:Pt,exact:!0}),e.createElement(f.AW,{path:"/me",component:At,exact:!0}),e.createElement(f.AW,{path:"/content-manager",component:Mt}),d,e.createElement(f.AW,{path:"/settings/:settingId",component:Pe}),e.createElement(f.AW,{path:"/settings",component:Pe,exact:!0}),e.createElement(f.AW,{path:"/marketplace"},e.createElement(It,null)),e.createElement(f.AW,{path:"/list-plugins",exact:!0},e.createElement(St,null)),e.createElement(f.AW,{path:"/404",component:Me}),e.createElement(f.AW,{path:"/500",component:Rt}),e.createElement(f.AW,{path:"",component:Me}))),e.createElement(Ve,null),p&&e.createElement(Tt,null)))},xt=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),bt=n(3040),Dt=n.n(bt);const Se={plugins:null};var Zt=(t=Se,a)=>(0,ce.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{Dt()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),kt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(Zt,Se,()=>xt(t)),i=(0,e.useRef)(d=>{o({type:"SET_PLUGIN_READY",pluginId:d})});if(Object.keys(a).some(d=>a[d].isReady===!1)){const d=Object.keys(a).reduce((h,u)=>{const g=a[u].initializer;if(g){const c=a[u].pluginId;h.push(e.createElement(g,{key:c,setPlugin:i.current}))}return h},[]);return e.createElement(e.Fragment,null,d,e.createElement(s.dO,null))}return e.createElement(Lt,null)},Ie=n(17367);const Bt=()=>({type:Ie.l}),Wt=t=>({type:Ie.m,permissions:t}),Re=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:i}=(0,y.v9)(d=>d.rbacProvider),p=(0,y.I0)();return(0,e.useEffect)(()=>(p(Wt(a)),()=>{p(Bt())}),[a,p]),i?e.createElement(s.oL.Provider,{value:{allPermissions:i,refetchPermissions:o}},t):e.createElement(s.dO,null)};Re.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Gt=Re,Nt=n(84306),Ut=n(54770),ee=n.n(Ut),Ae=(t,a)=>!ee().valid(t)||!ee().valid(a)?!1:ee().lt(t,a);const Oe=I.i8,Ft=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:te}=(0,s.tg)(),jt=async t=>{try{const{data:{tag_name:a}}=await Nt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return Ae(Oe,a)&&Ft&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${a}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),a}catch{return Oe}},Qt=async()=>{try{const{data:t,headers:a}=await te("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},$t=async()=>{try{const{data:t,headers:a}=await te("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},zt=async()=>{try{const{data:{data:{roles:t}}}=await te("/admin/users/me");return t}catch(t){throw new Error(t)}},Le=I.i8;var Kt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=(0,e.useRef)(t),i=s.I8.getUserInfo(),p=b()(i,"username")||(0,q.Pp)(i.firstname,i.lastname),[d,h]=(0,e.useState)(p),[u,g]=(0,e.useState)(null),{showReleaseNotification:c}=(0,T.um)(),[{data:v,status:D},{data:L,isLoading:F},{data:G,status:R,refetch:j,isFetched:Z,isFetching:x},{data:A}]=(0,O.useQueries)([{queryKey:"app-infos",queryFn:Qt},{queryKey:"strapi-release",queryFn:()=>jt(a),enabled:c,initialData:Le},{queryKey:"admin-users-permission",queryFn:$t,initialData:[]},{queryKey:"user-roles",queryFn:zt}]),l=(0,e.useMemo)(()=>Ae(Le,L),[L]);(0,e.useEffect)(()=>{A&&A.find(({code:oe})=>oe==="strapi-super-admin")&&v?.autoReload&&o.current(!0)},[A,v]),(0,e.useEffect)(()=>{(async()=>{const oe=await(0,q.Qy)(i);g(oe)})()},[i]);const K=F||(x&&Z||D==="loading"||R==="loading"),ne=(0,e.useMemo)(()=>({...v,userId:u,latestStrapiReleaseTag:L,setUserDisplayName:h,shouldUpdateStrapi:l,userDisplayName:d}),[v,L,l,d,u]);return K?e.createElement(s.dO,null):D==="error"?e.createElement("div",null,"error..."):e.createElement(s.NY.Provider,{value:ne},e.createElement(Gt,{permissions:G,refetchPermissions:j},e.createElement(kt,null)))}},78024:function(Q,S,n){var e=n(32735),s=n(60216),O=n.n(s),C=n(43383),b=n(72850),I=n(23678);const T=({type:f,...y})=>e.createElement(b.x,{width:(0,C.Q1)(2),height:"100%",background:f===I.VM?"neutral300":"primary500",hasRadius:!0,...y});T.defaultProps={type:I.VM},T.propTypes={type:O().oneOf([I.lW,I.hx,I.VM])},S.Z=T},14317:function(Q,S,n){var e=n(32735),s=n(60216),O=n.n(s),C=n(43383),b=n(87933),I=n(99140),T=n(49372),f=n(66456),y=n(23678);const N=({type:$,number:z})=>$===y.hx?e.createElement(b.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(I.J,{as:f.Z,"aria-hidden":!0,width:(0,C.Q1)(16),color:"neutral0"})):$===y.lW?e.createElement(b.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(T.Z,{fontWeight:"semiBold",textColor:"neutral0"},z)):e.createElement(b.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(T.Z,{fontWeight:"semiBold",textColor:"neutral600"},z));N.defaultProps={number:void 0,type:y.VM},N.propTypes={number:O().number,type:O().oneOf([y.lW,y.hx,y.VM])},S.Z=N},23678:function(Q,S,n){n.d(S,{VM:function(){return O},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",O="isNotDone"},58107:function(Q,S){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};S.Z=n}}]);
|
|
79
|
+
`;var Tt=()=>{const t=(0,e.useRef)(),[a,o]=(0,e.useState)(!1),{formatMessage:i}=(0,B.Z)(),{communityEdition:p}=(0,s.QI)(),d=()=>{o(u=>!u)},h=[...ft,{label:{id:"Settings.application.get-help",defaultMessage:"Get help"},icon:ct.Z,href:p?"https://discord.strapi.io":"https://support.strapi.io/support/home"}];return e.createElement(P.x,{as:"aside",position:"fixed",bottom:2,right:2},e.createElement(Et,{"aria-label":i(a?{id:"app.components.Onboarding.help.button-close",defaultMessage:"Close help menu"}:{id:"app.components.Onboarding.help.button",defaultMessage:"Open help menu"}),onClick:d,ref:t},e.createElement(_.J,{as:a?ie.Z:dt.Z,color:"buttonNeutral0"})),a&&e.createElement(re.h,null,e.createElement(it.M.Content,{padding:0,source:t,placement:"top-end",spacing:12},e.createElement(V.i,{onEscape:d},e.createElement(m.k,{justifyContent:"space-between",paddingBottom:5,paddingRight:6,paddingLeft:6,paddingTop:6},e.createElement(Ce,{fontWeight:"bold"},i({id:"app.components.Onboarding.title",defaultMessage:"Get started videos"})),e.createElement(Te,{as:"a",href:ve.href,target:"_blank",rel:"noreferrer noopener",variant:"pi",textColor:"primary600"},i(ve.label))),e.createElement(ge.i,null),ht.map(({href:u,duration:g,label:c},v)=>e.createElement(vt,{as:"a",href:u,target:"_blank",rel:"noreferrer noopener",key:u,hasRadius:!0,paddingTop:4,paddingBottom:4,paddingLeft:6,paddingRight:11},e.createElement(P.x,{paddingRight:5},e.createElement(E.Z,{textColor:"neutral200",variant:"alpha"},v+1)),e.createElement(P.x,{position:"relative"},e.createElement(Ct,{src:pt,alt:""}),e.createElement(yt,{position:"absolute",top:"50%",left:"50%",background:"primary600",borderRadius:"50%",justifyContent:"center",width:6,height:6},e.createElement(_.J,{as:ut.Z,color:"buttonNeutral0",width:3,height:3}))),e.createElement(m.k,{direction:"column",alignItems:"start",paddingLeft:4},e.createElement(E.Z,{fontWeight:"bold"},i(c)),e.createElement(lt.T,null,":"),e.createElement(E.Z,{textColor:"neutral600",variant:"pi"},g)))),e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:2,paddingLeft:5,paddingTop:2,paddingBottom:5},h.map(({label:u,href:g,icon:c})=>e.createElement(m.k,{gap:3,key:g},e.createElement(_.J,{as:c,color:"primary600"}),e.createElement(Te,{as:"a",href:g,target:"_blank",rel:"noreferrer noopener",variant:"sigma",textColor:"primary700"},i(u)))))))))};const Mt=(0,e.lazy)(()=>Promise.all([n.e(462),n.e(1657),n.e(994)]).then(n.bind(n,30258))),Pt=(0,e.lazy)(()=>n.e(3981).then(n.bind(n,55129))),St=(0,e.lazy)(()=>n.e(3677).then(n.bind(n,15415))),It=(0,e.lazy)(()=>n.e(5516).then(n.bind(n,84538))),Me=(0,e.lazy)(()=>Promise.resolve().then(n.bind(n,53951))),Rt=(0,e.lazy)(()=>n.e(9501).then(n.bind(n,92336))),At=(0,e.lazy)(()=>n.e(9497).then(n.bind(n,9972))),Pe=(0,e.lazy)(()=>n.e(5895).then(n.bind(n,74750))),Ot=()=>{const{trackUsage:t}=(0,s.rS)(),a=(0,y.I0)(),o=(0,y.v9)(i=>i.admin_app.status);(0,e.useEffect)(()=>{o==="init"&&(t("didAccessAuthenticatedAdministration"),a({type:rt.e}))},[o])};var Lt=()=>{Ot();const{isLoading:t,generalSectionLinks:a,pluginsSectionLinks:o}=(0,T.H9)(),{menu:i}=(0,s.j1)(),{showTutorials:p}=(0,T.um)(),d=(0,e.useMemo)(()=>i.filter(h=>h.Component).map(({to:h,Component:u,exact:g})=>(0,q.ot)(u,h,g)),[i]);return t?e.createElement(s.dO,null):e.createElement(N.DndProvider,{backend:$.PD},e.createElement(st,{sideNav:e.createElement(nt,{generalSectionLinks:a,pluginsSectionLinks:o})},e.createElement(e.Suspense,{fallback:e.createElement(s.dO,null)},e.createElement(f.rs,null,e.createElement(f.AW,{path:"/",component:Pt,exact:!0}),e.createElement(f.AW,{path:"/me",component:At,exact:!0}),e.createElement(f.AW,{path:"/content-manager",component:Mt}),d,e.createElement(f.AW,{path:"/settings/:settingId",component:Pe}),e.createElement(f.AW,{path:"/settings",component:Pe,exact:!0}),e.createElement(f.AW,{path:"/marketplace"},e.createElement(It,null)),e.createElement(f.AW,{path:"/list-plugins",exact:!0},e.createElement(St,null)),e.createElement(f.AW,{path:"/404",component:Me}),e.createElement(f.AW,{path:"/500",component:Rt}),e.createElement(f.AW,{path:"",component:Me}))),e.createElement(Ve,null),p&&e.createElement(Tt,null)))},xt=t=>({plugins:Object.keys(t).reduce((a,o)=>(a[o]={...t[o]},a),{})}),bt=n(3040),Dt=n.n(bt);const Se={plugins:null};var kt=(t=Se,a)=>(0,ce.ZP)(t,o=>{switch(a.type){case"SET_PLUGIN_READY":{Dt()(o,["plugins",a.pluginId,"isReady"],!0);break}default:return o}}),Zt=()=>{const{plugins:t}=(0,s.j1)(),[{plugins:a},o]=(0,e.useReducer)(kt,Se,()=>xt(t)),i=(0,e.useRef)(d=>{o({type:"SET_PLUGIN_READY",pluginId:d})});if(Object.keys(a).some(d=>a[d].isReady===!1)){const d=Object.keys(a).reduce((h,u)=>{const g=a[u].initializer;if(g){const c=a[u].pluginId;h.push(e.createElement(g,{key:c,setPlugin:i.current}))}return h},[]);return e.createElement(e.Fragment,null,d,e.createElement(s.dO,null))}return e.createElement(Lt,null)},Ie=n(17367);const Bt=()=>({type:Ie.l}),Wt=t=>({type:Ie.m,permissions:t}),Re=({children:t,permissions:a,refetchPermissions:o})=>{const{allPermissions:i}=(0,y.v9)(d=>d.rbacProvider),p=(0,y.I0)();return(0,e.useEffect)(()=>(p(Wt(a)),()=>{p(Bt())}),[a,p]),i?e.createElement(s.oL.Provider,{value:{allPermissions:i,refetchPermissions:o}},t):e.createElement(s.dO,null)};Re.propTypes={children:r().element.isRequired,permissions:r().array.isRequired,refetchPermissions:r().func.isRequired};var Gt=Re,Nt=n(84306),Ut=n(54770),ee=n.n(Ut),Ae=(t,a)=>!ee().valid(t)||!ee().valid(a)?!1:ee().lt(t,a);const Oe=I.i8,Ft=!JSON.parse(localStorage.getItem("STRAPI_UPDATE_NOTIF")),{get:te}=(0,s.tg)(),jt=async t=>{try{const{data:{tag_name:a}}=await Nt.Z.get("https://api.github.com/repos/strapi/strapi/releases/latest");return Ae(Oe,a)&&Ft&&t({type:"info",message:{id:"notification.version.update.message"},link:{url:`https://github.com/strapi/strapi/releases/tag/${a}`,label:{id:"global.see-more"}},blockTransition:!0,onClose:()=>localStorage.setItem("STRAPI_UPDATE_NOTIF",!0)}),a}catch{return Oe}},Qt=async()=>{try{const{data:t,headers:a}=await te("/admin/information");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},$t=async()=>{try{const{data:t,headers:a}=await te("/admin/users/me/permissions");if(!a["content-type"].includes("application/json"))throw new Error("Not found");return t.data}catch(t){throw new Error(t)}},zt=async()=>{try{const{data:{data:{roles:t}}}=await te("/admin/users/me");return t}catch(t){throw new Error(t)}},Le=I.i8;var Kt=()=>{const{setGuidedTourVisibility:t}=(0,s.c1)(),a=(0,s.lm)(),o=(0,e.useRef)(t),i=s.I8.getUserInfo(),p=b()(i,"username")||(0,q.Pp)(i.firstname,i.lastname),[d,h]=(0,e.useState)(p),[u,g]=(0,e.useState)(null),{showReleaseNotification:c}=(0,T.um)(),[{data:v,status:D},{data:L,isLoading:F},{data:G,status:R,refetch:j,isFetched:k,isFetching:x},{data:A}]=(0,O.useQueries)([{queryKey:"app-infos",queryFn:Qt},{queryKey:"strapi-release",queryFn:()=>jt(a),enabled:c,initialData:Le},{queryKey:"admin-users-permission",queryFn:$t,initialData:[]},{queryKey:"user-roles",queryFn:zt}]),l=(0,e.useMemo)(()=>Ae(Le,L),[L]);(0,e.useEffect)(()=>{A&&A.find(({code:oe})=>oe==="strapi-super-admin")&&v?.autoReload&&o.current(!0)},[A,v]),(0,e.useEffect)(()=>{(async()=>{const oe=await(0,q.Qy)(i);g(oe)})()},[i]);const K=F||(x&&k||D==="loading"||R==="loading"),ne=(0,e.useMemo)(()=>({...v,userId:u,latestStrapiReleaseTag:L,setUserDisplayName:h,shouldUpdateStrapi:l,userDisplayName:d}),[v,L,l,d,u]);return K?e.createElement(s.dO,null):D==="error"?e.createElement("div",null,"error..."):e.createElement(s.NY.Provider,{value:ne},e.createElement(Gt,{permissions:G,refetchPermissions:j},e.createElement(Zt,null)))}},78024:function(Q,S,n){var e=n(32735),s=n(60216),O=n.n(s),C=n(43383),b=n(72850),I=n(23678);const T=({type:f,...y})=>e.createElement(b.x,{width:(0,C.Q1)(2),height:"100%",background:f===I.VM?"neutral300":"primary500",hasRadius:!0,...y});T.defaultProps={type:I.VM},T.propTypes={type:O().oneOf([I.lW,I.hx,I.VM])},S.Z=T},14317:function(Q,S,n){var e=n(32735),s=n(60216),O=n.n(s),C=n(43383),b=n(87933),I=n(99140),T=n(49372),f=n(66456),y=n(23678);const N=({type:$,number:z})=>$===y.hx?e.createElement(b.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(I.J,{as:f.Z,"aria-hidden":!0,width:(0,C.Q1)(16),color:"neutral0"})):$===y.lW?e.createElement(b.k,{background:"primary600",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(T.Z,{fontWeight:"semiBold",textColor:"neutral0"},z)):e.createElement(b.k,{borderColor:"neutral500",borderWidth:"1px",borderStyle:"solid",padding:2,borderRadius:"50%",width:(0,C.Q1)(30),height:(0,C.Q1)(30),justifyContent:"center"},e.createElement(T.Z,{fontWeight:"semiBold",textColor:"neutral600"},z));N.defaultProps={number:void 0,type:y.VM},N.propTypes={number:O().number,type:O().oneOf([y.lW,y.hx,y.VM])},S.Z=N},23678:function(Q,S,n){n.d(S,{VM:function(){return O},hx:function(){return s},lW:function(){return e}});const e="isActive",s="isDone",O="isNotDone"},58107:function(Q,S){const n={contentTypeBuilder:{home:{title:{id:"app.components.GuidedTour.home.CTB.title",defaultMessage:"\u{1F9E0} Build the content structure"},cta:{title:{id:"app.components.GuidedTour.home.CTB.cta.title",defaultMessage:"Go to the Content type Builder"},type:"REDIRECT",target:"/plugins/content-type-builder"},trackingEvent:"didClickGuidedTourHomepageContentTypeBuilder"},create:{title:{id:"app.components.GuidedTour.CTB.create.title",defaultMessage:"\u{1F9E0} Create a first Collection type"},content:{id:"app.components.GuidedTour.CTB.create.content",defaultMessage:"<p>Collection types help you manage several entries, Single types are suitable to manage only one entry.</p> <p>Ex: For a Blog website, Articles would be a Collection type whereas a Homepage would be a Single type.</p>"},cta:{title:{id:"app.components.GuidedTour.CTB.create.cta.title",defaultMessage:"Build a Collection type"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep1CollectionType"},success:{title:{id:"app.components.GuidedTour.CTB.success.title",defaultMessage:"Step 1: Completed \u2705"},content:{id:"app.components.GuidedTour.CTB.success.content",defaultMessage:"<p>Good going!</p><b>\u26A1\uFE0F What would you like to share with the world?</b>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didCreateGuidedTourCollectionType"}},contentManager:{home:{title:{id:"app.components.GuidedTour.home.CM.title",defaultMessage:"\u26A1\uFE0F What would you like to share with the world?"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"REDIRECT",target:"/content-manager"},trackingEvent:"didClickGuidedTourHomepageContentManager"},create:{title:{id:"app.components.GuidedTour.CM.create.title",defaultMessage:"\u26A1\uFE0F Create content"},content:{id:"app.components.GuidedTour.CM.create.content",defaultMessage:"<p>Create and manage all the content here in the Content Manager.</p><p>Ex: Taking the Blog website example further, one can write an Article, save and publish it as they like.</p><p>\u{1F4A1} Quick tip - Don't forget to hit publish on the content you create.</p>"},cta:{title:{id:"app.components.GuidedTour.create-content",defaultMessage:"Create content"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep2ContentManager"},success:{title:{id:"app.components.GuidedTour.CM.success.title",defaultMessage:"Step 2: Completed \u2705"},content:{id:"app.components.GuidedTour.CM.success.content",defaultMessage:"<p>Awesome, one last step to go!</p><b>\u{1F680} See content in action</b>"},cta:{title:{id:"app.components.GuidedTour.CM.success.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didCreateGuidedTourEntry"}},apiTokens:{home:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},cta:{title:{id:"app.components.GuidedTour.home.apiTokens.cta.title",defaultMessage:"Test the API"},type:"REDIRECT",target:"/settings/api-tokens"},trackingEvent:"didClickGuidedTourHomepageApiTokens"},create:{title:{id:"app.components.GuidedTour.apiTokens.create.title",defaultMessage:"\u{1F680} See content in action"},content:{id:"app.components.GuidedTour.apiTokens.create.content",defaultMessage:"<p>Generate an authentication token here and retrieve the content you just created.</p>"},cta:{title:{id:"app.components.GuidedTour.apiTokens.create.cta.title",defaultMessage:"Generate an API Token"},type:"CLOSE"},trackingEvent:"didClickGuidedTourStep3ApiTokens"},success:{title:{id:"app.components.GuidedTour.apiTokens.success.title",defaultMessage:"Step 3: Completed \u2705"},content:{id:"app.components.GuidedTour.apiTokens.success.content",defaultMessage:"<p>See content in action by making an HTTP request:</p><ul><li><p>To this URL: <light>https://'<'YOUR_DOMAIN'>'/api/'<'YOUR_CT'>'</light></p></li><li><p>With the header: <light>Authorization: bearer '<'YOUR_API_TOKEN'>'</light></p></li></ul><p>For more ways to interact with content, see the <documentationLink>documentation</documentationLink>.</p>"},trackingEvent:"didGenerateGuidedTourApiTokens"}}};S.Z=n}}]);
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
`,Ce=(0,d.ZP)(F.r)`
|
|
56
56
|
row-gap: ${({theme:t})=>t.spaces[2]};
|
|
57
57
|
column-gap: ${({theme:t})=>t.spaces[4]};
|
|
58
|
-
`;var we=()=>{const{formatMessage:t}=(0,p.Z)(),{communityEdition:l}=(0,r.QI)(),o=[...ke,{icon:e.createElement(D,null),link:l?"https://discord.strapi.io":"https://support.strapi.io/support/home",name:{id:"Settings.application.get-help",defaultMessage:"Get help"}}];return e.createElement(u.x,{as:"aside","aria-labelledby":"join-the-community",background:"neutral0",hasRadius:!0,paddingRight:5,paddingLeft:5,paddingTop:6,paddingBottom:6,shadow:"tableShadow"},e.createElement(u.x,{paddingBottom:7},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:5},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:3},e.createElement(y.Z,{variant:"delta",as:"h2",id:"join-the-community"},t({id:"app.components.HomePage.community",defaultMessage:"Join the community"})),e.createElement(y.Z,{textColor:"neutral600"},t({id:"app.components.HomePage.community.content",defaultMessage:"Discuss with team members, contributors and developers on different channels"}))),e.createElement(G.r,{href:"https://feedback.strapi.io/",isExternal:!0,endIcon:e.createElement(fe.Z,null)},t({id:"app.components.HomePage.roadmap",defaultMessage:"See our road map"})))),e.createElement(Ce,null,o.map(({icon:i,link:c,name:g})=>e.createElement(B.P,{col:6,s:12,key:g},e.createElement(Me,{size:"L",startIcon:i,variant:"tertiary",href:c,isExternal:!0},t(g))))))};const Ze=(0,d.ZP)(y.Z)`
|
|
58
|
+
`;var we=()=>{const{formatMessage:t}=(0,p.Z)(),{communityEdition:l}=(0,r.QI)(),o=[...ke,{icon:e.createElement(D,null),link:l?"https://discord.strapi.io":"https://support.strapi.io/support/home",name:{id:"Settings.application.get-help",defaultMessage:"Get help"}}];return e.createElement(u.x,{as:"aside","aria-labelledby":"join-the-community",background:"neutral0",hasRadius:!0,paddingRight:5,paddingLeft:5,paddingTop:6,paddingBottom:6,shadow:"tableShadow"},e.createElement(u.x,{paddingBottom:7},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:5},e.createElement(m.k,{direction:"column",alignItems:"stretch",gap:3},e.createElement(y.Z,{variant:"delta",as:"h2",id:"join-the-community"},t({id:"app.components.HomePage.community",defaultMessage:"Join the community"})),e.createElement(y.Z,{textColor:"neutral600"},t({id:"app.components.HomePage.community.content",defaultMessage:"Discuss with team members, contributors and developers on different channels"}))),e.createElement(G.r,{href:"https://feedback.strapi.io/",isExternal:!0,endIcon:e.createElement(fe.Z,null)},t({id:"app.components.HomePage.roadmap",defaultMessage:"See our road map"})))),e.createElement(Ce,null,o.map(({icon:i,link:c,name:g})=>e.createElement(B.P,{col:6,s:12,key:g.id},e.createElement(Me,{size:"L",startIcon:i,variant:"tertiary",href:c,isExternal:!0},t(g))))))};const Ze=(0,d.ZP)(y.Z)`
|
|
59
59
|
word-break: break-word;
|
|
60
60
|
`,I=({hasCreatedContentType:t,onCreateCT:l})=>{const{formatMessage:o}=(0,p.Z)();return e.createElement("div",null,e.createElement(u.x,{paddingLeft:6,paddingBottom:10},e.createElement(m.k,{direction:"column",alignItems:"flex-start",gap:5},e.createElement(y.Z,{as:"h1",variant:"alpha"},o(t?{id:"app.components.HomePage.welcome.again",defaultMessage:"Welcome \u{1F44B}"}:{id:"app.components.HomePage.welcome",defaultMessage:"Welcome on board!"})),e.createElement(Ze,{textColor:"neutral600",variant:"epsilon"},o(t?{id:"app.components.HomePage.welcomeBlock.content.again",defaultMessage:"We hope you are making progress on your project! Feel free to read the latest news about Strapi. We are giving our best to improve the product based on your feedback."}:{id:"app.components.HomePage.welcomeBlock.content",defaultMessage:"Congrats! You are logged as the first administrator. To discover the powerful features provided by Strapi, we recommend you to create your first Content type!"})),t?e.createElement(G.r,{isExternal:!0,href:"https://strapi.io/blog"},o({id:"app.components.HomePage.button.blog",defaultMessage:"See more on the blog"})):e.createElement(W.z,{size:"L",onClick:l,endIcon:e.createElement(V.Z,null)},o({id:"app.components.HomePage.create",defaultMessage:"Create your first Content type"})))))};I.defaultProps={hasCreatedContentType:void 0,onCreateCT:void 0},I.propTypes={hasCreatedContentType:s().bool,onCreateCT:s().func};var be=I;const Pe=t=>(0,a.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,a.jsx)("path",{d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z",fill:"#4945FF"}),(0,a.jsx)("path",{d:"M15.733 8c.343 0 .678.108.963.31.285.202.507.49.639.826.13.337.165.707.098 1.064a1.879 1.879 0 0 1-.474.942 1.705 1.705 0 0 1-.887.504 1.64 1.64 0 0 1-1.002-.105 1.76 1.76 0 0 1-.778-.678A1.924 1.924 0 0 1 14 9.841a1.9 1.9 0 0 1 .508-1.302c.325-.345.766-.539 1.225-.539ZM20 24h-8v-2.265h2.933v-6.23H12.8v-2.266h4.267v8.495H20V24Z",fill:"#fff"})]}),Se=Pe,Be=t=>(0,a.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,a.jsx)("path",{d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z",fill:"#D9822F"}),(0,a.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.143 18.659v2.912l6.856-3.878v-2.815L17.143 11v2.906l4.16 2.38-4.16 2.373Zm-2.287 0-4.16-2.374 4.16-2.38V11L8 14.877v2.816l6.856 3.878v-2.912Z",fill:"#fff"})]}),je=Be,Le=t=>(0,a.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,a.jsx)("path",{d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z",fill:"#66B7F1"}),(0,a.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 10.921a.5.5 0 0 1 .773-.419l8.582 5.579a.5.5 0 0 1 0 .838l-8.582 5.579a.5.5 0 0 1-.773-.42V10.922Z",fill:"#fff"})]}),Te=Le,He=t=>(0,a.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t,children:[(0,a.jsx)("path",{d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z",fill:"#9736E8"}),(0,a.jsx)("path",{d:"M18.037 11.774a28.578 28.578 0 0 0-2.948 2.706c-1.995 2.109-3.55 4.093-4.761 6.06-.289.469-.574.945-.855 1.418a9.074 9.074 0 0 0-.463 1.536c-.074.37.275.68.577.395.312-.299.587-.64.851-.985.467-.608.906-1.237 1.342-1.867 3.37.242 7.27-2.048 8.933-4.857a.196.196 0 0 0 .017-.167.183.183 0 0 0-.114-.118c-.809-.27-1.798-.44-2.207-.462-.017 0-.034-.014-.037-.035a.039.039 0 0 1 .024-.043c1.113-.58 1.924-.647 2.877-.505.07.01.134-.046.16-.114.095-.217.356-.87.537-1.404a.201.201 0 0 0-.087-.239c-.71-.384-1.656-.643-2.035-.682-.017 0-.03-.018-.034-.036a.039.039 0 0 1 .024-.043c1.1-.483 1.485-.497 2.364-.302.087.018.17-.05.19-.142.433-1.714.574-3.197.608-3.68a.21.21 0 0 0-.057-.157.177.177 0 0 0-.148-.05c-2.444.356-4.403.865-6.093 1.55-.057.022-.11.072-.11.136.144.551-.242 1.209-.845 1.703a.042.042 0 0 1-.044.018.046.046 0 0 1-.027-.043c.004-.046.158-.665.067-1.116-.013-.064-.033-.125-.084-.16a.173.173 0 0 0-.17-.014c-7.924 3.811-5.922 10.098-5.922 10.098.01.004.02.004.03.007.895-1.86 1.904-3.232 3.49-5.035 1.178-1.337 2.331-2.425 3.525-3.325.75-.565 2.448-1.738 3.51-2.144a.285.285 0 0 1 .105-.021c.097 0 .177.064.2.16a.264.264 0 0 1-.046.228l-2.344 1.731Z",fill:"#fff"})]}),Fe=He;var Re=n.p+"27d16aefee06412db90a.png",Ae=n.p+"bb3108f7fd1e6179bde1.svg",De=n.p+"bb4d0d527bdfb161bc5a.svg";const Ie=d.ZP.a`
|
|
61
61
|
text-decoration: none;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[5516],{75536:function(z,R,n){var e=n(32735);const v=(M,c)=>{const[N,D]=(0,e.useState)(M);return(0,e.useEffect)(()=>{const x=setTimeout(()=>{D(M)},c);return()=>{clearTimeout(x)}},[M,c]),N};R.Z=v},84538:function(z,R,n){n.r(R),n.d(R,{MarketPlacePage:function(){return Pe},default:function(){return Ct}});var e=n(32735),v=n(67879),M=n(74758),c=n(43383),N=n(96709),D=n(27649),x=n(17e3),L=n(91215),P=n(87933),F=n(39291),f=n(72850),ke=n(61774),V=n(3653),_=n(60216),t=n.n(_),Re=n(82055),ee=n(95489),T=n(74512);const be=a=>(0,T.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:(0,T.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13.571 18.272H10.43v-8.47H2.487a.2.2 0 0 1-.14-.343L11.858.058a.2.2 0 0 1 .282 0l9.513 9.4a.2.2 0 0 1-.14.343H13.57v8.47ZM2.2 21.095a.2.2 0 0 0-.2.2v2.424c0 .11.09.2.2.2h19.6a.2.2 0 0 0 .2-.2v-2.424a.2.2 0 0 0-.2-.2H2.2Z",fill:"#212134"})}),Ce=be,U=({isOnline:a,npmPackageType:s})=>{const{formatMessage:r}=(0,v.Z)(),{trackUsage:l}=(0,c.rS)(),i=s==="provider"?"didSubmitProvider":"didSubmitPlugin";return e.createElement(Re.T,{title:r({id:"global.marketplace",defaultMessage:"Marketplace"}),subtitle:r({id:"admin.pages.MarketPlacePage.subtitle",defaultMessage:"Get more out of Strapi"}),primaryAction:a&&e.createElement(ee.Q,{startIcon:e.createElement(Ce,null),variant:"tertiary",href:`https://market.strapi.io/submit-${s}`,onClick:()=>l(i),isExternal:!0},r({id:`admin.pages.MarketPlacePage.submit.${s}.link`,defaultMessage:`Submit ${s}`}))})};var te=U;U.defaultProps={npmPackageType:"plugin"},U.propTypes={isOnline:t().bool.isRequired,npmPackageType:t().string};var Se=n(83983),xe=()=>{const a=typeof navigator<"u"&&typeof navigator.onLine=="boolean"?navigator.onLine:!0,[s,r]=(0,e.useState)(a),l=()=>r(!0),i=()=>r(!1);return(0,e.useEffect)(()=>(window.addEventListener("online",l),window.addEventListener("offline",i),()=>{window.removeEventListener("online",l),window.removeEventListener("offline",i)}),[]),s};const Te=a=>(0,T.jsxs)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:[(0,T.jsx)("path",{d:"M0 4a4 4 0 0 1 4-4h24a4 4 0 0 1 4 4v24a4 4 0 0 1-4 4H4a4 4 0 0 1-4-4V4Z",fill:"#AC73E6"}),(0,T.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M15.027 13.839c-3.19-.836-6.305-1.064-10.18-.608-1.215.152-1.063 1.975.076 2.203.304.836.456 2.355.912 3.267.987 2.279 5.622 1.975 7.369.835 1.14-.683 1.443-2.279 1.9-3.494.227-.684 1.595-.684 1.822 0 .38 1.215.76 2.81 1.9 3.494 1.747 1.14 6.381 1.444 7.369-.835.456-.912.607-2.431.911-3.267 1.14-.228 1.216-2.051.076-2.203-3.874-.456-6.989-.228-10.18.608-.455.075-1.519.075-1.975 0Z",fill:"#fff"})]}),Ze=Te;var ae=n(47361),Z=n(99140),Ne=()=>{const{formatMessage:a}=(0,v.Z)(),{trackUsage:s}=(0,c.rS)();return e.createElement("a",{href:"https://strapi.canny.io/plugin-requests",target:"_blank",rel:"noopener noreferrer nofollow",style:{textDecoration:"none"},onClick:()=>s("didMissMarketplacePlugin")},e.createElement(c.Y_,{title:a({id:"admin.pages.MarketPlacePage.missingPlugin.title",defaultMessage:"Documentation"}),subtitle:a({id:"admin.pages.MarketPlacePage.missingPlugin.description",defaultMessage:"Tell us what plugin you are looking for and we'll let our community plugin developers know in case they are in search for inspiration!"}),icon:e.createElement(Ze,null),iconBackground:"alternative100",endAction:e.createElement(Z.J,{as:ae.Z,color:"neutral600",width:3,height:3,marginLeft:2})}))},De=n(97405),Le=n(15335),Be=n(5803),B=n(8471),Ie=n(24443),Oe=n.n(Ie),b=n(49372),Q=n(63919),we=n(38705),je=n(47750),Ae=n(66456),$e=n(54770),ne=n.n($e),H=n(41415),se=n(47765);const O=({description:a,installMessage:s,disabled:r,handleCopy:l,pluginName:i})=>e.createElement(Q.u,{"data-testid":`tooltip-${i}`,description:a},e.createElement(f.x,null,e.createElement(H.z,{size:"S",startIcon:e.createElement(se.Z,null),variant:"secondary",disabled:r,onClick:l},s))),G=({strapiPeerDepVersion:a,strapiAppVersion:s,handleCopy:r,pluginName:l})=>{const{formatMessage:i}=(0,v.Z)(),g=ne().validRange(a),o=ne().satisfies(s,g),d=i({id:"admin.pages.MarketPlacePage.plugin.copy",defaultMessage:"Copy install command"});if(s){if(!g)return e.createElement(O,{installMessage:d,pluginName:l,description:i({id:"admin.pages.MarketPlacePage.plugin.version.null",defaultMessage:'Unable to verify compatibility with your Strapi version: "{strapiAppVersion}"'},{strapiAppVersion:s}),handleCopy:r});if(!o)return e.createElement(O,{installMessage:d,pluginName:l,description:i({id:"admin.pages.MarketPlacePage.plugin.version",defaultMessage:'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'},{strapiAppVersion:s,versionRange:g}),disabled:!0})}return e.createElement(H.z,{size:"S",startIcon:e.createElement(se.Z,null),variant:"secondary",onClick:r},d)};O.defaultProps={disabled:!1,handleCopy:null},O.propTypes={description:t().string.isRequired,installMessage:t().string.isRequired,disabled:t().bool,handleCopy:t().func,pluginName:t().string.isRequired},G.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},G.propTypes={strapiAppVersion:t().string,strapiPeerDepVersion:t().string,handleCopy:t().func.isRequired,pluginName:t().string.isRequired};var ze=G;const W=({isInstalled:a,isInDevelopmentMode:s,commandToCopy:r,strapiAppVersion:l,strapiPeerDepVersion:i,pluginName:g})=>{const o=(0,c.lm)(),{formatMessage:d}=(0,v.Z)(),{trackUsage:u}=(0,c.rS)(),m=()=>{navigator.clipboard.writeText(r),u("willInstallPlugin"),o({type:"success",message:{id:"admin.pages.MarketPlacePage.plugin.copy.success"}})};return a?e.createElement(f.x,{paddingLeft:4},e.createElement(Z.J,{as:Ae.Z,marginRight:2,width:12,height:12,color:"success600"}),e.createElement(b.Z,{variant:"omega",textColor:"success600",fontWeight:"bold"},d({id:"admin.pages.MarketPlacePage.plugin.installed",defaultMessage:"Installed"}))):s?e.createElement(ze,{strapiAppVersion:l,strapiPeerDepVersion:i,handleCopy:m,pluginName:g}):null};W.defaultProps={strapiAppVersion:null,strapiPeerDepVersion:null},W.propTypes={isInstalled:t().bool.isRequired,isInDevelopmentMode:t().bool.isRequired,commandToCopy:t().string.isRequired,strapiAppVersion:t().string,strapiPeerDepVersion:t().string,pluginName:t().string.isRequired};var Fe=W,Ve=n(9026),Ue=n(33904);const Qe=a=>(0,T.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:(0,T.jsx)("path",{d:"m12 18.26-7.053 3.948 1.575-7.928L.587 8.792l8.027-.952L12 .5l3.386 7.34 8.027.952-5.935 5.488 1.575 7.928L12 18.26Z",fill:"#212134"})}),He=Qe;var Ge=n(33844);const We=(0,B.ZP)(Ve.i)`
|
|
2
|
+
width: ${(0,c.Q1)(12)};
|
|
3
|
+
transform: rotate(90deg);
|
|
4
|
+
`,K=({githubStars:a,npmDownloads:s,npmPackageType:r})=>{const{formatMessage:l}=(0,v.Z)();return e.createElement(P.k,{gap:1},!!a&&e.createElement(e.Fragment,null,e.createElement(Z.J,{as:Ue.Z,height:(0,c.Q1)(12),width:(0,c.Q1)(12),"aria-hidden":!0}),e.createElement(Z.J,{as:He,height:(0,c.Q1)(12),width:(0,c.Q1)(12),color:"warning500","aria-hidden":!0}),e.createElement("p",{"aria-label":l({id:`admin.pages.MarketPlacePage.${r}.githubStars`,defaultMessage:"This {package} was starred {starsCount} on GitHub"},{starsCount:a,package:r})},e.createElement(b.Z,{variant:"pi",textColor:"neutral800",lineHeight:16},a)),e.createElement(We,{unsetMargin:!1,background:"neutral200"})),e.createElement(Z.J,{as:Ge.Z,height:(0,c.Q1)(12),width:(0,c.Q1)(12),"aria-hidden":!0}),e.createElement("p",{"aria-label":l({id:`admin.pages.MarketPlacePage.${r}.downloads`,defaultMessage:"This {package} has {downloadsCount} weekly downloads"},{downloadsCount:s,package:r})},e.createElement(b.Z,{variant:"pi",textColor:"neutral800",lineHeight:16},s)))};K.defaultProps={githubStars:0,npmDownloads:0},K.propTypes={githubStars:t().number,npmDownloads:t().number,npmPackageType:t().string.isRequired};var Ke=K;const Je=(0,B.ZP)(b.Z)`
|
|
5
|
+
/* stylelint-disable value-no-vendor-prefix, property-no-vendor-prefix */
|
|
6
|
+
display: -webkit-box;
|
|
7
|
+
-webkit-box-orient: vertical;
|
|
8
|
+
-webkit-line-clamp: 2;
|
|
9
|
+
/* stylelint-enable value-no-vendor-prefix, property-no-vendor-prefix */
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
`,J=({npmPackage:a,isInstalled:s,useYarn:r,isInDevelopmentMode:l,npmPackageType:i,strapiAppVersion:g})=>{const{attributes:o}=a,{formatMessage:d}=(0,v.Z)(),{trackUsage:u}=(0,c.rS)(),m=r?`yarn add ${o.npmPackageName}`:`npm install ${o.npmPackageName}`,h=d({id:"admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi",defaultMessage:"Made by Strapi"}),y=`https://market.strapi.io/${Oe().plural(i)}/${o.slug}`;return e.createElement(P.k,{direction:"column",justifyContent:"space-between",paddingTop:4,paddingRight:4,paddingBottom:4,paddingLeft:4,hasRadius:!0,background:"neutral0",shadow:"tableShadow",height:"100%",alignItems:"normal","data-testid":"npm-package-card"},e.createElement(f.x,null,e.createElement(P.k,{direction:"row",justifyContent:"space-between",alignItems:"flex-start"},e.createElement(f.x,{as:"img",src:o.logo.url,alt:`${o.name} logo`,hasRadius:!0,width:11,height:11}),e.createElement(Ke,{githubStars:o.githubStars,npmDownloads:o.npmDownloads,npmPackageType:i})),e.createElement(f.x,{paddingTop:4},e.createElement(b.Z,{as:"h3",variant:"delta"},e.createElement(P.k,{alignItems:"center"},o.name,o.validated&&!o.madeByStrapi&&e.createElement(Q.u,{description:d({id:"admin.pages.MarketPlacePage.plugin.tooltip.verified",defaultMessage:"Plugin verified by Strapi"})},e.createElement(P.k,null,e.createElement(Z.J,{as:we.Z,marginLeft:2,color:"success600"}))),o.madeByStrapi&&e.createElement(Q.u,{description:h},e.createElement(P.k,null,e.createElement(f.x,{as:"img",src:je,alt:h,marginLeft:1,width:6,height:"auto"})))))),e.createElement(f.x,{paddingTop:2},e.createElement(Je,{as:"p",variant:"omega",textColor:"neutral600"},o.description))),e.createElement(P.k,{gap:2,style:{alignSelf:"flex-end"},paddingTop:6},e.createElement(ee.Q,{size:"S",href:y,isExternal:!0,endIcon:e.createElement(ae.Z,null),"aria-label":d({id:"admin.pages.MarketPlacePage.plugin.info.label",defaultMessage:"Learn more about {pluginName}"},{pluginName:o.name}),variant:"tertiary",onClick:()=>u("didPluginLearnMore")},d({id:"admin.pages.MarketPlacePage.plugin.info.text",defaultMessage:"More"})),e.createElement(Fe,{isInstalled:s,isInDevelopmentMode:l,commandToCopy:m,strapiAppVersion:g,strapiPeerDepVersion:o.strapiVersion,pluginName:o.name})))};J.defaultProps={isInDevelopmentMode:!1,strapiAppVersion:null},J.propTypes={npmPackage:t().shape({id:t().string.isRequired,attributes:t().shape({name:t().string.isRequired,description:t().string.isRequired,slug:t().string.isRequired,npmPackageName:t().string.isRequired,npmPackageUrl:t().string.isRequired,repositoryUrl:t().string.isRequired,logo:t().object.isRequired,developerName:t().string.isRequired,validated:t().bool.isRequired,madeByStrapi:t().bool.isRequired,strapiCompatibility:t().oneOf(["v3","v4"]),strapiVersion:t().string,githubStars:t().number,npmDownloads:t().number}).isRequired}).isRequired,isInstalled:t().bool.isRequired,useYarn:t().bool.isRequired,isInDevelopmentMode:t().bool,npmPackageType:t().string.isRequired,strapiAppVersion:t().string};var Ye=J,qe=n(54725);const re=B.ZP.div`
|
|
12
|
+
display: grid;
|
|
13
|
+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
14
|
+
grid-gap: ${({theme:a})=>a.spaces[4]};
|
|
15
|
+
`;re.propTypes={children:_.node.isRequired};const Xe=(0,B.ZP)(f.x)`
|
|
16
|
+
background: ${({theme:a})=>`linear-gradient(180deg, rgba(234, 234, 239, 0) 0%, ${a.colors.neutral150} 100%)`};
|
|
17
|
+
opacity: 0.33;
|
|
18
|
+
`,_e=()=>e.createElement(re,null,Array(12).fill(null).map((a,s)=>e.createElement(Xe,{key:`empty-plugin-card-${s}`,height:"234px",hasRadius:!0}))),ie=({content:a})=>e.createElement(f.x,{position:"relative","data-testid":"marketplace-results"},e.createElement(_e,null),e.createElement(f.x,{position:"absolute",top:11,width:"100%"},e.createElement(P.k,{alignItems:"center",justifyContent:"center",direction:"column"},e.createElement(Z.J,{as:qe.Z,color:"",width:"160px",height:"88px"}),e.createElement(f.x,{paddingTop:6},e.createElement(b.Z,{variant:"delta",as:"p",textColor:"neutral600"},a)))));ie.propTypes={content:t().string.isRequired};var et=ie;const Y=({status:a,npmPackages:s,installedPackageNames:r,useYarn:l,isInDevelopmentMode:i,npmPackageType:g,strapiAppVersion:o,debouncedSearch:d})=>{const{formatMessage:u}=(0,v.Z)();if(a==="error")return e.createElement(P.k,{paddingTop:8},e.createElement(c.Hn,null));if(a==="loading")return e.createElement(P.k,{justifyContent:"center",paddingTop:8},e.createElement(De.a,null,"Loading content..."));const m=u({id:"admin.pages.MarketPlacePage.search.empty",defaultMessage:'No result for "{target}"'},{target:d});return s.length===0?e.createElement(et,{content:m}):e.createElement(Le.r,{gap:4,"data-testid":"marketplace-results"},s.map(h=>e.createElement(Be.P,{col:4,s:6,xs:12,style:{height:"100%"},key:h.id},e.createElement(Ye,{npmPackage:h,isInstalled:r.includes(h.attributes.npmPackageName),useYarn:l,isInDevelopmentMode:i,npmPackageType:g,strapiAppVersion:o}))))};Y.defaultProps={npmPackages:[],installedPackageNames:[],strapiAppVersion:null,debouncedSearch:""},Y.propTypes={status:t().string.isRequired,npmPackages:t().array,installedPackageNames:t().arrayOf(t().string),useYarn:t().bool.isRequired,isInDevelopmentMode:t().bool.isRequired,npmPackageType:t().string.isRequired,strapiAppVersion:t().string,debouncedSearch:t().string};var le=Y,oe=n(80084),ce=n(84967);const tt=(0,B.ZP)(f.x)`
|
|
19
|
+
font-weight: ${({theme:a})=>a.fontWeights.semiBold};
|
|
20
|
+
|
|
21
|
+
span {
|
|
22
|
+
font-size: ${({theme:a})=>a.fontSizes[1]};
|
|
23
|
+
}
|
|
24
|
+
`,de=({sortQuery:a,handleSelectChange:s})=>{const{formatMessage:r}=(0,v.Z)(),l={"name:asc":{selected:{id:"admin.pages.MarketPlacePage.sort.alphabetical.selected",defaultMessage:"Sort by alphabetical order"},option:{id:"admin.pages.MarketPlacePage.sort.alphabetical",defaultMessage:"Alphabetical order"}},"submissionDate:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.newest.selected",defaultMessage:"Sort by newest"},option:{id:"admin.pages.MarketPlacePage.sort.newest",defaultMessage:"Newest"}},"githubStars:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.githubStars.selected",defaultMessage:"Sort by GitHub stars"},option:{id:"admin.pages.MarketPlacePage.sort.githubStars",defaultMessage:"Number of GitHub stars"}},"npmDownloads:desc":{selected:{id:"admin.pages.MarketPlacePage.sort.npmDownloads.selected",defaultMessage:"Sort by npm downloads"},option:{id:"admin.pages.MarketPlacePage.sort.npmDownloads",defaultMessage:"Number of downloads"}}};return e.createElement(tt,null,e.createElement(oe.P,{size:"S",id:"sort-by-select",value:a,customizeContent:()=>r(l[a].selected),onChange:i=>{s({sort:i})}},Object.entries(l).map(([i,g])=>e.createElement(ce.W,{key:i,value:i},r(g.option)))))};de.propTypes={sortQuery:t().string.isRequired,handleSelectChange:t().func.isRequired};var at=de,nt=n(66995),st=n(35331),rt=n(5644),it=n(4101),lt=n(67563);const ge=({message:a,value:s,onChange:r,possibleFilters:l,onClear:i,customizeContent:g})=>{const o=(d,u)=>`${d} (${u})`;return e.createElement(oe.P,{"data-testid":`${a}-button`,"aria-label":a,placeholder:a,size:"M",onChange:r,onClear:i,value:s,customizeContent:g,multi:!0},Object.entries(l).map(([d,u])=>e.createElement(ce.W,{"data-testid":`${d}-${u}`,key:d,value:d},o(d,u))))};ge.propTypes={message:t().string.isRequired,value:t().array.isRequired,onChange:t().func.isRequired,possibleFilters:t().object.isRequired,onClear:t().func.isRequired,customizeContent:t().func.isRequired};var pe=ge;const ue=({source:a,onToggle:s,query:r,npmPackageType:l,possibleCategories:i,possibleCollections:g,handleSelectChange:o,handleSelectClear:d})=>{const{formatMessage:u}=(0,v.Z)();return e.createElement(it.J2,{source:a,padding:3,spacing:4,onBlur:()=>{}},e.createElement(lt.i,{onEscape:s},e.createElement(P.k,{direction:"column",alignItems:"stretch",gap:1},e.createElement(f.x,null,e.createElement(pe,{message:u({id:"admin.pages.MarketPlacePage.filters.collections",defaultMessage:"Collections"}),value:r?.collections||[],onChange:m=>{o({collections:m})},onClear:()=>d("collections"),possibleFilters:g,customizeContent:m=>u({id:"admin.pages.MarketPlacePage.filters.collectionsSelected",defaultMessage:"{count, plural, =0 {No collections} one {# collection} other {# collections}} selected"},{count:m.length})})),l==="plugin"&&e.createElement(f.x,null,e.createElement(pe,{message:u({id:"admin.pages.MarketPlacePage.filters.categories",defaultMessage:"Categories"}),value:r?.categories||[],onChange:m=>{o({categories:m})},onClear:()=>d("categories"),possibleFilters:i,customizeContent:m=>u({id:"admin.pages.MarketPlacePage.filters.categoriesSelected",defaultMessage:"{count, plural, =0 {No categories} one {# category} other {# categories}} selected"},{count:m.length}),name:"categories"})))))};ue.propTypes={onToggle:t().func.isRequired,source:t().shape({current:t().instanceOf(Element)}).isRequired,query:t().object.isRequired,npmPackageType:t().oneOf(["plugin","provider"]).isRequired,possibleCollections:t().object.isRequired,possibleCategories:t().object.isRequired,handleSelectChange:t().func.isRequired,handleSelectClear:t().func.isRequired};var ot=ue;const q=({name:a,handleRemove:s})=>e.createElement(f.x,{padding:1},e.createElement(nt.V,{icon:e.createElement(st.Z,null),onClick:s},a)),ct=(0,B.ZP)(H.z)`
|
|
25
|
+
height: ${({theme:a})=>a.sizes.input.S};
|
|
26
|
+
`,me=({possibleCollections:a,possibleCategories:s,npmPackageType:r,query:l,handleSelectClear:i,handleSelectChange:g})=>{const[o,d]=(0,e.useState)(!1),u=(0,e.useRef)(),{formatMessage:m}=(0,v.Z)(),h=()=>d(p=>!p),y=(p,E)=>{const C={[E]:l[E].filter(I=>I!==p)};g(C)};return e.createElement(e.Fragment,null,e.createElement(f.x,{paddingTop:1,paddingBottom:1},e.createElement(ct,{variant:"tertiary",ref:u,"data-testid":"filters-button",startIcon:e.createElement(rt.Z,null),onClick:h,size:"S"},m({id:"app.utils.filters",defaultMessage:"Filters"})),o&&e.createElement(ot,{onToggle:h,source:u,query:l,handleSelectClear:i,handleSelectChange:g,possibleCollections:a,possibleCategories:s,npmPackageType:r})),l.collections?.map(p=>e.createElement(q,{name:p,key:p,handleRemove:()=>y(p,"collections")})),r==="plugin"&&l.categories?.map(p=>e.createElement(q,{name:p,key:p,handleRemove:()=>y(p,"categories")})))};q.propTypes={name:t().string.isRequired,handleRemove:t().func.isRequired},me.propTypes={npmPackageType:t().oneOf(["plugin","provider"]).isRequired,possibleCollections:t().object.isRequired,possibleCategories:t().object.isRequired,query:t().object.isRequired,handleSelectChange:t().func.isRequired,handleSelectClear:t().func.isRequired};var dt=me;const fe=({pagination:a})=>e.createElement(f.x,{paddingTop:4},e.createElement(P.k,{alignItems:"flex-end",justifyContent:"space-between"},e.createElement(c.v4,{options:["12","24","50","100"],defaultValue:"24"}),e.createElement(c.tU,{pagination:a})));fe.propTypes={pagination:t().shape({page:t().number.isRequired,pageCount:t().number.isRequired,pageSize:t().number.isRequired,total:t().number.isRequired}).isRequired};var gt=fe,pt=n(75536),ut=n.p+"9d5d788027e86620c234.svg",mt=()=>{const{formatMessage:a}=(0,v.Z)();return e.createElement(N.A,null,e.createElement(D.o,null,e.createElement(te,{isOnline:!1}),e.createElement(P.k,{width:"100%",direction:"column",alignItems:"center",justifyContent:"center",paddingTop:(0,c.Q1)(120)},e.createElement(f.x,{paddingBottom:2},e.createElement(b.Z,{textColor:"neutral700",variant:"alpha"},a({id:"admin.pages.MarketPlacePage.offline.title",defaultMessage:"You are offline"}))),e.createElement(f.x,{paddingBottom:6},e.createElement(b.Z,{textColor:"neutral700",variant:"epsilon"},a({id:"admin.pages.MarketPlacePage.offline.subtitle",defaultMessage:"You need to be connected to the Internet to access Strapi Market."}))),e.createElement("img",{src:ut,alt:"offline",style:{width:"88px",height:"88px"}}))))},ft=n(94638),ve=n(20108),he=n(84306),vt=n(33348),w=n.n(vt);const ht="https://market-api.strapi.io",Pt=async(a={})=>{const{data:s}=await he.Z.get(`${ht}/plugins`,{params:a,paramsSerializer:{encode:w().parse,serialize:w().stringify}});return s};var Et=(a,s)=>{const r=(0,c.lm)();return(0,ve.useQuery)(["list-marketplace-plugins",s],()=>Pt(s),{onSuccess(){a&&a()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};const Mt="https://market-api.strapi.io",yt=async(a={})=>{const{data:s}=await he.Z.get(`${Mt}/providers`,{params:a,paramsSerializer:{encode:w().parse,serialize:w().stringify}});return s};var kt=(a,s)=>{const r=(0,c.lm)();return(0,ve.useQuery)(["list-marketplace-providers",s],()=>yt(s),{onSuccess(){a&&a()},onError(){r({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}})};function Rt({npmPackageType:a,debouncedSearch:s,query:r,tabQuery:l}){const{notifyStatus:i}=(0,ft.G)(),{formatMessage:g}=(0,v.Z)(),o=g({id:"global.marketplace",defaultMessage:"Marketplace"}),d=()=>{i(g({id:"app.utils.notify.data-loaded",defaultMessage:"The {target} has loaded"},{target:o}))},u={page:r?.page||1,pageSize:r?.pageSize||24},{data:m,status:h}=Et(d,{...l.plugin,pagination:u,search:s}),{data:y,status:p}=kt(d,{...l.provider,pagination:u,search:s}),E=a==="plugin"?m:y,C=a==="plugin"?h:p,[I,j]=(0,e.useState)({}),[A,$]=(0,e.useState)({});(0,e.useEffect)(()=>{C==="success"&&j(E.meta.collections),h==="success"&&$(m.meta.categories)},[m?.meta.categories,h,E?.meta.collections,C]);const{pagination:X}=C==="success"?E.meta:{};return{pluginsResponse:m,providersResponse:y,pluginsStatus:h,providersStatus:p,possibleCollections:I,possibleCategories:A,pagination:X}}var bt=Rt;const Pe=()=>{const{formatMessage:a}=(0,v.Z)(),{trackUsage:s}=(0,c.rS)(),r=(0,e.useRef)(s),l=(0,c.lm)(),[{query:i},g]=(0,c.Kx)(),o=(0,pt.Z)(i?.search,500)||"",{autoReload:d,dependencies:u,useYarn:m,strapiVersion:h}=(0,c.QI)(),y=xe(),p=i?.npmPackageType||"plugin",[E,C]=(0,e.useState)({plugin:p==="plugin"?{...i}:{},provider:p==="provider"?{...i}:{}});(0,c.go)(),(0,e.useEffect)(()=>{r.current("didGoToMarketplace")},[]),(0,e.useEffect)(()=>{d||l({type:"info",message:{id:"admin.pages.MarketPlacePage.production",defaultMessage:"Manage plugins from the development environment"},blockTransition:!0})},[l,d]);const{pluginsResponse:I,providersResponse:j,pluginsStatus:A,providersStatus:$,possibleCollections:X,possibleCategories:St,pagination:Ee}=bt({npmPackageType:p,debouncedSearch:o,query:i,tabQuery:E});if(!y)return e.createElement(mt,null);const xt=S=>{const k=S===0?"plugin":"provider",Zt=E[k]&&Object.keys(E[k]).length;g(Zt?{...E[k],search:i?.search||"",npmPackageType:k,page:1}:{npmPackageType:k,collections:[],categories:[],sort:"name:asc",page:1,search:i?.search||""})},Me=S=>{g({...S,page:1}),C(k=>({...k,[p]:{...k[p],...S}}))},Tt=S=>{g({[S]:[],page:null},"remove"),C(k=>({...k,[p]:{}}))},ye=Object.keys(u);return e.createElement(N.A,null,e.createElement(D.o,null,e.createElement(M.q,{title:a({id:"admin.pages.MarketPlacePage.helmet",defaultMessage:"Marketplace - Plugins"})}),e.createElement(te,{isOnline:y,npmPackageType:p}),e.createElement(x.D,null,e.createElement(L.v,{label:a({id:"admin.pages.MarketPlacePage.tab-group.label",defaultMessage:"Plugins and Providers for Strapi"}),id:"tabs",variant:"simple",initialSelectedTabIndex:["plugin","provider"].indexOf(p),onTabChange:xt},e.createElement(P.k,{justifyContent:"space-between",paddingBottom:4},e.createElement(F.m,null,e.createElement(F.O,null,a({id:"admin.pages.MarketPlacePage.plugins",defaultMessage:"Plugins"})," ",A==="success"?`(${I.meta.pagination.total})`:"..."),e.createElement(F.O,null,a({id:"admin.pages.MarketPlacePage.providers",defaultMessage:"Providers"})," ",$==="success"?`(${j.meta.pagination.total})`:"...")),e.createElement(f.x,{width:"25%"},e.createElement(ke.w,{name:"searchbar",onClear:()=>g({search:"",page:1}),value:i?.search,onChange:S=>g({search:S.target.value,page:1}),clearLabel:a({id:"admin.pages.MarketPlacePage.search.clear",defaultMessage:"Clear the search"}),placeholder:a({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})},a({id:"admin.pages.MarketPlacePage.search.placeholder",defaultMessage:"Search"})))),e.createElement(P.k,{paddingBottom:4,gap:2},e.createElement(at,{sortQuery:i?.sort||"name:asc",handleSelectChange:Me}),e.createElement(dt,{npmPackageType:p,possibleCollections:X,possibleCategories:St,query:i||{},handleSelectChange:Me,handleSelectClear:Tt})),e.createElement(V.n,null,e.createElement(V.x,null,e.createElement(le,{npmPackages:I?.data,status:A,installedPackageNames:ye,useYarn:m,isInDevelopmentMode:d,npmPackageType:"plugin",strapiAppVersion:h,debouncedSearch:o})),e.createElement(V.x,null,e.createElement(le,{npmPackages:j?.data,status:$,installedPackageNames:ye,useYarn:m,isInDevelopmentMode:d,npmPackageType:"provider",debouncedSearch:o})))),Ee&&e.createElement(gt,{pagination:Ee}),e.createElement(f.x,{paddingTop:8},e.createElement(Ne,null)))))};var Ct=()=>e.createElement(c.O4,{permissions:Se.Z.marketplace.main},e.createElement(Pe,null))},96709:function(z,R,n){n.d(R,{A:function(){return x}});var e=n(32735),v=n(60216),M=n(8471),c=n(72850);const N=(0,M.ZP)(c.x)`
|
|
27
|
+
display: grid;
|
|
28
|
+
grid-template-columns: ${({hasSideNav:L})=>L?"auto 1fr":"1fr"};
|
|
29
|
+
`,D=(0,M.ZP)(c.x)`
|
|
30
|
+
overflow-x: hidden;
|
|
31
|
+
`,x=({sideNav:L,children:P})=>e.createElement(N,{hasSideNav:Boolean(L)},L,e.createElement(D,{paddingBottom:10},P));x.defaultProps={sideNav:void 0},x.propTypes={children:v.node.isRequired,sideNav:v.node}},33904:function(z,R,n){n.d(R,{Z:function(){return M}});var e=n(74512);const v=c=>(0,e.jsx)("svg",{width:"1rem",height:"1rem",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...c,children:(0,e.jsx)("path",{d:"M12 0C5.373 0 0 5.501 0 12.288c0 5.43 3.438 10.035 8.206 11.66.6.114.82-.266.82-.59 0-.294-.01-1.262-.016-2.289-3.338.744-4.043-1.45-4.043-1.45-.546-1.42-1.332-1.797-1.332-1.797-1.089-.763.082-.747.082-.747 1.205.086 1.84 1.266 1.84 1.266 1.07 1.878 2.807 1.335 3.491 1.021.108-.794.42-1.336.762-1.643-2.665-.31-5.467-1.364-5.467-6.073 0-1.341.469-2.437 1.236-3.298-.124-.31-.535-1.56.117-3.252 0 0 1.007-.33 3.3 1.26A11.25 11.25 0 0 1 12 5.942c1.02.005 2.047.141 3.006.414 2.29-1.59 3.297-1.26 3.297-1.26.653 1.693.242 2.943.118 3.252.77.86 1.235 1.957 1.235 3.298 0 4.72-2.808 5.76-5.48 6.063.43.382.814 1.13.814 2.276 0 1.644-.014 2.967-.014 3.372 0 .327.216.71.825.59C20.566 22.32 24 17.715 24 12.288 24 5.501 18.627 0 12 0Z",fill:"#161614"})}),M=v}}]);
|