@strapi/admin 5.44.0 → 5.45.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 (334) hide show
  1. package/dist/admin/admin/src/components/Table.js.map +1 -1
  2. package/dist/admin/admin/src/components/Table.mjs.map +1 -1
  3. package/dist/admin/admin/src/constants.js +49 -0
  4. package/dist/admin/admin/src/constants.js.map +1 -1
  5. package/dist/admin/admin/src/constants.mjs +49 -0
  6. package/dist/admin/admin/src/constants.mjs.map +1 -1
  7. package/dist/admin/admin/src/core/apis/router.js +4 -4
  8. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  9. package/dist/admin/admin/src/core/apis/router.mjs +4 -4
  10. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  11. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  12. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  13. package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.js +48 -11
  14. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.js.map +1 -0
  15. package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView/components → components/Tokens}/FormApiTokenContainer.mjs +49 -12
  16. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.mjs.map +1 -0
  17. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +1 -1
  18. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  19. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
  20. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  21. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js +1 -1
  22. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
  23. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs +1 -1
  24. package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +21 -1
  26. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +21 -1
  28. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  29. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +1 -1
  30. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  31. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
  32. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  33. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js +33 -0
  34. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.js.map +1 -1
  35. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs +14 -1
  36. package/dist/admin/admin/src/pages/Settings/components/Tokens/constants.mjs.map +1 -1
  37. package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.js +1 -1
  38. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.js.map +1 -0
  39. package/dist/admin/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.mjs +1 -1
  40. package/dist/admin/admin/src/pages/Settings/components/Tokens/utils/getDateOfExpiration.mjs.map +1 -0
  41. package/dist/admin/admin/src/pages/Settings/constants.js +182 -151
  42. package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
  43. package/dist/admin/admin/src/pages/Settings/constants.mjs +182 -151
  44. package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
  45. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js +17 -0
  46. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.js.map +1 -0
  47. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs +15 -0
  48. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/CreateView.mjs.map +1 -0
  49. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js +314 -0
  50. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.js.map +1 -0
  51. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs +292 -0
  52. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.mjs.map +1 -0
  53. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js +70 -0
  54. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.js.map +1 -0
  55. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs +49 -0
  56. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.mjs.map +1 -0
  57. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js +254 -0
  58. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.js.map +1 -0
  59. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs +231 -0
  60. package/dist/admin/admin/src/pages/Settings/pages/AdminTokens/ListView.mjs.map +1 -0
  61. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +42 -33
  62. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +43 -34
  64. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +3 -2
  66. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +3 -2
  68. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js +23 -12
  70. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +23 -12
  72. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js +124 -35
  74. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs +126 -37
  76. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +24 -9
  78. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +24 -9
  80. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js +5 -3
  82. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs +5 -3
  84. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js +171 -36
  86. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +172 -37
  88. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js +5 -3
  90. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs +5 -3
  92. package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js +59 -1
  94. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs +40 -1
  96. package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js +89 -0
  98. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.js.map +1 -0
  99. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs +86 -0
  100. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.mjs.map +1 -0
  101. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js +35 -9
  102. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs +35 -10
  104. package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
  105. package/dist/admin/admin/src/render.js +6 -3
  106. package/dist/admin/admin/src/render.js.map +1 -1
  107. package/dist/admin/admin/src/render.mjs +6 -3
  108. package/dist/admin/admin/src/render.mjs.map +1 -1
  109. package/dist/admin/admin/src/router.js +4 -4
  110. package/dist/admin/admin/src/router.js.map +1 -1
  111. package/dist/admin/admin/src/router.mjs +1 -1
  112. package/dist/admin/admin/src/router.mjs.map +1 -1
  113. package/dist/admin/admin/src/services/apiTokens.js +85 -2
  114. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  115. package/dist/admin/admin/src/services/apiTokens.mjs +80 -3
  116. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  117. package/dist/admin/admin/src/translations/en.json.js +16 -1
  118. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  119. package/dist/admin/admin/src/translations/en.json.mjs +16 -1
  120. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  121. package/dist/admin/admin/src/utils/getFetchClient.js +4 -1
  122. package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
  123. package/dist/admin/admin/src/utils/getFetchClient.mjs +4 -1
  124. package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
  125. package/dist/admin/admin/tests/server.js +99 -21
  126. package/dist/admin/admin/tests/server.js.map +1 -1
  127. package/dist/admin/admin/tests/server.mjs +99 -21
  128. package/dist/admin/admin/tests/server.mjs.map +1 -1
  129. package/dist/admin/src/constants.d.ts +26 -0
  130. package/dist/admin/src/core/apis/router.d.ts +1 -1
  131. package/dist/admin/src/features/Tracking.d.ts +2 -1
  132. package/dist/admin/src/pages/Settings/components/Tokens/FormApiTokenContainer.d.ts +24 -0
  133. package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -1
  134. package/dist/admin/src/pages/Settings/components/Tokens/constants.d.ts +17 -0
  135. package/dist/admin/src/pages/Settings/constants.d.ts +1 -1
  136. package/dist/admin/src/pages/Settings/pages/AdminTokens/CreateView.d.ts +1 -0
  137. package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/EditViewPage.d.ts +2 -0
  138. package/dist/admin/src/pages/Settings/pages/AdminTokens/EditView/components/AdminPermissions.d.ts +13 -0
  139. package/dist/admin/src/pages/Settings/pages/AdminTokens/ListView.d.ts +2 -0
  140. package/dist/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.d.ts +4 -3
  141. package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.d.ts +3 -1
  142. package/dist/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.d.ts +1 -0
  143. package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +5 -0
  144. package/dist/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.d.ts +8 -7
  145. package/dist/admin/src/pages/Settings/pages/Roles/utils/createPermissionChecker.d.ts +27 -0
  146. package/dist/admin/src/pages/Settings/pages/Roles/utils/updateValues.d.ts +8 -2
  147. package/dist/admin/src/services/apiTokens.d.ts +5 -2
  148. package/dist/admin/src/types/permissions.d.ts +1 -1
  149. package/dist/server/server/src/bootstrap.js +37 -5
  150. package/dist/server/server/src/bootstrap.js.map +1 -1
  151. package/dist/server/server/src/bootstrap.mjs +37 -5
  152. package/dist/server/server/src/bootstrap.mjs.map +1 -1
  153. package/dist/server/server/src/config/admin-actions.js +48 -0
  154. package/dist/server/server/src/config/admin-actions.js.map +1 -1
  155. package/dist/server/server/src/config/admin-actions.mjs +48 -0
  156. package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
  157. package/dist/server/server/src/content-types/Permission.js +10 -1
  158. package/dist/server/server/src/content-types/Permission.js.map +1 -1
  159. package/dist/server/server/src/content-types/Permission.mjs +10 -1
  160. package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
  161. package/dist/server/server/src/content-types/User.js +8 -0
  162. package/dist/server/server/src/content-types/User.js.map +1 -1
  163. package/dist/server/server/src/content-types/User.mjs +8 -0
  164. package/dist/server/server/src/content-types/User.mjs.map +1 -1
  165. package/dist/server/server/src/content-types/api-token.js +27 -1
  166. package/dist/server/server/src/content-types/api-token.js.map +1 -1
  167. package/dist/server/server/src/content-types/api-token.mjs +27 -1
  168. package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
  169. package/dist/server/server/src/controllers/admin-token.js +194 -0
  170. package/dist/server/server/src/controllers/admin-token.js.map +1 -0
  171. package/dist/server/server/src/controllers/admin-token.mjs +192 -0
  172. package/dist/server/server/src/controllers/admin-token.mjs.map +1 -0
  173. package/dist/server/server/src/controllers/api-token.js +48 -47
  174. package/dist/server/server/src/controllers/api-token.js.map +1 -1
  175. package/dist/server/server/src/controllers/api-token.mjs +48 -47
  176. package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
  177. package/dist/server/server/src/controllers/index.js +2 -0
  178. package/dist/server/server/src/controllers/index.js.map +1 -1
  179. package/dist/server/server/src/controllers/index.mjs +2 -0
  180. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  181. package/dist/server/server/src/domain/permission/index.js +2 -1
  182. package/dist/server/server/src/domain/permission/index.js.map +1 -1
  183. package/dist/server/server/src/domain/permission/index.mjs +2 -1
  184. package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
  185. package/dist/server/server/src/policies/index.js +2 -0
  186. package/dist/server/server/src/policies/index.js.map +1 -1
  187. package/dist/server/server/src/policies/index.mjs +2 -0
  188. package/dist/server/server/src/policies/index.mjs.map +1 -1
  189. package/dist/server/server/src/policies/isAdminTokensEnabled.js +16 -0
  190. package/dist/server/server/src/policies/isAdminTokensEnabled.js.map +1 -0
  191. package/dist/server/server/src/policies/isAdminTokensEnabled.mjs +14 -0
  192. package/dist/server/server/src/policies/isAdminTokensEnabled.mjs.map +1 -0
  193. package/dist/server/server/src/register.js +4 -2
  194. package/dist/server/server/src/register.js.map +1 -1
  195. package/dist/server/server/src/register.mjs +4 -2
  196. package/dist/server/server/src/register.mjs.map +1 -1
  197. package/dist/server/server/src/routes/admin-tokens.js +140 -0
  198. package/dist/server/server/src/routes/admin-tokens.js.map +1 -0
  199. package/dist/server/server/src/routes/admin-tokens.mjs +138 -0
  200. package/dist/server/server/src/routes/admin-tokens.mjs.map +1 -0
  201. package/dist/server/server/src/routes/index.js +2 -0
  202. package/dist/server/server/src/routes/index.js.map +1 -1
  203. package/dist/server/server/src/routes/index.mjs +2 -0
  204. package/dist/server/server/src/routes/index.mjs.map +1 -1
  205. package/dist/server/server/src/services/api-token.js +805 -101
  206. package/dist/server/server/src/services/api-token.js.map +1 -1
  207. package/dist/server/server/src/services/api-token.mjs +800 -101
  208. package/dist/server/server/src/services/api-token.mjs.map +1 -1
  209. package/dist/server/server/src/services/constants.js +2 -0
  210. package/dist/server/server/src/services/constants.js.map +1 -1
  211. package/dist/server/server/src/services/constants.mjs +2 -0
  212. package/dist/server/server/src/services/constants.mjs.map +1 -1
  213. package/dist/server/server/src/services/homepage.js +1 -1
  214. package/dist/server/server/src/services/homepage.js.map +1 -1
  215. package/dist/server/server/src/services/homepage.mjs +1 -1
  216. package/dist/server/server/src/services/homepage.mjs.map +1 -1
  217. package/dist/server/server/src/services/index.js +2 -1
  218. package/dist/server/server/src/services/index.js.map +1 -1
  219. package/dist/server/server/src/services/index.mjs +3 -2
  220. package/dist/server/server/src/services/index.mjs.map +1 -1
  221. package/dist/server/server/src/services/permission/engine.js +6 -0
  222. package/dist/server/server/src/services/permission/engine.js.map +1 -1
  223. package/dist/server/server/src/services/permission/engine.mjs +6 -0
  224. package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
  225. package/dist/server/server/src/services/permission/queries.js +11 -2
  226. package/dist/server/server/src/services/permission/queries.js.map +1 -1
  227. package/dist/server/server/src/services/permission/queries.mjs +12 -3
  228. package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
  229. package/dist/server/server/src/services/role.js +3 -0
  230. package/dist/server/server/src/services/role.js.map +1 -1
  231. package/dist/server/server/src/services/role.mjs +3 -0
  232. package/dist/server/server/src/services/role.mjs.map +1 -1
  233. package/dist/server/server/src/strategies/admin-token.js +110 -0
  234. package/dist/server/server/src/strategies/admin-token.js.map +1 -0
  235. package/dist/server/server/src/strategies/admin-token.mjs +104 -0
  236. package/dist/server/server/src/strategies/admin-token.mjs.map +1 -0
  237. package/dist/server/server/src/strategies/api-token-utils.js +56 -0
  238. package/dist/server/server/src/strategies/api-token-utils.js.map +1 -0
  239. package/dist/server/server/src/strategies/api-token-utils.mjs +52 -0
  240. package/dist/server/server/src/strategies/api-token-utils.mjs.map +1 -0
  241. package/dist/server/server/src/strategies/content-api-token.js +104 -0
  242. package/dist/server/server/src/strategies/content-api-token.js.map +1 -0
  243. package/dist/server/server/src/strategies/content-api-token.mjs +98 -0
  244. package/dist/server/server/src/strategies/content-api-token.mjs.map +1 -0
  245. package/dist/server/server/src/validation/admin-tokens.js +28 -0
  246. package/dist/server/server/src/validation/admin-tokens.js.map +1 -0
  247. package/dist/server/server/src/validation/admin-tokens.mjs +25 -0
  248. package/dist/server/server/src/validation/admin-tokens.mjs.map +1 -0
  249. package/dist/server/server/src/validation/api-tokens.js +5 -2
  250. package/dist/server/server/src/validation/api-tokens.js.map +1 -1
  251. package/dist/server/server/src/validation/api-tokens.mjs +5 -2
  252. package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
  253. package/dist/server/server/src/validation/project-settings.js +15 -16
  254. package/dist/server/server/src/validation/project-settings.js.map +1 -1
  255. package/dist/server/server/src/validation/project-settings.mjs +4 -5
  256. package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
  257. package/dist/server/src/bootstrap.d.ts.map +1 -1
  258. package/dist/server/src/config/admin-actions.d.ts.map +1 -1
  259. package/dist/server/src/content-types/Permission.d.ts +9 -0
  260. package/dist/server/src/content-types/Permission.d.ts.map +1 -1
  261. package/dist/server/src/content-types/User.d.ts +8 -0
  262. package/dist/server/src/content-types/User.d.ts.map +1 -1
  263. package/dist/server/src/content-types/api-token.d.ts +23 -0
  264. package/dist/server/src/content-types/api-token.d.ts.map +1 -1
  265. package/dist/server/src/content-types/index.d.ts +40 -0
  266. package/dist/server/src/content-types/index.d.ts.map +1 -1
  267. package/dist/server/src/controllers/admin-token.d.ts +12 -0
  268. package/dist/server/src/controllers/admin-token.d.ts.map +1 -0
  269. package/dist/server/src/controllers/api-token.d.ts +0 -1
  270. package/dist/server/src/controllers/api-token.d.ts.map +1 -1
  271. package/dist/server/src/controllers/index.d.ts +9 -1
  272. package/dist/server/src/controllers/index.d.ts.map +1 -1
  273. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  274. package/dist/server/src/index.d.ts +56 -2
  275. package/dist/server/src/index.d.ts.map +1 -1
  276. package/dist/server/src/policies/index.d.ts +5 -0
  277. package/dist/server/src/policies/index.d.ts.map +1 -1
  278. package/dist/server/src/policies/isAdminTokensEnabled.d.ts +7 -0
  279. package/dist/server/src/policies/isAdminTokensEnabled.d.ts.map +1 -0
  280. package/dist/server/src/register.d.ts.map +1 -1
  281. package/dist/server/src/routes/admin-tokens.d.ts +15 -0
  282. package/dist/server/src/routes/admin-tokens.d.ts.map +1 -0
  283. package/dist/server/src/routes/index.d.ts.map +1 -1
  284. package/dist/server/src/services/api-token.d.ts +136 -12
  285. package/dist/server/src/services/api-token.d.ts.map +1 -1
  286. package/dist/server/src/services/constants.d.ts +13 -11
  287. package/dist/server/src/services/constants.d.ts.map +1 -1
  288. package/dist/server/src/services/index.d.ts +2 -2
  289. package/dist/server/src/services/index.d.ts.map +1 -1
  290. package/dist/server/src/services/permission/engine.d.ts +5 -0
  291. package/dist/server/src/services/permission/engine.d.ts.map +1 -1
  292. package/dist/server/src/services/permission/queries.d.ts.map +1 -1
  293. package/dist/server/src/services/permission.d.ts +1 -0
  294. package/dist/server/src/services/permission.d.ts.map +1 -1
  295. package/dist/server/src/services/role.d.ts.map +1 -1
  296. package/dist/server/src/strategies/admin-token.d.ts +51 -0
  297. package/dist/server/src/strategies/admin-token.d.ts.map +1 -0
  298. package/dist/server/src/strategies/api-token-utils.d.ts +13 -0
  299. package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -0
  300. package/dist/server/src/strategies/{api-token.d.ts → content-api-token.d.ts} +10 -11
  301. package/dist/server/src/strategies/content-api-token.d.ts.map +1 -0
  302. package/dist/server/src/strategies/index.d.ts +2 -1
  303. package/dist/server/src/strategies/index.d.ts.map +1 -1
  304. package/dist/server/src/validation/admin-tokens.d.ts +75 -0
  305. package/dist/server/src/validation/admin-tokens.d.ts.map +1 -0
  306. package/dist/server/src/validation/api-tokens.d.ts +4 -2
  307. package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
  308. package/dist/server/src/validation/project-settings.d.ts +10 -10
  309. package/dist/server/src/validation/project-settings.d.ts.map +1 -1
  310. package/dist/shared/contracts/admin-token.d.ts +122 -0
  311. package/dist/shared/contracts/admin-token.d.ts.map +1 -0
  312. package/dist/shared/contracts/api-token.d.ts +6 -95
  313. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  314. package/dist/shared/contracts/content-api-token.d.ts +97 -0
  315. package/dist/shared/contracts/content-api-token.d.ts.map +1 -0
  316. package/dist/shared/contracts/shared.d.ts +1 -0
  317. package/dist/shared/contracts/shared.d.ts.map +1 -1
  318. package/package.json +7 -7
  319. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +0 -1
  320. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +0 -1
  321. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js +0 -37
  322. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +0 -1
  323. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs +0 -16
  324. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +0 -1
  325. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +0 -1
  326. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +0 -1
  327. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.d.ts +0 -20
  328. package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.d.ts +0 -17
  329. package/dist/server/server/src/strategies/api-token.js +0 -144
  330. package/dist/server/server/src/strategies/api-token.js.map +0 -1
  331. package/dist/server/server/src/strategies/api-token.mjs +0 -138
  332. package/dist/server/server/src/strategies/api-token.mjs.map +0 -1
  333. package/dist/server/src/strategies/api-token.d.ts.map +0 -1
  334. /package/dist/admin/src/pages/Settings/{pages/ApiTokens/EditView → components/Tokens}/utils/getDateOfExpiration.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sources":["../../../../../admin/src/components/Table.tsx"],"sourcesContent":["/**\n * TODO: honestly, half of this stuff should come straight from\n * the design-system and then we can just wrap round the bits for\n * the i18n & router interactions.\n *\n * So we'll do that in v2 of the DS.\n */\n\nimport * as React from 'react';\n\nimport {\n Flex,\n Typography,\n Th,\n Tbody,\n Td,\n Tooltip,\n IconButton,\n Thead,\n Tr,\n RawTrProps,\n Checkbox,\n Loader,\n Table as DSTable,\n EmptyStateLayout,\n EmptyStateLayoutProps,\n TableProps,\n RawTdProps,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseRow {\n id: string | number;\n [key: string]: any;\n}\n\ninterface TableHeader<TData = object, THeader = object> {\n /**\n * Typically used by plugins to render a custom cell\n */\n cellFormatter?: (data: TData, header: Omit<THeader, 'cellFormatter'>) => React.ReactNode;\n label: string;\n name: string;\n searchable?: boolean;\n sortable?: boolean;\n}\n\ninterface TableContextValue<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Pick<TableProps, 'footer'> {\n colCount: number;\n hasHeaderCheckbox: boolean;\n headers: THeader[];\n isLoading: boolean;\n rowCount: number;\n rows: TRow[];\n setHasHeaderCheckbox: (value: boolean) => void;\n selectedRows: TRow[];\n selectRow: (row: TRow | TRow[]) => void;\n}\n\nconst [TableProvider, useTable] = createContext<TableContextValue<any, any>>('Table');\n\ninterface RootProps<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Partial<\n Pick<\n TableContextValue<TRow, THeader>,\n 'footer' | 'headers' | 'isLoading' | 'rows' | 'selectedRows'\n >\n > {\n children?: React.ReactNode;\n defaultSelectedRows?: TRow[];\n onSelectedRowsChange?: (selectedRows: TRow[]) => void;\n}\n\nconst Root = <TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>({\n children,\n defaultSelectedRows,\n footer,\n headers = [],\n isLoading = false,\n onSelectedRowsChange,\n rows = [],\n selectedRows: selectedRowsProps,\n}: RootProps<TRow, THeader>) => {\n const [selectedRows = [], setSelectedRows] = useControllableState({\n prop: selectedRowsProps,\n defaultProp: defaultSelectedRows,\n onChange: onSelectedRowsChange,\n });\n const [hasHeaderCheckbox, setHasHeaderCheckbox] = React.useState(false);\n\n const rowCount = rows.length + 1;\n const colCount = hasHeaderCheckbox ? headers.length + 1 : headers.length;\n\n const selectRow: TableContextValue<TRow, THeader>['selectRow'] = (row) => {\n if (Array.isArray(row)) {\n setSelectedRows(row);\n } else {\n setSelectedRows((prev = []) => {\n const currentRowIndex = prev.findIndex((r) => r.id === row.id);\n if (currentRowIndex > -1) {\n return prev.toSpliced(currentRowIndex, 1);\n }\n\n return [...prev, row];\n });\n }\n };\n\n return (\n <TableProvider\n colCount={colCount}\n hasHeaderCheckbox={hasHeaderCheckbox}\n setHasHeaderCheckbox={setHasHeaderCheckbox}\n footer={footer}\n headers={headers}\n isLoading={isLoading}\n rowCount={rowCount}\n rows={rows}\n selectedRows={selectedRows}\n selectRow={selectRow}\n >\n {children}\n </TableProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst Content = ({ children }: Table.ContentProps) => {\n const rowCount = useTable('Content', (state) => state.rowCount);\n const colCount = useTable('Content', (state) => state.colCount);\n const footer = useTable('Content', (state) => state.footer);\n\n return (\n <DSTable rowCount={rowCount} colCount={colCount} footer={footer}>\n {children}\n </DSTable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Head\n * -----------------------------------------------------------------------------------------------*/\n\nconst Head = ({ children }: Table.HeadProps) => {\n return (\n <Thead>\n <Tr>{children}</Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCell\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description A header cell in your table, internally will set the query params for sorting to\n * be passed to your data-fetching function.\n */\nconst HeaderCell = <TData, THead>({ name, label, sortable }: TableHeader<TData, THead>) => {\n const [{ query }, setQuery] = useQueryParams<{ sort?: `${string}:${'ASC' | 'DESC'}` }>();\n const sort = query?.sort ?? '';\n const [sortBy, sortOrder] = sort.split(':');\n const { formatMessage } = useIntl();\n const isSorted = sortBy === name;\n\n const sortLabel = formatMessage(\n { id: 'components.TableHeader.sort', defaultMessage: 'Sort on {label}' },\n { label }\n );\n\n const handleClickSort = () => {\n if (sortable) {\n setQuery(\n {\n sort: `${name}:${isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC'}`,\n },\n 'push',\n true\n );\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (sortable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClickSort();\n }\n };\n\n return (\n <SortableTh\n onClick={sortable ? handleClickSort : undefined}\n onKeyDown={sortable ? handleKeyDown : undefined}\n tabIndex={sortable ? 0 : undefined}\n aria-sort={isSorted ? (sortOrder === 'ASC' ? 'ascending' : 'descending') : undefined}\n $sortable={!!sortable}\n >\n <Tooltip label={sortable ? sortLabel : label}>\n <Flex gap={1}>\n <Typography textColor=\"neutral600\" tag=\"span\" variant=\"sigma\">\n {label}\n </Typography>\n {isSorted && sortable && <SortIcon $isUp={sortOrder === 'ASC'} />}\n </Flex>\n </Tooltip>\n </SortableTh>\n );\n};\n\nconst SortableTh = styled(Th)<{ $sortable: boolean }>`\n cursor: ${({ $sortable }) => ($sortable ? 'pointer' : 'default')};\n`;\n\nconst SortIcon = styled(CaretDown)<{\n $isUp: boolean;\n}>`\n transform: ${({ $isUp }) => `rotate(${$isUp ? '180' : '0'}deg)`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ActionBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionBar = ({ children }: Table.ActionBarProps) => {\n const { formatMessage } = useIntl();\n const selectedRows = useTable('ActionBar', (state) => state.selectedRows);\n\n if (selectedRows.length === 0) return null;\n\n return (\n <Flex gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'content-manager.components.TableDelete.label',\n defaultMessage: '{number, plural, one {# row} other {# rows}} selected',\n },\n { number: selectedRows.length }\n )}\n </Typography>\n {children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCheckboxCell\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderCheckboxCell = () => {\n const rows = useTable('HeaderCheckboxCell', (state) => state.rows);\n const selectedRows = useTable('HeaderCheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('HeaderCheckboxCell', (state) => state.selectRow);\n const setHasHeaderCheckbox = useTable(\n 'HeaderCheckboxCell',\n (state) => state.setHasHeaderCheckbox\n );\n\n const { formatMessage } = useIntl();\n\n const areAllEntriesSelected = selectedRows.length === rows.length && rows.length > 0;\n const isIndeterminate = !areAllEntriesSelected && selectedRows.length > 0;\n\n React.useEffect(() => {\n setHasHeaderCheckbox(true);\n\n return () => setHasHeaderCheckbox(false);\n }, [setHasHeaderCheckbox]);\n\n const handleSelectAll = () => {\n if (!areAllEntriesSelected) {\n selectRow(rows);\n } else {\n selectRow([]);\n }\n };\n\n return (\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n disabled={rows.length === 0}\n checked={isIndeterminate ? 'indeterminate' : areAllEntriesSelected}\n onCheckedChange={handleSelectAll}\n />\n </Th>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Empty\n * -----------------------------------------------------------------------------------------------*/\n\nconst Empty = (props: Table.EmptyProps) => {\n const { formatMessage } = useIntl();\n\n const rows = useTable('Empty', (state) => state.rows);\n const isLoading = useTable('Empty', (state) => state.isLoading);\n const colCount = useTable('Empty', (state) => state.colCount);\n\n /**\n * If we're loading or we have some data, we don't show the empty state.\n */\n if (rows.length > 0 || isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <EmptyStateLayout\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n {...props}\n />\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingBody\n * -----------------------------------------------------------------------------------------------*/\n\nconst Loading = ({ children = 'Loading content' }: Table.LoadingProps) => {\n const isLoading = useTable('Loading', (state) => state.isLoading);\n const colCount = useTable('Loading', (state) => state.colCount);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <Flex justifyContent=\"center\" padding={11} background=\"neutral0\">\n <Loader>{children}</Loader>\n </Flex>\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Body\n * -----------------------------------------------------------------------------------------------*/\n\nconst Body = ({ children }: Table.BodyProps) => {\n const isLoading = useTable('Body', (state) => state.isLoading);\n const rows = useTable('Body', (state) => state.rows);\n\n if (isLoading || rows.length === 0) {\n return null;\n }\n\n return <Tbody>{children}</Tbody>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst Row = (props: Table.RowProps) => {\n return <Tr {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Cell\n * -----------------------------------------------------------------------------------------------*/\nconst Cell = (props: Table.CellProps) => {\n return <Td {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst CheckboxCell = ({ id, ...props }: Table.CheckboxCellProps) => {\n const rows = useTable('CheckboxCell', (state) => state.rows);\n const selectedRows = useTable('CheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('CheckboxCell', (state) => state.selectRow);\n\n const { formatMessage } = useIntl();\n\n const handleSelectRow = () => {\n selectRow(rows.find((row) => row.id === id));\n };\n\n const isChecked = selectedRows.findIndex((row) => row.id === id) > -1;\n\n return (\n <Cell {...props} onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: id }\n )}\n disabled={rows.length === 0}\n checked={isChecked}\n onCheckedChange={handleSelectRow}\n />\n </Cell>\n );\n};\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @alpha we may move this component to the design-system.\n * @public\n * @description A generic table component composition. Internally handles the state of the table\n * such as selected rows, loading state, and more assuming the correct pieces are put togther.\n * @example\n * ```tsx\n * interace Data {\n * id: string;\n * name: string;\n * email: string;\n * }\n *\n * const ListView = () => {\n * const { data, isLoading } = useGetData<Data>();\n *\n * const headers: Table.Header<Data>[] = [\n * {\n * label: 'Name',\n * name: 'name',\n * sortable: true,\n * },\n * {\n * label: 'Email',\n * name: 'email',\n * sortable: true,\n * },\n * ];\n *\n * return (\n * <Table.Root rows={data} headers={headers} isLoading={isLoading}>\n * <Table.Content>\n * <Table.Head>\n * {headers.map((head) => (\n * <Table.HeaderCell key={head.name} {...head} />\n * ))}\n * </Table.Head>\n * <Table.Body>\n * <Table.Loading />\n * <Table.Empty />\n * {data.map((row) => (\n * <Table.Row key={row.id}>\n * <Table.Cell>{row.name}</Table.Cell>\n * <Table.Cell>{row.email}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table.Content>\n * </Table.Root>\n * );\n * };\n * ```\n */\nconst Table = {\n Root,\n Content,\n ActionBar,\n Head,\n HeaderCell,\n HeaderCheckboxCell,\n Body,\n CheckboxCell,\n Cell,\n Row,\n Loading,\n Empty,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Table {\n export type Props<\n TData extends BaseRow,\n THeader extends TableHeader<TData, THeader> = TableHeader<TData, TableHeader>,\n > = RootProps<TData, THeader>;\n export interface ActionBarProps {\n children?: React.ReactNode;\n }\n\n export interface ContentProps {\n children: React.ReactNode;\n }\n\n export type Header<TData, THeader> = TableHeader<TData, THeader>;\n\n export interface HeadProps {\n children: React.ReactNode;\n }\n\n export interface EmptyProps extends Partial<EmptyStateLayoutProps> {}\n\n export interface LoadingProps {\n children?: React.ReactNode;\n }\n\n export interface BodyProps {\n children: React.ReactNode;\n }\n\n export interface RowProps extends RawTrProps {}\n\n export interface CellProps extends RawTdProps {}\n\n export interface CheckboxCellProps extends Pick<BaseRow, 'id'>, Omit<RawTdProps, 'id'> {}\n}\n\nexport { Table, useTable };\n"],"names":["TableProvider","useTable","createContext","Root","children","defaultSelectedRows","footer","headers","isLoading","onSelectedRowsChange","rows","selectedRows","selectedRowsProps","setSelectedRows","useControllableState","prop","defaultProp","onChange","hasHeaderCheckbox","setHasHeaderCheckbox","React","useState","rowCount","length","colCount","selectRow","row","Array","isArray","prev","currentRowIndex","findIndex","r","id","toSpliced","_jsx","Content","state","DSTable","Head","Thead","Tr","HeaderCell","name","label","sortable","query","setQuery","useQueryParams","sort","sortBy","sortOrder","split","formatMessage","useIntl","isSorted","sortLabel","defaultMessage","handleClickSort","handleKeyDown","e","key","preventDefault","SortableTh","onClick","undefined","onKeyDown","tabIndex","aria-sort","$sortable","Tooltip","_jsxs","Flex","gap","Typography","textColor","tag","variant","SortIcon","$isUp","styled","Th","CaretDown","ActionBar","number","HeaderCheckboxCell","areAllEntriesSelected","isIndeterminate","useEffect","handleSelectAll","Checkbox","aria-label","disabled","checked","onCheckedChange","Empty","props","Tbody","Td","colSpan","EmptyStateLayout","content","hasRadius","icon","EmptyDocuments","width","Loading","justifyContent","padding","background","Loader","Body","Row","Cell","CheckboxCell","handleSelectRow","find","isChecked","stopPropagation","target","Table"],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sources":["../../../../../admin/src/components/Table.tsx"],"sourcesContent":["/**\n * TODO: honestly, half of this stuff should come straight from\n * the design-system and then we can just wrap round the bits for\n * the i18n & router interactions.\n *\n * So we'll do that in v2 of the DS.\n */\n\nimport * as React from 'react';\n\nimport {\n Flex,\n Typography,\n Th,\n Tbody,\n Td,\n Tooltip,\n IconButton,\n Thead,\n Tr,\n RawTrProps,\n Checkbox,\n Loader,\n Table as DSTable,\n EmptyStateLayout,\n EmptyStateLayoutProps,\n TableProps,\n RawTdProps,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseRow {\n id: string | number;\n [key: string]: any;\n}\n\ninterface TableHeader<TData = object, THeader = object> {\n /**\n * Typically used by plugins to render a custom cell\n */\n cellFormatter?: (data: TData, header: Omit<THeader, 'cellFormatter'>) => React.ReactNode;\n label: string;\n name: string;\n searchable?: boolean;\n sortable?: boolean;\n}\n\ninterface TableContextValue<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Pick<TableProps, 'footer'> {\n colCount: number;\n hasHeaderCheckbox: boolean;\n headers: THeader[];\n isLoading: boolean;\n rowCount: number;\n rows: TRow[];\n setHasHeaderCheckbox: (value: boolean) => void;\n selectedRows: TRow[];\n selectRow: (row: TRow | TRow[]) => void;\n}\n\nconst [TableProvider, useTable] = createContext<TableContextValue<any, any>>('Table');\n\ninterface RootProps<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Partial<\n Pick<\n TableContextValue<TRow, THeader>,\n 'footer' | 'headers' | 'isLoading' | 'rows' | 'selectedRows'\n >\n > {\n children?: React.ReactNode;\n defaultSelectedRows?: TRow[];\n onSelectedRowsChange?: (selectedRows: TRow[]) => void;\n}\n\nconst Root = <TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>({\n children,\n defaultSelectedRows,\n footer,\n headers = [],\n isLoading = false,\n onSelectedRowsChange,\n rows = [],\n selectedRows: selectedRowsProps,\n}: RootProps<TRow, THeader>) => {\n const [selectedRows = [], setSelectedRows] = useControllableState({\n prop: selectedRowsProps,\n defaultProp: defaultSelectedRows,\n onChange: onSelectedRowsChange,\n });\n const [hasHeaderCheckbox, setHasHeaderCheckbox] = React.useState(false);\n\n const rowCount = rows.length + 1;\n const colCount = hasHeaderCheckbox ? headers.length + 1 : headers.length;\n\n const selectRow: TableContextValue<TRow, THeader>['selectRow'] = (row) => {\n if (Array.isArray(row)) {\n setSelectedRows(row);\n } else {\n setSelectedRows((prev = []) => {\n const currentRowIndex = prev.findIndex((r) => r.id === row.id);\n if (currentRowIndex > -1) {\n return prev.toSpliced(currentRowIndex, 1);\n }\n\n return [...prev, row];\n });\n }\n };\n\n return (\n <TableProvider\n colCount={colCount}\n hasHeaderCheckbox={hasHeaderCheckbox}\n setHasHeaderCheckbox={setHasHeaderCheckbox}\n footer={footer}\n headers={headers}\n isLoading={isLoading}\n rowCount={rowCount}\n rows={rows}\n selectedRows={selectedRows}\n selectRow={selectRow}\n >\n {children}\n </TableProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst Content = ({ children }: Table.ContentProps) => {\n const rowCount = useTable('Content', (state) => state.rowCount);\n const colCount = useTable('Content', (state) => state.colCount);\n const footer = useTable('Content', (state) => state.footer);\n\n return (\n <DSTable rowCount={rowCount} colCount={colCount} footer={footer}>\n {children}\n </DSTable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Head\n * -----------------------------------------------------------------------------------------------*/\n\nconst Head = ({ children }: Table.HeadProps) => {\n return (\n <Thead>\n <Tr>{children}</Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCell\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description A header cell in your table, internally will set the query params for sorting to\n * be passed to your data-fetching function.\n */\nconst HeaderCell = <TData, THead>({ name, label, sortable }: TableHeader<TData, THead>) => {\n const [{ query }, setQuery] = useQueryParams<{ sort?: `${string}:${'ASC' | 'DESC'}` }>();\n const sort = query?.sort ?? '';\n const [sortBy, sortOrder] = sort.split(':');\n const { formatMessage } = useIntl();\n const isSorted = sortBy === name;\n\n const sortLabel = formatMessage(\n {\n id: 'components.TableHeader.sort',\n defaultMessage: 'Sort on {label}',\n },\n { label }\n );\n\n const handleClickSort = () => {\n if (sortable) {\n setQuery(\n {\n sort: `${name}:${isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC'}`,\n },\n 'push',\n true\n );\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (sortable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClickSort();\n }\n };\n\n return (\n <SortableTh\n onClick={sortable ? handleClickSort : undefined}\n onKeyDown={sortable ? handleKeyDown : undefined}\n tabIndex={sortable ? 0 : undefined}\n aria-sort={isSorted ? (sortOrder === 'ASC' ? 'ascending' : 'descending') : undefined}\n $sortable={!!sortable}\n >\n <Tooltip label={sortable ? sortLabel : label}>\n <Flex gap={1}>\n <Typography textColor=\"neutral600\" tag=\"span\" variant=\"sigma\">\n {label}\n </Typography>\n {isSorted && sortable && <SortIcon $isUp={sortOrder === 'ASC'} />}\n </Flex>\n </Tooltip>\n </SortableTh>\n );\n};\n\nconst SortableTh = styled(Th)<{ $sortable: boolean }>`\n cursor: ${({ $sortable }) => ($sortable ? 'pointer' : 'default')};\n`;\n\nconst SortIcon = styled(CaretDown)<{\n $isUp: boolean;\n}>`\n transform: ${({ $isUp }) => `rotate(${$isUp ? '180' : '0'}deg)`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ActionBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionBar = ({ children }: Table.ActionBarProps) => {\n const { formatMessage } = useIntl();\n const selectedRows = useTable('ActionBar', (state) => state.selectedRows);\n\n if (selectedRows.length === 0) return null;\n\n return (\n <Flex gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'content-manager.components.TableDelete.label',\n defaultMessage: '{number, plural, one {# row} other {# rows}} selected',\n },\n { number: selectedRows.length }\n )}\n </Typography>\n {children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCheckboxCell\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderCheckboxCell = () => {\n const rows = useTable('HeaderCheckboxCell', (state) => state.rows);\n const selectedRows = useTable('HeaderCheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('HeaderCheckboxCell', (state) => state.selectRow);\n const setHasHeaderCheckbox = useTable(\n 'HeaderCheckboxCell',\n (state) => state.setHasHeaderCheckbox\n );\n\n const { formatMessage } = useIntl();\n\n const areAllEntriesSelected = selectedRows.length === rows.length && rows.length > 0;\n const isIndeterminate = !areAllEntriesSelected && selectedRows.length > 0;\n\n React.useEffect(() => {\n setHasHeaderCheckbox(true);\n\n return () => setHasHeaderCheckbox(false);\n }, [setHasHeaderCheckbox]);\n\n const handleSelectAll = () => {\n if (!areAllEntriesSelected) {\n selectRow(rows);\n } else {\n selectRow([]);\n }\n };\n\n return (\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n disabled={rows.length === 0}\n checked={isIndeterminate ? 'indeterminate' : areAllEntriesSelected}\n onCheckedChange={handleSelectAll}\n />\n </Th>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Empty\n * -----------------------------------------------------------------------------------------------*/\n\nconst Empty = (props: Table.EmptyProps) => {\n const { formatMessage } = useIntl();\n\n const rows = useTable('Empty', (state) => state.rows);\n const isLoading = useTable('Empty', (state) => state.isLoading);\n const colCount = useTable('Empty', (state) => state.colCount);\n\n /**\n * If we're loading or we have some data, we don't show the empty state.\n */\n if (rows.length > 0 || isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <EmptyStateLayout\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n {...props}\n />\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingBody\n * -----------------------------------------------------------------------------------------------*/\n\nconst Loading = ({ children = 'Loading content' }: Table.LoadingProps) => {\n const isLoading = useTable('Loading', (state) => state.isLoading);\n const colCount = useTable('Loading', (state) => state.colCount);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <Flex justifyContent=\"center\" padding={11} background=\"neutral0\">\n <Loader>{children}</Loader>\n </Flex>\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Body\n * -----------------------------------------------------------------------------------------------*/\n\nconst Body = ({ children }: Table.BodyProps) => {\n const isLoading = useTable('Body', (state) => state.isLoading);\n const rows = useTable('Body', (state) => state.rows);\n\n if (isLoading || rows.length === 0) {\n return null;\n }\n\n return <Tbody>{children}</Tbody>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst Row = (props: Table.RowProps) => {\n return <Tr {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Cell\n * -----------------------------------------------------------------------------------------------*/\nconst Cell = (props: Table.CellProps) => {\n return <Td {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst CheckboxCell = ({ id, ...props }: Table.CheckboxCellProps) => {\n const rows = useTable('CheckboxCell', (state) => state.rows);\n const selectedRows = useTable('CheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('CheckboxCell', (state) => state.selectRow);\n\n const { formatMessage } = useIntl();\n\n const handleSelectRow = () => {\n selectRow(rows.find((row) => row.id === id));\n };\n\n const isChecked = selectedRows.findIndex((row) => row.id === id) > -1;\n\n return (\n <Cell {...props} onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: id }\n )}\n disabled={rows.length === 0}\n checked={isChecked}\n onCheckedChange={handleSelectRow}\n />\n </Cell>\n );\n};\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @alpha we may move this component to the design-system.\n * @public\n * @description A generic table component composition. Internally handles the state of the table\n * such as selected rows, loading state, and more assuming the correct pieces are put togther.\n * @example\n * ```tsx\n * interace Data {\n * id: string;\n * name: string;\n * email: string;\n * }\n *\n * const ListView = () => {\n * const { data, isLoading } = useGetData<Data>();\n *\n * const headers: Table.Header<Data>[] = [\n * {\n * label: 'Name',\n * name: 'name',\n * sortable: true,\n * },\n * {\n * label: 'Email',\n * name: 'email',\n * sortable: true,\n * },\n * ];\n *\n * return (\n * <Table.Root rows={data} headers={headers} isLoading={isLoading}>\n * <Table.Content>\n * <Table.Head>\n * {headers.map((head) => (\n * <Table.HeaderCell key={head.name} {...head} />\n * ))}\n * </Table.Head>\n * <Table.Body>\n * <Table.Loading />\n * <Table.Empty />\n * {data.map((row) => (\n * <Table.Row key={row.id}>\n * <Table.Cell>{row.name}</Table.Cell>\n * <Table.Cell>{row.email}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table.Content>\n * </Table.Root>\n * );\n * };\n * ```\n */\nconst Table = {\n Root,\n Content,\n ActionBar,\n Head,\n HeaderCell,\n HeaderCheckboxCell,\n Body,\n CheckboxCell,\n Cell,\n Row,\n Loading,\n Empty,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Table {\n export type Props<\n TData extends BaseRow,\n THeader extends TableHeader<TData, THeader> = TableHeader<TData, TableHeader>,\n > = RootProps<TData, THeader>;\n export interface ActionBarProps {\n children?: React.ReactNode;\n }\n\n export interface ContentProps {\n children: React.ReactNode;\n }\n\n export type Header<TData, THeader> = TableHeader<TData, THeader>;\n\n export interface HeadProps {\n children: React.ReactNode;\n }\n\n export interface EmptyProps extends Partial<EmptyStateLayoutProps> {}\n\n export interface LoadingProps {\n children?: React.ReactNode;\n }\n\n export interface BodyProps {\n children: React.ReactNode;\n }\n\n export interface RowProps extends RawTrProps {}\n\n export interface CellProps extends RawTdProps {}\n\n export interface CheckboxCellProps extends Pick<BaseRow, 'id'>, Omit<RawTdProps, 'id'> {}\n}\n\nexport { Table, useTable };\n"],"names":["TableProvider","useTable","createContext","Root","children","defaultSelectedRows","footer","headers","isLoading","onSelectedRowsChange","rows","selectedRows","selectedRowsProps","setSelectedRows","useControllableState","prop","defaultProp","onChange","hasHeaderCheckbox","setHasHeaderCheckbox","React","useState","rowCount","length","colCount","selectRow","row","Array","isArray","prev","currentRowIndex","findIndex","r","id","toSpliced","_jsx","Content","state","DSTable","Head","Thead","Tr","HeaderCell","name","label","sortable","query","setQuery","useQueryParams","sort","sortBy","sortOrder","split","formatMessage","useIntl","isSorted","sortLabel","defaultMessage","handleClickSort","handleKeyDown","e","key","preventDefault","SortableTh","onClick","undefined","onKeyDown","tabIndex","aria-sort","$sortable","Tooltip","_jsxs","Flex","gap","Typography","textColor","tag","variant","SortIcon","$isUp","styled","Th","CaretDown","ActionBar","number","HeaderCheckboxCell","areAllEntriesSelected","isIndeterminate","useEffect","handleSelectAll","Checkbox","aria-label","disabled","checked","onCheckedChange","Empty","props","Tbody","Td","colSpan","EmptyStateLayout","content","hasRadius","icon","EmptyDocuments","width","Loading","justifyContent","padding","background","Loader","Body","Row","Cell","CheckboxCell","handleSelectRow","find","isChecked","stopPropagation","target","Table"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","sources":["../../../../../admin/src/components/Table.tsx"],"sourcesContent":["/**\n * TODO: honestly, half of this stuff should come straight from\n * the design-system and then we can just wrap round the bits for\n * the i18n & router interactions.\n *\n * So we'll do that in v2 of the DS.\n */\n\nimport * as React from 'react';\n\nimport {\n Flex,\n Typography,\n Th,\n Tbody,\n Td,\n Tooltip,\n IconButton,\n Thead,\n Tr,\n RawTrProps,\n Checkbox,\n Loader,\n Table as DSTable,\n EmptyStateLayout,\n EmptyStateLayoutProps,\n TableProps,\n RawTdProps,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseRow {\n id: string | number;\n [key: string]: any;\n}\n\ninterface TableHeader<TData = object, THeader = object> {\n /**\n * Typically used by plugins to render a custom cell\n */\n cellFormatter?: (data: TData, header: Omit<THeader, 'cellFormatter'>) => React.ReactNode;\n label: string;\n name: string;\n searchable?: boolean;\n sortable?: boolean;\n}\n\ninterface TableContextValue<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Pick<TableProps, 'footer'> {\n colCount: number;\n hasHeaderCheckbox: boolean;\n headers: THeader[];\n isLoading: boolean;\n rowCount: number;\n rows: TRow[];\n setHasHeaderCheckbox: (value: boolean) => void;\n selectedRows: TRow[];\n selectRow: (row: TRow | TRow[]) => void;\n}\n\nconst [TableProvider, useTable] = createContext<TableContextValue<any, any>>('Table');\n\ninterface RootProps<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Partial<\n Pick<\n TableContextValue<TRow, THeader>,\n 'footer' | 'headers' | 'isLoading' | 'rows' | 'selectedRows'\n >\n > {\n children?: React.ReactNode;\n defaultSelectedRows?: TRow[];\n onSelectedRowsChange?: (selectedRows: TRow[]) => void;\n}\n\nconst Root = <TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>({\n children,\n defaultSelectedRows,\n footer,\n headers = [],\n isLoading = false,\n onSelectedRowsChange,\n rows = [],\n selectedRows: selectedRowsProps,\n}: RootProps<TRow, THeader>) => {\n const [selectedRows = [], setSelectedRows] = useControllableState({\n prop: selectedRowsProps,\n defaultProp: defaultSelectedRows,\n onChange: onSelectedRowsChange,\n });\n const [hasHeaderCheckbox, setHasHeaderCheckbox] = React.useState(false);\n\n const rowCount = rows.length + 1;\n const colCount = hasHeaderCheckbox ? headers.length + 1 : headers.length;\n\n const selectRow: TableContextValue<TRow, THeader>['selectRow'] = (row) => {\n if (Array.isArray(row)) {\n setSelectedRows(row);\n } else {\n setSelectedRows((prev = []) => {\n const currentRowIndex = prev.findIndex((r) => r.id === row.id);\n if (currentRowIndex > -1) {\n return prev.toSpliced(currentRowIndex, 1);\n }\n\n return [...prev, row];\n });\n }\n };\n\n return (\n <TableProvider\n colCount={colCount}\n hasHeaderCheckbox={hasHeaderCheckbox}\n setHasHeaderCheckbox={setHasHeaderCheckbox}\n footer={footer}\n headers={headers}\n isLoading={isLoading}\n rowCount={rowCount}\n rows={rows}\n selectedRows={selectedRows}\n selectRow={selectRow}\n >\n {children}\n </TableProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst Content = ({ children }: Table.ContentProps) => {\n const rowCount = useTable('Content', (state) => state.rowCount);\n const colCount = useTable('Content', (state) => state.colCount);\n const footer = useTable('Content', (state) => state.footer);\n\n return (\n <DSTable rowCount={rowCount} colCount={colCount} footer={footer}>\n {children}\n </DSTable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Head\n * -----------------------------------------------------------------------------------------------*/\n\nconst Head = ({ children }: Table.HeadProps) => {\n return (\n <Thead>\n <Tr>{children}</Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCell\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description A header cell in your table, internally will set the query params for sorting to\n * be passed to your data-fetching function.\n */\nconst HeaderCell = <TData, THead>({ name, label, sortable }: TableHeader<TData, THead>) => {\n const [{ query }, setQuery] = useQueryParams<{ sort?: `${string}:${'ASC' | 'DESC'}` }>();\n const sort = query?.sort ?? '';\n const [sortBy, sortOrder] = sort.split(':');\n const { formatMessage } = useIntl();\n const isSorted = sortBy === name;\n\n const sortLabel = formatMessage(\n { id: 'components.TableHeader.sort', defaultMessage: 'Sort on {label}' },\n { label }\n );\n\n const handleClickSort = () => {\n if (sortable) {\n setQuery(\n {\n sort: `${name}:${isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC'}`,\n },\n 'push',\n true\n );\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (sortable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClickSort();\n }\n };\n\n return (\n <SortableTh\n onClick={sortable ? handleClickSort : undefined}\n onKeyDown={sortable ? handleKeyDown : undefined}\n tabIndex={sortable ? 0 : undefined}\n aria-sort={isSorted ? (sortOrder === 'ASC' ? 'ascending' : 'descending') : undefined}\n $sortable={!!sortable}\n >\n <Tooltip label={sortable ? sortLabel : label}>\n <Flex gap={1}>\n <Typography textColor=\"neutral600\" tag=\"span\" variant=\"sigma\">\n {label}\n </Typography>\n {isSorted && sortable && <SortIcon $isUp={sortOrder === 'ASC'} />}\n </Flex>\n </Tooltip>\n </SortableTh>\n );\n};\n\nconst SortableTh = styled(Th)<{ $sortable: boolean }>`\n cursor: ${({ $sortable }) => ($sortable ? 'pointer' : 'default')};\n`;\n\nconst SortIcon = styled(CaretDown)<{\n $isUp: boolean;\n}>`\n transform: ${({ $isUp }) => `rotate(${$isUp ? '180' : '0'}deg)`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ActionBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionBar = ({ children }: Table.ActionBarProps) => {\n const { formatMessage } = useIntl();\n const selectedRows = useTable('ActionBar', (state) => state.selectedRows);\n\n if (selectedRows.length === 0) return null;\n\n return (\n <Flex gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'content-manager.components.TableDelete.label',\n defaultMessage: '{number, plural, one {# row} other {# rows}} selected',\n },\n { number: selectedRows.length }\n )}\n </Typography>\n {children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCheckboxCell\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderCheckboxCell = () => {\n const rows = useTable('HeaderCheckboxCell', (state) => state.rows);\n const selectedRows = useTable('HeaderCheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('HeaderCheckboxCell', (state) => state.selectRow);\n const setHasHeaderCheckbox = useTable(\n 'HeaderCheckboxCell',\n (state) => state.setHasHeaderCheckbox\n );\n\n const { formatMessage } = useIntl();\n\n const areAllEntriesSelected = selectedRows.length === rows.length && rows.length > 0;\n const isIndeterminate = !areAllEntriesSelected && selectedRows.length > 0;\n\n React.useEffect(() => {\n setHasHeaderCheckbox(true);\n\n return () => setHasHeaderCheckbox(false);\n }, [setHasHeaderCheckbox]);\n\n const handleSelectAll = () => {\n if (!areAllEntriesSelected) {\n selectRow(rows);\n } else {\n selectRow([]);\n }\n };\n\n return (\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n disabled={rows.length === 0}\n checked={isIndeterminate ? 'indeterminate' : areAllEntriesSelected}\n onCheckedChange={handleSelectAll}\n />\n </Th>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Empty\n * -----------------------------------------------------------------------------------------------*/\n\nconst Empty = (props: Table.EmptyProps) => {\n const { formatMessage } = useIntl();\n\n const rows = useTable('Empty', (state) => state.rows);\n const isLoading = useTable('Empty', (state) => state.isLoading);\n const colCount = useTable('Empty', (state) => state.colCount);\n\n /**\n * If we're loading or we have some data, we don't show the empty state.\n */\n if (rows.length > 0 || isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <EmptyStateLayout\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n {...props}\n />\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingBody\n * -----------------------------------------------------------------------------------------------*/\n\nconst Loading = ({ children = 'Loading content' }: Table.LoadingProps) => {\n const isLoading = useTable('Loading', (state) => state.isLoading);\n const colCount = useTable('Loading', (state) => state.colCount);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <Flex justifyContent=\"center\" padding={11} background=\"neutral0\">\n <Loader>{children}</Loader>\n </Flex>\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Body\n * -----------------------------------------------------------------------------------------------*/\n\nconst Body = ({ children }: Table.BodyProps) => {\n const isLoading = useTable('Body', (state) => state.isLoading);\n const rows = useTable('Body', (state) => state.rows);\n\n if (isLoading || rows.length === 0) {\n return null;\n }\n\n return <Tbody>{children}</Tbody>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst Row = (props: Table.RowProps) => {\n return <Tr {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Cell\n * -----------------------------------------------------------------------------------------------*/\nconst Cell = (props: Table.CellProps) => {\n return <Td {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst CheckboxCell = ({ id, ...props }: Table.CheckboxCellProps) => {\n const rows = useTable('CheckboxCell', (state) => state.rows);\n const selectedRows = useTable('CheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('CheckboxCell', (state) => state.selectRow);\n\n const { formatMessage } = useIntl();\n\n const handleSelectRow = () => {\n selectRow(rows.find((row) => row.id === id));\n };\n\n const isChecked = selectedRows.findIndex((row) => row.id === id) > -1;\n\n return (\n <Cell {...props} onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: id }\n )}\n disabled={rows.length === 0}\n checked={isChecked}\n onCheckedChange={handleSelectRow}\n />\n </Cell>\n );\n};\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @alpha we may move this component to the design-system.\n * @public\n * @description A generic table component composition. Internally handles the state of the table\n * such as selected rows, loading state, and more assuming the correct pieces are put togther.\n * @example\n * ```tsx\n * interace Data {\n * id: string;\n * name: string;\n * email: string;\n * }\n *\n * const ListView = () => {\n * const { data, isLoading } = useGetData<Data>();\n *\n * const headers: Table.Header<Data>[] = [\n * {\n * label: 'Name',\n * name: 'name',\n * sortable: true,\n * },\n * {\n * label: 'Email',\n * name: 'email',\n * sortable: true,\n * },\n * ];\n *\n * return (\n * <Table.Root rows={data} headers={headers} isLoading={isLoading}>\n * <Table.Content>\n * <Table.Head>\n * {headers.map((head) => (\n * <Table.HeaderCell key={head.name} {...head} />\n * ))}\n * </Table.Head>\n * <Table.Body>\n * <Table.Loading />\n * <Table.Empty />\n * {data.map((row) => (\n * <Table.Row key={row.id}>\n * <Table.Cell>{row.name}</Table.Cell>\n * <Table.Cell>{row.email}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table.Content>\n * </Table.Root>\n * );\n * };\n * ```\n */\nconst Table = {\n Root,\n Content,\n ActionBar,\n Head,\n HeaderCell,\n HeaderCheckboxCell,\n Body,\n CheckboxCell,\n Cell,\n Row,\n Loading,\n Empty,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Table {\n export type Props<\n TData extends BaseRow,\n THeader extends TableHeader<TData, THeader> = TableHeader<TData, TableHeader>,\n > = RootProps<TData, THeader>;\n export interface ActionBarProps {\n children?: React.ReactNode;\n }\n\n export interface ContentProps {\n children: React.ReactNode;\n }\n\n export type Header<TData, THeader> = TableHeader<TData, THeader>;\n\n export interface HeadProps {\n children: React.ReactNode;\n }\n\n export interface EmptyProps extends Partial<EmptyStateLayoutProps> {}\n\n export interface LoadingProps {\n children?: React.ReactNode;\n }\n\n export interface BodyProps {\n children: React.ReactNode;\n }\n\n export interface RowProps extends RawTrProps {}\n\n export interface CellProps extends RawTdProps {}\n\n export interface CheckboxCellProps extends Pick<BaseRow, 'id'>, Omit<RawTdProps, 'id'> {}\n}\n\nexport { Table, useTable };\n"],"names":["TableProvider","useTable","createContext","Root","children","defaultSelectedRows","footer","headers","isLoading","onSelectedRowsChange","rows","selectedRows","selectedRowsProps","setSelectedRows","useControllableState","prop","defaultProp","onChange","hasHeaderCheckbox","setHasHeaderCheckbox","React","useState","rowCount","length","colCount","selectRow","row","Array","isArray","prev","currentRowIndex","findIndex","r","id","toSpliced","_jsx","Content","state","DSTable","Head","Thead","Tr","HeaderCell","name","label","sortable","query","setQuery","useQueryParams","sort","sortBy","sortOrder","split","formatMessage","useIntl","isSorted","sortLabel","defaultMessage","handleClickSort","handleKeyDown","e","key","preventDefault","SortableTh","onClick","undefined","onKeyDown","tabIndex","aria-sort","$sortable","Tooltip","_jsxs","Flex","gap","Typography","textColor","tag","variant","SortIcon","$isUp","styled","Th","CaretDown","ActionBar","number","HeaderCheckboxCell","areAllEntriesSelected","isIndeterminate","useEffect","handleSelectAll","Checkbox","aria-label","disabled","checked","onCheckedChange","Empty","props","Tbody","Td","colSpan","EmptyStateLayout","content","hasRadius","icon","EmptyDocuments","width","Loading","justifyContent","padding","background","Loader","Body","Row","Cell","CheckboxCell","handleSelectRow","find","isChecked","stopPropagation","target","Table"],"mappings":"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"}
1
+ {"version":3,"file":"Table.mjs","sources":["../../../../../admin/src/components/Table.tsx"],"sourcesContent":["/**\n * TODO: honestly, half of this stuff should come straight from\n * the design-system and then we can just wrap round the bits for\n * the i18n & router interactions.\n *\n * So we'll do that in v2 of the DS.\n */\n\nimport * as React from 'react';\n\nimport {\n Flex,\n Typography,\n Th,\n Tbody,\n Td,\n Tooltip,\n IconButton,\n Thead,\n Tr,\n RawTrProps,\n Checkbox,\n Loader,\n Table as DSTable,\n EmptyStateLayout,\n EmptyStateLayoutProps,\n TableProps,\n RawTdProps,\n} from '@strapi/design-system';\nimport { CaretDown } from '@strapi/icons';\nimport { EmptyDocuments } from '@strapi/icons/symbols';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useControllableState } from '../hooks/useControllableState';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\nimport { createContext } from './Context';\n\n/* -------------------------------------------------------------------------------------------------\n * Root\n * -----------------------------------------------------------------------------------------------*/\n\ninterface BaseRow {\n id: string | number;\n [key: string]: any;\n}\n\ninterface TableHeader<TData = object, THeader = object> {\n /**\n * Typically used by plugins to render a custom cell\n */\n cellFormatter?: (data: TData, header: Omit<THeader, 'cellFormatter'>) => React.ReactNode;\n label: string;\n name: string;\n searchable?: boolean;\n sortable?: boolean;\n}\n\ninterface TableContextValue<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Pick<TableProps, 'footer'> {\n colCount: number;\n hasHeaderCheckbox: boolean;\n headers: THeader[];\n isLoading: boolean;\n rowCount: number;\n rows: TRow[];\n setHasHeaderCheckbox: (value: boolean) => void;\n selectedRows: TRow[];\n selectRow: (row: TRow | TRow[]) => void;\n}\n\nconst [TableProvider, useTable] = createContext<TableContextValue<any, any>>('Table');\n\ninterface RootProps<TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>\n extends Partial<\n Pick<\n TableContextValue<TRow, THeader>,\n 'footer' | 'headers' | 'isLoading' | 'rows' | 'selectedRows'\n >\n > {\n children?: React.ReactNode;\n defaultSelectedRows?: TRow[];\n onSelectedRowsChange?: (selectedRows: TRow[]) => void;\n}\n\nconst Root = <TRow extends BaseRow, THeader extends TableHeader<TRow, THeader>>({\n children,\n defaultSelectedRows,\n footer,\n headers = [],\n isLoading = false,\n onSelectedRowsChange,\n rows = [],\n selectedRows: selectedRowsProps,\n}: RootProps<TRow, THeader>) => {\n const [selectedRows = [], setSelectedRows] = useControllableState({\n prop: selectedRowsProps,\n defaultProp: defaultSelectedRows,\n onChange: onSelectedRowsChange,\n });\n const [hasHeaderCheckbox, setHasHeaderCheckbox] = React.useState(false);\n\n const rowCount = rows.length + 1;\n const colCount = hasHeaderCheckbox ? headers.length + 1 : headers.length;\n\n const selectRow: TableContextValue<TRow, THeader>['selectRow'] = (row) => {\n if (Array.isArray(row)) {\n setSelectedRows(row);\n } else {\n setSelectedRows((prev = []) => {\n const currentRowIndex = prev.findIndex((r) => r.id === row.id);\n if (currentRowIndex > -1) {\n return prev.toSpliced(currentRowIndex, 1);\n }\n\n return [...prev, row];\n });\n }\n };\n\n return (\n <TableProvider\n colCount={colCount}\n hasHeaderCheckbox={hasHeaderCheckbox}\n setHasHeaderCheckbox={setHasHeaderCheckbox}\n footer={footer}\n headers={headers}\n isLoading={isLoading}\n rowCount={rowCount}\n rows={rows}\n selectedRows={selectedRows}\n selectRow={selectRow}\n >\n {children}\n </TableProvider>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Content\n * -----------------------------------------------------------------------------------------------*/\n\nconst Content = ({ children }: Table.ContentProps) => {\n const rowCount = useTable('Content', (state) => state.rowCount);\n const colCount = useTable('Content', (state) => state.colCount);\n const footer = useTable('Content', (state) => state.footer);\n\n return (\n <DSTable rowCount={rowCount} colCount={colCount} footer={footer}>\n {children}\n </DSTable>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Head\n * -----------------------------------------------------------------------------------------------*/\n\nconst Head = ({ children }: Table.HeadProps) => {\n return (\n <Thead>\n <Tr>{children}</Tr>\n </Thead>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCell\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @description A header cell in your table, internally will set the query params for sorting to\n * be passed to your data-fetching function.\n */\nconst HeaderCell = <TData, THead>({ name, label, sortable }: TableHeader<TData, THead>) => {\n const [{ query }, setQuery] = useQueryParams<{ sort?: `${string}:${'ASC' | 'DESC'}` }>();\n const sort = query?.sort ?? '';\n const [sortBy, sortOrder] = sort.split(':');\n const { formatMessage } = useIntl();\n const isSorted = sortBy === name;\n\n const sortLabel = formatMessage(\n {\n id: 'components.TableHeader.sort',\n defaultMessage: 'Sort on {label}',\n },\n { label }\n );\n\n const handleClickSort = () => {\n if (sortable) {\n setQuery(\n {\n sort: `${name}:${isSorted && sortOrder === 'ASC' ? 'DESC' : 'ASC'}`,\n },\n 'push',\n true\n );\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (sortable && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n handleClickSort();\n }\n };\n\n return (\n <SortableTh\n onClick={sortable ? handleClickSort : undefined}\n onKeyDown={sortable ? handleKeyDown : undefined}\n tabIndex={sortable ? 0 : undefined}\n aria-sort={isSorted ? (sortOrder === 'ASC' ? 'ascending' : 'descending') : undefined}\n $sortable={!!sortable}\n >\n <Tooltip label={sortable ? sortLabel : label}>\n <Flex gap={1}>\n <Typography textColor=\"neutral600\" tag=\"span\" variant=\"sigma\">\n {label}\n </Typography>\n {isSorted && sortable && <SortIcon $isUp={sortOrder === 'ASC'} />}\n </Flex>\n </Tooltip>\n </SortableTh>\n );\n};\n\nconst SortableTh = styled(Th)<{ $sortable: boolean }>`\n cursor: ${({ $sortable }) => ($sortable ? 'pointer' : 'default')};\n`;\n\nconst SortIcon = styled(CaretDown)<{\n $isUp: boolean;\n}>`\n transform: ${({ $isUp }) => `rotate(${$isUp ? '180' : '0'}deg)`};\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * ActionBar\n * -----------------------------------------------------------------------------------------------*/\n\nconst ActionBar = ({ children }: Table.ActionBarProps) => {\n const { formatMessage } = useIntl();\n const selectedRows = useTable('ActionBar', (state) => state.selectedRows);\n\n if (selectedRows.length === 0) return null;\n\n return (\n <Flex gap={2}>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(\n {\n id: 'content-manager.components.TableDelete.label',\n defaultMessage: '{number, plural, one {# row} other {# rows}} selected',\n },\n { number: selectedRows.length }\n )}\n </Typography>\n {children}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HeaderCheckboxCell\n * -----------------------------------------------------------------------------------------------*/\n\nconst HeaderCheckboxCell = () => {\n const rows = useTable('HeaderCheckboxCell', (state) => state.rows);\n const selectedRows = useTable('HeaderCheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('HeaderCheckboxCell', (state) => state.selectRow);\n const setHasHeaderCheckbox = useTable(\n 'HeaderCheckboxCell',\n (state) => state.setHasHeaderCheckbox\n );\n\n const { formatMessage } = useIntl();\n\n const areAllEntriesSelected = selectedRows.length === rows.length && rows.length > 0;\n const isIndeterminate = !areAllEntriesSelected && selectedRows.length > 0;\n\n React.useEffect(() => {\n setHasHeaderCheckbox(true);\n\n return () => setHasHeaderCheckbox(false);\n }, [setHasHeaderCheckbox]);\n\n const handleSelectAll = () => {\n if (!areAllEntriesSelected) {\n selectRow(rows);\n } else {\n selectRow([]);\n }\n };\n\n return (\n <Th>\n <Checkbox\n aria-label={formatMessage({\n id: 'global.select-all-entries',\n defaultMessage: 'Select all entries',\n })}\n disabled={rows.length === 0}\n checked={isIndeterminate ? 'indeterminate' : areAllEntriesSelected}\n onCheckedChange={handleSelectAll}\n />\n </Th>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Empty\n * -----------------------------------------------------------------------------------------------*/\n\nconst Empty = (props: Table.EmptyProps) => {\n const { formatMessage } = useIntl();\n\n const rows = useTable('Empty', (state) => state.rows);\n const isLoading = useTable('Empty', (state) => state.isLoading);\n const colCount = useTable('Empty', (state) => state.colCount);\n\n /**\n * If we're loading or we have some data, we don't show the empty state.\n */\n if (rows.length > 0 || isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <EmptyStateLayout\n content={formatMessage({\n id: 'app.components.EmptyStateLayout.content-document',\n defaultMessage: 'No content found',\n })}\n hasRadius\n icon={<EmptyDocuments width=\"16rem\" />}\n {...props}\n />\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LoadingBody\n * -----------------------------------------------------------------------------------------------*/\n\nconst Loading = ({ children = 'Loading content' }: Table.LoadingProps) => {\n const isLoading = useTable('Loading', (state) => state.isLoading);\n const colCount = useTable('Loading', (state) => state.colCount);\n\n if (!isLoading) {\n return null;\n }\n\n return (\n <Tbody>\n <Tr>\n <Td colSpan={colCount}>\n <Flex justifyContent=\"center\" padding={11} background=\"neutral0\">\n <Loader>{children}</Loader>\n </Flex>\n </Td>\n </Tr>\n </Tbody>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Body\n * -----------------------------------------------------------------------------------------------*/\n\nconst Body = ({ children }: Table.BodyProps) => {\n const isLoading = useTable('Body', (state) => state.isLoading);\n const rows = useTable('Body', (state) => state.rows);\n\n if (isLoading || rows.length === 0) {\n return null;\n }\n\n return <Tbody>{children}</Tbody>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst Row = (props: Table.RowProps) => {\n return <Tr {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Cell\n * -----------------------------------------------------------------------------------------------*/\nconst Cell = (props: Table.CellProps) => {\n return <Td {...props} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Row\n * -----------------------------------------------------------------------------------------------*/\nconst CheckboxCell = ({ id, ...props }: Table.CheckboxCellProps) => {\n const rows = useTable('CheckboxCell', (state) => state.rows);\n const selectedRows = useTable('CheckboxCell', (state) => state.selectedRows);\n const selectRow = useTable('CheckboxCell', (state) => state.selectRow);\n\n const { formatMessage } = useIntl();\n\n const handleSelectRow = () => {\n selectRow(rows.find((row) => row.id === id));\n };\n\n const isChecked = selectedRows.findIndex((row) => row.id === id) > -1;\n\n return (\n <Cell {...props} onClick={(e) => e.stopPropagation()}>\n <Checkbox\n aria-label={formatMessage(\n {\n id: 'app.component.table.select.one-entry',\n defaultMessage: `Select {target}`,\n },\n { target: id }\n )}\n disabled={rows.length === 0}\n checked={isChecked}\n onCheckedChange={handleSelectRow}\n />\n </Cell>\n );\n};\n/* -------------------------------------------------------------------------------------------------\n * Exports\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * @alpha we may move this component to the design-system.\n * @public\n * @description A generic table component composition. Internally handles the state of the table\n * such as selected rows, loading state, and more assuming the correct pieces are put togther.\n * @example\n * ```tsx\n * interace Data {\n * id: string;\n * name: string;\n * email: string;\n * }\n *\n * const ListView = () => {\n * const { data, isLoading } = useGetData<Data>();\n *\n * const headers: Table.Header<Data>[] = [\n * {\n * label: 'Name',\n * name: 'name',\n * sortable: true,\n * },\n * {\n * label: 'Email',\n * name: 'email',\n * sortable: true,\n * },\n * ];\n *\n * return (\n * <Table.Root rows={data} headers={headers} isLoading={isLoading}>\n * <Table.Content>\n * <Table.Head>\n * {headers.map((head) => (\n * <Table.HeaderCell key={head.name} {...head} />\n * ))}\n * </Table.Head>\n * <Table.Body>\n * <Table.Loading />\n * <Table.Empty />\n * {data.map((row) => (\n * <Table.Row key={row.id}>\n * <Table.Cell>{row.name}</Table.Cell>\n * <Table.Cell>{row.email}</Table.Cell>\n * </Table.Row>\n * ))}\n * </Table.Body>\n * </Table.Content>\n * </Table.Root>\n * );\n * };\n * ```\n */\nconst Table = {\n Root,\n Content,\n ActionBar,\n Head,\n HeaderCell,\n HeaderCheckboxCell,\n Body,\n CheckboxCell,\n Cell,\n Row,\n Loading,\n Empty,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Table {\n export type Props<\n TData extends BaseRow,\n THeader extends TableHeader<TData, THeader> = TableHeader<TData, TableHeader>,\n > = RootProps<TData, THeader>;\n export interface ActionBarProps {\n children?: React.ReactNode;\n }\n\n export interface ContentProps {\n children: React.ReactNode;\n }\n\n export type Header<TData, THeader> = TableHeader<TData, THeader>;\n\n export interface HeadProps {\n children: React.ReactNode;\n }\n\n export interface EmptyProps extends Partial<EmptyStateLayoutProps> {}\n\n export interface LoadingProps {\n children?: React.ReactNode;\n }\n\n export interface BodyProps {\n children: React.ReactNode;\n }\n\n export interface RowProps extends RawTrProps {}\n\n export interface CellProps extends RawTdProps {}\n\n export interface CheckboxCellProps extends Pick<BaseRow, 'id'>, Omit<RawTdProps, 'id'> {}\n}\n\nexport { Table, useTable };\n"],"names":["TableProvider","useTable","createContext","Root","children","defaultSelectedRows","footer","headers","isLoading","onSelectedRowsChange","rows","selectedRows","selectedRowsProps","setSelectedRows","useControllableState","prop","defaultProp","onChange","hasHeaderCheckbox","setHasHeaderCheckbox","React","useState","rowCount","length","colCount","selectRow","row","Array","isArray","prev","currentRowIndex","findIndex","r","id","toSpliced","_jsx","Content","state","DSTable","Head","Thead","Tr","HeaderCell","name","label","sortable","query","setQuery","useQueryParams","sort","sortBy","sortOrder","split","formatMessage","useIntl","isSorted","sortLabel","defaultMessage","handleClickSort","handleKeyDown","e","key","preventDefault","SortableTh","onClick","undefined","onKeyDown","tabIndex","aria-sort","$sortable","Tooltip","_jsxs","Flex","gap","Typography","textColor","tag","variant","SortIcon","$isUp","styled","Th","CaretDown","ActionBar","number","HeaderCheckboxCell","areAllEntriesSelected","isIndeterminate","useEffect","handleSelectAll","Checkbox","aria-label","disabled","checked","onCheckedChange","Empty","props","Tbody","Td","colSpan","EmptyStateLayout","content","hasRadius","icon","EmptyDocuments","width","Loading","justifyContent","padding","background","Loader","Body","Row","Cell","CheckboxCell","handleSelectRow","find","isChecked","stopPropagation","target","Table"],"mappings":"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"}
@@ -178,6 +178,44 @@ const ADMIN_PERMISSIONS_CE = {
178
178
  }
179
179
  ]
180
180
  },
181
+ 'admin-tokens': {
182
+ main: [
183
+ {
184
+ action: 'admin::admin-tokens.access',
185
+ subject: null
186
+ }
187
+ ],
188
+ create: [
189
+ {
190
+ action: 'admin::admin-tokens.create',
191
+ subject: null
192
+ }
193
+ ],
194
+ delete: [
195
+ {
196
+ action: 'admin::admin-tokens.delete',
197
+ subject: null
198
+ }
199
+ ],
200
+ read: [
201
+ {
202
+ action: 'admin::admin-tokens.read',
203
+ subject: null
204
+ }
205
+ ],
206
+ update: [
207
+ {
208
+ action: 'admin::admin-tokens.update',
209
+ subject: null
210
+ }
211
+ ],
212
+ regenerate: [
213
+ {
214
+ action: 'admin::admin-tokens.regenerate',
215
+ subject: null
216
+ }
217
+ ]
218
+ },
181
219
  'api-tokens': {
182
220
  main: [
183
221
  {
@@ -306,6 +344,7 @@ const HOOKS = {
306
344
  * @type {string}
307
345
  */ MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links'
308
346
  };
347
+ const isAdminTokensFutureEnabled = ()=>window.strapi.future.isEnabled('adminTokens') === true;
309
348
  const SETTINGS_LINKS_CE = ()=>({
310
349
  global: [
311
350
  {
@@ -391,6 +430,16 @@ const SETTINGS_LINKS_CE = ()=>({
391
430
  to: '/settings/users?pageSize=10&page=1&sort=firstname',
392
431
  id: 'users'
393
432
  },
433
+ ...isAdminTokensFutureEnabled() === true ? [
434
+ {
435
+ intlLabel: {
436
+ id: 'Settings.adminTokens.title',
437
+ defaultMessage: 'Admin Tokens'
438
+ },
439
+ to: '/settings/admin-tokens',
440
+ id: 'admin-tokens'
441
+ }
442
+ ] : [],
394
443
  ...!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) && window.strapi?.flags?.promoteEE ? [
395
444
  {
396
445
  intlLabel: {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../admin/src/constants.ts"],"sourcesContent":["import { PermissionMap } from './types/permissions';\n\nimport type { StrapiAppSettingLink } from './core/apis/router';\n\nexport const ADMIN_PERMISSIONS_CE = {\n contentManager: {\n main: [],\n collectionTypesConfigurations: [\n {\n action: 'plugin::content-manager.collection-types.configure-view',\n subject: null,\n },\n ],\n componentsConfigurations: [\n {\n action: 'plugin::content-manager.components.configure-layout',\n subject: null,\n },\n ],\n singleTypesConfigurations: [\n {\n action: 'plugin::content-manager.single-types.configure-view',\n subject: null,\n },\n ],\n },\n marketplace: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n settings: {\n roles: {\n main: [\n { action: 'admin::roles.create', subject: null },\n { action: 'admin::roles.update', subject: null },\n { action: 'admin::roles.read', subject: null },\n { action: 'admin::roles.delete', subject: null },\n ],\n create: [{ action: 'admin::roles.create', subject: null }],\n delete: [{ action: 'admin::roles.delete', subject: null }],\n read: [{ action: 'admin::roles.read', subject: null }],\n update: [{ action: 'admin::roles.update', subject: null }],\n },\n users: {\n main: [\n { action: 'admin::users.create', subject: null },\n { action: 'admin::users.read', subject: null },\n { action: 'admin::users.update', subject: null },\n { action: 'admin::users.delete', subject: null },\n ],\n create: [{ action: 'admin::users.create', subject: null }],\n delete: [{ action: 'admin::users.delete', subject: null }],\n read: [{ action: 'admin::users.read', subject: null }],\n update: [{ action: 'admin::users.update', subject: null }],\n },\n webhooks: {\n main: [\n { action: 'admin::webhooks.create', subject: null },\n { action: 'admin::webhooks.read', subject: null },\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n create: [{ action: 'admin::webhooks.create', subject: null }],\n delete: [{ action: 'admin::webhooks.delete', subject: null }],\n read: [\n { action: 'admin::webhooks.read', subject: null },\n // NOTE: We need to check with the API\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n update: [{ action: 'admin::webhooks.update', subject: null }],\n },\n 'api-tokens': {\n main: [{ action: 'admin::api-tokens.access', subject: null }],\n create: [{ action: 'admin::api-tokens.create', subject: null }],\n delete: [{ action: 'admin::api-tokens.delete', subject: null }],\n read: [{ action: 'admin::api-tokens.read', subject: null }],\n update: [{ action: 'admin::api-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::api-tokens.regenerate', subject: null }],\n },\n 'transfer-tokens': {\n main: [{ action: 'admin::transfer.tokens.access', subject: null }],\n create: [{ action: 'admin::transfer.tokens.create', subject: null }],\n delete: [{ action: 'admin::transfer.tokens.delete', subject: null }],\n read: [{ action: 'admin::transfer.tokens.read', subject: null }],\n update: [{ action: 'admin::transfer.tokens.update', subject: null }],\n regenerate: [{ action: 'admin::transfer.tokens.regenerate', subject: null }],\n },\n 'project-settings': {\n read: [{ action: 'admin::project-settings.read', subject: null }],\n update: [{ action: 'admin::project-settings.update', subject: null }],\n },\n plugins: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n },\n} satisfies Partial<PermissionMap>;\n\nexport const HOOKS = {\n /**\n * Hook that allows to mutate the displayed headers of the list view table\n * @constant\n * @type {string}\n */\n INJECT_COLUMN_IN_TABLE: 'Admin/CM/pages/ListView/inject-column-in-table',\n\n /**\n * Hook that allows to mutate the CM's collection types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_COLLECTION_TYPES_LINKS: 'Admin/CM/pages/App/mutate-collection-types-links',\n\n /**\n * Hook that allows to mutate the CM's edit view layout\n * @constant\n * @type {string}\n */\n MUTATE_EDIT_VIEW_LAYOUT: 'Admin/CM/pages/EditView/mutate-edit-view-layout',\n\n /**\n * Hook that allows to mutate the CM's single types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links',\n};\n\nexport interface SettingsMenuLink\n extends Omit<StrapiAppSettingLink, 'Component' | 'permissions' | 'licenseOnly'> {\n licenseOnly?: boolean;\n}\n\nexport type SettingsMenu = {\n admin: SettingsMenuLink[];\n global: SettingsMenuLink[];\n};\n\nexport const SETTINGS_LINKS_CE = (): SettingsMenu => ({\n global: [\n {\n intlLabel: { id: 'Settings.application.title', defaultMessage: 'Overview' },\n to: '/settings/application-infos',\n id: '000-application-infos',\n },\n {\n intlLabel: { id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' },\n to: '/settings/webhooks',\n id: 'webhooks',\n },\n {\n intlLabel: { id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' },\n to: '/settings/api-tokens?sort=name:ASC',\n id: 'api-tokens',\n },\n {\n intlLabel: { id: 'Settings.transferTokens.title', defaultMessage: 'Transfer Tokens' },\n to: '/settings/transfer-tokens?sort=name:ASC',\n id: 'transfer-tokens',\n },\n {\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/settings/list-plugins',\n id: 'plugins',\n },\n // If the Enterprise/Cloud feature is not enabled and if the config doesn't disable it, we promote the Enterprise/Cloud feature by displaying them in the settings menu.\n // Disable this by adding \"promoteEE: false\" to your `./config/admin.js` file\n ...(!window.strapi.features.isEnabled(window.strapi.features.SSO) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/purchase-single-sign-on',\n id: 'sso-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled('cms-content-history') && window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.content-history.title', defaultMessage: 'Content History' },\n to: '/settings/purchase-content-history',\n id: 'content-history-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n {\n intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },\n to: '/settings/roles',\n id: 'roles',\n },\n {\n intlLabel: { id: 'global.users', defaultMessage: 'Users' },\n // Init the search params directly\n to: '/settings/users?pageSize=10&page=1&sort=firstname',\n id: 'users',\n },\n ...(!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/purchase-audit-logs',\n id: 'auditLogs-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_CE","contentManager","main","collectionTypesConfigurations","action","subject","componentsConfigurations","singleTypesConfigurations","marketplace","read","settings","roles","create","delete","update","users","webhooks","regenerate","plugins","HOOKS","INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","SETTINGS_LINKS_CE","global","intlLabel","id","defaultMessage","to","window","strapi","features","isEnabled","SSO","flags","promoteEE","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../admin/src/constants.ts"],"sourcesContent":["import { PermissionMap } from './types/permissions';\n\nimport type { StrapiAppSettingLink } from './core/apis/router';\n\nexport const ADMIN_PERMISSIONS_CE = {\n contentManager: {\n main: [],\n collectionTypesConfigurations: [\n {\n action: 'plugin::content-manager.collection-types.configure-view',\n subject: null,\n },\n ],\n componentsConfigurations: [\n {\n action: 'plugin::content-manager.components.configure-layout',\n subject: null,\n },\n ],\n singleTypesConfigurations: [\n {\n action: 'plugin::content-manager.single-types.configure-view',\n subject: null,\n },\n ],\n },\n marketplace: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n settings: {\n roles: {\n main: [\n { action: 'admin::roles.create', subject: null },\n { action: 'admin::roles.update', subject: null },\n { action: 'admin::roles.read', subject: null },\n { action: 'admin::roles.delete', subject: null },\n ],\n create: [{ action: 'admin::roles.create', subject: null }],\n delete: [{ action: 'admin::roles.delete', subject: null }],\n read: [{ action: 'admin::roles.read', subject: null }],\n update: [{ action: 'admin::roles.update', subject: null }],\n },\n users: {\n main: [\n { action: 'admin::users.create', subject: null },\n { action: 'admin::users.read', subject: null },\n { action: 'admin::users.update', subject: null },\n { action: 'admin::users.delete', subject: null },\n ],\n create: [{ action: 'admin::users.create', subject: null }],\n delete: [{ action: 'admin::users.delete', subject: null }],\n read: [{ action: 'admin::users.read', subject: null }],\n update: [{ action: 'admin::users.update', subject: null }],\n },\n webhooks: {\n main: [\n { action: 'admin::webhooks.create', subject: null },\n { action: 'admin::webhooks.read', subject: null },\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n create: [{ action: 'admin::webhooks.create', subject: null }],\n delete: [{ action: 'admin::webhooks.delete', subject: null }],\n read: [\n { action: 'admin::webhooks.read', subject: null },\n // NOTE: We need to check with the API\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n update: [{ action: 'admin::webhooks.update', subject: null }],\n },\n 'admin-tokens': {\n main: [{ action: 'admin::admin-tokens.access', subject: null }],\n create: [{ action: 'admin::admin-tokens.create', subject: null }],\n delete: [{ action: 'admin::admin-tokens.delete', subject: null }],\n read: [{ action: 'admin::admin-tokens.read', subject: null }],\n update: [{ action: 'admin::admin-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::admin-tokens.regenerate', subject: null }],\n },\n 'api-tokens': {\n main: [{ action: 'admin::api-tokens.access', subject: null }],\n create: [{ action: 'admin::api-tokens.create', subject: null }],\n delete: [{ action: 'admin::api-tokens.delete', subject: null }],\n read: [{ action: 'admin::api-tokens.read', subject: null }],\n update: [{ action: 'admin::api-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::api-tokens.regenerate', subject: null }],\n },\n 'transfer-tokens': {\n main: [{ action: 'admin::transfer.tokens.access', subject: null }],\n create: [{ action: 'admin::transfer.tokens.create', subject: null }],\n delete: [{ action: 'admin::transfer.tokens.delete', subject: null }],\n read: [{ action: 'admin::transfer.tokens.read', subject: null }],\n update: [{ action: 'admin::transfer.tokens.update', subject: null }],\n regenerate: [{ action: 'admin::transfer.tokens.regenerate', subject: null }],\n },\n 'project-settings': {\n read: [{ action: 'admin::project-settings.read', subject: null }],\n update: [{ action: 'admin::project-settings.update', subject: null }],\n },\n plugins: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n },\n} satisfies Partial<PermissionMap>;\n\nexport const HOOKS = {\n /**\n * Hook that allows to mutate the displayed headers of the list view table\n * @constant\n * @type {string}\n */\n INJECT_COLUMN_IN_TABLE: 'Admin/CM/pages/ListView/inject-column-in-table',\n\n /**\n * Hook that allows to mutate the CM's collection types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_COLLECTION_TYPES_LINKS: 'Admin/CM/pages/App/mutate-collection-types-links',\n\n /**\n * Hook that allows to mutate the CM's edit view layout\n * @constant\n * @type {string}\n */\n MUTATE_EDIT_VIEW_LAYOUT: 'Admin/CM/pages/EditView/mutate-edit-view-layout',\n\n /**\n * Hook that allows to mutate the CM's single types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links',\n};\n\nexport interface SettingsMenuLink\n extends Omit<StrapiAppSettingLink, 'Component' | 'permissions' | 'licenseOnly'> {\n licenseOnly?: boolean;\n}\n\nexport type SettingsMenu = {\n admin: SettingsMenuLink[];\n global: SettingsMenuLink[];\n};\n\nconst isAdminTokensFutureEnabled = () => window.strapi.future.isEnabled('adminTokens') === true;\n\nexport const SETTINGS_LINKS_CE = (): SettingsMenu => ({\n global: [\n {\n intlLabel: { id: 'Settings.application.title', defaultMessage: 'Overview' },\n to: '/settings/application-infos',\n id: '000-application-infos',\n },\n {\n intlLabel: { id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' },\n to: '/settings/webhooks',\n id: 'webhooks',\n },\n {\n intlLabel: { id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' },\n to: '/settings/api-tokens?sort=name:ASC',\n id: 'api-tokens',\n },\n {\n intlLabel: { id: 'Settings.transferTokens.title', defaultMessage: 'Transfer Tokens' },\n to: '/settings/transfer-tokens?sort=name:ASC',\n id: 'transfer-tokens',\n },\n {\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/settings/list-plugins',\n id: 'plugins',\n },\n // If the Enterprise/Cloud feature is not enabled and if the config doesn't disable it, we promote the Enterprise/Cloud feature by displaying them in the settings menu.\n // Disable this by adding \"promoteEE: false\" to your `./config/admin.js` file\n ...(!window.strapi.features.isEnabled(window.strapi.features.SSO) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/purchase-single-sign-on',\n id: 'sso-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled('cms-content-history') && window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.content-history.title', defaultMessage: 'Content History' },\n to: '/settings/purchase-content-history',\n id: 'content-history-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n {\n intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },\n to: '/settings/roles',\n id: 'roles',\n },\n {\n intlLabel: { id: 'global.users', defaultMessage: 'Users' },\n // Init the search params directly\n to: '/settings/users?pageSize=10&page=1&sort=firstname',\n id: 'users',\n },\n ...(isAdminTokensFutureEnabled() === true\n ? [\n {\n intlLabel: { id: 'Settings.adminTokens.title', defaultMessage: 'Admin Tokens' },\n to: '/settings/admin-tokens',\n id: 'admin-tokens',\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/purchase-audit-logs',\n id: 'auditLogs-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_CE","contentManager","main","collectionTypesConfigurations","action","subject","componentsConfigurations","singleTypesConfigurations","marketplace","read","settings","roles","create","delete","update","users","webhooks","regenerate","plugins","HOOKS","INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","isAdminTokensFutureEnabled","window","strapi","future","isEnabled","SETTINGS_LINKS_CE","global","intlLabel","id","defaultMessage","to","features","SSO","flags","promoteEE","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
@@ -176,6 +176,44 @@ const ADMIN_PERMISSIONS_CE = {
176
176
  }
177
177
  ]
178
178
  },
179
+ 'admin-tokens': {
180
+ main: [
181
+ {
182
+ action: 'admin::admin-tokens.access',
183
+ subject: null
184
+ }
185
+ ],
186
+ create: [
187
+ {
188
+ action: 'admin::admin-tokens.create',
189
+ subject: null
190
+ }
191
+ ],
192
+ delete: [
193
+ {
194
+ action: 'admin::admin-tokens.delete',
195
+ subject: null
196
+ }
197
+ ],
198
+ read: [
199
+ {
200
+ action: 'admin::admin-tokens.read',
201
+ subject: null
202
+ }
203
+ ],
204
+ update: [
205
+ {
206
+ action: 'admin::admin-tokens.update',
207
+ subject: null
208
+ }
209
+ ],
210
+ regenerate: [
211
+ {
212
+ action: 'admin::admin-tokens.regenerate',
213
+ subject: null
214
+ }
215
+ ]
216
+ },
179
217
  'api-tokens': {
180
218
  main: [
181
219
  {
@@ -304,6 +342,7 @@ const HOOKS = {
304
342
  * @type {string}
305
343
  */ MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links'
306
344
  };
345
+ const isAdminTokensFutureEnabled = ()=>window.strapi.future.isEnabled('adminTokens') === true;
307
346
  const SETTINGS_LINKS_CE = ()=>({
308
347
  global: [
309
348
  {
@@ -389,6 +428,16 @@ const SETTINGS_LINKS_CE = ()=>({
389
428
  to: '/settings/users?pageSize=10&page=1&sort=firstname',
390
429
  id: 'users'
391
430
  },
431
+ ...isAdminTokensFutureEnabled() === true ? [
432
+ {
433
+ intlLabel: {
434
+ id: 'Settings.adminTokens.title',
435
+ defaultMessage: 'Admin Tokens'
436
+ },
437
+ to: '/settings/admin-tokens',
438
+ id: 'admin-tokens'
439
+ }
440
+ ] : [],
392
441
  ...!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) && window.strapi?.flags?.promoteEE ? [
393
442
  {
394
443
  intlLabel: {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../../admin/src/constants.ts"],"sourcesContent":["import { PermissionMap } from './types/permissions';\n\nimport type { StrapiAppSettingLink } from './core/apis/router';\n\nexport const ADMIN_PERMISSIONS_CE = {\n contentManager: {\n main: [],\n collectionTypesConfigurations: [\n {\n action: 'plugin::content-manager.collection-types.configure-view',\n subject: null,\n },\n ],\n componentsConfigurations: [\n {\n action: 'plugin::content-manager.components.configure-layout',\n subject: null,\n },\n ],\n singleTypesConfigurations: [\n {\n action: 'plugin::content-manager.single-types.configure-view',\n subject: null,\n },\n ],\n },\n marketplace: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n settings: {\n roles: {\n main: [\n { action: 'admin::roles.create', subject: null },\n { action: 'admin::roles.update', subject: null },\n { action: 'admin::roles.read', subject: null },\n { action: 'admin::roles.delete', subject: null },\n ],\n create: [{ action: 'admin::roles.create', subject: null }],\n delete: [{ action: 'admin::roles.delete', subject: null }],\n read: [{ action: 'admin::roles.read', subject: null }],\n update: [{ action: 'admin::roles.update', subject: null }],\n },\n users: {\n main: [\n { action: 'admin::users.create', subject: null },\n { action: 'admin::users.read', subject: null },\n { action: 'admin::users.update', subject: null },\n { action: 'admin::users.delete', subject: null },\n ],\n create: [{ action: 'admin::users.create', subject: null }],\n delete: [{ action: 'admin::users.delete', subject: null }],\n read: [{ action: 'admin::users.read', subject: null }],\n update: [{ action: 'admin::users.update', subject: null }],\n },\n webhooks: {\n main: [\n { action: 'admin::webhooks.create', subject: null },\n { action: 'admin::webhooks.read', subject: null },\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n create: [{ action: 'admin::webhooks.create', subject: null }],\n delete: [{ action: 'admin::webhooks.delete', subject: null }],\n read: [\n { action: 'admin::webhooks.read', subject: null },\n // NOTE: We need to check with the API\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n update: [{ action: 'admin::webhooks.update', subject: null }],\n },\n 'api-tokens': {\n main: [{ action: 'admin::api-tokens.access', subject: null }],\n create: [{ action: 'admin::api-tokens.create', subject: null }],\n delete: [{ action: 'admin::api-tokens.delete', subject: null }],\n read: [{ action: 'admin::api-tokens.read', subject: null }],\n update: [{ action: 'admin::api-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::api-tokens.regenerate', subject: null }],\n },\n 'transfer-tokens': {\n main: [{ action: 'admin::transfer.tokens.access', subject: null }],\n create: [{ action: 'admin::transfer.tokens.create', subject: null }],\n delete: [{ action: 'admin::transfer.tokens.delete', subject: null }],\n read: [{ action: 'admin::transfer.tokens.read', subject: null }],\n update: [{ action: 'admin::transfer.tokens.update', subject: null }],\n regenerate: [{ action: 'admin::transfer.tokens.regenerate', subject: null }],\n },\n 'project-settings': {\n read: [{ action: 'admin::project-settings.read', subject: null }],\n update: [{ action: 'admin::project-settings.update', subject: null }],\n },\n plugins: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n },\n} satisfies Partial<PermissionMap>;\n\nexport const HOOKS = {\n /**\n * Hook that allows to mutate the displayed headers of the list view table\n * @constant\n * @type {string}\n */\n INJECT_COLUMN_IN_TABLE: 'Admin/CM/pages/ListView/inject-column-in-table',\n\n /**\n * Hook that allows to mutate the CM's collection types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_COLLECTION_TYPES_LINKS: 'Admin/CM/pages/App/mutate-collection-types-links',\n\n /**\n * Hook that allows to mutate the CM's edit view layout\n * @constant\n * @type {string}\n */\n MUTATE_EDIT_VIEW_LAYOUT: 'Admin/CM/pages/EditView/mutate-edit-view-layout',\n\n /**\n * Hook that allows to mutate the CM's single types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links',\n};\n\nexport interface SettingsMenuLink\n extends Omit<StrapiAppSettingLink, 'Component' | 'permissions' | 'licenseOnly'> {\n licenseOnly?: boolean;\n}\n\nexport type SettingsMenu = {\n admin: SettingsMenuLink[];\n global: SettingsMenuLink[];\n};\n\nexport const SETTINGS_LINKS_CE = (): SettingsMenu => ({\n global: [\n {\n intlLabel: { id: 'Settings.application.title', defaultMessage: 'Overview' },\n to: '/settings/application-infos',\n id: '000-application-infos',\n },\n {\n intlLabel: { id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' },\n to: '/settings/webhooks',\n id: 'webhooks',\n },\n {\n intlLabel: { id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' },\n to: '/settings/api-tokens?sort=name:ASC',\n id: 'api-tokens',\n },\n {\n intlLabel: { id: 'Settings.transferTokens.title', defaultMessage: 'Transfer Tokens' },\n to: '/settings/transfer-tokens?sort=name:ASC',\n id: 'transfer-tokens',\n },\n {\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/settings/list-plugins',\n id: 'plugins',\n },\n // If the Enterprise/Cloud feature is not enabled and if the config doesn't disable it, we promote the Enterprise/Cloud feature by displaying them in the settings menu.\n // Disable this by adding \"promoteEE: false\" to your `./config/admin.js` file\n ...(!window.strapi.features.isEnabled(window.strapi.features.SSO) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/purchase-single-sign-on',\n id: 'sso-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled('cms-content-history') && window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.content-history.title', defaultMessage: 'Content History' },\n to: '/settings/purchase-content-history',\n id: 'content-history-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n {\n intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },\n to: '/settings/roles',\n id: 'roles',\n },\n {\n intlLabel: { id: 'global.users', defaultMessage: 'Users' },\n // Init the search params directly\n to: '/settings/users?pageSize=10&page=1&sort=firstname',\n id: 'users',\n },\n ...(!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/purchase-audit-logs',\n id: 'auditLogs-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_CE","contentManager","main","collectionTypesConfigurations","action","subject","componentsConfigurations","singleTypesConfigurations","marketplace","read","settings","roles","create","delete","update","users","webhooks","regenerate","plugins","HOOKS","INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","SETTINGS_LINKS_CE","global","intlLabel","id","defaultMessage","to","window","strapi","features","isEnabled","SSO","flags","promoteEE","licenseOnly","admin","AUDIT_LOGS"],"mappings":"MAIaA,oBAAAA,GAAuB;IAClCC,cAAAA,EAAgB;AACdC,QAAAA,IAAAA,EAAM,EAAE;QACRC,6BAAAA,EAA+B;AAC7B,YAAA;gBACEC,MAAAA,EAAQ,yDAAA;gBACRC,OAAAA,EAAS;AACX;AACD,SAAA;QACDC,wBAAAA,EAA0B;AACxB,YAAA;gBACEF,MAAAA,EAAQ,qDAAA;gBACRC,OAAAA,EAAS;AACX;AACD,SAAA;QACDE,yBAAAA,EAA2B;AACzB,YAAA;gBACEH,MAAAA,EAAQ,qDAAA;gBACRC,OAAAA,EAAS;AACX;AACD;AACH,KAAA;IACAG,WAAAA,EAAa;QACXN,IAAAA,EAAM;AAAC,YAAA;gBAAEE,MAAAA,EAAQ,yBAAA;gBAA2BC,OAAAA,EAAS;AAAK;AAAE,SAAA;QAC5DI,IAAAA,EAAM;AAAC,YAAA;gBAAEL,MAAAA,EAAQ,yBAAA;gBAA2BC,OAAAA,EAAS;AAAK;AAAE;AAC9D,KAAA;IACAK,QAAAA,EAAU;QACRC,KAAAA,EAAO;YACLT,IAAAA,EAAM;AACJ,gBAAA;oBAAEE,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK,iBAAA;AAC/C,gBAAA;oBAAED,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK,iBAAA;AAC/C,gBAAA;oBAAED,MAAAA,EAAQ,mBAAA;oBAAqBC,OAAAA,EAAS;AAAK,iBAAA;AAC7C,gBAAA;oBAAED,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAChD,aAAA;YACDO,MAAAA,EAAQ;AAAC,gBAAA;oBAAER,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC1DQ,MAAAA,EAAQ;AAAC,gBAAA;oBAAET,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC1DI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,mBAAA;oBAAqBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACtDS,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE;AAC5D,SAAA;QACAU,KAAAA,EAAO;YACLb,IAAAA,EAAM;AACJ,gBAAA;oBAAEE,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK,iBAAA;AAC/C,gBAAA;oBAAED,MAAAA,EAAQ,mBAAA;oBAAqBC,OAAAA,EAAS;AAAK,iBAAA;AAC7C,gBAAA;oBAAED,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK,iBAAA;AAC/C,gBAAA;oBAAED,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAChD,aAAA;YACDO,MAAAA,EAAQ;AAAC,gBAAA;oBAAER,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC1DQ,MAAAA,EAAQ;AAAC,gBAAA;oBAAET,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC1DI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,mBAAA;oBAAqBC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACtDS,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,qBAAA;oBAAuBC,OAAAA,EAAS;AAAK;AAAE;AAC5D,SAAA;QACAW,QAAAA,EAAU;YACRd,IAAAA,EAAM;AACJ,gBAAA;oBAAEE,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK,iBAAA;AAClD,gBAAA;oBAAED,MAAAA,EAAQ,sBAAA;oBAAwBC,OAAAA,EAAS;AAAK,iBAAA;AAChD,gBAAA;oBAAED,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK,iBAAA;AAClD,gBAAA;oBAAED,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AACnD,aAAA;YACDO,MAAAA,EAAQ;AAAC,gBAAA;oBAAER,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC7DQ,MAAAA,EAAQ;AAAC,gBAAA;oBAAET,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC7DI,IAAAA,EAAM;AACJ,gBAAA;oBAAEL,MAAAA,EAAQ,sBAAA;oBAAwBC,OAAAA,EAAS;AAAK,iBAAA;;AAEhD,gBAAA;oBAAED,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK,iBAAA;AAClD,gBAAA;oBAAED,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AACnD,aAAA;YACDS,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AAAE;AAC/D,SAAA;QACA,YAAA,EAAc;YACZH,IAAAA,EAAM;AAAC,gBAAA;oBAAEE,MAAAA,EAAQ,0BAAA;oBAA4BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC7DO,MAAAA,EAAQ;AAAC,gBAAA;oBAAER,MAAAA,EAAQ,0BAAA;oBAA4BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC/DQ,MAAAA,EAAQ;AAAC,gBAAA;oBAAET,MAAAA,EAAQ,0BAAA;oBAA4BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC/DI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,wBAAA;oBAA0BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC3DS,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,0BAAA;oBAA4BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC/DY,UAAAA,EAAY;AAAC,gBAAA;oBAAEb,MAAAA,EAAQ,8BAAA;oBAAgCC,OAAAA,EAAS;AAAK;AAAE;AACzE,SAAA;QACA,iBAAA,EAAmB;YACjBH,IAAAA,EAAM;AAAC,gBAAA;oBAAEE,MAAAA,EAAQ,+BAAA;oBAAiCC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAClEO,MAAAA,EAAQ;AAAC,gBAAA;oBAAER,MAAAA,EAAQ,+BAAA;oBAAiCC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACpEQ,MAAAA,EAAQ;AAAC,gBAAA;oBAAET,MAAAA,EAAQ,+BAAA;oBAAiCC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACpEI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,6BAAA;oBAA+BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAChES,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,+BAAA;oBAAiCC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACpEY,UAAAA,EAAY;AAAC,gBAAA;oBAAEb,MAAAA,EAAQ,mCAAA;oBAAqCC,OAAAA,EAAS;AAAK;AAAE;AAC9E,SAAA;QACA,kBAAA,EAAoB;YAClBI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,8BAAA;oBAAgCC,OAAAA,EAAS;AAAK;AAAE,aAAA;YACjES,MAAAA,EAAQ;AAAC,gBAAA;oBAAEV,MAAAA,EAAQ,gCAAA;oBAAkCC,OAAAA,EAAS;AAAK;AAAE;AACvE,SAAA;QACAa,OAAAA,EAAS;YACPhB,IAAAA,EAAM;AAAC,gBAAA;oBAAEE,MAAAA,EAAQ,yBAAA;oBAA2BC,OAAAA,EAAS;AAAK;AAAE,aAAA;YAC5DI,IAAAA,EAAM;AAAC,gBAAA;oBAAEL,MAAAA,EAAQ,yBAAA;oBAA2BC,OAAAA,EAAS;AAAK;AAAE;AAC9D;AACF;AACF;MAEac,KAAAA,GAAQ;AACnB;;;;AAIC,MACDC,sBAAAA,EAAwB,gDAAA;AAExB;;;;AAIC,MACDC,6BAAAA,EAA+B,kDAAA;AAE/B;;;;AAIC,MACDC,uBAAAA,EAAyB,iDAAA;AAEzB;;;;AAIC,MACDC,yBAAAA,EAA2B;AAC7B;AAYO,MAAMC,iBAAAA,GAAoB,KAAqB;QACpDC,MAAAA,EAAQ;AACN,YAAA;gBACEC,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,4BAAA;oBAA8BC,cAAAA,EAAgB;AAAW,iBAAA;gBAC1EC,EAAAA,EAAI,6BAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACA,YAAA;gBACED,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,yBAAA;oBAA2BC,cAAAA,EAAgB;AAAW,iBAAA;gBACvEC,EAAAA,EAAI,oBAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACA,YAAA;gBACED,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,0BAAA;oBAA4BC,cAAAA,EAAgB;AAAa,iBAAA;gBAC1EC,EAAAA,EAAI,oCAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACA,YAAA;gBACED,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,+BAAA;oBAAiCC,cAAAA,EAAgB;AAAkB,iBAAA;gBACpFC,EAAAA,EAAI,yCAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACA,YAAA;gBACED,SAAAA,EAAW;oBACTC,EAAAA,EAAI,gBAAA;oBACJC,cAAAA,EAAgB;AAClB,iBAAA;gBACAC,EAAAA,EAAI,wBAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;;;AAGI,YAAA,GAAA,CAACG,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACE,GAAG,CAAA,IAChEJ,OAAOC,MAAM,EAAEI,OAAOC,SAAAA,GAClB;AACE,gBAAA;oBACEV,SAAAA,EAAW;wBAAEC,EAAAA,EAAI,oBAAA;wBAAsBC,cAAAA,EAAgB;AAAiB,qBAAA;oBACxEC,EAAAA,EAAI,mCAAA;oBACJF,EAAAA,EAAI,mBAAA;oBACJU,WAAAA,EAAa;AACf;AACD,aAAA,GACD,EAAE;AACF,YAAA,GAAA,CAACP,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAAC,qBAAA,CAAA,IAA0BH,MAAAA,CAAOC,MAAM,EAAEI,KAAAA,EAAOC,SAAAA,GAClF;AACE,gBAAA;oBACEV,SAAAA,EAAW;wBAAEC,EAAAA,EAAI,gCAAA;wBAAkCC,cAAAA,EAAgB;AAAkB,qBAAA;oBACrFC,EAAAA,EAAI,oCAAA;oBACJF,EAAAA,EAAI,+BAAA;oBACJU,WAAAA,EAAa;AACf;AACD,aAAA,GACD;AACL,SAAA;QAEDC,KAAAA,EAAO;AACL,YAAA;gBACEZ,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,cAAA;oBAAgBC,cAAAA,EAAgB;AAAQ,iBAAA;gBACzDC,EAAAA,EAAI,iBAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACA,YAAA;gBACED,SAAAA,EAAW;oBAAEC,EAAAA,EAAI,cAAA;oBAAgBC,cAAAA,EAAgB;AAAQ,iBAAA;;gBAEzDC,EAAAA,EAAI,mDAAA;gBACJF,EAAAA,EAAI;AACN,aAAA;AACI,YAAA,GAAA,CAACG,OAAOC,MAAM,CAACC,QAAQ,CAACC,SAAS,CAACH,MAAAA,CAAOC,MAAM,CAACC,QAAQ,CAACO,UAAU,CAAA,IACvET,OAAOC,MAAM,EAAEI,OAAOC,SAAAA,GAClB;AACE,gBAAA;oBACEV,SAAAA,EAAW;wBAAEC,EAAAA,EAAI,kBAAA;wBAAoBC,cAAAA,EAAgB;AAAa,qBAAA;oBAClEC,EAAAA,EAAI,+BAAA;oBACJF,EAAAA,EAAI,yBAAA;oBACJU,WAAAA,EAAa;AACf;AACD,aAAA,GACD;AACL;AACH,KAAA;;;;"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../admin/src/constants.ts"],"sourcesContent":["import { PermissionMap } from './types/permissions';\n\nimport type { StrapiAppSettingLink } from './core/apis/router';\n\nexport const ADMIN_PERMISSIONS_CE = {\n contentManager: {\n main: [],\n collectionTypesConfigurations: [\n {\n action: 'plugin::content-manager.collection-types.configure-view',\n subject: null,\n },\n ],\n componentsConfigurations: [\n {\n action: 'plugin::content-manager.components.configure-layout',\n subject: null,\n },\n ],\n singleTypesConfigurations: [\n {\n action: 'plugin::content-manager.single-types.configure-view',\n subject: null,\n },\n ],\n },\n marketplace: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n settings: {\n roles: {\n main: [\n { action: 'admin::roles.create', subject: null },\n { action: 'admin::roles.update', subject: null },\n { action: 'admin::roles.read', subject: null },\n { action: 'admin::roles.delete', subject: null },\n ],\n create: [{ action: 'admin::roles.create', subject: null }],\n delete: [{ action: 'admin::roles.delete', subject: null }],\n read: [{ action: 'admin::roles.read', subject: null }],\n update: [{ action: 'admin::roles.update', subject: null }],\n },\n users: {\n main: [\n { action: 'admin::users.create', subject: null },\n { action: 'admin::users.read', subject: null },\n { action: 'admin::users.update', subject: null },\n { action: 'admin::users.delete', subject: null },\n ],\n create: [{ action: 'admin::users.create', subject: null }],\n delete: [{ action: 'admin::users.delete', subject: null }],\n read: [{ action: 'admin::users.read', subject: null }],\n update: [{ action: 'admin::users.update', subject: null }],\n },\n webhooks: {\n main: [\n { action: 'admin::webhooks.create', subject: null },\n { action: 'admin::webhooks.read', subject: null },\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n create: [{ action: 'admin::webhooks.create', subject: null }],\n delete: [{ action: 'admin::webhooks.delete', subject: null }],\n read: [\n { action: 'admin::webhooks.read', subject: null },\n // NOTE: We need to check with the API\n { action: 'admin::webhooks.update', subject: null },\n { action: 'admin::webhooks.delete', subject: null },\n ],\n update: [{ action: 'admin::webhooks.update', subject: null }],\n },\n 'admin-tokens': {\n main: [{ action: 'admin::admin-tokens.access', subject: null }],\n create: [{ action: 'admin::admin-tokens.create', subject: null }],\n delete: [{ action: 'admin::admin-tokens.delete', subject: null }],\n read: [{ action: 'admin::admin-tokens.read', subject: null }],\n update: [{ action: 'admin::admin-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::admin-tokens.regenerate', subject: null }],\n },\n 'api-tokens': {\n main: [{ action: 'admin::api-tokens.access', subject: null }],\n create: [{ action: 'admin::api-tokens.create', subject: null }],\n delete: [{ action: 'admin::api-tokens.delete', subject: null }],\n read: [{ action: 'admin::api-tokens.read', subject: null }],\n update: [{ action: 'admin::api-tokens.update', subject: null }],\n regenerate: [{ action: 'admin::api-tokens.regenerate', subject: null }],\n },\n 'transfer-tokens': {\n main: [{ action: 'admin::transfer.tokens.access', subject: null }],\n create: [{ action: 'admin::transfer.tokens.create', subject: null }],\n delete: [{ action: 'admin::transfer.tokens.delete', subject: null }],\n read: [{ action: 'admin::transfer.tokens.read', subject: null }],\n update: [{ action: 'admin::transfer.tokens.update', subject: null }],\n regenerate: [{ action: 'admin::transfer.tokens.regenerate', subject: null }],\n },\n 'project-settings': {\n read: [{ action: 'admin::project-settings.read', subject: null }],\n update: [{ action: 'admin::project-settings.update', subject: null }],\n },\n plugins: {\n main: [{ action: 'admin::marketplace.read', subject: null }],\n read: [{ action: 'admin::marketplace.read', subject: null }],\n },\n },\n} satisfies Partial<PermissionMap>;\n\nexport const HOOKS = {\n /**\n * Hook that allows to mutate the displayed headers of the list view table\n * @constant\n * @type {string}\n */\n INJECT_COLUMN_IN_TABLE: 'Admin/CM/pages/ListView/inject-column-in-table',\n\n /**\n * Hook that allows to mutate the CM's collection types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_COLLECTION_TYPES_LINKS: 'Admin/CM/pages/App/mutate-collection-types-links',\n\n /**\n * Hook that allows to mutate the CM's edit view layout\n * @constant\n * @type {string}\n */\n MUTATE_EDIT_VIEW_LAYOUT: 'Admin/CM/pages/EditView/mutate-edit-view-layout',\n\n /**\n * Hook that allows to mutate the CM's single types links pre-set filters\n * @constant\n * @type {string}\n */\n MUTATE_SINGLE_TYPES_LINKS: 'Admin/CM/pages/App/mutate-single-types-links',\n};\n\nexport interface SettingsMenuLink\n extends Omit<StrapiAppSettingLink, 'Component' | 'permissions' | 'licenseOnly'> {\n licenseOnly?: boolean;\n}\n\nexport type SettingsMenu = {\n admin: SettingsMenuLink[];\n global: SettingsMenuLink[];\n};\n\nconst isAdminTokensFutureEnabled = () => window.strapi.future.isEnabled('adminTokens') === true;\n\nexport const SETTINGS_LINKS_CE = (): SettingsMenu => ({\n global: [\n {\n intlLabel: { id: 'Settings.application.title', defaultMessage: 'Overview' },\n to: '/settings/application-infos',\n id: '000-application-infos',\n },\n {\n intlLabel: { id: 'Settings.webhooks.title', defaultMessage: 'Webhooks' },\n to: '/settings/webhooks',\n id: 'webhooks',\n },\n {\n intlLabel: { id: 'Settings.apiTokens.title', defaultMessage: 'API Tokens' },\n to: '/settings/api-tokens?sort=name:ASC',\n id: 'api-tokens',\n },\n {\n intlLabel: { id: 'Settings.transferTokens.title', defaultMessage: 'Transfer Tokens' },\n to: '/settings/transfer-tokens?sort=name:ASC',\n id: 'transfer-tokens',\n },\n {\n intlLabel: {\n id: 'global.plugins',\n defaultMessage: 'Plugins',\n },\n to: '/settings/list-plugins',\n id: 'plugins',\n },\n // If the Enterprise/Cloud feature is not enabled and if the config doesn't disable it, we promote the Enterprise/Cloud feature by displaying them in the settings menu.\n // Disable this by adding \"promoteEE: false\" to your `./config/admin.js` file\n ...(!window.strapi.features.isEnabled(window.strapi.features.SSO) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/purchase-single-sign-on',\n id: 'sso-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled('cms-content-history') && window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'Settings.content-history.title', defaultMessage: 'Content History' },\n to: '/settings/purchase-content-history',\n id: 'content-history-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n {\n intlLabel: { id: 'global.roles', defaultMessage: 'Roles' },\n to: '/settings/roles',\n id: 'roles',\n },\n {\n intlLabel: { id: 'global.users', defaultMessage: 'Users' },\n // Init the search params directly\n to: '/settings/users?pageSize=10&page=1&sort=firstname',\n id: 'users',\n },\n ...(isAdminTokensFutureEnabled() === true\n ? [\n {\n intlLabel: { id: 'Settings.adminTokens.title', defaultMessage: 'Admin Tokens' },\n to: '/settings/admin-tokens',\n id: 'admin-tokens',\n },\n ]\n : []),\n ...(!window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS) &&\n window.strapi?.flags?.promoteEE\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/purchase-audit-logs',\n id: 'auditLogs-purchase-page',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_CE","contentManager","main","collectionTypesConfigurations","action","subject","componentsConfigurations","singleTypesConfigurations","marketplace","read","settings","roles","create","delete","update","users","webhooks","regenerate","plugins","HOOKS","INJECT_COLUMN_IN_TABLE","MUTATE_COLLECTION_TYPES_LINKS","MUTATE_EDIT_VIEW_LAYOUT","MUTATE_SINGLE_TYPES_LINKS","isAdminTokensFutureEnabled","window","strapi","future","isEnabled","SETTINGS_LINKS_CE","global","intlLabel","id","defaultMessage","to","features","SSO","flags","promoteEE","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}