@strapi/admin 4.14.0-beta.0 → 4.15.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/admin/src/components/RBACProvider/index.js +1 -1
  2. package/admin/src/content-manager/components/BlocksEditor/BlocksInput/index.js +87 -0
  3. package/admin/src/content-manager/components/BlocksEditor/Toolbar/index.js +463 -0
  4. package/admin/src/content-manager/components/BlocksEditor/hooks/useBlocksStore.js +451 -0
  5. package/admin/src/content-manager/components/BlocksEditor/hooks/useModifiersStore.js +102 -0
  6. package/admin/src/content-manager/components/BlocksEditor/index.js +126 -0
  7. package/admin/src/content-manager/components/InputUID/index.js +92 -109
  8. package/admin/src/content-manager/components/Inputs/index.js +3 -1
  9. package/admin/src/content-manager/components/Inputs/utils/getInputType.js +2 -0
  10. package/admin/src/content-manager/components/RelationInput/RelationInput.js +59 -43
  11. package/admin/src/content-manager/hooks/useRelation/useRelation.js +85 -86
  12. package/admin/src/content-manager/pages/ListView/index.js +1 -0
  13. package/admin/src/content-manager/utils/schema.js +22 -0
  14. package/admin/src/index.js +7 -1
  15. package/admin/src/pages/MarketplacePage/components/EmptyNpmPackageSearch/index.js +1 -1
  16. package/admin/src/pages/MarketplacePage/components/NpmPackagesFilters/index.js +0 -1
  17. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +1 -1
  18. package/admin/src/translations/en.json +17 -0
  19. package/ee/admin/pages/SettingsPage/pages/AuditLogs/ListView/utils/getDisplayedFilters.js +1 -1
  20. package/ee/server/bootstrap.js +1 -1
  21. package/ee/server/content-types/workflow-stage/index.js +1 -1
  22. package/ee/server/controllers/admin.js +1 -1
  23. package/ee/server/controllers/user.js +1 -1
  24. package/ee/server/destroy.js +1 -1
  25. package/ee/server/register.js +1 -1
  26. package/ee/server/routes/utils.js +1 -1
  27. package/ee/server/services/audit-logs.js +1 -1
  28. package/ee/server/services/passport/sso.js +1 -1
  29. package/ee/server/services/passport.js +1 -1
  30. package/ee/server/services/seat-enforcement.js +1 -1
  31. package/ee/server/utils/sso-lock.js +1 -1
  32. package/ee/server/validation/role.js +1 -1
  33. package/ee/server/validation/user.js +1 -1
  34. package/package.json +21 -13
  35. package/server/controllers/admin.js +1 -1
  36. package/server/domain/permission/index.js +8 -1
  37. package/server/validation/permission.js +1 -1
  38. package/utils/plugins.js +7 -1
  39. package/build/0cd5f8915b265d5b1856.png +0 -0
  40. package/build/1049.bf5230e6.chunk.js +0 -1
  41. package/build/1227.4f48119b.chunk.js +0 -1
  42. package/build/1386.8c070d59.chunk.js +0 -7
  43. package/build/1727.b49f0713.chunk.js +0 -1
  44. package/build/19eb2dfcf2603eb55733.png +0 -0
  45. package/build/2225.73c9a224.chunk.js +0 -79
  46. package/build/2379.27c6ab54.chunk.js +0 -1
  47. package/build/2395.120256d6.chunk.js +0 -26
  48. package/build/2659.cb94f1e7.chunk.js +0 -105
  49. package/build/27d16aefee06412db90a.png +0 -0
  50. package/build/2801.fdd4d8a2.chunk.js +0 -1
  51. package/build/2950.216f2e89.chunk.js +0 -1
  52. package/build/3021.33ad47fb.chunk.js +0 -103
  53. package/build/3100.2ba4df95.chunk.js +0 -1
  54. package/build/311.cb0884bb.chunk.js +0 -1
  55. package/build/3483.f6b2439f.chunk.js +0 -1
  56. package/build/3911.488fbde3.chunk.js +0 -95
  57. package/build/4174.924ebd4c.chunk.js +0 -1
  58. package/build/4546.9710f321.chunk.js +0 -1
  59. package/build/502.d26ea06b.chunk.js +0 -1
  60. package/build/5158.c85f841a.chunk.js +0 -1
  61. package/build/6158.c3c13c20.chunk.js +0 -1
  62. package/build/6266.c652bdb1.chunk.js +0 -146
  63. package/build/6272.4017459a.chunk.js +0 -160
  64. package/build/6715.48e37308.chunk.js +0 -1
  65. package/build/6812.31979984.chunk.js +0 -26
  66. package/build/7030.b98dcedf.chunk.js +0 -1
  67. package/build/70674f63fc3904c20de0.svg +0 -7
  68. package/build/7464.d3d1414f.chunk.js +0 -1
  69. package/build/78.dcc6df5c.chunk.js +0 -1
  70. package/build/7897.cf22d5fe.chunk.js +0 -6
  71. package/build/7e9af4fb7e723fcebf1f.svg +0 -48
  72. package/build/8276.b55f4600.chunk.js +0 -26
  73. package/build/918.54414509.chunk.js +0 -1
  74. package/build/9d5d788027e86620c234.svg +0 -5
  75. package/build/Admin-authenticatedApp.a687d9c6.chunk.js +0 -112
  76. package/build/Admin_InternalErrorPage.18ba7fd6.chunk.js +0 -1
  77. package/build/Admin_homePage.86c8d4c9.chunk.js +0 -81
  78. package/build/Admin_marketplace.e75c9cf4.chunk.js +0 -55
  79. package/build/Admin_pluginsPage.d1afbf28.chunk.js +0 -6
  80. package/build/Admin_profilePage.079903a3.chunk.js +0 -13
  81. package/build/Admin_settingsPage.60a3e46e.chunk.js +0 -111
  82. package/build/Upload_ConfigureTheView.949535b8.chunk.js +0 -1
  83. package/build/admin-app.4654dc77.chunk.js +0 -36
  84. package/build/admin-edit-roles-page.6597d934.chunk.js +0 -267
  85. package/build/admin-edit-users.3014605e.chunk.js +0 -10
  86. package/build/admin-roles-list.ab6fcfb7.chunk.js +0 -22
  87. package/build/admin-users.81bf5f4d.chunk.js +0 -11
  88. package/build/api-tokens-create-page.f5a85725.chunk.js +0 -1
  89. package/build/api-tokens-edit-page.06a32cef.chunk.js +0 -1
  90. package/build/api-tokens-list-page.bb27d544.chunk.js +0 -16
  91. package/build/ar-json.74e40bc7.chunk.js +0 -1
  92. package/build/audit-logs-settings-page.4eb6cdf8.chunk.js +0 -1
  93. package/build/bb3108f7fd1e6179bde1.svg +0 -1
  94. package/build/bb4d0d527bdfb161bc5a.svg +0 -1
  95. package/build/ca-json.fc6001d3.chunk.js +0 -1
  96. package/build/content-manager.9187db78.chunk.js +0 -1097
  97. package/build/content-type-builder-list-view.b75fb938.chunk.js +0 -211
  98. package/build/content-type-builder-translation-ar-json.3e808e2f.chunk.js +0 -1
  99. package/build/content-type-builder-translation-cs-json.1ef9e106.chunk.js +0 -1
  100. package/build/content-type-builder-translation-de-json.63fcff7b.chunk.js +0 -1
  101. package/build/content-type-builder-translation-dk-json.fd626b67.chunk.js +0 -1
  102. package/build/content-type-builder-translation-en-json.ed29ff4d.chunk.js +0 -1
  103. package/build/content-type-builder-translation-es-json.a4a361a9.chunk.js +0 -1
  104. package/build/content-type-builder-translation-fr-json.499c3a46.chunk.js +0 -1
  105. package/build/content-type-builder-translation-id-json.65255f93.chunk.js +0 -1
  106. package/build/content-type-builder-translation-it-json.e268ab74.chunk.js +0 -1
  107. package/build/content-type-builder-translation-ja-json.9be0d5b2.chunk.js +0 -1
  108. package/build/content-type-builder-translation-ko-json.04cb309d.chunk.js +0 -1
  109. package/build/content-type-builder-translation-ms-json.f6b743b9.chunk.js +0 -1
  110. package/build/content-type-builder-translation-nl-json.997fe8cc.chunk.js +0 -1
  111. package/build/content-type-builder-translation-pl-json.634f638b.chunk.js +0 -1
  112. package/build/content-type-builder-translation-pt-BR-json.6a95dc71.chunk.js +0 -1
  113. package/build/content-type-builder-translation-pt-json.ddb44f8c.chunk.js +0 -1
  114. package/build/content-type-builder-translation-ru-json.3af65503.chunk.js +0 -1
  115. package/build/content-type-builder-translation-sk-json.c6078082.chunk.js +0 -1
  116. package/build/content-type-builder-translation-sv-json.a6df2462.chunk.js +0 -1
  117. package/build/content-type-builder-translation-th-json.122277cc.chunk.js +0 -1
  118. package/build/content-type-builder-translation-tr-json.41f44f77.chunk.js +0 -1
  119. package/build/content-type-builder-translation-uk-json.e1315acd.chunk.js +0 -1
  120. package/build/content-type-builder-translation-zh-Hans-json.6ff57db6.chunk.js +0 -1
  121. package/build/content-type-builder-translation-zh-json.3532b962.chunk.js +0 -1
  122. package/build/content-type-builder.5ff93edd.chunk.js +0 -170
  123. package/build/cs-json.4b44411c.chunk.js +0 -1
  124. package/build/de-json.e72545cf.chunk.js +0 -1
  125. package/build/dk-json.e77140ef.chunk.js +0 -1
  126. package/build/email-settings-page.07d417d5.chunk.js +0 -11
  127. package/build/email-translation-ar-json.88304564.chunk.js +0 -1
  128. package/build/email-translation-cs-json.6eaeec6a.chunk.js +0 -1
  129. package/build/email-translation-de-json.1b334230.chunk.js +0 -1
  130. package/build/email-translation-dk-json.85402492.chunk.js +0 -1
  131. package/build/email-translation-en-json.4211d4d0.chunk.js +0 -1
  132. package/build/email-translation-es-json.0b6b1006.chunk.js +0 -1
  133. package/build/email-translation-fr-json.78be2787.chunk.js +0 -1
  134. package/build/email-translation-id-json.c97239fe.chunk.js +0 -1
  135. package/build/email-translation-it-json.a2ed8c78.chunk.js +0 -1
  136. package/build/email-translation-ja-json.63eebd02.chunk.js +0 -1
  137. package/build/email-translation-ko-json.4de49b23.chunk.js +0 -1
  138. package/build/email-translation-ms-json.7390477e.chunk.js +0 -1
  139. package/build/email-translation-nl-json.377bdd9f.chunk.js +0 -1
  140. package/build/email-translation-pl-json.97d0db97.chunk.js +0 -1
  141. package/build/email-translation-pt-BR-json.81cca553.chunk.js +0 -1
  142. package/build/email-translation-pt-json.2a2a0643.chunk.js +0 -1
  143. package/build/email-translation-ru-json.6bce37dd.chunk.js +0 -1
  144. package/build/email-translation-sk-json.53da2fcd.chunk.js +0 -1
  145. package/build/email-translation-th-json.660fa9a8.chunk.js +0 -1
  146. package/build/email-translation-tr-json.e6c0f8fc.chunk.js +0 -1
  147. package/build/email-translation-uk-json.bd1fb6bf.chunk.js +0 -1
  148. package/build/email-translation-vi-json.9fb7e6d7.chunk.js +0 -1
  149. package/build/email-translation-zh-Hans-json.c6841563.chunk.js +0 -1
  150. package/build/email-translation-zh-json.7a2232ea.chunk.js +0 -1
  151. package/build/en-json.e12fd5fc.chunk.js +0 -1
  152. package/build/es-json.b1f2284b.chunk.js +0 -1
  153. package/build/eu-json.63d0a898.chunk.js +0 -1
  154. package/build/fr-json.33c6428b.chunk.js +0 -1
  155. package/build/gu-json.7efe8cc2.chunk.js +0 -1
  156. package/build/he-json.3cf0b48a.chunk.js +0 -1
  157. package/build/hi-json.0d633692.chunk.js +0 -1
  158. package/build/highlight.js.28a1547e.chunk.js +0 -85
  159. package/build/hu-json.c74b6a1e.chunk.js +0 -1
  160. package/build/i18n-settings-page.7107e28a.chunk.js +0 -9
  161. package/build/i18n-translation-de-json.362384a6.chunk.js +0 -1
  162. package/build/i18n-translation-dk-json.89401417.chunk.js +0 -1
  163. package/build/i18n-translation-en-json.1ec7becf.chunk.js +0 -1
  164. package/build/i18n-translation-es-json.87b494d1.chunk.js +0 -1
  165. package/build/i18n-translation-fr-json.57ddc77e.chunk.js +0 -1
  166. package/build/i18n-translation-ko-json.ef4f9471.chunk.js +0 -1
  167. package/build/i18n-translation-pl-json.dfac513d.chunk.js +0 -1
  168. package/build/i18n-translation-ru-json.a3dbc125.chunk.js +0 -1
  169. package/build/i18n-translation-tr-json.3bfc812f.chunk.js +0 -1
  170. package/build/i18n-translation-zh-Hans-json.757ce62d.chunk.js +0 -1
  171. package/build/i18n-translation-zh-json.bef2dc07.chunk.js +0 -1
  172. package/build/id-json.41e07c46.chunk.js +0 -1
  173. package/build/index.html +0 -1
  174. package/build/it-json.bfe27ed8.chunk.js +0 -1
  175. package/build/ja-json.e1959a1c.chunk.js +0 -1
  176. package/build/ko-json.ce5d6d94.chunk.js +0 -1
  177. package/build/main.da000219.js +0 -2860
  178. package/build/ml-json.940d7ace.chunk.js +0 -1
  179. package/build/ms-json.0eddffd9.chunk.js +0 -1
  180. package/build/nl-json.fe38f0fb.chunk.js +0 -1
  181. package/build/no-json.19a2dbfa.chunk.js +0 -1
  182. package/build/pl-json.d55e8e78.chunk.js +0 -1
  183. package/build/pt-BR-json.ae0a0d2e.chunk.js +0 -1
  184. package/build/pt-json.ee554a41.chunk.js +0 -1
  185. package/build/review-workflows-settings-create-view.5d8806b2.chunk.js +0 -1
  186. package/build/review-workflows-settings-edit-view.634903ed.chunk.js +0 -1
  187. package/build/review-workflows-settings-list-view.d138c3b5.chunk.js +0 -56
  188. package/build/ru-json.1c976644.chunk.js +0 -1
  189. package/build/runtime~main.9589b498.js +0 -2
  190. package/build/sa-json.2c03ef4e.chunk.js +0 -1
  191. package/build/sk-json.b41847e8.chunk.js +0 -1
  192. package/build/sso-settings-page.caa35f7b.chunk.js +0 -1
  193. package/build/sv-json.568cb7ae.chunk.js +0 -1
  194. package/build/th-json.5f659396.chunk.js +0 -1
  195. package/build/tr-json.c9f22432.chunk.js +0 -1
  196. package/build/transfer-tokens-create-page.6e7049ff.chunk.js +0 -1
  197. package/build/transfer-tokens-edit-page.449b4502.chunk.js +0 -1
  198. package/build/transfer-tokens-list-page.34caf827.chunk.js +0 -16
  199. package/build/uk-json.b7e38370.chunk.js +0 -1
  200. package/build/upload-settings.fede24b9.chunk.js +0 -14
  201. package/build/upload-translation-ca-json.57954414.chunk.js +0 -1
  202. package/build/upload-translation-de-json.420c943b.chunk.js +0 -1
  203. package/build/upload-translation-dk-json.bbb2fa05.chunk.js +0 -1
  204. package/build/upload-translation-en-json.8b7573ce.chunk.js +0 -1
  205. package/build/upload-translation-es-json.ba2eb03a.chunk.js +0 -1
  206. package/build/upload-translation-fr-json.baab9911.chunk.js +0 -1
  207. package/build/upload-translation-he-json.0a830937.chunk.js +0 -1
  208. package/build/upload-translation-it-json.e87d7966.chunk.js +0 -1
  209. package/build/upload-translation-ja-json.44b88e7a.chunk.js +0 -1
  210. package/build/upload-translation-ko-json.a52eab64.chunk.js +0 -1
  211. package/build/upload-translation-ms-json.74f6d746.chunk.js +0 -1
  212. package/build/upload-translation-pl-json.426f31c9.chunk.js +0 -1
  213. package/build/upload-translation-pt-BR-json.d1704f0b.chunk.js +0 -1
  214. package/build/upload-translation-pt-json.6b937fdf.chunk.js +0 -1
  215. package/build/upload-translation-ru-json.675f6b93.chunk.js +0 -1
  216. package/build/upload-translation-sk-json.483a18f6.chunk.js +0 -1
  217. package/build/upload-translation-th-json.98d35574.chunk.js +0 -1
  218. package/build/upload-translation-tr-json.74117e5c.chunk.js +0 -1
  219. package/build/upload-translation-uk-json.9950466a.chunk.js +0 -1
  220. package/build/upload-translation-zh-Hans-json.db163b6b.chunk.js +0 -1
  221. package/build/upload-translation-zh-json.e1dd6eb2.chunk.js +0 -1
  222. package/build/upload.a96e2452.chunk.js +0 -58
  223. package/build/users-advanced-settings-page.ac7968e7.chunk.js +0 -9
  224. package/build/users-email-settings-page.125a89e2.chunk.js +0 -9
  225. package/build/users-permissions-translation-ar-json.7d87d54d.chunk.js +0 -1
  226. package/build/users-permissions-translation-cs-json.7e23424a.chunk.js +0 -1
  227. package/build/users-permissions-translation-de-json.a6fb670f.chunk.js +0 -1
  228. package/build/users-permissions-translation-dk-json.60e50f48.chunk.js +0 -1
  229. package/build/users-permissions-translation-en-json.4b302272.chunk.js +0 -1
  230. package/build/users-permissions-translation-es-json.35007573.chunk.js +0 -1
  231. package/build/users-permissions-translation-fr-json.7e55bbbb.chunk.js +0 -1
  232. package/build/users-permissions-translation-id-json.a5a0fb59.chunk.js +0 -1
  233. package/build/users-permissions-translation-it-json.0705465d.chunk.js +0 -1
  234. package/build/users-permissions-translation-ja-json.891fe76e.chunk.js +0 -1
  235. package/build/users-permissions-translation-ko-json.357d7a33.chunk.js +0 -1
  236. package/build/users-permissions-translation-ms-json.c83f87c4.chunk.js +0 -1
  237. package/build/users-permissions-translation-nl-json.c9f92a3c.chunk.js +0 -1
  238. package/build/users-permissions-translation-pl-json.0a7287d1.chunk.js +0 -1
  239. package/build/users-permissions-translation-pt-BR-json.1b6d2920.chunk.js +0 -1
  240. package/build/users-permissions-translation-pt-json.a7eda429.chunk.js +0 -1
  241. package/build/users-permissions-translation-ru-json.8e883c67.chunk.js +0 -1
  242. package/build/users-permissions-translation-sk-json.7f37180f.chunk.js +0 -1
  243. package/build/users-permissions-translation-sv-json.17187818.chunk.js +0 -1
  244. package/build/users-permissions-translation-th-json.1e9c0247.chunk.js +0 -1
  245. package/build/users-permissions-translation-tr-json.2bd7ff98.chunk.js +0 -1
  246. package/build/users-permissions-translation-uk-json.6a0a1572.chunk.js +0 -1
  247. package/build/users-permissions-translation-vi-json.6722a8a2.chunk.js +0 -1
  248. package/build/users-permissions-translation-zh-Hans-json.8d82c809.chunk.js +0 -1
  249. package/build/users-permissions-translation-zh-json.7978eaa6.chunk.js +0 -1
  250. package/build/users-providers-settings-page.ce34951c.chunk.js +0 -14
  251. package/build/users-roles-settings-page.d415835a.chunk.js +0 -55
  252. package/build/vi-json.ee4c5537.chunk.js +0 -1
  253. package/build/webhook-edit-page.7498417e.chunk.js +0 -33
  254. package/build/webhook-list-page.1b085c7f.chunk.js +0 -63
  255. package/build/zh-Hans-json.97efd015.chunk.js +0 -1
  256. package/build/zh-json.bfc2e036.chunk.js +0 -1
@@ -216,10 +216,32 @@ const createYupSchemaAttribute = (type, validations, options) => {
216
216
  schema = yup.string();
217
217
  }
218
218
 
219
+ if (type === 'blocks') {
220
+ schema = yup.mixed().test('isJSON', errorsTrads.json, (value) => {
221
+ // Disable the test for bulk publish, it's valid when it comes from the db
222
+ if (options.isJSONTestDisabled) {
223
+ return true;
224
+ }
225
+
226
+ // Don't run validations on drafts
227
+ if (options.isDraft) {
228
+ return true;
229
+ }
230
+
231
+ // The backend validates the actual schema
232
+ if (!Array.isArray(value)) {
233
+ return false;
234
+ }
235
+
236
+ return true;
237
+ });
238
+ }
239
+
219
240
  if (type === 'json') {
220
241
  schema = yup
221
242
  .mixed(errorsTrads.json)
222
243
  .test('isJSON', errorsTrads.json, (value) => {
244
+ // Disable the test for bulk publish, it's valid when it comes from the db
223
245
  if (options.isJSONTestDisabled) {
224
246
  return true;
225
247
  }
@@ -8,7 +8,13 @@ import plugins from './plugins';
8
8
  import appReducers from './reducers';
9
9
 
10
10
  window.strapi = {
11
- backendURL: process.env.STRAPI_ADMIN_BACKEND_URL,
11
+ /**
12
+ * This ENV variable is passed from the strapi instance, by default no url is set
13
+ * in the config and therefore the instance returns you an empty string so URLs are relative.
14
+ *
15
+ * To ensure that the backendURL is always set, we use the window.location.origin as a fallback.
16
+ */
17
+ backendURL: process.env.STRAPI_ADMIN_BACKEND_URL || window.location.origin,
12
18
  isEE: false,
13
19
  telemetryDisabled: process.env.STRAPI_TELEMETRY_DISABLED ?? false,
14
20
  features: {
@@ -8,7 +8,7 @@ import { EmptyNpmPackageGrid } from './EmptyNpmPackageGrid';
8
8
 
9
9
  const EmptyNpmPackageSearch = ({ content }) => {
10
10
  return (
11
- <Box position="relative" data-testid="marketplace-results">
11
+ <Box position="relative">
12
12
  <EmptyNpmPackageGrid />
13
13
  <Box position="absolute" top={11} width="100%">
14
14
  <Flex alignItems="center" justifyContent="center" direction="column">
@@ -50,7 +50,6 @@ const NpmPackagesFilters = ({
50
50
  <ButtonToggle
51
51
  variant="tertiary"
52
52
  ref={buttonRef}
53
- data-testid="filters-button"
54
53
  startIcon={<Filter />}
55
54
  onClick={handleToggle}
56
55
  size="S"
@@ -49,7 +49,7 @@ const NpmPackagesGrid = ({
49
49
  }
50
50
 
51
51
  return (
52
- <Grid gap={4} data-testid="marketplace-results">
52
+ <Grid gap={4}>
53
53
  {npmPackages.map((npmPackage) => (
54
54
  <GridItem col={4} s={6} xs={12} style={{ height: '100%' }} key={npmPackage.id}>
55
55
  <NpmPackageCard
@@ -621,6 +621,23 @@
621
621
  "components.ProductionBlocker.header": "This plugin is only available in development.",
622
622
  "components.ViewSettings.tooltip": "View settings",
623
623
  "components.TableHeader.sort": "Sort on {label}",
624
+ "components.Blocks.modifiers.bold": "Bold",
625
+ "components.Blocks.modifiers.italic": "Italic",
626
+ "components.Blocks.modifiers.underline": "Underline",
627
+ "components.Blocks.modifiers.strikethrough": "Strikethrough",
628
+ "components.Blocks.modifiers.code": "Code",
629
+ "components.Blocks.blocks.selectBlock": "Select a block",
630
+ "components.Blocks.blocks.text": "Text",
631
+ "components.Blocks.blocks.heading1": "Heading 1",
632
+ "components.Blocks.blocks.heading2": "Heading 2",
633
+ "components.Blocks.blocks.heading3": "Heading 3",
634
+ "components.Blocks.blocks.heading4": "Heading 4",
635
+ "components.Blocks.blocks.heading5": "Heading 5",
636
+ "components.Blocks.blocks.heading6": "Heading 6",
637
+ "components.Blocks.blocks.quote": "Quote",
638
+ "components.Blocks.blocks.image": "Image",
639
+ "components.Blocks.blocks.unorderedList": "Bulleted list",
640
+ "components.Blocks.blocks.orderedList": "Numbered list",
624
641
  "components.Wysiwyg.ToggleMode.markdown-mode": "Markdown mode",
625
642
  "components.Wysiwyg.ToggleMode.preview-mode": "Preview mode",
626
643
  "components.Wysiwyg.collapse": "Collapse",
@@ -36,8 +36,8 @@ const getDisplayedFilters = ({ formatMessage, users, canReadUsers }) => {
36
36
  id: 'Settings.permissions.auditLogs.action',
37
37
  defaultMessage: 'Action',
38
38
  }),
39
- options: actionOptions,
40
39
  customInput: ComboboxFilter,
40
+ options: actionOptions,
41
41
  },
42
42
  fieldSchema: { type: 'enumeration' },
43
43
  },
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // eslint-disable-next-line node/no-extraneous-require
4
- const { features } = require('@strapi/strapi/lib/utils/ee');
4
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
5
5
  const executeCEBootstrap = require('../../server/bootstrap');
6
6
  const { getService } = require('../../server/utils');
7
7
  const actions = require('./config/admin-actions');
@@ -45,7 +45,7 @@ module.exports = {
45
45
  target: 'admin::permission',
46
46
  relation: 'manyToMany',
47
47
  configurable: false,
48
- }
48
+ },
49
49
  },
50
50
  },
51
51
  };
@@ -2,7 +2,7 @@
2
2
 
3
3
  const { isNil } = require('lodash/fp');
4
4
  // eslint-disable-next-line node/no-extraneous-require
5
- const ee = require('@strapi/strapi/lib/utils/ee');
5
+ const ee = require('@strapi/strapi/dist/utils/ee').default;
6
6
  const { env } = require('@strapi/utils');
7
7
  const { getService } = require('../../../server/utils');
8
8
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // eslint-disable-next-line node/no-extraneous-require
4
- const ee = require('@strapi/strapi/lib/utils/ee');
4
+ const ee = require('@strapi/strapi/dist/utils/ee').default;
5
5
  const _ = require('lodash');
6
6
  const { pick, isNil } = require('lodash/fp');
7
7
  const { ApplicationError, ForbiddenError } = require('@strapi/utils').errors;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { features } = require('@strapi/strapi/lib/utils/ee');
3
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
4
4
  const executeCEDestroy = require('../../server/destroy');
5
5
 
6
6
  module.exports = async ({ strapi }) => {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { features } = require('@strapi/strapi/lib/utils/ee');
3
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
4
4
  const executeCERegister = require('../../server/register');
5
5
  const migrateAuditLogsTable = require('./migrations/audit-logs-table');
6
6
  const migrateReviewWorkflowStagesColor = require('./migrations/review-workflows-stages-color');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { features } = require('@strapi/strapi/lib/utils/ee');
3
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
4
4
 
5
5
  const enableFeatureMiddleware = (featureName) => (ctx, next) => {
6
6
  if (features.isEnabled(featureName)) {
@@ -2,7 +2,7 @@
2
2
 
3
3
  const localProvider = require('@strapi/provider-audit-logs-local');
4
4
  const { scheduleJob } = require('node-schedule');
5
- const { features } = require('@strapi/strapi/lib/utils/ee');
5
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
6
6
 
7
7
  const DEFAULT_RETENTION_DAYS = 90;
8
8
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const ee = require('@strapi/strapi/ee');
3
+ const ee = require('@strapi/strapi/dist/utils/ee').default;
4
4
  const { authEventsMapper } = require('../../../../server/services/passport');
5
5
  const createProviderRegistry = require('./provider-registry');
6
6
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // eslint-disable-next-line node/no-extraneous-require
4
- const { features } = require('@strapi/strapi/lib/utils/ee');
4
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
5
5
 
6
6
  const { UnauthorizedError } = require('@strapi/utils').errors;
7
7
  const createLocalStrategy = require('../../../server/services/passport/local-strategy');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  // eslint-disable-next-line node/no-extraneous-require
4
- const ee = require('@strapi/strapi/lib/utils/ee');
4
+ const ee = require('@strapi/strapi/dist/utils/ee').default;
5
5
  const { take, drop, map, prop, pick, reverse, isNil } = require('lodash/fp');
6
6
  const { getService } = require('../../../server/utils');
7
7
  const { SUPER_ADMIN_CODE } = require('../../../server/services/constants');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const { features } = require('@strapi/strapi/ee');
3
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
4
4
  const { isEmpty } = require('lodash/fp');
5
5
 
6
6
  const isSsoLocked = async (user) => {
@@ -2,7 +2,7 @@
2
2
 
3
3
  const { yup, validateYupSchema } = require('@strapi/utils');
4
4
  // eslint-disable-next-line node/no-extraneous-require
5
- const { features } = require('@strapi/strapi/lib/utils/ee');
5
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
6
6
 
7
7
  const roleCreateSchema = yup
8
8
  .object()
@@ -2,7 +2,7 @@
2
2
 
3
3
  const { yup, validateYupSchema } = require('@strapi/utils');
4
4
  // eslint-disable-next-line node/no-extraneous-require
5
- const { features } = require('@strapi/strapi/lib/utils/ee');
5
+ const { features } = require('@strapi/strapi/dist/utils/ee').default;
6
6
  const { schemas } = require('../../../server/validation/user');
7
7
 
8
8
  const ssoUserCreationInputExtension = yup
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "4.14.0-beta.0",
3
+ "version": "4.15.0-alpha.0",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,19 +40,20 @@
40
40
  "lint": "run -T eslint ."
41
41
  },
42
42
  "dependencies": {
43
- "@casl/ability": "^5.4.3",
43
+ "@casl/ability": "6.5.0",
44
44
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.10",
45
- "@strapi/data-transfer": "4.14.0-beta.0",
46
- "@strapi/design-system": "1.10.1",
47
- "@strapi/helper-plugin": "4.14.0-beta.0",
48
- "@strapi/icons": "1.10.1",
49
- "@strapi/permissions": "4.14.0-beta.0",
50
- "@strapi/provider-audit-logs-local": "4.14.0-beta.0",
51
- "@strapi/typescript-utils": "4.14.0-beta.0",
52
- "@strapi/utils": "4.14.0-beta.0",
45
+ "@radix-ui/react-toolbar": "1.0.4",
46
+ "@strapi/data-transfer": "4.15.0-alpha.0",
47
+ "@strapi/design-system": "1.11.0",
48
+ "@strapi/helper-plugin": "4.15.0-alpha.0",
49
+ "@strapi/icons": "1.11.0",
50
+ "@strapi/permissions": "4.15.0-alpha.0",
51
+ "@strapi/provider-audit-logs-local": "4.15.0-alpha.0",
52
+ "@strapi/typescript-utils": "4.15.0-alpha.0",
53
+ "@strapi/utils": "4.15.0-alpha.0",
53
54
  "axios": "1.5.0",
54
55
  "bcryptjs": "2.4.3",
55
- "browserslist": "^4.17.3",
56
+ "browserslist": "^4.22.1",
56
57
  "browserslist-to-esbuild": "1.2.0",
57
58
  "chalk": "^4.1.2",
58
59
  "chokidar": "3.5.3",
@@ -119,6 +120,9 @@
119
120
  "sanitize-html": "2.11.0",
120
121
  "semver": "7.5.4",
121
122
  "sift": "16.0.1",
123
+ "slate": "0.94.1",
124
+ "slate-history": "0.93.0",
125
+ "slate-react": "0.98.3",
122
126
  "style-loader": "3.3.1",
123
127
  "styled-components": "5.3.3",
124
128
  "typescript": "5.2.2",
@@ -152,7 +156,11 @@
152
156
  "./build"
153
157
  ]
154
158
  }
155
- }
159
+ },
160
+ "implicitDependencies": [
161
+ "!@strapi/data-transfer",
162
+ "!@strapi/strapi"
163
+ ]
156
164
  },
157
- "gitHead": "8145855e7ada0bf94ce1a2f4d1c34fe647e1af53"
165
+ "gitHead": "682a070df9ef90f2aa6966666488e066d61831e2"
158
166
  }
@@ -8,7 +8,7 @@ const { exists } = require('fs-extra');
8
8
  const { env } = require('@strapi/utils');
9
9
  const { isUsingTypeScript } = require('@strapi/typescript-utils');
10
10
  // eslint-disable-next-line node/no-extraneous-require
11
- const ee = require('@strapi/strapi/lib/utils/ee');
11
+ const ee = require('@strapi/strapi/dist/utils/ee').default;
12
12
 
13
13
  const {
14
14
  validateUpdateProjectSettings,
@@ -35,7 +35,14 @@ const permissionFields = [
35
35
  'conditions',
36
36
  'role',
37
37
  ];
38
- const sanitizedPermissionFields = ['id', 'action', 'actionParameters', 'subject', 'properties', 'conditions'];
38
+ const sanitizedPermissionFields = [
39
+ 'id',
40
+ 'action',
41
+ 'actionParameters',
42
+ 'subject',
43
+ 'properties',
44
+ 'conditions',
45
+ ];
39
46
 
40
47
  const sanitizePermissionFields = pick(sanitizedPermissionFields);
41
48
 
@@ -10,7 +10,7 @@ const checkPermissionsSchema = yup.object().shape({
10
10
  .object()
11
11
  .shape({
12
12
  action: yup.string().required(),
13
- subject: yup.string(),
13
+ subject: yup.string().nullable(),
14
14
  field: yup.string(),
15
15
  })
16
16
  .noUnknown()
package/utils/plugins.js CHANGED
@@ -112,7 +112,13 @@ const filterPluginsByAdminEntry = (plugin) => {
112
112
  );
113
113
 
114
114
  if (!isLocalPluginWithLegacyAdminFile) {
115
- const isModuleWithFE = require.resolve(`${plugin.pathToPlugin}/strapi-admin`);
115
+ let pathToPlugin = plugin.pathToPlugin;
116
+
117
+ if (process.platform === 'win32') {
118
+ pathToPlugin = pathToPlugin.split(path.sep).join(path.posix.sep);
119
+ }
120
+
121
+ const isModuleWithFE = require.resolve(`${pathToPlugin}/strapi-admin`);
116
122
 
117
123
  return isModuleWithFE;
118
124
  }
Binary file
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1049],{39404:function(A,T,e){e.d(T,{Z:function(){return M}});var t=e(32735),y=e(64092),c=e(84642),o=e(91779),s=e(30126),a=e(40501),r=e(70788),f=e(60216),n=e.n(f),m=e(67879),u=e(69321),E=e(79652);const d=({onRegenerate:R,idToRegenerate:O,backUrl:L,onError:W})=>{const{formatMessage:i}=(0,m.Z)(),[K,B]=(0,t.useState)(!1),{regenerateData:U,isLoadingConfirmation:x}=(0,E.rW)(L,O,R,W),h=async()=>{U(),B(!1)};return t.createElement(t.Fragment,null,t.createElement(o.z,{startIcon:t.createElement(u.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>B(!0),name:"regenerate"},i({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(s.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(u.Z,null),isConfirmButtonLoading:x,isOpen:K,onToggleDialog:()=>B(!1),onConfirm:h,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};d.defaultProps={onRegenerate(){},onError:void 0},d.propTypes={onRegenerate:n().func,idToRegenerate:n().oneOfType([n().number,n().string]).isRequired,backUrl:n().string.isRequired,onError:n().func};var g=d;const l=({title:R,token:O,setToken:L,canEditInputs:W,canRegenerate:i,isSubmitting:K,backUrl:B,regenerateUrl:U,onErrorRegenerate:x})=>{const{formatMessage:h}=(0,m.Z)(),z=j=>{L({...O,accessKey:j})};return t.createElement(y.T,{title:O?.name||h(R),primaryAction:W?t.createElement(c.k,{gap:2},i&&O?.id&&t.createElement(g,{backUrl:U,onRegenerate:z,idToRegenerate:O?.id,onError:x}),t.createElement(o.z,{disabled:K,loading:K,startIcon:t.createElement(a.Z,null),type:"submit",size:"S"},h({id:"global.save",defaultMessage:"Save"}))):i&&O?.id&&t.createElement(g,{onRegenerate:z,idToRegenerate:O?.id,backUrl:U}),navigationAction:t.createElement(s.rU,{startIcon:t.createElement(r.Z,null),to:B},h({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};l.propTypes={token:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().oneOfType([n().number,n().string]),name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string}),canEditInputs:n().bool.isRequired,canRegenerate:n().bool.isRequired,setToken:n().func.isRequired,isSubmitting:n().bool.isRequired,backUrl:n().string.isRequired,title:n().shape({id:n().string,label:n().string}).isRequired,regenerateUrl:n().string.isRequired,onErrorRegenerate:n().func},l.defaultProps={token:void 0,onErrorRegenerate:void 0};var M=l},82505:function(A,T,e){var t=e(32735),y=e(16773),c=e(40260),o=e(8365),s=e(60216),a=e.n(s),r=e(67879),f=e(25652);const n=({token:m,errors:u,values:E,onChange:d,isCreating:g})=>{const{formatMessage:l}=(0,r.Z)();return t.createElement(t.Fragment,null,t.createElement(y.P,{name:"lifespan",label:l({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:E.lifespan!==null?E.lifespan:"0",error:u.lifespan?l(u.lifespan?.id?u.lifespan:{id:u.lifespan,defaultMessage:u.lifespan}):null,onChange:M=>{d({target:{name:"lifespan",value:M}})},required:!0,disabled:!g,placeholder:"Select"},t.createElement(c.W,{value:"604800000"},l({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(c.W,{value:"2592000000"},l({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(c.W,{value:"7776000000"},l({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(c.W,{value:"0"},l({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Z,{variant:"pi",textColor:"neutral600"},!g&&`${l({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,f.IX)(m?.createdAt,parseInt(E.lifespan,10))}`))};n.propTypes={errors:a().shape({lifespan:a().string}),onChange:a().func.isRequired,values:a().shape({lifespan:a().oneOfType([a().number,a().string])}).isRequired,isCreating:a().bool.isRequired,token:a().shape({id:a().oneOfType([a().number,a().string]),type:a().string,lifespan:a().string,name:a().string,accessKey:a().string,permissions:a().array,description:a().string,createdAt:a().string})},n.defaultProps={errors:{},token:{}},T.Z=n},7210:function(A,T,e){var t=e(32735),y=e(14763),c=e(30126),o=e(94958),s=e(42815),a=e(60216),r=e.n(a),f=e(67879);const n=({token:m,tokenType:u})=>{const{formatMessage:E}=(0,f.Z)(),d=(0,c.lm)(),{trackUsage:g}=(0,c.rS)(),{copy:l}=(0,c.VP)(),M=R=>async()=>{await l(R)&&(g("didCopyTokenKey",{tokenType:u}),d({type:"success",message:{id:"Settings.tokens.notification.copied"}}))};return t.createElement(c.Y_,{endAction:m&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(y.h,{label:E({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),onClick:M(m),noBorder:!0,icon:t.createElement(o.Z,null),style:{padding:0,height:"1rem"}})),title:m||E({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:E(m?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(s.Z,null),iconBackground:"neutral100"})};n.defaultProps={token:null},n.propTypes={token:r().string,tokenType:r().string.isRequired},T.Z=n},58380:function(A,T,e){var t=e(32735),y=e(15367),c=e(60216),o=e.n(c),s=e(67879);const a=({errors:r,values:f,onChange:n,canEditInputs:m})=>{const{formatMessage:u}=(0,s.Z)();return t.createElement(y.g,{label:u({id:"Settings.tokens.form.description",defaultMessage:"Description"}),id:"description",error:r.description?u(r.description?.id?r.description:{id:r.description,defaultMessage:r.description}):null,onChange:n,disabled:!m},f.description)};a.propTypes={errors:o().shape({description:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({description:o().string}).isRequired},a.defaultProps={errors:{}},T.Z=a},37823:function(A,T,e){var t=e(32735),y=e(2846),c=e(60216),o=e.n(c),s=e(67879);const a=({errors:r,values:f,onChange:n,canEditInputs:m})=>{const{formatMessage:u}=(0,s.Z)();return t.createElement(y.o,{name:"name",error:r.name?u(r.name?.id?r.name:{id:r.name,defaultMessage:r.name}):null,label:u({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:n,value:f.name,disabled:!m,required:!0})};a.propTypes={errors:o().shape({name:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({name:o().string}).isRequired},a.defaultProps={errors:{}},T.Z=a},32655:function(A,T,e){var t=e(32735),y=e(16773),c=e(40260),o=e(60216),s=e.n(o),a=e(67879);const r=({name:f,errors:n,values:m,onChange:u,canEditInputs:E,options:d,label:g})=>{const{formatMessage:l}=(0,a.Z)();return t.createElement(y.P,{name:f,label:l({id:g.id,defaultMessage:g.defaultMessage}),value:m&&m[f],error:n[f]?l(n[f]?.id?n[f]:{id:n[f],defaultMessage:n[f]}):null,onChange:u,placeholder:"Select",required:!0,disabled:!E},d&&d.map(({value:M,label:R})=>t.createElement(c.W,{key:M,value:M},l(R))))};r.propTypes={name:s().string,options:s().arrayOf(s().shape({label:s().shape({id:s().string,defaultMessage:s().string}),value:s().string})),errors:s().shape({type:s().string}),onChange:s().func.isRequired,canEditInputs:s().bool.isRequired,values:s().shape({type:s().string}).isRequired,label:s().shape({id:s().string,defaultMessage:s().string}).isRequired},r.defaultProps={name:"type",errors:{},options:[]},T.Z=r},49756:function(A,T,e){e.d(T,{Z:function(){return t},f:function(){return y}});const t="api-token",y="transfer-token"},25652:function(A,T,e){e.d(T,{IX:function(){return s},fK:function(){return n},mk:function(){return u}});var t=e(14723),y=e(85544),c=e(76698),s=(E,d,g="en")=>{if(d&&typeof d=="number"){const l=d/24/60/60/1e3;return(0,t.Z)((0,y.Z)(new Date(E),l),"PPP",{locale:c[g]})}return"Unlimited"},a=e(30126),r=e(24346),n=r.Ry().shape({name:r.Z_(a.I0.string).max(100).required(a.I0.required),type:r.Z_(a.I0.string).oneOf(["read-only","full-access","custom"]).required(a.I0.required),description:r.Z_().nullable(),lifespan:r.Rx().integer().min(0).nullable().defined(a.I0.required)}),u=E=>{const d={allActionsIds:[],permissions:[]};return d.permissions=Object.keys(E).map(g=>({apiId:g,label:g.split("::")[1],controllers:Object.keys(E[g].controllers).map(l=>({controller:l,actions:E[g].controllers[l].map(M=>{const R=`${g}.${l}.${M}`;return g.includes("api::")&&d.allActionsIds.push(R),{action:M,actionId:R}}).flat()})).flat()})),d}},1930:function(A,T,e){e.d(T,{Z:function(){return ne}});var t=e(32735),y=e(95162),c=e(56932),o=e(84642),s=e(30126),a=e(92802),r=e(67879),f=e(20108),n=e(15062),m=e(53038),u=e(90869),E=e(30305),d=e(49756),g=e(39404),l=e(7210),M=e(77981),R=e(8365),O=e(10710),L=e(97037),W=e(60216),i=e.n(W),K=e(82505),B=e(58380),U=e(37823),x=e(32655);const h=({errors:C,onChange:k,canEditInputs:Z,isCreating:D,values:S,transferToken:v})=>{const{formatMessage:F}=(0,r.Z)(),Q=[{value:"push",label:{id:"Settings.transferTokens.types.push",defaultMessage:"Push"}},{value:"pull",label:{id:"Settings.transferTokens.types.pull",defaultMessage:"Pull"}},{value:"push-pull",label:{id:"Settings.transferTokens.types.push-pull",defaultMessage:"Full Access"}}];return t.createElement(M.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(R.Z,{variant:"delta",as:"h2"},F({id:"global.details",defaultMessage:"Details"})),t.createElement(O.r,{gap:5},t.createElement(L.P,{key:"name",col:6,xs:12},t.createElement(U.Z,{errors:C,values:S,canEditInputs:Z,onChange:k})),t.createElement(L.P,{key:"description",col:6,xs:12},t.createElement(B.Z,{errors:C,values:S,canEditInputs:Z,onChange:k})),t.createElement(L.P,{key:"lifespan",col:6,xs:12},t.createElement(K.Z,{isCreating:D,errors:C,values:S,onChange:k,token:v})),t.createElement(L.P,{key:"permissions",col:6,xs:12},t.createElement(x.Z,{name:"permissions",values:S,errors:C,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:V=>{k({target:{name:"permissions",value:V}})},options:Q,canEditInputs:Z})))))};h.propTypes={errors:i().shape({name:i().string,description:i().string,lifespan:i().string,type:i().string}),onChange:i().func.isRequired,canEditInputs:i().bool.isRequired,values:i().shape({name:i().string,description:i().string,lifespan:i().oneOfType([i().number,i().string]),type:i().string}).isRequired,isCreating:i().bool.isRequired,transferToken:i().shape({id:i().oneOfType([i().number,i().string]),type:i().string,lifespan:i().string,name:i().string,accessKey:i().string,permissions:i().array,description:i().string,createdAt:i().string})},h.defaultProps={errors:{},transferToken:{}};var z=h,j=e(64092),_=e(91779),q=e(40501);const G=({transferTokenName:C})=>{const{formatMessage:k}=(0,r.Z)();return(0,s.go)(),t.createElement(y.o,{"aria-busy":"true"},t.createElement(s.SL,{name:"Transfer Tokens"}),t.createElement(j.T,{primaryAction:t.createElement(_.z,{disabled:!0,startIcon:t.createElement(q.Z,null),type:"button",size:"L"},k({id:"global.save",defaultMessage:"Save"})),title:C||k({id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"})}),t.createElement(c.D,null,t.createElement(s.dO,null)))};G.defaultProps={transferTokenName:null},G.propTypes={transferTokenName:i().string};var w=G,N=e(24346),ee=N.Ry().shape({name:N.Z_(s.I0.string).max(100).required(s.I0.required),description:N.Z_().nullable(),lifespan:N.Rx().integer().min(0).nullable().defined(s.I0.required),permissions:N.Z_(s.I0.string).required(s.I0.required)});const te="Name already taken";var ne=()=>{(0,s.go)();const{formatMessage:C}=(0,r.Z)(),{lockApp:k,unlockApp:Z}=(0,s.o1)(),D=(0,s.lm)(),S=(0,m.k6)(),[v,F]=(0,t.useState)(S.location.state?.transferToken.accessKey?{...S.location.state.transferToken}:null),{trackUsage:Q}=(0,s.rS)(),V=(0,t.useRef)(Q),{setCurrentStep:se}=(0,s.c1)(),ae=(0,n.v9)(E._),{allowedActions:{canCreate:re,canUpdate:ie,canRegenerate:oe}}=(0,s.ss)(ae.settings["transfer-tokens"]),{params:{id:Y}}=(0,m.$B)("/settings/transfer-tokens/:id"),{get:le,post:de,put:ce}=(0,s.kY)(),P=Y==="create",{formatAPIError:J}=(0,s.So)();(0,t.useEffect)(()=>{V.current(P?"didAddTokenFromList":"didEditTokenFromList",{tokenType:d.f})},[P]);const{status:ue}=(0,f.useQuery)(["transfer-token",Y],async()=>{const{data:{data:p}}=await le(`/admin/transfer/tokens/${Y}`);return F({...p}),p},{enabled:!P&&!v,onError(p){p.response.data.error.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:J(p)})}}),ge=async(p,$)=>{V.current(P?"willCreateToken":"willEditToken",{tokenType:d.f}),k();const X=p.lifespan&&parseInt(p.lifespan,10)&&p.lifespan!=="0"?parseInt(p.lifespan,10):null,H=p.permissions.split("-");try{const{data:{data:I}}=P?await de("/admin/transfer/tokens",{...p,lifespan:X,permissions:H}):await ce(`/admin/transfer/tokens/${Y}`,{name:p.name,description:p.description,permissions:H});Z(),P&&(S.replace(`/settings/transfer-tokens/${I.id}`,{transferToken:I}),se("transferTokens.success")),F({...I}),D({type:"success",message:C(P?{id:"notification.success.transfertokencreated",defaultMessage:"Transfer Token successfully created"}:{id:"notification.success.transfertokenedited",defaultMessage:"Transfer Token successfully edited"})}),V.current(P?"didCreateToken":"didEditToken",{type:v?.permissions,tokenType:d.f})}catch(I){const fe=(0,u.Iz)(I.response.data);$.setErrors(fe),I?.response?.data?.error?.message===te?D({type:"warning",message:I.response.data.message||"notification.error.tokennamenotunique"}):I?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:I?.response?.data?.message||"notification.error"}),Z()}},b=ie&&!P||re&&P;if(!P&&!v&&ue!=="success")return t.createElement(w,{transferTokenName:v?.name});const pe=p=>{p?.response?.data?.error?.details?.code==="INVALID_TOKEN_SALT"?D({type:"warning",message:{id:"notification.error.invalid.configuration",defaultMessage:"You have an invalid configuration, check your server log for more information."}}):D({type:"warning",message:J(p)})};return t.createElement(y.o,null,t.createElement(s.SL,{name:"Transfer Tokens"}),t.createElement(a.J9,{validationSchema:ee,validateOnChange:!1,initialValues:{name:v?.name||"",description:v?.description||"",lifespan:v?.lifespan?v.lifespan.toString():v?.lifespan,permissions:v?.permissions.join("-")},enableReinitialize:!0,onSubmit:(p,$)=>ge(p,$)},({errors:p,handleChange:$,isSubmitting:X,values:H})=>t.createElement(s.l0,null,t.createElement(g.Z,{backUrl:"/settings/transfer-tokens",title:{id:"Settings.transferTokens.createPage.title",defaultMessage:"Create Transfer Token"},token:v,setToken:F,canEditInputs:b,canRegenerate:oe,isSubmitting:X,regenerateUrl:"/admin/transfer/tokens/",onErrorRegenerate:pe}),t.createElement(c.D,null,t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(v?.name)&&t.createElement(l.Z,{token:v?.accessKey,tokenType:d.f}),t.createElement(z,{errors:p,onChange:$,canEditInputs:b,isCreating:P,values:H,transferToken:v}))))))}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1227],{21227:function(A,a,t){t.d(a,{ReviewWorkflowsAssigneeEE:function(){return f},ReviewWorkflowsStageEE:function(){return O}});var e=t(32735),s=t(84642),T=t(77981),i=t(8365),r=t(30126),E=t(60216),n=t.n(E),o=t(2121),u=t(68886);function O({color:l,name:c}){const{themeColorName:_}=(0,u.k)(l);return e.createElement(s.k,{alignItems:"center",gap:2,maxWidth:(0,r.Q1)(300)},e.createElement(T.x,{height:2,background:l,borderColor:_==="neutral0"?"neutral150":"transparent",hasRadius:!0,shrink:0,width:2}),e.createElement(i.Z,{fontWeight:"regular",textColor:"neutral700",ellipsis:!0},c))}O.defaultProps={color:o.FT},O.propTypes={color:n().string,name:n().string.isRequired};var S=t(67879),W=t(69997);function f({user:l}){const{formatMessage:c}=(0,S.Z)();return e.createElement(i.Z,{textColor:"neutral800"},(0,W.Gf)(l,c))}f.propTypes={user:n().shape({firstname:n().string,lastname:n().string,username:n().string}).isRequired}},2121:function(A,a,t){t.d(a,{$k:function(){return l},Ef:function(){return v},FT:function(){return R},Nj:function(){return W},Ot:function(){return O},QM:function(){return o},VS:function(){return c},_X:function(){return C},bc:function(){return S},gu:function(){return T},k_:function(){return f},lv:function(){return _},qZ:function(){return n},rg:function(){return r},sN:function(){return s},uL:function(){return g},x4:function(){return u},yq:function(){return i},zn:function(){return E}});var e=t(41865);const s="settings_review-workflows",T="Settings/Review_Workflows/RESET_WORKFLOW",i="Settings/Review_Workflows/SET_CONTENT_TYPES",r="Settings/Review_Workflows/SET_IS_LOADING",E="Settings/Review_Workflows/SET_ROLES",n="Settings/Review_Workflows/SET_WORKFLOW",o="Settings/Review_Workflows/SET_WORKFLOWS",u="Settings/Review_Workflows/WORKFLOW_DELETE_STAGE",O="Settings/Review_Workflows/WORKFLOW_ADD_STAGE",S="Settings/Review_Workflows/WORKFLOW_CLONE_STAGE",W="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE",f="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGES",l="Settings/Review_Workflows/WORKFLOW_UPDATE_STAGE_POSITION",c="Settings/Review_Workflows/WORKFLOW_UPDATE",_={primary600:"Blue",primary200:"Lilac",alternative600:"Violet",alternative200:"Lavender",success600:"Green",success200:"Pale Green",danger500:"Cherry",danger200:"Pink",warning600:"Orange",warning200:"Yellow",secondary600:"Teal",secondary200:"Baby Blue",neutral400:"Gray",neutral0:"White"},R=e.W.colors.primary600,g={STAGE:"stage"},v="numberOfWorkflows",C="stagesPerWorkflow"},68886:function(A,a,t){t.d(a,{k:function(){return T},s:function(){return i}});var e=t(41865),s=t(2121);function T(r){if(!r)return null;const n=Object.entries(e.W.colors).filter(([,o])=>o.toUpperCase()===r.toUpperCase()).reduce((o,[u])=>(s.lv?.[u]&&(o=u),o),null);return n?{themeColorName:n,name:s.lv[n]}:null}function i(){return Object.entries(s.lv).map(([r,E])=>({hex:e.W.colors[r].toUpperCase(),name:E}))}}}]);
@@ -1,7 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1386],{31386:function(E,v,c){"use strict";c.r(v),c.d(v,{ROUTES_EE:function(){return l}});var u=c(32735),a=c(30126),p=c(49189),d=c.n(p),C=c(67879),t=c(53038);const o=()=>{const{params:{authResponse:n}}=(0,t.$B)("/auth/login/:authResponse"),{formatMessage:r}=(0,C.Z)(),{push:e}=(0,t.k6)(),g=(0,u.useRef)(r);let i=(0,u.useCallback)(()=>{e(`/auth/oops?info=${encodeURIComponent(g.current({id:"Auth.form.button.login.providers.error",defaultMessage:"We cannot connect you through the selected provider."}))}`)},[e]);const{get:f}=(0,a.kY)(),s=(0,u.useCallback)(async()=>{try{const h=d().get("jwtToken");if(a.I8.clearAppStorage(),h){a.I8.setToken(h,!0);const R="/admin/users/me",{data:{data:I}}=await f(R);a.I8.setUserInfo(I,!0),d().remove("jwtToken"),e("/auth/login")}}catch{i()}},[f,e,i]);return(0,u.useEffect)(()=>{n==="error"&&i(),n==="success"&&s()},[n,s,i]),u.createElement(a.dO,null)};var m=null;const l=[{Component:()=>({default:o}),to:"/auth/login/:authResponse",exact:!0}]},49189:function(E,v,c){var u,a;/*!
2
- * JavaScript Cookie v2.2.1
3
- * https://github.com/js-cookie/js-cookie
4
- *
5
- * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6
- * Released under the MIT license
7
- */(function(p){var d;if(u=p,a=typeof u=="function"?u.call(v,c,v,E):u,a!==void 0&&(E.exports=a),d=!0,E.exports=p(),d=!0,!d){var C=window.Cookies,t=window.Cookies=p();t.noConflict=function(){return window.Cookies=C,t}}})(function(){function p(){for(var t=0,o={};t<arguments.length;t++){var m=arguments[t];for(var l in m)o[l]=m[l]}return o}function d(t){return t.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function C(t){function o(){}function m(n,r,e){if(!(typeof document>"u")){e=p({path:"/"},o.defaults,e),typeof e.expires=="number"&&(e.expires=new Date(new Date*1+e.expires*864e5)),e.expires=e.expires?e.expires.toUTCString():"";try{var g=JSON.stringify(r);/^[\{\[]/.test(g)&&(r=g)}catch{}r=t.write?t.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var i="";for(var f in e)e[f]&&(i+="; "+f,e[f]!==!0&&(i+="="+e[f].split(";")[0]));return document.cookie=n+"="+r+i}}function l(n,r){if(!(typeof document>"u")){for(var e={},g=document.cookie?document.cookie.split("; "):[],i=0;i<g.length;i++){var f=g[i].split("="),s=f.slice(1).join("=");!r&&s.charAt(0)==='"'&&(s=s.slice(1,-1));try{var h=d(f[0]);if(s=(t.read||t)(s,h)||d(s),r)try{s=JSON.parse(s)}catch{}if(e[h]=s,n===h)break}catch{}}return n?e[n]:e}}return o.set=m,o.get=function(n){return l(n,!1)},o.getJSON=function(n){return l(n,!0)},o.remove=function(n,r){m(n,"",p(r,{expires:-1}))},o.defaults={},o.withConverter=C,o}return C(function(){})})}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[1727],{81727:function(E,s,n){n.r(s),n.d(s,{MagicLinkEE:function(){return t}});var a=n(32735),_=n(60216),c=n.n(_),g=n(67879),e=n(35231),i=n(84024);const t=({registrationToken:o})=>{const{formatMessage:r}=(0,g.Z)();return o?a.createElement(i.Z,{target:`${window.location.origin}${e.Z}auth/register?registrationToken=${o}`},r({id:"app.components.Users.MagicLink.connect",defaultMessage:"Copy and share this link to give access to this user"})):a.createElement(i.Z,{target:`${window.location.origin}${e.Z}auth/login`},r({id:"app.components.Users.MagicLink.connect.sso",defaultMessage:"Send this link to the user, the first login can be made via a SSO provider."}))};t.defaultProps={registrationToken:""},t.propTypes={registrationToken:c().string}}}]);
Binary file
@@ -1,79 +0,0 @@
1
- (self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2225],{39404:function(T,m,e){"use strict";e.d(m,{Z:function(){return M}});var t=e(32735),u=e(64092),r=e(84642),o=e(91779),a=e(30126),i=e(40501),d=e(70788),y=e(60216),s=e.n(y),h=e(67879),v=e(69321),n=e(79652);const g=({onRegenerate:A,idToRegenerate:I,backUrl:K,onError:N})=>{const{formatMessage:S}=(0,h.Z)(),[P,B]=(0,t.useState)(!1),{regenerateData:R,isLoadingConfirmation:H}=(0,n.rW)(K,I,A,N),Z=async()=>{R(),B(!1)};return t.createElement(t.Fragment,null,t.createElement(o.z,{startIcon:t.createElement(v.Z,null),type:"button",size:"S",variant:"tertiary",onClick:()=>B(!0),name:"regenerate"},S({id:"Settings.tokens.regenerate",defaultMessage:"Regenerate"})),t.createElement(a.QH,{bodyText:{id:"Settings.tokens.popUpWarning.message",defaultMessage:"Are you sure you want to regenerate this token?"},iconRightButton:t.createElement(v.Z,null),isConfirmButtonLoading:H,isOpen:P,onToggleDialog:()=>B(!1),onConfirm:Z,leftButtonText:{id:"Settings.tokens.Button.cancel",defaultMessage:"Cancel"},rightButtonText:{id:"Settings.tokens.Button.regenerate",defaultMessage:"Regenerate"},title:{id:"Settings.tokens.RegenerateDialog.title",defaultMessage:"Regenerate token"}}))};g.defaultProps={onRegenerate(){},onError:void 0},g.propTypes={onRegenerate:s().func,idToRegenerate:s().oneOfType([s().number,s().string]).isRequired,backUrl:s().string.isRequired,onError:s().func};var l=g;const c=({title:A,token:I,setToken:K,canEditInputs:N,canRegenerate:S,isSubmitting:P,backUrl:B,regenerateUrl:R,onErrorRegenerate:H})=>{const{formatMessage:Z}=(0,h.Z)(),Y=X=>{K({...I,accessKey:X})};return t.createElement(u.T,{title:I?.name||Z(A),primaryAction:N?t.createElement(r.k,{gap:2},S&&I?.id&&t.createElement(l,{backUrl:R,onRegenerate:Y,idToRegenerate:I?.id,onError:H}),t.createElement(o.z,{disabled:P,loading:P,startIcon:t.createElement(i.Z,null),type:"submit",size:"S"},Z({id:"global.save",defaultMessage:"Save"}))):S&&I?.id&&t.createElement(l,{onRegenerate:Y,idToRegenerate:I?.id,backUrl:R}),navigationAction:t.createElement(a.rU,{startIcon:t.createElement(d.Z,null),to:B},Z({id:"global.back",defaultMessage:"Back"})),ellipsis:!0})};c.propTypes={token:s().shape({id:s().oneOfType([s().number,s().string]),type:s().string,lifespan:s().oneOfType([s().number,s().string]),name:s().string,accessKey:s().string,permissions:s().array,description:s().string,createdAt:s().string}),canEditInputs:s().bool.isRequired,canRegenerate:s().bool.isRequired,setToken:s().func.isRequired,isSubmitting:s().bool.isRequired,backUrl:s().string.isRequired,title:s().shape({id:s().string,label:s().string}).isRequired,regenerateUrl:s().string.isRequired,onErrorRegenerate:s().func},c.defaultProps={token:void 0,onErrorRegenerate:void 0};var M=c},82505:function(T,m,e){"use strict";var t=e(32735),u=e(16773),r=e(40260),o=e(8365),a=e(60216),i=e.n(a),d=e(67879),y=e(25652);const s=({token:h,errors:v,values:n,onChange:g,isCreating:l})=>{const{formatMessage:c}=(0,d.Z)();return t.createElement(t.Fragment,null,t.createElement(u.P,{name:"lifespan",label:c({id:"Settings.tokens.form.duration",defaultMessage:"Token duration"}),value:n.lifespan!==null?n.lifespan:"0",error:v.lifespan?c(v.lifespan?.id?v.lifespan:{id:v.lifespan,defaultMessage:v.lifespan}):null,onChange:M=>{g({target:{name:"lifespan",value:M}})},required:!0,disabled:!l,placeholder:"Select"},t.createElement(r.W,{value:"604800000"},c({id:"Settings.tokens.duration.7-days",defaultMessage:"7 days"})),t.createElement(r.W,{value:"2592000000"},c({id:"Settings.tokens.duration.30-days",defaultMessage:"30 days"})),t.createElement(r.W,{value:"7776000000"},c({id:"Settings.tokens.duration.90-days",defaultMessage:"90 days"})),t.createElement(r.W,{value:"0"},c({id:"Settings.tokens.duration.unlimited",defaultMessage:"Unlimited"}))),t.createElement(o.Z,{variant:"pi",textColor:"neutral600"},!l&&`${c({id:"Settings.tokens.duration.expiration-date",defaultMessage:"Expiration date"})}: ${(0,y.IX)(h?.createdAt,parseInt(n.lifespan,10))}`))};s.propTypes={errors:i().shape({lifespan:i().string}),onChange:i().func.isRequired,values:i().shape({lifespan:i().oneOfType([i().number,i().string])}).isRequired,isCreating:i().bool.isRequired,token:i().shape({id:i().oneOfType([i().number,i().string]),type:i().string,lifespan:i().string,name:i().string,accessKey:i().string,permissions:i().array,description:i().string,createdAt:i().string})},s.defaultProps={errors:{},token:{}},m.Z=s},7210:function(T,m,e){"use strict";var t=e(32735),u=e(14763),r=e(30126),o=e(94958),a=e(42815),i=e(60216),d=e.n(i),y=e(67879);const s=({token:h,tokenType:v})=>{const{formatMessage:n}=(0,y.Z)(),g=(0,r.lm)(),{trackUsage:l}=(0,r.rS)(),{copy:c}=(0,r.VP)(),M=A=>async()=>{await c(A)&&(l("didCopyTokenKey",{tokenType:v}),g({type:"success",message:{id:"Settings.tokens.notification.copied"}}))};return t.createElement(r.Y_,{endAction:h&&t.createElement("span",{style:{alignSelf:"start"}},t.createElement(u.h,{label:n({id:"app.component.CopyToClipboard.label",defaultMessage:"Copy to clipboard"}),onClick:M(h),noBorder:!0,icon:t.createElement(o.Z,null),style:{padding:0,height:"1rem"}})),title:h||n({id:"Settings.tokens.copy.editTitle",defaultMessage:"This token isn\u2019t accessible anymore."}),subtitle:n(h?{id:"Settings.tokens.copy.lastWarning",defaultMessage:"Make sure to copy this token, you won\u2019t be able to see it again!"}:{id:"Settings.tokens.copy.editMessage",defaultMessage:"For security reasons, you can only see your token once."}),icon:t.createElement(a.Z,null),iconBackground:"neutral100"})};s.defaultProps={token:null},s.propTypes={token:d().string,tokenType:d().string.isRequired},m.Z=s},58380:function(T,m,e){"use strict";var t=e(32735),u=e(15367),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:y,onChange:s,canEditInputs:h})=>{const{formatMessage:v}=(0,a.Z)();return t.createElement(u.g,{label:v({id:"Settings.tokens.form.description",defaultMessage:"Description"}),id:"description",error:d.description?v(d.description?.id?d.description:{id:d.description,defaultMessage:d.description}):null,onChange:s,disabled:!h},y.description)};i.propTypes={errors:o().shape({description:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({description:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},37823:function(T,m,e){"use strict";var t=e(32735),u=e(2846),r=e(60216),o=e.n(r),a=e(67879);const i=({errors:d,values:y,onChange:s,canEditInputs:h})=>{const{formatMessage:v}=(0,a.Z)();return t.createElement(u.o,{name:"name",error:d.name?v(d.name?.id?d.name:{id:d.name,defaultMessage:d.name}):null,label:v({id:"Settings.tokens.form.name",defaultMessage:"Name"}),onChange:s,value:y.name,disabled:!h,required:!0})};i.propTypes={errors:o().shape({name:o().string}),onChange:o().func.isRequired,canEditInputs:o().bool.isRequired,values:o().shape({name:o().string}).isRequired},i.defaultProps={errors:{}},m.Z=i},32655:function(T,m,e){"use strict";var t=e(32735),u=e(16773),r=e(40260),o=e(60216),a=e.n(o),i=e(67879);const d=({name:y,errors:s,values:h,onChange:v,canEditInputs:n,options:g,label:l})=>{const{formatMessage:c}=(0,i.Z)();return t.createElement(u.P,{name:y,label:c({id:l.id,defaultMessage:l.defaultMessage}),value:h&&h[y],error:s[y]?c(s[y]?.id?s[y]:{id:s[y],defaultMessage:s[y]}):null,onChange:v,placeholder:"Select",required:!0,disabled:!n},g&&g.map(({value:M,label:A})=>t.createElement(r.W,{key:M,value:M},c(A))))};d.propTypes={name:a().string,options:a().arrayOf(a().shape({label:a().shape({id:a().string,defaultMessage:a().string}),value:a().string})),errors:a().shape({type:a().string}),onChange:a().func.isRequired,canEditInputs:a().bool.isRequired,values:a().shape({type:a().string}).isRequired,label:a().shape({id:a().string,defaultMessage:a().string}).isRequired},d.defaultProps={name:"type",errors:{},options:[]},m.Z=d},49756:function(T,m,e){"use strict";e.d(m,{Z:function(){return t},f:function(){return u}});const t="api-token",u="transfer-token"},72225:function(T,m,e){"use strict";e.d(m,{Z:function(){return Ge}});var t=e(32735),u=e(95162),r=e(56932),o=e(84642),a=e(30126),i=e(92802),d=e(67879),y=e(20108),s=e(15062),h=e(53038),v=e(60216),n=e.n(v);const g=(0,t.createContext)({}),l=({children:p,...E})=>t.createElement(g.Provider,{value:E},p),c=()=>(0,t.useContext)(g);l.propTypes={children:n().node.isRequired};var M=e(90869),A=e(30305),I=e(49756),K=e(39404),N=e(7210),S=e(77981),P=e(8365),B=e(10710),R=e(97037),H=e(82505),Z=e(58380),Y=e(37823),X=e(32655);const J=({errors:p,onChange:E,canEditInputs:f,isCreating:D,values:x,apiToken:k,onDispatch:O,setHasChangedPermissions:V})=>{const{formatMessage:j}=(0,d.Z)(),F=({target:{value:z}})=>{V(!1),z==="full-access"&&O({type:"SELECT_ALL_ACTIONS"}),z==="read-only"&&O({type:"ON_CHANGE_READ_ONLY"})},w=[{value:"read-only",label:{id:"Settings.tokens.types.read-only",defaultMessage:"Read-only"}},{value:"full-access",label:{id:"Settings.tokens.types.full-access",defaultMessage:"Full access"}},{value:"custom",label:{id:"Settings.tokens.types.custom",defaultMessage:"Custom"}}];return t.createElement(S.x,{background:"neutral0",hasRadius:!0,shadow:"filterShadow",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:4},t.createElement(P.Z,{variant:"delta",as:"h2"},j({id:"global.details",defaultMessage:"Details"})),t.createElement(B.r,{gap:5},t.createElement(R.P,{key:"name",col:6,xs:12},t.createElement(Y.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"description",col:6,xs:12},t.createElement(Z.Z,{errors:p,values:x,canEditInputs:f,onChange:E})),t.createElement(R.P,{key:"lifespan",col:6,xs:12},t.createElement(H.Z,{isCreating:D,errors:p,values:x,onChange:E,token:k})),t.createElement(R.P,{key:"type",col:6,xs:12},t.createElement(X.Z,{values:x,errors:p,label:{id:"Settings.tokens.form.type",defaultMessage:"Token type"},onChange:z=>{F({target:{value:z}}),E({target:{name:"type",value:z}})},options:w,canEditInputs:f})))))};J.propTypes={errors:n().shape({name:n().string,description:n().string,lifespan:n().string,type:n().string}),onChange:n().func.isRequired,canEditInputs:n().bool.isRequired,values:n().shape({name:n().string,description:n().string,lifespan:n().oneOfType([n().number,n().string]),type:n().string}).isRequired,isCreating:n().bool.isRequired,apiToken:n().shape({id:n().oneOfType([n().number,n().string]),type:n().string,lifespan:n().string,name:n().string,accessKey:n().string,permissions:n().array,description:n().string,createdAt:n().string}),onDispatch:n().func.isRequired,setHasChangedPermissions:n().func.isRequired},J.defaultProps={errors:{},apiToken:{}};var Q=J,ne=e(64092),le=e(91779),Te=e(40501);const _=({apiTokenName:p})=>{const{formatMessage:E}=(0,d.Z)();return(0,a.go)(),t.createElement(u.o,{"aria-busy":"true"},t.createElement(a.SL,{name:"API Tokens"}),t.createElement(ne.T,{primaryAction:t.createElement(le.z,{disabled:!0,startIcon:t.createElement(Te.Z,null),type:"button",size:"L"},E({id:"global.save",defaultMessage:"Save"})),title:p||E({id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"})}),t.createElement(r.D,null,t.createElement(a.dO,null)))};_.defaultProps={apiTokenName:null},_.propTypes={apiTokenName:n().string};var de=_,ce=e(37213),se=e.n(ce),ae=e(15738),oe=e.n(ae),re=e(8471),Pe=p=>{switch(p){case"POST":return{text:"success600",border:"success200",background:"success100"};case"GET":return{text:"secondary600",border:"secondary200",background:"secondary100"};case"PUT":return{text:"warning600",border:"warning200",background:"warning100"};case"DELETE":return{text:"danger600",border:"danger200",background:"danger100"};default:return{text:"neutral600",border:"neutral200",background:"neutral100"}}};const xe=(0,re.ZP)(S.x)`
2
- margin: -1px;
3
- border-radius: ${({theme:p})=>p.spaces[1]} 0 0 ${({theme:p})=>p.spaces[1]};
4
- `;function ue({route:p}){const{formatMessage:E}=(0,d.Z)(),{method:f,handler:D,path:x}=p,k=x?oe()(x.split("/")):[],[O="",V=""]=D?D.split("."):[],j=Pe(p.method);return t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement(P.Z,{variant:"delta",as:"h3"},E({id:"Settings.apiTokens.createPage.BoundRoute.title",defaultMessage:"Bound route to"}),"\xA0",t.createElement("span",null,O),t.createElement(P.Z,{variant:"delta",textColor:"primary600"},".",V)),t.createElement(o.k,{hasRadius:!0,background:"neutral0",borderColor:"neutral200",gap:0},t.createElement(xe,{background:j.background,borderColor:j.border,padding:2},t.createElement(P.Z,{fontWeight:"bold",textColor:j.text},f)),t.createElement(S.x,{paddingLeft:2,paddingRight:2},se()(k,F=>t.createElement(P.Z,{key:F,textColor:F.includes(":")?"neutral600":"neutral900"},"/",F)))))}ue.defaultProps={route:{handler:"Nocontroller.error",method:"GET",path:"/there-is-no-path"}},ue.propTypes={route:n().shape({handler:n().string,method:n().string,path:n().string})};var Oe=ue,Re=()=>{const{value:{selectedAction:p,routes:E}}=c(),{formatMessage:f}=(0,d.Z)(),D=p?.split(".")[0];return t.createElement(R.P,{col:5,background:"neutral150",paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7,style:{minHeight:"100%"}},p?t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},E[D]?.map(x=>x.config.auth?.scope?.includes(p)||x.handler===p?t.createElement(Oe,{key:x.handler,route:x}):null)):t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement(P.Z,{variant:"delta",as:"h3"},f({id:"Settings.apiTokens.createPage.permissions.header.title",defaultMessage:"Advanced settings"})),t.createElement(P.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.header.hint",defaultMessage:"Select the application's actions or the plugin's actions and click on the cog icon to display the bound route"}))))},Ie=e(9435),De=e(9379),Se=e(79624),Ce=e(31014),ke=e(19594),Le=e(73400),Be=e.n(Le);const Ae=(0,re.iv)`
5
- background: ${p=>p.theme.colors.primary100};
6
- svg {
7
- opacity: 1;
8
- }
9
- `;var Ue=(0,re.ZP)(S.x)`
10
- display: flex;
11
- justify-content: space-between;
12
- align-items: center;
13
-
14
- svg {
15
- opacity: 0;
16
- path {
17
- fill: ${p=>p.theme.colors.primary600};
18
- }
19
- }
20
-
21
- /* Show active style both on hover and when the action is selected */
22
- ${p=>p.isActive&&Ae}
23
- &:hover {
24
- ${Ae}
25
- }
26
- `;const be=re.ZP.div`
27
- flex: 1;
28
- align-self: center;
29
- border-top: 1px solid ${({theme:p})=>p.colors.neutral150};
30
- `,pe=({controllers:p,label:E,orderNumber:f,disabled:D,onExpanded:x,indexExpandendCollapsedContent:k})=>{const{value:{onChangeSelectAll:O,onChange:V,selectedActions:j,setSelectedAction:F,selectedAction:w}}=c(),[z,ie]=(0,t.useState)(!1),{formatMessage:Ee}=(0,d.Z)(),q=()=>{ie(L=>!L),x(f)};(0,t.useEffect)(()=>{k!==null&&k!==f&&z&&ie(!1)},[k,f,z]);const b=L=>L===w;return t.createElement(Ie.U,{expanded:z,onToggle:q,variant:f%2?"primary":"secondary"},t.createElement(De.B,{title:Be()(E)}),t.createElement(Se.v,null,p?.map(L=>{const ee=L.actions.every(W=>j.includes(W.actionId)),fe=L.actions.some(W=>j.includes(W.actionId));return t.createElement(S.x,{key:`${E}.${L?.controller}`},t.createElement(o.k,{justifyContent:"space-between",alignItems:"center",padding:4},t.createElement(S.x,{paddingRight:4},t.createElement(P.Z,{variant:"sigma",textColor:"neutral600"},L?.controller)),t.createElement(be,null),t.createElement(S.x,{paddingLeft:4},t.createElement(Ce.X,{value:ee,indeterminate:!ee&&fe,onValueChange:()=>{O({target:{value:[...L.actions]}})},disabled:D},Ee({id:"app.utils.select-all",defaultMessage:"Select all"})))),t.createElement(B.r,{gap:4,padding:4},L?.actions&&L?.actions.map(W=>t.createElement(R.P,{col:6,key:W.actionId},t.createElement(Ue,{isActive:b(W.actionId),padding:2,hasRadius:!0},t.createElement(Ce.X,{value:j.includes(W.actionId),name:W.actionId,onValueChange:()=>{V({target:{value:W.actionId}})},disabled:D},W.action),t.createElement("button",{type:"button","data-testid":"action-cog",onClick:()=>F({target:{value:W.actionId}}),style:{display:"inline-flex",alignItems:"center"}},t.createElement(ke.Z,null)))))))})))};pe.defaultProps={controllers:[],orderNumber:0,disabled:!1,onExpanded:()=>null,indexExpandendCollapsedContent:null},pe.propTypes={controllers:n().array,orderNumber:n().number,label:n().string.isRequired,disabled:n().bool,onExpanded:n().func,indexExpandendCollapsedContent:n().number};var Ze=pe;const ge=({section:p,...E})=>{const[f,D]=(0,t.useState)(null),x=k=>D(k);return t.createElement(S.x,{padding:4,background:"neutral0"},p&&p.map((k,O)=>t.createElement(Ze,{key:k.apiId,label:k.label,controllers:k.controllers,orderNumber:O,indexExpandendCollapsedContent:f,onExpanded:x,name:k.apiId,...E})))};ge.defaultProps={section:null},ge.propTypes={section:n().arrayOf(n().object)};var We=ge;const Ke=({...p})=>{const{value:{data:E}}=c(),{formatMessage:f}=(0,d.Z)();return t.createElement(B.r,{gap:0,shadow:"filterShadow",hasRadius:!0,background:"neutral0"},t.createElement(R.P,{col:7,paddingTop:6,paddingBottom:6,paddingLeft:7,paddingRight:7},t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:2},t.createElement(P.Z,{variant:"delta",as:"h2"},f({id:"Settings.apiTokens.createPage.permissions.title",defaultMessage:"Permissions"})),t.createElement(P.Z,{as:"p",textColor:"neutral600"},f({id:"Settings.apiTokens.createPage.permissions.description",defaultMessage:"Only actions bound by a route are listed below."}))),E?.permissions&&t.createElement(We,{section:E?.permissions,...p})),t.createElement(Re,null))};var Ne=(0,t.memo)(Ke),me=e(25652),$e=(p,E=[])=>({...p,selectedAction:null,routes:[],selectedActions:[],data:(0,me.mk)(E)}),je=e(97889),Fe=e(82879),Me=e.n(Fe);const ze={data:{},selectedActions:[]};var He=(p,E)=>(0,je.ZP)(p,f=>{switch(E.type){case"ON_CHANGE":{f.selectedActions.includes(E.value)?Me()(f.selectedActions,E.value):f.selectedActions.push(E.value);break}case"SELECT_ALL_IN_PERMISSION":{E.value.every(x=>f.selectedActions.includes(x.actionId))?E.value.forEach(x=>{Me()(f.selectedActions,x.actionId)}):E.value.forEach(x=>{f.selectedActions.push(x.actionId)});break}case"SELECT_ALL_ACTIONS":{f.selectedActions=[...f.data.allActionsIds];break}case"ON_CHANGE_READ_ONLY":{const D=f.data.allActionsIds.filter(x=>x.includes("find")||x.includes("findOne"));f.selectedActions=[...D];break}case"UPDATE_PERMISSIONS_LAYOUT":{f.data=(0,me.mk)(E.value);break}case"UPDATE_ROUTES":{f.routes={...E.value};break}case"UPDATE_PERMISSIONS":{f.selectedActions=[...E.value];break}case"SET_SELECTED_ACTION":{f.selectedAction=E.value;break}default:return f}});const Ve="Name already taken";var Ge=()=>{(0,a.go)();const{formatMessage:p}=(0,d.Z)(),{lockApp:E,unlockApp:f}=(0,a.o1)(),D=(0,a.lm)(),x=(0,h.k6)(),k=(0,s.v9)(A._),[O,V]=(0,t.useState)(x.location.state?.apiToken.accessKey?{...x.location.state.apiToken}:null),{trackUsage:j}=(0,a.rS)(),F=(0,t.useRef)(j),{setCurrentStep:w}=(0,a.c1)(),{allowedActions:{canCreate:z,canUpdate:ie,canRegenerate:Ee}}=(0,a.ss)(k.settings["api-tokens"]),[q,b]=(0,t.useReducer)(He,ze,C=>$e(C,{})),{params:{id:L}}=(0,h.$B)("/settings/api-tokens/:id"),{get:ee,post:fe,put:W}=(0,a.kY)(),$=L==="create";(0,y.useQuery)("content-api-permissions",async()=>{const[C,G]=await Promise.all(["/admin/content-api/permissions","/admin/content-api/routes"].map(async te=>{const{data:U}=await ee(te);return U.data}));b({type:"UPDATE_PERMISSIONS_LAYOUT",value:C}),b({type:"UPDATE_ROUTES",value:G}),O&&(O?.type==="read-only"&&b({type:"ON_CHANGE_READ_ONLY"}),O?.type==="full-access"&&b({type:"SELECT_ALL_ACTIONS"}),O?.type==="custom"&&b({type:"UPDATE_PERMISSIONS",value:O?.permissions}))},{onError(){D({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),(0,t.useEffect)(()=>{F.current($?"didAddTokenFromList":"didEditTokenFromList",{tokenType:I.Z})},[$]);const{status:Ye}=(0,y.useQuery)(["api-token",L],async()=>{const{data:{data:C}}=await ee(`/admin/api-tokens/${L}`);return V({...C}),C?.type==="read-only"&&b({type:"ON_CHANGE_READ_ONLY"}),C?.type==="full-access"&&b({type:"SELECT_ALL_ACTIONS"}),C?.type==="custom"&&b({type:"UPDATE_PERMISSIONS",value:C?.permissions}),C},{enabled:!$&&!O,onError(){D({type:"warning",message:{id:"notification.error",defaultMessage:"An error occured"}})}}),Xe=async(C,G)=>{F.current($?"willCreateToken":"willEditToken",{tokenType:I.Z}),E();const te=C.lifespan&&parseInt(C.lifespan,10)&&C.lifespan!=="0"?parseInt(C.lifespan,10):null;try{const{data:{data:U}}=$?await fe("/admin/api-tokens",{...C,lifespan:te,permissions:C.type==="custom"?q.selectedActions:null}):await W(`/admin/api-tokens/${L}`,{name:C.name,description:C.description,type:C.type,permissions:C.type==="custom"?q.selectedActions:null});$&&(x.replace(`/settings/api-tokens/${U.id}`,{apiToken:U}),w("apiTokens.success")),f(),V({...U}),D({type:"success",message:p($?{id:"notification.success.apitokencreated",defaultMessage:"API Token successfully created"}:{id:"notification.success.apitokenedited",defaultMessage:"API Token successfully edited"})}),F.current($?"didCreateToken":"didEditToken",{type:O.type,tokenType:I.Z})}catch(U){const ve=(0,M.Iz)(U.response.data);G.setErrors(ve),U?.response?.data?.error?.message===Ve?D({type:"warning",message:U.response.data.message||"notification.error.tokennamenotunique"}):D({type:"warning",message:U?.response?.data?.message||"notification.error"}),f()}},[Qe,ye]=(0,t.useState)(!1),Je={...q,onChange:({target:{value:C}})=>{ye(!0),b({type:"ON_CHANGE",value:C})},onChangeSelectAll:({target:{value:C}})=>{ye(!0),b({type:"SELECT_ALL_IN_PERMISSION",value:C})},setSelectedAction:({target:{value:C}})=>{b({type:"SET_SELECTED_ACTION",value:C})}},he=ie&&!$||z&&$;return!$&&!O&&Ye!=="success"?t.createElement(de,{apiTokenName:O?.name}):t.createElement(l,{value:Je},t.createElement(u.o,null,t.createElement(a.SL,{name:"API Tokens"}),t.createElement(i.J9,{validationSchema:me.fK,validateOnChange:!1,initialValues:{name:O?.name||"",description:O?.description||"",type:O?.type,lifespan:O?.lifespan?O.lifespan.toString():O?.lifespan},enableReinitialize:!0,onSubmit:(C,G)=>Xe(C,G)},({errors:C,handleChange:G,isSubmitting:te,values:U,setFieldValue:ve})=>(Qe&&U?.type!=="custom"&&ve("type","custom"),t.createElement(a.l0,null,t.createElement(K.Z,{backUrl:"/settings/api-tokens",title:{id:"Settings.apiTokens.createPage.title",defaultMessage:"Create API Token"},token:O,setToken:V,canEditInputs:he,canRegenerate:Ee,isSubmitting:te,regenerateUrl:"/admin/api-tokens/"}),t.createElement(r.D,null,t.createElement(o.k,{direction:"column",alignItems:"stretch",gap:6},Boolean(O?.name)&&t.createElement(N.Z,{token:O?.accessKey,tokenType:I.Z}),t.createElement(Q,{errors:C,onChange:G,canEditInputs:he,isCreating:$,values:U,apiToken:O,onDispatch:b,setHasChangedPermissions:ye}),t.createElement(Ne,{disabled:!he||U?.type==="read-only"||U?.type==="full-access"}))))))))}},25652:function(T,m,e){"use strict";e.d(m,{IX:function(){return a},fK:function(){return s},mk:function(){return v}});var t=e(14723),u=e(85544),r=e(76698),a=(n,g,l="en")=>{if(g&&typeof g=="number"){const c=g/24/60/60/1e3;return(0,t.Z)((0,u.Z)(new Date(n),c),"PPP",{locale:r[l]})}return"Unlimited"},i=e(30126),d=e(24346),s=d.Ry().shape({name:d.Z_(i.I0.string).max(100).required(i.I0.required),type:d.Z_(i.I0.string).oneOf(["read-only","full-access","custom"]).required(i.I0.required),description:d.Z_().nullable(),lifespan:d.Rx().integer().min(0).nullable().defined(i.I0.required)}),v=n=>{const g={allActionsIds:[],permissions:[]};return g.permissions=Object.keys(n).map(l=>({apiId:l,label:l.split("::")[1],controllers:Object.keys(n[l].controllers).map(c=>({controller:c,actions:n[l].controllers[c].map(M=>{const A=`${l}.${c}.${M}`;return l.includes("api::")&&g.allActionsIds.push(A),{action:M,actionId:A}}).flat()})).flat()})),g}},60528:function(T){function m(e,t,u,r){for(var o=e.length,a=u+(r?1:-1);r?a--:++a<o;)if(t(e[a],a,e))return a;return-1}T.exports=m},87650:function(T,m,e){var t=e(60528),u=e(25556),r=e(54256);function o(a,i,d){return i===i?r(a,i,d):t(a,u,d)}T.exports=o},15880:function(T){function m(e,t,u,r){for(var o=u-1,a=e.length;++o<a;)if(r(e[o],t))return o;return-1}T.exports=m},25556:function(T){function m(e){return e!==e}T.exports=m},25026:function(T,m,e){var t=e(26460),u=e(87650),r=e(15880),o=e(76535),a=e(66438),i=Array.prototype,d=i.splice;function y(s,h,v,n){var g=n?r:u,l=-1,c=h.length,M=s;for(s===h&&(h=a(h)),v&&(M=t(s,o(v)));++l<c;)for(var A=0,I=h[l],K=v?v(I):I;(A=g(M,K,A,n))>-1;)M!==s&&d.call(M,A,1),d.call(s,A,1);return s}T.exports=y},54256:function(T){function m(e,t,u){for(var r=u-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}T.exports=m},37213:function(T,m,e){var t=e(26460),u=e(88904),r=e(52920),o=e(77236);function a(i,d){var y=o(i)?t:r;return y(i,u(d,3))}T.exports=a},82879:function(T,m,e){var t=e(94569),u=e(83147),r=t(u);T.exports=r},83147:function(T,m,e){var t=e(25026);function u(r,o){return r&&r.length&&o&&o.length?t(r,o):r}T.exports=u},15738:function(T,m,e){var t=e(4293);function u(r){var o=r==null?0:r.length;return o?t(r,1,o):[]}T.exports=u},9435:function(T,m,e){"use strict";e.d(m,{U:function(){return n},y:function(){return h}});var t=e(74512),u=e(32735),r=e(8471),o=e(85612),a=e(37808),i=e(8365),d=e(84642),y=e(77981);const s=({theme:g,expanded:l,variant:c,disabled:M,error:A})=>A?`1px solid ${g.colors.danger600} !important`:M?`1px solid ${g.colors.neutral150}`:l?`1px solid ${g.colors.primary600}`:c==="primary"?`1px solid ${g.colors.neutral0}`:`1px solid ${g.colors.neutral100}`,h=(0,r.ZP)(i.Z)``,v=(0,r.ZP)(y.x)`
31
- border: ${s};
32
-
33
- &:hover:not([aria-disabled='true']) {
34
- border: 1px solid ${({theme:g})=>g.colors.primary600};
35
-
36
- ${h} {
37
- color: ${({theme:g,expanded:l})=>l?void 0:g.colors.primary700};
38
- }
39
-
40
- ${i.Z} {
41
- color: ${({theme:g,expanded:l})=>l?void 0:g.colors.primary600};
42
- }
43
-
44
- & > ${d.k} {
45
- background: ${({theme:g})=>g.colors.primary100};
46
- }
47
-
48
- [data-strapi-dropdown='true'] {
49
- background: ${({theme:g})=>g.colors.primary200};
50
- }
51
- }
52
- `,n=({children:g,disabled:l=!1,error:c,expanded:M=!1,hasErrorMessage:A=!0,id:I,onToggle:K,toggle:N,size:S="M",variant:P="primary",shadow:B})=>{const R=(0,a.M)(I),H=u.useMemo(()=>({expanded:M,onToggle:K,toggle:N,id:R,size:S,variant:P,disabled:l}),[l,M,R,K,S,N,P]);return(0,t.jsxs)(o.S.Provider,{value:H,children:[(0,t.jsx)(v,{"data-strapi-expanded":M,disabled:l,"aria-disabled":l,expanded:M,hasRadius:!0,variant:P,error:c,shadow:B,children:g}),c&&A&&(0,t.jsx)(y.x,{paddingTop:1,children:(0,t.jsx)(i.Z,{variant:"pi",textColor:"danger600",children:c})})]})}},79624:function(T,m,e){"use strict";e.d(m,{v:function(){return o}});var t=e(74512),u=e(85612),r=e(77981);const o=({children:a,...i})=>{const{expanded:d,id:y}=(0,u.A)();if(!d)return null;const s=`accordion-content-${y}`,h=`accordion-label-${y}`,v=`accordion-desc-${y}`;return(0,t.jsx)(r.x,{role:"region",id:s,"aria-labelledby":h,"aria-describedby":v,...i,children:a})}},85612:function(T,m,e){"use strict";e.d(m,{A:function(){return r},S:function(){return u}});var t=e(32735);const u=(0,t.createContext)({disabled:!1,expanded:!1,id:"",size:"M",variant:"primary"}),r=()=>(0,t.useContext)(u)},9379:function(T,m,e){"use strict";e.d(m,{B:function(){return g}});var t=e(74512),u=e(91917),r=e(8471),o=e(9435),a=e(85612);const i=({expanded:l,disabled:c,variant:M})=>{let A="neutral100";return l?A="primary100":c?A="neutral150":M==="primary"&&(A="neutral0"),A};var d=e(43743),y=e(18129),s=e(84642),h=e(8365);const v=(0,r.ZP)(d.A)`
53
- text-align: left;
54
-
55
- // necessary to make the ellipsis prop work on the title
56
- > span {
57
- max-width: 100%;
58
- }
59
-
60
- svg {
61
- width: ${14/16}rem;
62
- height: ${14/16}rem;
63
-
64
- path {
65
- fill: ${({theme:l,expanded:c})=>c?l.colors.primary600:l.colors.neutral500};
66
- }
67
- }
68
- `,n=(0,r.ZP)(s.k)`
69
- min-height: ${({theme:l,size:c})=>l.sizes.accordions[c]};
70
- border-radius: ${({theme:l,expanded:c})=>c?`${l.borderRadius} ${l.borderRadius} 0 0`:l.borderRadius};
71
-
72
- &:hover {
73
- svg {
74
- path {
75
- fill: ${({theme:l})=>l.colors.primary600};
76
- }
77
- }
78
- }
79
- `,g=({title:l,description:c,as:M="span",togglePosition:A="right",action:I,...K})=>{const{onToggle:N,toggle:S,expanded:P,id:B,size:R,variant:H,disabled:Z}=(0,a.A)(),Y=`accordion-content-${B}`,X=`accordion-label-${B}`,J=`accordion-desc-${B}`,Q=R==="M"?6:4,ne=R==="M"?Q:Q-2,le=i({expanded:P,disabled:Z,variant:H}),_={as:M,fontWeight:R==="S"?"bold":void 0,id:X,textColor:P?"primary600":"neutral700",ellipsis:!0,variant:R==="M"?"delta":void 0},de=P?"primary600":"neutral600",ce=P?"primary200":"neutral200",se=R==="M"?`${32/16}rem`:`${24/16}rem`,ae=()=>{Z||(S&&!N?(console.warn('Deprecation warning: Usage of "toggle" prop in Accordion component is deprecated. This is discouraged and will be removed in the next major release. Please use "onToggle" instead'),S()):N&&N())},oe=(0,t.jsx)(s.k,{justifyContent:"center",borderRadius:"50%",height:se,width:se,transform:P?"rotate(180deg)":void 0,"data-strapi-dropdown":!0,"aria-hidden":!0,as:"span",background:ce,cursor:Z?"not-allowed":"pointer",onClick:ae,shrink:0,children:(0,t.jsx)(y.J,{as:u.Z,width:R==="M"?`${11/16}rem`:`${8/16}rem`,color:P?"primary600":"neutral600"})});return(0,t.jsx)(n,{paddingBottom:ne,paddingLeft:Q,paddingRight:Q,paddingTop:ne,background:le,expanded:P,size:R,justifyContent:"space-between",cursor:Z?"not-allowed":"",children:(0,t.jsxs)(s.k,{gap:3,flex:1,maxWidth:"100%",children:[A==="left"&&oe,(0,t.jsx)(v,{onClick:ae,"aria-disabled":Z,"aria-expanded":P,"aria-controls":Y,"aria-labelledby":X,"data-strapi-accordion-toggle":!0,expanded:P,type:"button",flex:1,minWidth:0,...K,children:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(o.y,{..._,children:l}),c&&(0,t.jsx)(h.Z,{as:"p",id:J,textColor:de,children:c})]})}),A==="right"&&(0,t.jsxs)(s.k,{gap:3,children:[oe,I]}),A==="left"&&I]})})}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_strapi_admin=self.webpackChunk_strapi_admin||[]).push([[2379],{98866:function(m,a,t){t.d(a,{q:function(){return o}});var s=t(32735),E=t(30126),r=t(20108);function o({enabled:d}={enabled:!0}){const{get:l}=(0,E.kY)(),{data:i,isError:M,isLoading:u}=(0,r.useQuery)(["ee","license-limit-info"],async()=>{const{data:{data:n}}=await l("/admin/license-limit-information");return n},{enabled:d}),e=s.useMemo(()=>i??{},[i]),D=s.useCallback(n=>(e?.features??[]).find(_=>_.name===n)?.options??{},[e?.features]);return{license:e,getFeature:D,isError:M,isLoading:u}}},42379:function(m,a,t){t.r(a),t.d(a,{CreateActionEE:function(){return _}});var s=t(32735),E=t(84642),r=t(11349),o=t(18129),d=t(91779),l=t(42567),i=t(50720),M=t(36866),u=t.n(M),e=t(60216),D=t.n(e),n=t(67879),O=t(98866);const _=({onClick:C})=>{const{formatMessage:P}=(0,n.Z)(),{license:{permittedSeats:f,shouldStopCreate:c},isError:L,isLoading:A}=(0,O.q)();return L||A?null:s.createElement(E.k,{gap:2},!u()(f)&&c&&s.createElement(r.u,{description:P({id:"Settings.application.admin-seats.at-limit-tooltip",defaultMessage:"At limit: add seats to invite more users"}),position:"left"},s.createElement(o.J,{width:`${14/16}rem`,height:`${14/16}rem`,color:"danger500",as:l.Z})),s.createElement(d.z,{"data-testid":"create-user-button",onClick:C,startIcon:s.createElement(i.Z,null),size:"S",disabled:c},P({id:"Settings.permissions.users.create",defaultMessage:"Invite new user"})))};_.propTypes={onClick:D().func.isRequired}}}]);