@strapi/review-workflows 5.12.1 → 5.12.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/admin/{chunks/index-DcEF47R4.mjs → assets/balloon.png.js} +3 -1078
  2. package/dist/admin/assets/balloon.png.js.map +1 -0
  3. package/dist/admin/{chunks/index-CzdEqFOm.js → assets/balloon.png.mjs} +2 -1113
  4. package/dist/admin/assets/balloon.png.mjs.map +1 -0
  5. package/dist/admin/assets/purchase-page-illustration-dark.svg.js +6 -0
  6. package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
  7. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
  8. package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
  9. package/dist/admin/{chunks/purchase-review-workflows-4n0KXAeo.mjs → assets/purchase-page-illustration-light.svg.js} +3 -197
  10. package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
  11. package/dist/admin/{chunks/purchase-review-workflows-BDLncDcz.js → assets/purchase-page-illustration-light.svg.mjs} +2 -200
  12. package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
  13. package/dist/admin/components/LimitsModal.js +122 -0
  14. package/dist/admin/components/LimitsModal.js.map +1 -0
  15. package/dist/admin/components/LimitsModal.mjs +120 -0
  16. package/dist/admin/components/LimitsModal.mjs.map +1 -0
  17. package/dist/admin/constants.js +18 -0
  18. package/dist/admin/constants.js.map +1 -0
  19. package/dist/admin/constants.mjs +12 -0
  20. package/dist/admin/constants.mjs.map +1 -0
  21. package/dist/admin/index.js +87 -13
  22. package/dist/admin/index.js.map +1 -1
  23. package/dist/admin/index.mjs +88 -12
  24. package/dist/admin/index.mjs.map +1 -1
  25. package/dist/admin/modules/hooks.js +8 -0
  26. package/dist/admin/modules/hooks.js.map +1 -0
  27. package/dist/admin/modules/hooks.mjs +6 -0
  28. package/dist/admin/modules/hooks.mjs.map +1 -0
  29. package/dist/admin/{chunks/router-ChVwf8TN.js → router.js} +3 -3
  30. package/dist/admin/router.js.map +1 -0
  31. package/dist/admin/{chunks/router-D-YCUzYy.mjs → router.mjs} +3 -3
  32. package/dist/admin/router.mjs.map +1 -0
  33. package/dist/admin/routes/content-manager/model/components/TableColumns.js +44 -0
  34. package/dist/admin/routes/content-manager/model/components/TableColumns.js.map +1 -0
  35. package/dist/admin/routes/content-manager/model/components/TableColumns.mjs +41 -0
  36. package/dist/admin/routes/content-manager/model/components/TableColumns.mjs.map +1 -0
  37. package/dist/admin/routes/content-manager/model/constants.js +60 -0
  38. package/dist/admin/routes/content-manager/model/constants.js.map +1 -0
  39. package/dist/admin/routes/content-manager/model/constants.mjs +58 -0
  40. package/dist/admin/routes/content-manager/model/constants.mjs.map +1 -0
  41. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js +169 -0
  42. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.js.map +1 -0
  43. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.mjs +148 -0
  44. package/dist/admin/routes/content-manager/model/id/components/AssigneeSelect.mjs.map +1 -0
  45. package/dist/admin/routes/content-manager/model/id/components/Header.js +31 -0
  46. package/dist/admin/routes/content-manager/model/id/components/Header.js.map +1 -0
  47. package/dist/admin/routes/content-manager/model/id/components/Header.mjs +29 -0
  48. package/dist/admin/routes/content-manager/model/id/components/Header.mjs.map +1 -0
  49. package/dist/admin/routes/content-manager/model/id/components/Panel.js +39 -0
  50. package/dist/admin/routes/content-manager/model/id/components/Panel.js.map +1 -0
  51. package/dist/admin/routes/content-manager/model/id/components/Panel.mjs +37 -0
  52. package/dist/admin/routes/content-manager/model/id/components/Panel.mjs.map +1 -0
  53. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js +329 -0
  54. package/dist/admin/routes/content-manager/model/id/components/StageSelect.js.map +1 -0
  55. package/dist/admin/routes/content-manager/model/id/components/StageSelect.mjs +308 -0
  56. package/dist/admin/routes/content-manager/model/id/components/StageSelect.mjs.map +1 -0
  57. package/dist/admin/routes/content-manager/model/id/components/constants.js +8 -0
  58. package/dist/admin/routes/content-manager/model/id/components/constants.js.map +1 -0
  59. package/dist/admin/routes/content-manager/model/id/components/constants.mjs +5 -0
  60. package/dist/admin/routes/content-manager/model/id/components/constants.mjs.map +1 -0
  61. package/dist/admin/routes/purchase-review-workflows.js +194 -0
  62. package/dist/admin/routes/purchase-review-workflows.js.map +1 -0
  63. package/dist/admin/routes/purchase-review-workflows.mjs +192 -0
  64. package/dist/admin/routes/purchase-review-workflows.mjs.map +1 -0
  65. package/dist/admin/routes/settings/components/AddStage.js +51 -0
  66. package/dist/admin/routes/settings/components/AddStage.js.map +1 -0
  67. package/dist/admin/routes/settings/components/AddStage.mjs +49 -0
  68. package/dist/admin/routes/settings/components/AddStage.mjs.map +1 -0
  69. package/dist/admin/routes/settings/components/Layout.js +86 -0
  70. package/dist/admin/routes/settings/components/Layout.js.map +1 -0
  71. package/dist/admin/routes/settings/components/Layout.mjs +82 -0
  72. package/dist/admin/routes/settings/components/Layout.mjs.map +1 -0
  73. package/dist/admin/routes/settings/components/StageDragPreview.js +40 -0
  74. package/dist/admin/routes/settings/components/StageDragPreview.js.map +1 -0
  75. package/dist/admin/routes/settings/components/StageDragPreview.mjs +38 -0
  76. package/dist/admin/routes/settings/components/StageDragPreview.mjs.map +1 -0
  77. package/dist/admin/routes/settings/components/Stages.js +593 -0
  78. package/dist/admin/routes/settings/components/Stages.js.map +1 -0
  79. package/dist/admin/routes/settings/components/Stages.mjs +572 -0
  80. package/dist/admin/routes/settings/components/Stages.mjs.map +1 -0
  81. package/dist/admin/routes/settings/components/WorkflowAttributes.js +203 -0
  82. package/dist/admin/routes/settings/components/WorkflowAttributes.js.map +1 -0
  83. package/dist/admin/routes/settings/components/WorkflowAttributes.mjs +201 -0
  84. package/dist/admin/routes/settings/components/WorkflowAttributes.mjs.map +1 -0
  85. package/dist/admin/routes/settings/constants.js +8 -0
  86. package/dist/admin/routes/settings/constants.js.map +1 -0
  87. package/dist/admin/routes/settings/constants.mjs +6 -0
  88. package/dist/admin/routes/settings/constants.mjs.map +1 -0
  89. package/dist/admin/routes/settings/hooks/useDragAndDrop.js +193 -0
  90. package/dist/admin/routes/settings/hooks/useDragAndDrop.js.map +1 -0
  91. package/dist/admin/routes/settings/hooks/useDragAndDrop.mjs +170 -0
  92. package/dist/admin/routes/settings/hooks/useDragAndDrop.mjs.map +1 -0
  93. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js +94 -0
  94. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.js.map +1 -0
  95. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.mjs +73 -0
  96. package/dist/admin/routes/settings/hooks/useKeyboardDragAndDrop.mjs.map +1 -0
  97. package/dist/admin/{chunks/Layout-C4ri_ldC.js → routes/settings/hooks/useReviewWorkflows.js} +6 -121
  98. package/dist/admin/routes/settings/hooks/useReviewWorkflows.js.map +1 -0
  99. package/dist/admin/{chunks/Layout-CF497D6H.mjs → routes/settings/hooks/useReviewWorkflows.mjs} +4 -115
  100. package/dist/admin/routes/settings/hooks/useReviewWorkflows.mjs.map +1 -0
  101. package/dist/admin/routes/settings/id.js +404 -0
  102. package/dist/admin/routes/settings/id.js.map +1 -0
  103. package/dist/admin/routes/settings/id.mjs +382 -0
  104. package/dist/admin/routes/settings/id.mjs.map +1 -0
  105. package/dist/admin/{chunks/index-CCx4kT-t.js → routes/settings/index.js} +15 -15
  106. package/dist/admin/routes/settings/index.js.map +1 -0
  107. package/dist/admin/{chunks/index-iChY7MsG.mjs → routes/settings/index.mjs} +7 -7
  108. package/dist/admin/routes/settings/index.mjs.map +1 -0
  109. package/dist/admin/services/admin.js +23 -0
  110. package/dist/admin/services/admin.js.map +1 -0
  111. package/dist/admin/services/admin.mjs +21 -0
  112. package/dist/admin/services/admin.mjs.map +1 -0
  113. package/dist/admin/services/api.js +15 -0
  114. package/dist/admin/services/api.js.map +1 -0
  115. package/dist/admin/services/api.mjs +13 -0
  116. package/dist/admin/services/api.mjs.map +1 -0
  117. package/dist/admin/services/content-manager.js +101 -0
  118. package/dist/admin/services/content-manager.js.map +1 -0
  119. package/dist/admin/services/content-manager.mjs +96 -0
  120. package/dist/admin/services/content-manager.mjs.map +1 -0
  121. package/dist/admin/services/settings.js +123 -0
  122. package/dist/admin/services/settings.js.map +1 -0
  123. package/dist/admin/services/settings.mjs +118 -0
  124. package/dist/admin/services/settings.mjs.map +1 -0
  125. package/dist/admin/{chunks/en-BNGiWajd.js → translations/en.json.js} +2 -2
  126. package/dist/admin/translations/en.json.js.map +1 -0
  127. package/dist/admin/{chunks/en-BrZXFtVv.mjs → translations/en.json.mjs} +1 -1
  128. package/dist/admin/translations/en.json.mjs.map +1 -0
  129. package/dist/admin/{chunks/uk-CbRUr1I7.js → translations/uk.json.js} +2 -2
  130. package/dist/admin/translations/uk.json.js.map +1 -0
  131. package/dist/admin/{chunks/uk-DLlzEBUF.mjs → translations/uk.json.mjs} +1 -1
  132. package/dist/admin/translations/uk.json.mjs.map +1 -0
  133. package/dist/admin/utils/api.js +22 -0
  134. package/dist/admin/utils/api.js.map +1 -0
  135. package/dist/admin/utils/api.mjs +19 -0
  136. package/dist/admin/utils/api.mjs.map +1 -0
  137. package/dist/admin/utils/cm-hooks.js +23 -0
  138. package/dist/admin/utils/cm-hooks.js.map +1 -0
  139. package/dist/admin/utils/cm-hooks.mjs +21 -0
  140. package/dist/admin/utils/cm-hooks.mjs.map +1 -0
  141. package/dist/admin/utils/colors.js +50 -0
  142. package/dist/admin/utils/colors.js.map +1 -0
  143. package/dist/admin/utils/colors.mjs +47 -0
  144. package/dist/admin/utils/colors.mjs.map +1 -0
  145. package/dist/admin/utils/translations.js +11 -0
  146. package/dist/admin/utils/translations.js.map +1 -0
  147. package/dist/admin/utils/translations.mjs +9 -0
  148. package/dist/admin/utils/translations.mjs.map +1 -0
  149. package/dist/admin/utils/users.js +17 -0
  150. package/dist/admin/utils/users.js.map +1 -0
  151. package/dist/admin/utils/users.mjs +15 -0
  152. package/dist/admin/utils/users.mjs.map +1 -0
  153. package/dist/server/bootstrap.js +54 -0
  154. package/dist/server/bootstrap.js.map +1 -0
  155. package/dist/server/bootstrap.mjs +52 -0
  156. package/dist/server/bootstrap.mjs.map +1 -0
  157. package/dist/server/config/actions.js +47 -0
  158. package/dist/server/config/actions.js.map +1 -0
  159. package/dist/server/config/actions.mjs +45 -0
  160. package/dist/server/config/actions.mjs.map +1 -0
  161. package/dist/server/constants/default-stages.json.js +23 -0
  162. package/dist/server/constants/default-stages.json.js.map +1 -0
  163. package/dist/server/constants/default-stages.json.mjs +21 -0
  164. package/dist/server/constants/default-stages.json.mjs.map +1 -0
  165. package/dist/server/constants/default-workflow.json.js +12 -0
  166. package/dist/server/constants/default-workflow.json.js.map +1 -0
  167. package/dist/server/constants/default-workflow.json.mjs +7 -0
  168. package/dist/server/constants/default-workflow.json.mjs.map +1 -0
  169. package/dist/server/constants/webhook-events.js +12 -0
  170. package/dist/server/constants/webhook-events.js.map +1 -0
  171. package/dist/server/constants/webhook-events.mjs +7 -0
  172. package/dist/server/constants/webhook-events.mjs.map +1 -0
  173. package/dist/server/constants/workflows.js +53 -0
  174. package/dist/server/constants/workflows.js.map +1 -0
  175. package/dist/server/constants/workflows.mjs +42 -0
  176. package/dist/server/constants/workflows.mjs.map +1 -0
  177. package/dist/server/content-types/index.js +12 -0
  178. package/dist/server/content-types/index.js.map +1 -0
  179. package/dist/server/content-types/index.mjs +10 -0
  180. package/dist/server/content-types/index.mjs.map +1 -0
  181. package/dist/server/content-types/workflow/index.js +50 -0
  182. package/dist/server/content-types/workflow/index.js.map +1 -0
  183. package/dist/server/content-types/workflow/index.mjs +48 -0
  184. package/dist/server/content-types/workflow/index.mjs.map +1 -0
  185. package/dist/server/content-types/workflow-stage/index.js +54 -0
  186. package/dist/server/content-types/workflow-stage/index.js.map +1 -0
  187. package/dist/server/content-types/workflow-stage/index.mjs +52 -0
  188. package/dist/server/content-types/workflow-stage/index.mjs.map +1 -0
  189. package/dist/server/controllers/assignees.js +57 -0
  190. package/dist/server/controllers/assignees.js.map +1 -0
  191. package/dist/server/controllers/assignees.mjs +55 -0
  192. package/dist/server/controllers/assignees.mjs.map +1 -0
  193. package/dist/server/controllers/index.js +14 -0
  194. package/dist/server/controllers/index.js.map +1 -0
  195. package/dist/server/controllers/index.mjs +12 -0
  196. package/dist/server/controllers/index.mjs.map +1 -0
  197. package/dist/server/controllers/stages.js +167 -0
  198. package/dist/server/controllers/stages.js.map +1 -0
  199. package/dist/server/controllers/stages.mjs +165 -0
  200. package/dist/server/controllers/stages.mjs.map +1 -0
  201. package/dist/server/controllers/workflows.js +136 -0
  202. package/dist/server/controllers/workflows.js.map +1 -0
  203. package/dist/server/controllers/workflows.mjs +134 -0
  204. package/dist/server/controllers/workflows.mjs.map +1 -0
  205. package/dist/server/destroy.js +6 -0
  206. package/dist/server/destroy.js.map +1 -0
  207. package/dist/server/destroy.mjs +4 -0
  208. package/dist/server/destroy.mjs.map +1 -0
  209. package/dist/server/index.js +12 -2333
  210. package/dist/server/index.js.map +1 -1
  211. package/dist/server/index.mjs +7 -2328
  212. package/dist/server/index.mjs.map +1 -1
  213. package/dist/server/middlewares/review-workflows.js +42 -0
  214. package/dist/server/middlewares/review-workflows.js.map +1 -0
  215. package/dist/server/middlewares/review-workflows.mjs +37 -0
  216. package/dist/server/middlewares/review-workflows.mjs.map +1 -0
  217. package/dist/server/migrations/handle-deleted-ct-in-workflows.js +40 -0
  218. package/dist/server/migrations/handle-deleted-ct-in-workflows.js.map +1 -0
  219. package/dist/server/migrations/handle-deleted-ct-in-workflows.mjs +38 -0
  220. package/dist/server/migrations/handle-deleted-ct-in-workflows.mjs.map +1 -0
  221. package/dist/server/migrations/multiple-workflows.js +41 -0
  222. package/dist/server/migrations/multiple-workflows.js.map +1 -0
  223. package/dist/server/migrations/multiple-workflows.mjs +39 -0
  224. package/dist/server/migrations/multiple-workflows.mjs.map +1 -0
  225. package/dist/server/migrations/set-stages-default-color.js +22 -0
  226. package/dist/server/migrations/set-stages-default-color.js.map +1 -0
  227. package/dist/server/migrations/set-stages-default-color.mjs +20 -0
  228. package/dist/server/migrations/set-stages-default-color.mjs.map +1 -0
  229. package/dist/server/migrations/set-stages-roles.js +56 -0
  230. package/dist/server/migrations/set-stages-roles.js.map +1 -0
  231. package/dist/server/migrations/set-stages-roles.mjs +54 -0
  232. package/dist/server/migrations/set-stages-roles.mjs.map +1 -0
  233. package/dist/server/migrations/set-workflow-default-name.js +29 -0
  234. package/dist/server/migrations/set-workflow-default-name.js.map +1 -0
  235. package/dist/server/migrations/set-workflow-default-name.mjs +27 -0
  236. package/dist/server/migrations/set-workflow-default-name.mjs.map +1 -0
  237. package/dist/server/migrations/shorten-stage-attribute.js +45 -0
  238. package/dist/server/migrations/shorten-stage-attribute.js.map +1 -0
  239. package/dist/server/migrations/shorten-stage-attribute.mjs +43 -0
  240. package/dist/server/migrations/shorten-stage-attribute.mjs.map +1 -0
  241. package/dist/server/register.js +116 -0
  242. package/dist/server/register.js.map +1 -0
  243. package/dist/server/register.mjs +114 -0
  244. package/dist/server/register.mjs.map +1 -0
  245. package/dist/server/routes/index.js +10 -0
  246. package/dist/server/routes/index.js.map +1 -0
  247. package/dist/server/routes/index.mjs +8 -0
  248. package/dist/server/routes/index.mjs.map +1 -0
  249. package/dist/server/routes/review-workflows.js +186 -0
  250. package/dist/server/routes/review-workflows.js.map +1 -0
  251. package/dist/server/routes/review-workflows.mjs +184 -0
  252. package/dist/server/routes/review-workflows.mjs.map +1 -0
  253. package/dist/server/routes/utils.js +11 -0
  254. package/dist/server/routes/utils.js.map +1 -0
  255. package/dist/server/routes/utils.mjs +9 -0
  256. package/dist/server/routes/utils.mjs.map +1 -0
  257. package/dist/server/services/assignees.js +68 -0
  258. package/dist/server/services/assignees.js.map +1 -0
  259. package/dist/server/services/assignees.mjs +66 -0
  260. package/dist/server/services/assignees.mjs.map +1 -0
  261. package/dist/server/services/document-service-middleware.js +130 -0
  262. package/dist/server/services/document-service-middleware.js.map +1 -0
  263. package/dist/server/services/document-service-middleware.mjs +128 -0
  264. package/dist/server/services/document-service-middleware.mjs.map +1 -0
  265. package/dist/server/services/index.js +24 -0
  266. package/dist/server/services/index.js.map +1 -0
  267. package/dist/server/services/index.mjs +22 -0
  268. package/dist/server/services/index.mjs.map +1 -0
  269. package/dist/server/services/metrics/index.js +67 -0
  270. package/dist/server/services/metrics/index.js.map +1 -0
  271. package/dist/server/services/metrics/index.mjs +55 -0
  272. package/dist/server/services/metrics/index.mjs.map +1 -0
  273. package/dist/server/services/metrics/weekly-metrics.js +84 -0
  274. package/dist/server/services/metrics/weekly-metrics.js.map +1 -0
  275. package/dist/server/services/metrics/weekly-metrics.mjs +82 -0
  276. package/dist/server/services/metrics/weekly-metrics.mjs.map +1 -0
  277. package/dist/server/services/stage-permissions.js +59 -0
  278. package/dist/server/services/stage-permissions.js.map +1 -0
  279. package/dist/server/services/stage-permissions.mjs +57 -0
  280. package/dist/server/services/stage-permissions.mjs.map +1 -0
  281. package/dist/server/services/stages.js +353 -0
  282. package/dist/server/services/stages.js.map +1 -0
  283. package/dist/server/services/stages.mjs +351 -0
  284. package/dist/server/services/stages.mjs.map +1 -0
  285. package/dist/server/services/validation.js +69 -0
  286. package/dist/server/services/validation.js.map +1 -0
  287. package/dist/server/services/validation.mjs +67 -0
  288. package/dist/server/services/validation.mjs.map +1 -0
  289. package/dist/server/services/workflow-content-types.js +90 -0
  290. package/dist/server/services/workflow-content-types.js.map +1 -0
  291. package/dist/server/services/workflow-content-types.mjs +88 -0
  292. package/dist/server/services/workflow-content-types.mjs.map +1 -0
  293. package/dist/server/services/workflows.js +279 -0
  294. package/dist/server/services/workflows.js.map +1 -0
  295. package/dist/server/services/workflows.mjs +277 -0
  296. package/dist/server/services/workflows.mjs.map +1 -0
  297. package/dist/server/utils/index.js +16 -0
  298. package/dist/server/utils/index.js.map +1 -0
  299. package/dist/server/utils/index.mjs +13 -0
  300. package/dist/server/utils/index.mjs.map +1 -0
  301. package/dist/server/utils/review-workflows.js +36 -0
  302. package/dist/server/utils/review-workflows.js.map +1 -0
  303. package/dist/server/utils/review-workflows.mjs +30 -0
  304. package/dist/server/utils/review-workflows.mjs.map +1 -0
  305. package/dist/server/validation/review-workflows.js +71 -0
  306. package/dist/server/validation/review-workflows.js.map +1 -0
  307. package/dist/server/validation/review-workflows.mjs +65 -0
  308. package/dist/server/validation/review-workflows.mjs.map +1 -0
  309. package/package.json +5 -5
  310. package/dist/admin/chunks/Layout-C4ri_ldC.js.map +0 -1
  311. package/dist/admin/chunks/Layout-CF497D6H.mjs.map +0 -1
  312. package/dist/admin/chunks/en-BNGiWajd.js.map +0 -1
  313. package/dist/admin/chunks/en-BrZXFtVv.mjs.map +0 -1
  314. package/dist/admin/chunks/id-DVOtqJqn.js +0 -1442
  315. package/dist/admin/chunks/id-DVOtqJqn.js.map +0 -1
  316. package/dist/admin/chunks/id-QD0V9dME.mjs +0 -1420
  317. package/dist/admin/chunks/id-QD0V9dME.mjs.map +0 -1
  318. package/dist/admin/chunks/index-CCx4kT-t.js.map +0 -1
  319. package/dist/admin/chunks/index-CzdEqFOm.js.map +0 -1
  320. package/dist/admin/chunks/index-DcEF47R4.mjs.map +0 -1
  321. package/dist/admin/chunks/index-iChY7MsG.mjs.map +0 -1
  322. package/dist/admin/chunks/purchase-review-workflows-4n0KXAeo.mjs.map +0 -1
  323. package/dist/admin/chunks/purchase-review-workflows-BDLncDcz.js.map +0 -1
  324. package/dist/admin/chunks/router-ChVwf8TN.js.map +0 -1
  325. package/dist/admin/chunks/router-D-YCUzYy.mjs.map +0 -1
  326. package/dist/admin/chunks/uk-CbRUr1I7.js.map +0 -1
  327. package/dist/admin/chunks/uk-DLlzEBUF.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.mjs","sources":["../../admin/src/router.tsx"],"sourcesContent":["/* eslint-disable check-file/filename-naming-convention */\nimport { lazy } from 'react';\n\nimport { Routes, Route, PathRouteProps } from 'react-router-dom';\n\nconst ProtectedListPage = lazy(() =>\n import('./routes/settings').then((mod) => ({ default: mod.ProtectedListPage }))\n);\nconst ProtectedEditPage = lazy(() =>\n import('./routes/settings/id').then((mod) => ({ default: mod.ProtectedEditPage }))\n);\n\nconst routes: PathRouteProps[] = [\n {\n path: '/',\n Component: ProtectedListPage,\n },\n {\n path: ':id',\n Component: ProtectedEditPage,\n },\n];\n\nconst Router = () => (\n <Routes>\n {routes.map((route) => (\n <Route key={route.path} {...route} />\n ))}\n </Routes>\n);\n\nexport { Router };\n"],"names":["ProtectedListPage","lazy","then","mod","default","ProtectedEditPage","routes","path","Component","Router","_jsx","Routes","map","route","Route"],"mappings":";;;;AAKA,MAAMA,iBAAAA,iBAAoBC,IAAK,CAAA,IAC7B,OAAO,+BAAqBC,IAAI,CAAC,CAACC,GAAAA,IAAS;AAAEC,YAAAA,OAAAA,EAASD,IAAIH;SAAkB,CAAA,CAAA,CAAA;AAE9E,MAAMK,iBAAAA,iBAAoBJ,IAAK,CAAA,IAC7B,OAAO,4BAAwBC,IAAI,CAAC,CAACC,GAAAA,IAAS;AAAEC,YAAAA,OAAAA,EAASD,IAAIE;SAAkB,CAAA,CAAA,CAAA;AAGjF,MAAMC,MAA2B,GAAA;AAC/B,IAAA;QACEC,IAAM,EAAA,GAAA;QACNC,SAAWR,EAAAA;AACb,KAAA;AACA,IAAA;QACEO,IAAM,EAAA,KAAA;QACNC,SAAWH,EAAAA;AACb;AACD,CAAA;AAEKI,MAAAA,MAAAA,GAAS,kBACbC,GAACC,CAAAA,MAAAA,EAAAA;AACEL,QAAAA,QAAAA,EAAAA,MAAAA,CAAOM,GAAG,CAAC,CAACC,KAAAA,iBACXH,GAACI,CAAAA,KAAAA,EAAAA;AAAwB,gBAAA,GAAGD;AAAhBA,aAAAA,EAAAA,KAAAA,CAAMN,IAAI,CAAA;;;;;"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var designSystem = require('@strapi/design-system');
5
+ var constants = require('../../../../constants.js');
6
+ var colors = require('../../../../utils/colors.js');
7
+ var users = require('../../../../utils/users.js');
8
+
9
+ const StageColumn = (props)=>{
10
+ const { color = constants.STAGE_COLOR_DEFAULT, name } = props.strapi_stage ?? {};
11
+ const { themeColorName } = colors.getStageColorByHex(color) ?? {};
12
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
13
+ alignItems: "center",
14
+ gap: 2,
15
+ maxWidth: "30rem",
16
+ children: [
17
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
18
+ height: 2,
19
+ background: color,
20
+ borderColor: themeColorName === 'neutral0' ? 'neutral150' : undefined,
21
+ hasRadius: true,
22
+ shrink: 0,
23
+ width: 2
24
+ }),
25
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
26
+ fontWeight: "regular",
27
+ textColor: "neutral700",
28
+ ellipsis: true,
29
+ children: name
30
+ })
31
+ ]
32
+ });
33
+ };
34
+ const AssigneeColumn = (props)=>{
35
+ const { strapi_assignee: user } = props;
36
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
37
+ textColor: "neutral800",
38
+ children: user ? users.getDisplayName(user) : '-'
39
+ });
40
+ };
41
+
42
+ exports.AssigneeColumn = AssigneeColumn;
43
+ exports.StageColumn = StageColumn;
44
+ //# sourceMappingURL=TableColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumns.js","sources":["../../../../../../admin/src/routes/content-manager/model/components/TableColumns.tsx"],"sourcesContent":["import { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\n\nimport { STAGE_COLOR_DEFAULT } from '../../../../constants';\nimport { getStageColorByHex } from '../../../../utils/colors';\nimport { getDisplayName } from '../../../../utils/users';\n\ninterface StageColumnProps {\n documentId?: string;\n id?: number;\n strapi_stage?: {\n color?: string;\n name: string;\n };\n}\n\nconst StageColumn = (props: StageColumnProps) => {\n const { color = STAGE_COLOR_DEFAULT, name } = props.strapi_stage ?? {};\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <Flex alignItems=\"center\" gap={2} maxWidth=\"30rem\">\n <Box\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n\n <Typography fontWeight=\"regular\" textColor=\"neutral700\" ellipsis>\n {name}\n </Typography>\n </Flex>\n );\n};\n\ninterface AssigneeColumnProps {\n documentId?: string;\n id?: number;\n strapi_assignee?: Pick<\n SanitizedAdminUser,\n 'firstname' | 'lastname' | 'username' | 'email'\n > | null;\n}\n\nconst AssigneeColumn = (props: AssigneeColumnProps) => {\n const { strapi_assignee: user } = props;\n return <Typography textColor=\"neutral800\">{user ? getDisplayName(user) : '-'}</Typography>;\n};\n\nexport { StageColumn, AssigneeColumn };\nexport type { StageColumnProps, AssigneeColumnProps };\n"],"names":["StageColumn","props","color","STAGE_COLOR_DEFAULT","name","strapi_stage","themeColorName","getStageColorByHex","_jsxs","Flex","alignItems","gap","maxWidth","_jsx","Box","height","background","borderColor","undefined","hasRadius","shrink","width","Typography","fontWeight","textColor","ellipsis","AssigneeColumn","strapi_assignee","user","getDisplayName"],"mappings":";;;;;;;;AAgBA,MAAMA,cAAc,CAACC,KAAAA,GAAAA;IACnB,MAAM,EAAEC,KAAQC,GAAAA,6BAAmB,EAAEC,IAAI,EAAE,GAAGH,KAAAA,CAAMI,YAAY,IAAI,EAAC;AACrE,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,yBAAAA,CAAmBL,UAAU,EAAC;AAEzD,IAAA,qBACEM,eAACC,CAAAA,iBAAAA,EAAAA;QAAKC,UAAW,EAAA,QAAA;QAASC,GAAK,EAAA,CAAA;QAAGC,QAAS,EAAA,OAAA;;0BACzCC,cAACC,CAAAA,gBAAAA,EAAAA;gBACCC,MAAQ,EAAA,CAAA;gBACRC,UAAYd,EAAAA,KAAAA;gBACZe,WAAaX,EAAAA,cAAAA,KAAmB,aAAa,YAAeY,GAAAA,SAAAA;gBAC5DC,SAAS,EAAA,IAAA;gBACTC,MAAQ,EAAA,CAAA;gBACRC,KAAO,EAAA;;0BAGTR,cAACS,CAAAA,uBAAAA,EAAAA;gBAAWC,UAAW,EAAA,SAAA;gBAAUC,SAAU,EAAA,YAAA;gBAAaC,QAAQ,EAAA,IAAA;AAC7DrB,gBAAAA,QAAAA,EAAAA;;;;AAIT;AAWA,MAAMsB,iBAAiB,CAACzB,KAAAA,GAAAA;AACtB,IAAA,MAAM,EAAE0B,eAAAA,EAAiBC,IAAI,EAAE,GAAG3B,KAAAA;AAClC,IAAA,qBAAOY,cAACS,CAAAA,uBAAAA,EAAAA;QAAWE,SAAU,EAAA,YAAA;AAAcI,QAAAA,QAAAA,EAAAA,IAAAA,GAAOC,qBAAeD,IAAQ,CAAA,GAAA;;AAC3E;;;;;"}
@@ -0,0 +1,41 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { Flex, Box, Typography } from '@strapi/design-system';
3
+ import { STAGE_COLOR_DEFAULT } from '../../../../constants.mjs';
4
+ import { getStageColorByHex } from '../../../../utils/colors.mjs';
5
+ import { getDisplayName } from '../../../../utils/users.mjs';
6
+
7
+ const StageColumn = (props)=>{
8
+ const { color = STAGE_COLOR_DEFAULT, name } = props.strapi_stage ?? {};
9
+ const { themeColorName } = getStageColorByHex(color) ?? {};
10
+ return /*#__PURE__*/ jsxs(Flex, {
11
+ alignItems: "center",
12
+ gap: 2,
13
+ maxWidth: "30rem",
14
+ children: [
15
+ /*#__PURE__*/ jsx(Box, {
16
+ height: 2,
17
+ background: color,
18
+ borderColor: themeColorName === 'neutral0' ? 'neutral150' : undefined,
19
+ hasRadius: true,
20
+ shrink: 0,
21
+ width: 2
22
+ }),
23
+ /*#__PURE__*/ jsx(Typography, {
24
+ fontWeight: "regular",
25
+ textColor: "neutral700",
26
+ ellipsis: true,
27
+ children: name
28
+ })
29
+ ]
30
+ });
31
+ };
32
+ const AssigneeColumn = (props)=>{
33
+ const { strapi_assignee: user } = props;
34
+ return /*#__PURE__*/ jsx(Typography, {
35
+ textColor: "neutral800",
36
+ children: user ? getDisplayName(user) : '-'
37
+ });
38
+ };
39
+
40
+ export { AssigneeColumn, StageColumn };
41
+ //# sourceMappingURL=TableColumns.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableColumns.mjs","sources":["../../../../../../admin/src/routes/content-manager/model/components/TableColumns.tsx"],"sourcesContent":["import { SanitizedAdminUser } from '@strapi/admin/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\n\nimport { STAGE_COLOR_DEFAULT } from '../../../../constants';\nimport { getStageColorByHex } from '../../../../utils/colors';\nimport { getDisplayName } from '../../../../utils/users';\n\ninterface StageColumnProps {\n documentId?: string;\n id?: number;\n strapi_stage?: {\n color?: string;\n name: string;\n };\n}\n\nconst StageColumn = (props: StageColumnProps) => {\n const { color = STAGE_COLOR_DEFAULT, name } = props.strapi_stage ?? {};\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <Flex alignItems=\"center\" gap={2} maxWidth=\"30rem\">\n <Box\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n\n <Typography fontWeight=\"regular\" textColor=\"neutral700\" ellipsis>\n {name}\n </Typography>\n </Flex>\n );\n};\n\ninterface AssigneeColumnProps {\n documentId?: string;\n id?: number;\n strapi_assignee?: Pick<\n SanitizedAdminUser,\n 'firstname' | 'lastname' | 'username' | 'email'\n > | null;\n}\n\nconst AssigneeColumn = (props: AssigneeColumnProps) => {\n const { strapi_assignee: user } = props;\n return <Typography textColor=\"neutral800\">{user ? getDisplayName(user) : '-'}</Typography>;\n};\n\nexport { StageColumn, AssigneeColumn };\nexport type { StageColumnProps, AssigneeColumnProps };\n"],"names":["StageColumn","props","color","STAGE_COLOR_DEFAULT","name","strapi_stage","themeColorName","getStageColorByHex","_jsxs","Flex","alignItems","gap","maxWidth","_jsx","Box","height","background","borderColor","undefined","hasRadius","shrink","width","Typography","fontWeight","textColor","ellipsis","AssigneeColumn","strapi_assignee","user","getDisplayName"],"mappings":";;;;;;AAgBA,MAAMA,cAAc,CAACC,KAAAA,GAAAA;IACnB,MAAM,EAAEC,KAAQC,GAAAA,mBAAmB,EAAEC,IAAI,EAAE,GAAGH,KAAAA,CAAMI,YAAY,IAAI,EAAC;AACrE,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,kBAAAA,CAAmBL,UAAU,EAAC;AAEzD,IAAA,qBACEM,IAACC,CAAAA,IAAAA,EAAAA;QAAKC,UAAW,EAAA,QAAA;QAASC,GAAK,EAAA,CAAA;QAAGC,QAAS,EAAA,OAAA;;0BACzCC,GAACC,CAAAA,GAAAA,EAAAA;gBACCC,MAAQ,EAAA,CAAA;gBACRC,UAAYd,EAAAA,KAAAA;gBACZe,WAAaX,EAAAA,cAAAA,KAAmB,aAAa,YAAeY,GAAAA,SAAAA;gBAC5DC,SAAS,EAAA,IAAA;gBACTC,MAAQ,EAAA,CAAA;gBACRC,KAAO,EAAA;;0BAGTR,GAACS,CAAAA,UAAAA,EAAAA;gBAAWC,UAAW,EAAA,SAAA;gBAAUC,SAAU,EAAA,YAAA;gBAAaC,QAAQ,EAAA,IAAA;AAC7DrB,gBAAAA,QAAAA,EAAAA;;;;AAIT;AAWA,MAAMsB,iBAAiB,CAACzB,KAAAA,GAAAA;AACtB,IAAA,MAAM,EAAE0B,eAAAA,EAAiBC,IAAI,EAAE,GAAG3B,KAAAA;AAClC,IAAA,qBAAOY,GAACS,CAAAA,UAAAA,EAAAA;QAAWE,SAAU,EAAA,YAAA;AAAcI,QAAAA,QAAAA,EAAAA,IAAAA,GAAOC,eAAeD,IAAQ,CAAA,GAAA;;AAC3E;;;;"}
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ require('react');
5
+ require('@strapi/admin/strapi-admin');
6
+ require('@strapi/design-system');
7
+ require('react-intl');
8
+ require('react-router-dom');
9
+ require('../../../utils/colors.js');
10
+ require('../../../services/settings.js');
11
+ var TableColumns = require('./components/TableColumns.js');
12
+ var constants = require('./id/components/constants.js');
13
+
14
+ const REVIEW_WORKFLOW_COLUMNS = [
15
+ {
16
+ name: constants.STAGE_ATTRIBUTE_NAME,
17
+ attribute: {
18
+ type: 'relation',
19
+ relation: 'oneToMany',
20
+ target: 'admin::review-workflow-stage'
21
+ },
22
+ label: {
23
+ id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',
24
+ defaultMessage: 'Review stage'
25
+ },
26
+ searchable: false,
27
+ sortable: true,
28
+ mainField: {
29
+ name: 'name',
30
+ type: 'string'
31
+ },
32
+ cellFormatter: (props)=>/*#__PURE__*/ jsxRuntime.jsx(TableColumns.StageColumn, {
33
+ ...props
34
+ })
35
+ },
36
+ {
37
+ name: constants.ASSIGNEE_ATTRIBUTE_NAME,
38
+ attribute: {
39
+ type: 'relation',
40
+ target: 'admin::user',
41
+ relation: 'oneToMany'
42
+ },
43
+ label: {
44
+ id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee',
45
+ defaultMessage: 'Assignee'
46
+ },
47
+ searchable: false,
48
+ sortable: true,
49
+ mainField: {
50
+ name: 'firstname',
51
+ type: 'string'
52
+ },
53
+ cellFormatter: (props)=>/*#__PURE__*/ jsxRuntime.jsx(TableColumns.AssigneeColumn, {
54
+ ...props
55
+ })
56
+ }
57
+ ];
58
+
59
+ exports.REVIEW_WORKFLOW_COLUMNS = REVIEW_WORKFLOW_COLUMNS;
60
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../../admin/src/routes/content-manager/model/constants.tsx"],"sourcesContent":["import { AssigneeFilter } from './components/AssigneeFilter';\nimport { StageFilter } from './components/StageFilter';\nimport { AssigneeColumn, StageColumn } from './components/TableColumns';\nimport { ASSIGNEE_ATTRIBUTE_NAME, STAGE_ATTRIBUTE_NAME } from './id/components/constants';\n\nimport type { Filters } from '@strapi/admin/strapi-admin';\nimport type { ListFieldLayout } from '@strapi/content-manager/strapi-admin';\nimport type { MessageDescriptor } from 'react-intl';\n\nexport const REVIEW_WORKFLOW_COLUMNS = [\n {\n name: STAGE_ATTRIBUTE_NAME,\n attribute: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'admin::review-workflow-stage',\n },\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n type: 'string',\n },\n cellFormatter: (props) => <StageColumn {...props} />,\n },\n {\n name: ASSIGNEE_ATTRIBUTE_NAME,\n attribute: {\n type: 'relation',\n target: 'admin::user',\n relation: 'oneToMany',\n },\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee',\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n type: 'string',\n },\n cellFormatter: (props) => <AssigneeColumn {...props} />,\n },\n] satisfies Array<Omit<ListFieldLayout, 'label'> & { label: MessageDescriptor }>;\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n mainField: {\n name: 'name',\n type: 'string',\n },\n input: StageFilter,\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',\n defaultMessage: 'Review stage',\n },\n name: 'strapi_stage',\n type: 'relation',\n },\n\n {\n type: 'relation',\n mainField: {\n name: 'id',\n type: 'integer',\n },\n input: AssigneeFilter,\n operators: [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n },\n name: 'strapi_assignee',\n },\n] satisfies Array<\n Omit<Filters.Filter, 'label' | 'operators'> & {\n label: MessageDescriptor;\n operators?: Array<{ value: string; label: MessageDescriptor }>;\n }\n>;\n"],"names":["REVIEW_WORKFLOW_COLUMNS","name","STAGE_ATTRIBUTE_NAME","attribute","type","relation","target","label","id","defaultMessage","searchable","sortable","mainField","cellFormatter","props","_jsx","StageColumn","ASSIGNEE_ATTRIBUTE_NAME","AssigneeColumn"],"mappings":";;;;;;;;;;;;;MASaA,uBAA0B,GAAA;AACrC,IAAA;QACEC,IAAMC,EAAAA,8BAAAA;QACNC,SAAW,EAAA;YACTC,IAAM,EAAA,UAAA;YACNC,QAAU,EAAA,WAAA;YACVC,MAAQ,EAAA;AACV,SAAA;QACAC,KAAO,EAAA;YACLC,EAAI,EAAA,sEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,UAAY,EAAA,KAAA;QACZC,QAAU,EAAA,IAAA;QACVC,SAAW,EAAA;YACTX,IAAM,EAAA,MAAA;YACNG,IAAM,EAAA;AACR,SAAA;QACAS,aAAe,EAAA,CAACC,sBAAUC,cAACC,CAAAA,wBAAAA,EAAAA;AAAa,gBAAA,GAAGF;;AAC7C,KAAA;AACA,IAAA;QACEb,IAAMgB,EAAAA,iCAAAA;QACNd,SAAW,EAAA;YACTC,IAAM,EAAA,UAAA;YACNE,MAAQ,EAAA,aAAA;YACRD,QAAU,EAAA;AACZ,SAAA;QACAE,KAAO,EAAA;YACLC,EAAI,EAAA,yEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,UAAY,EAAA,KAAA;QACZC,QAAU,EAAA,IAAA;QACVC,SAAW,EAAA;YACTX,IAAM,EAAA,WAAA;YACNG,IAAM,EAAA;AACR,SAAA;QACAS,aAAe,EAAA,CAACC,sBAAUC,cAACG,CAAAA,2BAAAA,EAAAA;AAAgB,gBAAA,GAAGJ;;AAChD;;;;;"}
@@ -0,0 +1,58 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import 'react';
3
+ import '@strapi/admin/strapi-admin';
4
+ import '@strapi/design-system';
5
+ import 'react-intl';
6
+ import 'react-router-dom';
7
+ import '../../../utils/colors.mjs';
8
+ import '../../../services/settings.mjs';
9
+ import { StageColumn, AssigneeColumn } from './components/TableColumns.mjs';
10
+ import { STAGE_ATTRIBUTE_NAME, ASSIGNEE_ATTRIBUTE_NAME } from './id/components/constants.mjs';
11
+
12
+ const REVIEW_WORKFLOW_COLUMNS = [
13
+ {
14
+ name: STAGE_ATTRIBUTE_NAME,
15
+ attribute: {
16
+ type: 'relation',
17
+ relation: 'oneToMany',
18
+ target: 'admin::review-workflow-stage'
19
+ },
20
+ label: {
21
+ id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',
22
+ defaultMessage: 'Review stage'
23
+ },
24
+ searchable: false,
25
+ sortable: true,
26
+ mainField: {
27
+ name: 'name',
28
+ type: 'string'
29
+ },
30
+ cellFormatter: (props)=>/*#__PURE__*/ jsx(StageColumn, {
31
+ ...props
32
+ })
33
+ },
34
+ {
35
+ name: ASSIGNEE_ATTRIBUTE_NAME,
36
+ attribute: {
37
+ type: 'relation',
38
+ target: 'admin::user',
39
+ relation: 'oneToMany'
40
+ },
41
+ label: {
42
+ id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee',
43
+ defaultMessage: 'Assignee'
44
+ },
45
+ searchable: false,
46
+ sortable: true,
47
+ mainField: {
48
+ name: 'firstname',
49
+ type: 'string'
50
+ },
51
+ cellFormatter: (props)=>/*#__PURE__*/ jsx(AssigneeColumn, {
52
+ ...props
53
+ })
54
+ }
55
+ ];
56
+
57
+ export { REVIEW_WORKFLOW_COLUMNS };
58
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../../admin/src/routes/content-manager/model/constants.tsx"],"sourcesContent":["import { AssigneeFilter } from './components/AssigneeFilter';\nimport { StageFilter } from './components/StageFilter';\nimport { AssigneeColumn, StageColumn } from './components/TableColumns';\nimport { ASSIGNEE_ATTRIBUTE_NAME, STAGE_ATTRIBUTE_NAME } from './id/components/constants';\n\nimport type { Filters } from '@strapi/admin/strapi-admin';\nimport type { ListFieldLayout } from '@strapi/content-manager/strapi-admin';\nimport type { MessageDescriptor } from 'react-intl';\n\nexport const REVIEW_WORKFLOW_COLUMNS = [\n {\n name: STAGE_ATTRIBUTE_NAME,\n attribute: {\n type: 'relation',\n relation: 'oneToMany',\n target: 'admin::review-workflow-stage',\n },\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',\n defaultMessage: 'Review stage',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'name',\n type: 'string',\n },\n cellFormatter: (props) => <StageColumn {...props} />,\n },\n {\n name: ASSIGNEE_ATTRIBUTE_NAME,\n attribute: {\n type: 'relation',\n target: 'admin::user',\n relation: 'oneToMany',\n },\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee',\n defaultMessage: 'Assignee',\n },\n searchable: false,\n sortable: true,\n mainField: {\n name: 'firstname',\n type: 'string',\n },\n cellFormatter: (props) => <AssigneeColumn {...props} />,\n },\n] satisfies Array<Omit<ListFieldLayout, 'label'> & { label: MessageDescriptor }>;\n\nexport const REVIEW_WORKFLOW_FILTERS = [\n {\n mainField: {\n name: 'name',\n type: 'string',\n },\n input: StageFilter,\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.stage',\n defaultMessage: 'Review stage',\n },\n name: 'strapi_stage',\n type: 'relation',\n },\n\n {\n type: 'relation',\n mainField: {\n name: 'id',\n type: 'integer',\n },\n input: AssigneeFilter,\n operators: [\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n },\n value: '$eq',\n },\n {\n label: {\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n },\n value: '$ne',\n },\n ],\n label: {\n id: 'review-workflows.containers.list.table-headers.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n },\n name: 'strapi_assignee',\n },\n] satisfies Array<\n Omit<Filters.Filter, 'label' | 'operators'> & {\n label: MessageDescriptor;\n operators?: Array<{ value: string; label: MessageDescriptor }>;\n }\n>;\n"],"names":["REVIEW_WORKFLOW_COLUMNS","name","STAGE_ATTRIBUTE_NAME","attribute","type","relation","target","label","id","defaultMessage","searchable","sortable","mainField","cellFormatter","props","_jsx","StageColumn","ASSIGNEE_ATTRIBUTE_NAME","AssigneeColumn"],"mappings":";;;;;;;;;;;MASaA,uBAA0B,GAAA;AACrC,IAAA;QACEC,IAAMC,EAAAA,oBAAAA;QACNC,SAAW,EAAA;YACTC,IAAM,EAAA,UAAA;YACNC,QAAU,EAAA,WAAA;YACVC,MAAQ,EAAA;AACV,SAAA;QACAC,KAAO,EAAA;YACLC,EAAI,EAAA,sEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,UAAY,EAAA,KAAA;QACZC,QAAU,EAAA,IAAA;QACVC,SAAW,EAAA;YACTX,IAAM,EAAA,MAAA;YACNG,IAAM,EAAA;AACR,SAAA;QACAS,aAAe,EAAA,CAACC,sBAAUC,GAACC,CAAAA,WAAAA,EAAAA;AAAa,gBAAA,GAAGF;;AAC7C,KAAA;AACA,IAAA;QACEb,IAAMgB,EAAAA,uBAAAA;QACNd,SAAW,EAAA;YACTC,IAAM,EAAA,UAAA;YACNE,MAAQ,EAAA,aAAA;YACRD,QAAU,EAAA;AACZ,SAAA;QACAE,KAAO,EAAA;YACLC,EAAI,EAAA,yEAAA;YACJC,cAAgB,EAAA;AAClB,SAAA;QACAC,UAAY,EAAA,KAAA;QACZC,QAAU,EAAA,IAAA;QACVC,SAAW,EAAA;YACTX,IAAM,EAAA,WAAA;YACNG,IAAM,EAAA;AACR,SAAA;QACAS,aAAe,EAAA,CAACC,sBAAUC,GAACG,CAAAA,cAAAA,EAAAA;AAAgB,gBAAA,GAAGJ;;AAChD;;;;;"}
@@ -0,0 +1,169 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
6
+ var strapiAdmin$1 = require('@strapi/content-manager/strapi-admin');
7
+ var designSystem = require('@strapi/design-system');
8
+ var reactIntl = require('react-intl');
9
+ var reactRouterDom = require('react-router-dom');
10
+ var hooks = require('../../../../../modules/hooks.js');
11
+ var contentManager = require('../../../../../services/content-manager.js');
12
+ var api = require('../../../../../utils/api.js');
13
+ var users = require('../../../../../utils/users.js');
14
+ var constants = require('./constants.js');
15
+
16
+ function _interopNamespaceDefault(e) {
17
+ var n = Object.create(null);
18
+ if (e) {
19
+ Object.keys(e).forEach(function (k) {
20
+ if (k !== 'default') {
21
+ var d = Object.getOwnPropertyDescriptor(e, k);
22
+ Object.defineProperty(n, k, d.get ? d : {
23
+ enumerable: true,
24
+ get: function () { return e[k]; }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ n.default = e;
30
+ return Object.freeze(n);
31
+ }
32
+
33
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
34
+
35
+ const AssigneeSelect = ({ isCompact })=>{
36
+ const { collectionType = '', id, slug: model = '' } = reactRouterDom.useParams();
37
+ const permissions = hooks.useTypedSelector((state)=>state.admin_app.permissions);
38
+ const { formatMessage } = reactIntl.useIntl();
39
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
40
+ const { toggleNotification } = strapiAdmin.useNotification();
41
+ const { allowedActions: { canRead }, isLoading: isLoadingPermissions } = strapiAdmin.useRBAC(permissions.settings?.users);
42
+ const [{ query }] = strapiAdmin.useQueryParams();
43
+ const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
44
+ query
45
+ ]);
46
+ const { data, isLoading: isLoadingUsers, isError } = strapiAdmin.useAdminUsers(undefined, {
47
+ skip: isLoadingPermissions || !canRead
48
+ });
49
+ const { document } = strapiAdmin$1.unstable_useDocument({
50
+ collectionType,
51
+ model,
52
+ documentId: id
53
+ }, {
54
+ skip: !id && collectionType !== 'single-types'
55
+ });
56
+ const users$1 = data?.users || [];
57
+ const currentAssignee = document ? document[constants.ASSIGNEE_ATTRIBUTE_NAME] : null;
58
+ const [updateAssignee, { error, isLoading: isMutating }] = contentManager.useUpdateAssigneeMutation();
59
+ if (!collectionType || !model || !document?.documentId) {
60
+ return null;
61
+ }
62
+ const handleChange = async (assigneeId)=>{
63
+ // a simple way to avoid erroneous updates
64
+ if (currentAssignee?.id === assigneeId) {
65
+ return;
66
+ }
67
+ const res = await updateAssignee({
68
+ slug: collectionType,
69
+ model,
70
+ id: document.documentId,
71
+ params,
72
+ data: {
73
+ id: assigneeId ? parseInt(assigneeId, 10) : null
74
+ }
75
+ });
76
+ if ('data' in res) {
77
+ toggleNotification({
78
+ type: 'success',
79
+ message: formatMessage({
80
+ id: 'content-manager.reviewWorkflows.assignee.notification.saved',
81
+ defaultMessage: 'Assignee updated'
82
+ })
83
+ });
84
+ }
85
+ if (isCompact && 'error' in res) {
86
+ toggleNotification({
87
+ type: 'danger',
88
+ message: formatAPIError(res.error)
89
+ });
90
+ }
91
+ };
92
+ const isDisabled = !isLoadingPermissions && !isLoadingUsers && users$1.length === 0 || !document.documentId;
93
+ const isLoading = isLoadingUsers || isLoadingPermissions || isMutating;
94
+ const assigneeLabel = formatMessage({
95
+ id: 'content-manager.reviewWorkflows.assignee.label',
96
+ defaultMessage: 'Assignee'
97
+ });
98
+ const assigneeClearLabel = formatMessage({
99
+ id: 'content-manager.reviewWorkflows.assignee.clear',
100
+ defaultMessage: 'Clear assignee'
101
+ });
102
+ const assigneePlaceholder = formatMessage({
103
+ id: 'content-manager.reviewWorkflows.assignee.placeholder',
104
+ defaultMessage: 'Select…'
105
+ });
106
+ if (isCompact) {
107
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
108
+ name: constants.ASSIGNEE_ATTRIBUTE_NAME,
109
+ id: constants.ASSIGNEE_ATTRIBUTE_NAME,
110
+ children: [
111
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
112
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
113
+ children: assigneeLabel
114
+ })
115
+ }),
116
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Combobox, {
117
+ clearLabel: assigneeClearLabel,
118
+ disabled: isDisabled,
119
+ value: currentAssignee ? currentAssignee.id.toString() : null,
120
+ onChange: handleChange,
121
+ onClear: ()=>handleChange(null),
122
+ placeholder: assigneePlaceholder,
123
+ loading: isLoading || isLoadingPermissions || isMutating,
124
+ size: "S",
125
+ children: users$1.map((user)=>{
126
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.ComboboxOption, {
127
+ value: user.id.toString(),
128
+ textValue: users.getDisplayName(user),
129
+ children: users.getDisplayName(user)
130
+ }, user.id);
131
+ })
132
+ })
133
+ ]
134
+ });
135
+ }
136
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
137
+ name: constants.ASSIGNEE_ATTRIBUTE_NAME,
138
+ id: constants.ASSIGNEE_ATTRIBUTE_NAME,
139
+ error: (isError && canRead && formatMessage({
140
+ id: 'content-manager.reviewWorkflows.assignee.error',
141
+ defaultMessage: 'An error occurred while fetching users'
142
+ }) || error && formatAPIError(error)) ?? undefined,
143
+ children: [
144
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
145
+ children: assigneeLabel
146
+ }),
147
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Combobox, {
148
+ clearLabel: assigneeClearLabel,
149
+ disabled: !isLoadingPermissions && !isLoading && users$1.length === 0 || !document.documentId,
150
+ value: currentAssignee ? currentAssignee.id.toString() : null,
151
+ onChange: handleChange,
152
+ onClear: ()=>handleChange(null),
153
+ placeholder: assigneePlaceholder,
154
+ loading: isLoading || isLoadingPermissions || isMutating,
155
+ children: users$1.map((user)=>{
156
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.ComboboxOption, {
157
+ value: user.id.toString(),
158
+ textValue: users.getDisplayName(user),
159
+ children: users.getDisplayName(user)
160
+ }, user.id);
161
+ })
162
+ }),
163
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
164
+ ]
165
+ });
166
+ };
167
+
168
+ exports.AssigneeSelect = AssigneeSelect;
169
+ //# sourceMappingURL=AssigneeSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssigneeSelect.js","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/AssigneeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n useRBAC,\n useAdminUsers,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { unstable_useDocument } from '@strapi/content-manager/strapi-admin';\nimport { Combobox, ComboboxOption, Field, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../../modules/hooks';\nimport { useUpdateAssigneeMutation } from '../../../../../services/content-manager';\nimport { buildValidParams } from '../../../../../utils/api';\nimport { getDisplayName } from '../../../../../utils/users';\n\nimport { ASSIGNEE_ATTRIBUTE_NAME } from './constants';\n\nconst AssigneeSelect = ({ isCompact }: { isCompact?: boolean }) => {\n const {\n collectionType = '',\n id,\n slug: model = '',\n } = useParams<{ collectionType: string; slug: string; id: string }>();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const {\n allowedActions: { canRead },\n isLoading: isLoadingPermissions,\n } = useRBAC(permissions.settings?.users);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const {\n data,\n isLoading: isLoadingUsers,\n isError,\n } = useAdminUsers(undefined, {\n skip: isLoadingPermissions || !canRead,\n });\n const { document } = unstable_useDocument(\n {\n collectionType,\n model,\n documentId: id,\n },\n {\n skip: !id && collectionType !== 'single-types',\n }\n );\n\n const users = data?.users || [];\n\n const currentAssignee = document ? document[ASSIGNEE_ATTRIBUTE_NAME] : null;\n\n const [updateAssignee, { error, isLoading: isMutating }] = useUpdateAssigneeMutation();\n\n if (!collectionType || !model || !document?.documentId) {\n return null;\n }\n\n const handleChange = async (assigneeId: string | null) => {\n // a simple way to avoid erroneous updates\n if (currentAssignee?.id === assigneeId) {\n return;\n }\n\n const res = await updateAssignee({\n slug: collectionType,\n model,\n id: document.documentId,\n params,\n data: {\n id: assigneeId ? parseInt(assigneeId, 10) : null,\n },\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n }),\n });\n }\n\n if (isCompact && 'error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n };\n\n const isDisabled =\n (!isLoadingPermissions && !isLoadingUsers && users.length === 0) || !document.documentId;\n const isLoading = isLoadingUsers || isLoadingPermissions || isMutating;\n\n const assigneeLabel = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n });\n const assigneeClearLabel = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n });\n const assigneePlaceholder = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select…',\n });\n\n if (isCompact) {\n return (\n <Field.Root name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <VisuallyHidden>\n <Field.Label>{assigneeLabel}</Field.Label>\n </VisuallyHidden>\n <Combobox\n clearLabel={assigneeClearLabel}\n disabled={isDisabled}\n value={currentAssignee ? currentAssignee.id.toString() : null}\n onChange={handleChange}\n onClear={() => handleChange(null)}\n placeholder={assigneePlaceholder}\n loading={isLoading || isLoadingPermissions || isMutating}\n size=\"S\"\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id.toString()}\n textValue={getDisplayName(user)}\n >\n {getDisplayName(user)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Field.Root>\n );\n }\n\n return (\n <Field.Root\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n error={\n ((isError &&\n canRead &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (error && formatAPIError(error))) ??\n undefined\n }\n >\n <Field.Label>{assigneeLabel}</Field.Label>\n <Combobox\n clearLabel={assigneeClearLabel}\n disabled={\n (!isLoadingPermissions && !isLoading && users.length === 0) || !document.documentId\n }\n value={currentAssignee ? currentAssignee.id.toString() : null}\n onChange={handleChange}\n onClear={() => handleChange(null)}\n placeholder={assigneePlaceholder}\n loading={isLoading || isLoadingPermissions || isMutating}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id.toString()}\n textValue={getDisplayName(user)}\n >\n {getDisplayName(user)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport { AssigneeSelect };\n"],"names":["AssigneeSelect","isCompact","collectionType","id","slug","model","useParams","permissions","useTypedSelector","state","admin_app","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","allowedActions","canRead","isLoading","isLoadingPermissions","useRBAC","settings","users","query","useQueryParams","params","React","useMemo","buildValidParams","data","isLoadingUsers","isError","useAdminUsers","undefined","skip","document","unstable_useDocument","documentId","currentAssignee","ASSIGNEE_ATTRIBUTE_NAME","updateAssignee","error","isMutating","useUpdateAssigneeMutation","handleChange","assigneeId","res","parseInt","type","message","defaultMessage","isDisabled","length","assigneeLabel","assigneeClearLabel","assigneePlaceholder","_jsxs","Field","Root","name","_jsx","VisuallyHidden","Label","Combobox","clearLabel","disabled","value","toString","onChange","onClear","placeholder","loading","size","map","user","ComboboxOption","textValue","getDisplayName","Error"],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useAPIErrorHandler, useNotification, useRBAC, useQueryParams, useAdminUsers } from '@strapi/admin/strapi-admin';
4
+ import { unstable_useDocument } from '@strapi/content-manager/strapi-admin';
5
+ import { Field, VisuallyHidden, Combobox, ComboboxOption } from '@strapi/design-system';
6
+ import { useIntl } from 'react-intl';
7
+ import { useParams } from 'react-router-dom';
8
+ import { useTypedSelector } from '../../../../../modules/hooks.mjs';
9
+ import { useUpdateAssigneeMutation } from '../../../../../services/content-manager.mjs';
10
+ import { buildValidParams } from '../../../../../utils/api.mjs';
11
+ import { getDisplayName } from '../../../../../utils/users.mjs';
12
+ import { ASSIGNEE_ATTRIBUTE_NAME } from './constants.mjs';
13
+
14
+ const AssigneeSelect = ({ isCompact })=>{
15
+ const { collectionType = '', id, slug: model = '' } = useParams();
16
+ const permissions = useTypedSelector((state)=>state.admin_app.permissions);
17
+ const { formatMessage } = useIntl();
18
+ const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();
19
+ const { toggleNotification } = useNotification();
20
+ const { allowedActions: { canRead }, isLoading: isLoadingPermissions } = useRBAC(permissions.settings?.users);
21
+ const [{ query }] = useQueryParams();
22
+ const params = React.useMemo(()=>buildValidParams(query), [
23
+ query
24
+ ]);
25
+ const { data, isLoading: isLoadingUsers, isError } = useAdminUsers(undefined, {
26
+ skip: isLoadingPermissions || !canRead
27
+ });
28
+ const { document } = unstable_useDocument({
29
+ collectionType,
30
+ model,
31
+ documentId: id
32
+ }, {
33
+ skip: !id && collectionType !== 'single-types'
34
+ });
35
+ const users = data?.users || [];
36
+ const currentAssignee = document ? document[ASSIGNEE_ATTRIBUTE_NAME] : null;
37
+ const [updateAssignee, { error, isLoading: isMutating }] = useUpdateAssigneeMutation();
38
+ if (!collectionType || !model || !document?.documentId) {
39
+ return null;
40
+ }
41
+ const handleChange = async (assigneeId)=>{
42
+ // a simple way to avoid erroneous updates
43
+ if (currentAssignee?.id === assigneeId) {
44
+ return;
45
+ }
46
+ const res = await updateAssignee({
47
+ slug: collectionType,
48
+ model,
49
+ id: document.documentId,
50
+ params,
51
+ data: {
52
+ id: assigneeId ? parseInt(assigneeId, 10) : null
53
+ }
54
+ });
55
+ if ('data' in res) {
56
+ toggleNotification({
57
+ type: 'success',
58
+ message: formatMessage({
59
+ id: 'content-manager.reviewWorkflows.assignee.notification.saved',
60
+ defaultMessage: 'Assignee updated'
61
+ })
62
+ });
63
+ }
64
+ if (isCompact && 'error' in res) {
65
+ toggleNotification({
66
+ type: 'danger',
67
+ message: formatAPIError(res.error)
68
+ });
69
+ }
70
+ };
71
+ const isDisabled = !isLoadingPermissions && !isLoadingUsers && users.length === 0 || !document.documentId;
72
+ const isLoading = isLoadingUsers || isLoadingPermissions || isMutating;
73
+ const assigneeLabel = formatMessage({
74
+ id: 'content-manager.reviewWorkflows.assignee.label',
75
+ defaultMessage: 'Assignee'
76
+ });
77
+ const assigneeClearLabel = formatMessage({
78
+ id: 'content-manager.reviewWorkflows.assignee.clear',
79
+ defaultMessage: 'Clear assignee'
80
+ });
81
+ const assigneePlaceholder = formatMessage({
82
+ id: 'content-manager.reviewWorkflows.assignee.placeholder',
83
+ defaultMessage: 'Select…'
84
+ });
85
+ if (isCompact) {
86
+ return /*#__PURE__*/ jsxs(Field.Root, {
87
+ name: ASSIGNEE_ATTRIBUTE_NAME,
88
+ id: ASSIGNEE_ATTRIBUTE_NAME,
89
+ children: [
90
+ /*#__PURE__*/ jsx(VisuallyHidden, {
91
+ children: /*#__PURE__*/ jsx(Field.Label, {
92
+ children: assigneeLabel
93
+ })
94
+ }),
95
+ /*#__PURE__*/ jsx(Combobox, {
96
+ clearLabel: assigneeClearLabel,
97
+ disabled: isDisabled,
98
+ value: currentAssignee ? currentAssignee.id.toString() : null,
99
+ onChange: handleChange,
100
+ onClear: ()=>handleChange(null),
101
+ placeholder: assigneePlaceholder,
102
+ loading: isLoading || isLoadingPermissions || isMutating,
103
+ size: "S",
104
+ children: users.map((user)=>{
105
+ return /*#__PURE__*/ jsx(ComboboxOption, {
106
+ value: user.id.toString(),
107
+ textValue: getDisplayName(user),
108
+ children: getDisplayName(user)
109
+ }, user.id);
110
+ })
111
+ })
112
+ ]
113
+ });
114
+ }
115
+ return /*#__PURE__*/ jsxs(Field.Root, {
116
+ name: ASSIGNEE_ATTRIBUTE_NAME,
117
+ id: ASSIGNEE_ATTRIBUTE_NAME,
118
+ error: (isError && canRead && formatMessage({
119
+ id: 'content-manager.reviewWorkflows.assignee.error',
120
+ defaultMessage: 'An error occurred while fetching users'
121
+ }) || error && formatAPIError(error)) ?? undefined,
122
+ children: [
123
+ /*#__PURE__*/ jsx(Field.Label, {
124
+ children: assigneeLabel
125
+ }),
126
+ /*#__PURE__*/ jsx(Combobox, {
127
+ clearLabel: assigneeClearLabel,
128
+ disabled: !isLoadingPermissions && !isLoading && users.length === 0 || !document.documentId,
129
+ value: currentAssignee ? currentAssignee.id.toString() : null,
130
+ onChange: handleChange,
131
+ onClear: ()=>handleChange(null),
132
+ placeholder: assigneePlaceholder,
133
+ loading: isLoading || isLoadingPermissions || isMutating,
134
+ children: users.map((user)=>{
135
+ return /*#__PURE__*/ jsx(ComboboxOption, {
136
+ value: user.id.toString(),
137
+ textValue: getDisplayName(user),
138
+ children: getDisplayName(user)
139
+ }, user.id);
140
+ })
141
+ }),
142
+ /*#__PURE__*/ jsx(Field.Error, {})
143
+ ]
144
+ });
145
+ };
146
+
147
+ export { AssigneeSelect };
148
+ //# sourceMappingURL=AssigneeSelect.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssigneeSelect.mjs","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/AssigneeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n useNotification,\n useAPIErrorHandler,\n useRBAC,\n useAdminUsers,\n useQueryParams,\n} from '@strapi/admin/strapi-admin';\nimport { unstable_useDocument } from '@strapi/content-manager/strapi-admin';\nimport { Combobox, ComboboxOption, Field, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { useTypedSelector } from '../../../../../modules/hooks';\nimport { useUpdateAssigneeMutation } from '../../../../../services/content-manager';\nimport { buildValidParams } from '../../../../../utils/api';\nimport { getDisplayName } from '../../../../../utils/users';\n\nimport { ASSIGNEE_ATTRIBUTE_NAME } from './constants';\n\nconst AssigneeSelect = ({ isCompact }: { isCompact?: boolean }) => {\n const {\n collectionType = '',\n id,\n slug: model = '',\n } = useParams<{ collectionType: string; slug: string; id: string }>();\n const permissions = useTypedSelector((state) => state.admin_app.permissions);\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const {\n allowedActions: { canRead },\n isLoading: isLoadingPermissions,\n } = useRBAC(permissions.settings?.users);\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const {\n data,\n isLoading: isLoadingUsers,\n isError,\n } = useAdminUsers(undefined, {\n skip: isLoadingPermissions || !canRead,\n });\n const { document } = unstable_useDocument(\n {\n collectionType,\n model,\n documentId: id,\n },\n {\n skip: !id && collectionType !== 'single-types',\n }\n );\n\n const users = data?.users || [];\n\n const currentAssignee = document ? document[ASSIGNEE_ATTRIBUTE_NAME] : null;\n\n const [updateAssignee, { error, isLoading: isMutating }] = useUpdateAssigneeMutation();\n\n if (!collectionType || !model || !document?.documentId) {\n return null;\n }\n\n const handleChange = async (assigneeId: string | null) => {\n // a simple way to avoid erroneous updates\n if (currentAssignee?.id === assigneeId) {\n return;\n }\n\n const res = await updateAssignee({\n slug: collectionType,\n model,\n id: document.documentId,\n params,\n data: {\n id: assigneeId ? parseInt(assigneeId, 10) : null,\n },\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.notification.saved',\n defaultMessage: 'Assignee updated',\n }),\n });\n }\n\n if (isCompact && 'error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n }\n };\n\n const isDisabled =\n (!isLoadingPermissions && !isLoadingUsers && users.length === 0) || !document.documentId;\n const isLoading = isLoadingUsers || isLoadingPermissions || isMutating;\n\n const assigneeLabel = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.label',\n defaultMessage: 'Assignee',\n });\n const assigneeClearLabel = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.clear',\n defaultMessage: 'Clear assignee',\n });\n const assigneePlaceholder = formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select…',\n });\n\n if (isCompact) {\n return (\n <Field.Root name={ASSIGNEE_ATTRIBUTE_NAME} id={ASSIGNEE_ATTRIBUTE_NAME}>\n <VisuallyHidden>\n <Field.Label>{assigneeLabel}</Field.Label>\n </VisuallyHidden>\n <Combobox\n clearLabel={assigneeClearLabel}\n disabled={isDisabled}\n value={currentAssignee ? currentAssignee.id.toString() : null}\n onChange={handleChange}\n onClear={() => handleChange(null)}\n placeholder={assigneePlaceholder}\n loading={isLoading || isLoadingPermissions || isMutating}\n size=\"S\"\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id.toString()}\n textValue={getDisplayName(user)}\n >\n {getDisplayName(user)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n </Field.Root>\n );\n }\n\n return (\n <Field.Root\n name={ASSIGNEE_ATTRIBUTE_NAME}\n id={ASSIGNEE_ATTRIBUTE_NAME}\n error={\n ((isError &&\n canRead &&\n formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.error',\n defaultMessage: 'An error occurred while fetching users',\n })) ||\n (error && formatAPIError(error))) ??\n undefined\n }\n >\n <Field.Label>{assigneeLabel}</Field.Label>\n <Combobox\n clearLabel={assigneeClearLabel}\n disabled={\n (!isLoadingPermissions && !isLoading && users.length === 0) || !document.documentId\n }\n value={currentAssignee ? currentAssignee.id.toString() : null}\n onChange={handleChange}\n onClear={() => handleChange(null)}\n placeholder={assigneePlaceholder}\n loading={isLoading || isLoadingPermissions || isMutating}\n >\n {users.map((user) => {\n return (\n <ComboboxOption\n key={user.id}\n value={user.id.toString()}\n textValue={getDisplayName(user)}\n >\n {getDisplayName(user)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n <Field.Error />\n </Field.Root>\n );\n};\n\nexport { AssigneeSelect };\n"],"names":["AssigneeSelect","isCompact","collectionType","id","slug","model","useParams","permissions","useTypedSelector","state","admin_app","formatMessage","useIntl","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","allowedActions","canRead","isLoading","isLoadingPermissions","useRBAC","settings","users","query","useQueryParams","params","React","useMemo","buildValidParams","data","isLoadingUsers","isError","useAdminUsers","undefined","skip","document","unstable_useDocument","documentId","currentAssignee","ASSIGNEE_ATTRIBUTE_NAME","updateAssignee","error","isMutating","useUpdateAssigneeMutation","handleChange","assigneeId","res","parseInt","type","message","defaultMessage","isDisabled","length","assigneeLabel","assigneeClearLabel","assigneePlaceholder","_jsxs","Field","Root","name","_jsx","VisuallyHidden","Label","Combobox","clearLabel","disabled","value","toString","onChange","onClear","placeholder","loading","size","map","user","ComboboxOption","textValue","getDisplayName","Error"],"mappings":"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"}