@strapi/review-workflows 5.12.1 → 5.12.3

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,31 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/content-manager/strapi-admin');
5
+ var designSystem = require('@strapi/design-system');
6
+ var reactRouterDom = require('react-router-dom');
7
+ var AssigneeSelect = require('./AssigneeSelect.js');
8
+ var StageSelect = require('./StageSelect.js');
9
+
10
+ const Header = ()=>{
11
+ const { slug = '', id, collectionType } = reactRouterDom.useParams();
12
+ const { edit: { options } } = strapiAdmin.unstable_useDocumentLayout(slug);
13
+ if (!window.strapi.isEE || !options?.reviewWorkflows || collectionType !== 'single-types' && !id || id === 'create') {
14
+ return null;
15
+ }
16
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
17
+ gap: 2,
18
+ children: [
19
+ /*#__PURE__*/ jsxRuntime.jsx(AssigneeSelect.AssigneeSelect, {
20
+ isCompact: true
21
+ }),
22
+ /*#__PURE__*/ jsxRuntime.jsx(StageSelect.StageSelect, {
23
+ isCompact: true
24
+ })
25
+ ]
26
+ });
27
+ };
28
+ Header.type = 'preview';
29
+
30
+ exports.Header = Header;
31
+ //# sourceMappingURL=Header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.js","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/Header.tsx"],"sourcesContent":["import { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Flex } from '@strapi/design-system';\nimport { useParams } from 'react-router-dom';\n\nimport { AssigneeSelect } from './AssigneeSelect';\nimport { StageSelect } from './StageSelect';\n\nconst Header = () => {\n const {\n slug = '',\n id,\n collectionType,\n } = useParams<{\n collectionType: string;\n slug: string;\n id: string;\n }>();\n\n const {\n edit: { options },\n } = useDocumentLayout(slug);\n\n if (\n !window.strapi.isEE ||\n !options?.reviewWorkflows ||\n (collectionType !== 'single-types' && !id) ||\n id === 'create'\n ) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <AssigneeSelect isCompact />\n <StageSelect isCompact />\n </Flex>\n );\n};\n\nHeader.type = 'preview';\n\nexport { Header };\n"],"names":["Header","slug","id","collectionType","useParams","edit","options","useDocumentLayout","window","strapi","isEE","reviewWorkflows","_jsxs","Flex","gap","_jsx","AssigneeSelect","isCompact","StageSelect","type"],"mappings":";;;;;;;;;AAOA,MAAMA,MAAS,GAAA,IAAA;IACb,MAAM,EACJC,OAAO,EAAE,EACTC,EAAE,EACFC,cAAc,EACf,GAAGC,wBAAAA,EAAAA;AAMJ,IAAA,MAAM,EACJC,IAAM,EAAA,EAAEC,OAAO,EAAE,EAClB,GAAGC,sCAAkBN,CAAAA,IAAAA,CAAAA;AAEtB,IAAA,IACE,CAACO,MAAAA,CAAOC,MAAM,CAACC,IAAI,IACnB,CAACJ,OAASK,EAAAA,eAAAA,IACTR,cAAmB,KAAA,cAAA,IAAkB,CAACD,EAAAA,IACvCA,OAAO,QACP,EAAA;QACA,OAAO,IAAA;AACT;AAEA,IAAA,qBACEU,eAACC,CAAAA,iBAAAA,EAAAA;QAAKC,GAAK,EAAA,CAAA;;0BACTC,cAACC,CAAAA,6BAAAA,EAAAA;gBAAeC,SAAS,EAAA;;0BACzBF,cAACG,CAAAA,uBAAAA,EAAAA;gBAAYD,SAAS,EAAA;;;;AAG5B;AAEAjB,MAAAA,CAAOmB,IAAI,GAAG,SAAA;;;;"}
@@ -0,0 +1,29 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { unstable_useDocumentLayout } from '@strapi/content-manager/strapi-admin';
3
+ import { Flex } from '@strapi/design-system';
4
+ import { useParams } from 'react-router-dom';
5
+ import { AssigneeSelect } from './AssigneeSelect.mjs';
6
+ import { StageSelect } from './StageSelect.mjs';
7
+
8
+ const Header = ()=>{
9
+ const { slug = '', id, collectionType } = useParams();
10
+ const { edit: { options } } = unstable_useDocumentLayout(slug);
11
+ if (!window.strapi.isEE || !options?.reviewWorkflows || collectionType !== 'single-types' && !id || id === 'create') {
12
+ return null;
13
+ }
14
+ return /*#__PURE__*/ jsxs(Flex, {
15
+ gap: 2,
16
+ children: [
17
+ /*#__PURE__*/ jsx(AssigneeSelect, {
18
+ isCompact: true
19
+ }),
20
+ /*#__PURE__*/ jsx(StageSelect, {
21
+ isCompact: true
22
+ })
23
+ ]
24
+ });
25
+ };
26
+ Header.type = 'preview';
27
+
28
+ export { Header };
29
+ //# sourceMappingURL=Header.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.mjs","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/Header.tsx"],"sourcesContent":["import { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Flex } from '@strapi/design-system';\nimport { useParams } from 'react-router-dom';\n\nimport { AssigneeSelect } from './AssigneeSelect';\nimport { StageSelect } from './StageSelect';\n\nconst Header = () => {\n const {\n slug = '',\n id,\n collectionType,\n } = useParams<{\n collectionType: string;\n slug: string;\n id: string;\n }>();\n\n const {\n edit: { options },\n } = useDocumentLayout(slug);\n\n if (\n !window.strapi.isEE ||\n !options?.reviewWorkflows ||\n (collectionType !== 'single-types' && !id) ||\n id === 'create'\n ) {\n return null;\n }\n\n return (\n <Flex gap={2}>\n <AssigneeSelect isCompact />\n <StageSelect isCompact />\n </Flex>\n );\n};\n\nHeader.type = 'preview';\n\nexport { Header };\n"],"names":["Header","slug","id","collectionType","useParams","edit","options","useDocumentLayout","window","strapi","isEE","reviewWorkflows","_jsxs","Flex","gap","_jsx","AssigneeSelect","isCompact","StageSelect","type"],"mappings":";;;;;;;AAOA,MAAMA,MAAS,GAAA,IAAA;IACb,MAAM,EACJC,OAAO,EAAE,EACTC,EAAE,EACFC,cAAc,EACf,GAAGC,SAAAA,EAAAA;AAMJ,IAAA,MAAM,EACJC,IAAM,EAAA,EAAEC,OAAO,EAAE,EAClB,GAAGC,0BAAkBN,CAAAA,IAAAA,CAAAA;AAEtB,IAAA,IACE,CAACO,MAAAA,CAAOC,MAAM,CAACC,IAAI,IACnB,CAACJ,OAASK,EAAAA,eAAAA,IACTR,cAAmB,KAAA,cAAA,IAAkB,CAACD,EAAAA,IACvCA,OAAO,QACP,EAAA;QACA,OAAO,IAAA;AACT;AAEA,IAAA,qBACEU,IAACC,CAAAA,IAAAA,EAAAA;QAAKC,GAAK,EAAA,CAAA;;0BACTC,GAACC,CAAAA,cAAAA,EAAAA;gBAAeC,SAAS,EAAA;;0BACzBF,GAACG,CAAAA,WAAAA,EAAAA;gBAAYD,SAAS,EAAA;;;;AAG5B;AAEAjB,MAAAA,CAAOmB,IAAI,GAAG,SAAA;;;;"}
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/content-manager/strapi-admin');
5
+ var designSystem = require('@strapi/design-system');
6
+ var reactIntl = require('react-intl');
7
+ var reactRouterDom = require('react-router-dom');
8
+ var AssigneeSelect = require('./AssigneeSelect.js');
9
+ var StageSelect = require('./StageSelect.js');
10
+
11
+ const Panel = ()=>{
12
+ const { slug = '', id, collectionType } = reactRouterDom.useParams();
13
+ const { edit: { options } } = strapiAdmin.unstable_useDocumentLayout(slug);
14
+ const { formatMessage } = reactIntl.useIntl();
15
+ if (!window.strapi.isEE || !options?.reviewWorkflows || collectionType !== 'single-types' && !id || id === 'create') {
16
+ return null;
17
+ }
18
+ return {
19
+ title: formatMessage({
20
+ id: 'content-manager.containers.edit.panels.review-workflows.title',
21
+ defaultMessage: 'Review Workflows'
22
+ }),
23
+ content: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
24
+ direction: "column",
25
+ gap: 2,
26
+ alignItems: "stretch",
27
+ width: "100%",
28
+ children: [
29
+ /*#__PURE__*/ jsxRuntime.jsx(AssigneeSelect.AssigneeSelect, {}),
30
+ /*#__PURE__*/ jsxRuntime.jsx(StageSelect.StageSelect, {})
31
+ ]
32
+ })
33
+ };
34
+ };
35
+ // @ts-expect-error – this is fine, we like to label the core panels / actions.
36
+ Panel.type = 'review-workflows';
37
+
38
+ exports.Panel = Panel;
39
+ //# sourceMappingURL=Panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.js","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/Panel.tsx"],"sourcesContent":["import { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { AssigneeSelect } from './AssigneeSelect';\nimport { StageSelect } from './StageSelect';\n\nimport type { PanelComponent } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = () => {\n const {\n slug = '',\n id,\n collectionType,\n } = useParams<{\n collectionType: string;\n slug: string;\n id: string;\n }>();\n\n const {\n edit: { options },\n } = useDocumentLayout(slug);\n const { formatMessage } = useIntl();\n\n if (\n !window.strapi.isEE ||\n !options?.reviewWorkflows ||\n (collectionType !== 'single-types' && !id) ||\n id === 'create'\n ) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.review-workflows.title',\n defaultMessage: 'Review Workflows',\n }),\n content: (\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\" width=\"100%\">\n <AssigneeSelect />\n <StageSelect />\n </Flex>\n ),\n };\n};\n\n// @ts-expect-error – this is fine, we like to label the core panels / actions.\nPanel.type = 'review-workflows';\n\nexport { Panel };\n"],"names":["Panel","slug","id","collectionType","useParams","edit","options","useDocumentLayout","formatMessage","useIntl","window","strapi","isEE","reviewWorkflows","title","defaultMessage","content","_jsxs","Flex","direction","gap","alignItems","width","_jsx","AssigneeSelect","StageSelect","type"],"mappings":";;;;;;;;;;AAUA,MAAMA,KAAwB,GAAA,IAAA;IAC5B,MAAM,EACJC,OAAO,EAAE,EACTC,EAAE,EACFC,cAAc,EACf,GAAGC,wBAAAA,EAAAA;AAMJ,IAAA,MAAM,EACJC,IAAM,EAAA,EAAEC,OAAO,EAAE,EAClB,GAAGC,sCAAkBN,CAAAA,IAAAA,CAAAA;IACtB,MAAM,EAAEO,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IACE,CAACC,MAAAA,CAAOC,MAAM,CAACC,IAAI,IACnB,CAACN,OAASO,EAAAA,eAAAA,IACTV,cAAmB,KAAA,cAAA,IAAkB,CAACD,EAAAA,IACvCA,OAAO,QACP,EAAA;QACA,OAAO,IAAA;AACT;IAEA,OAAO;AACLY,QAAAA,KAAAA,EAAON,aAAc,CAAA;YACnBN,EAAI,EAAA,+DAAA;YACJa,cAAgB,EAAA;AAClB,SAAA,CAAA;AACAC,QAAAA,OAAAA,gBACEC,eAACC,CAAAA,iBAAAA,EAAAA;YAAKC,SAAU,EAAA,QAAA;YAASC,GAAK,EAAA,CAAA;YAAGC,UAAW,EAAA,SAAA;YAAUC,KAAM,EAAA,MAAA;;8BAC1DC,cAACC,CAAAA,6BAAAA,EAAAA,EAAAA,CAAAA;8BACDD,cAACE,CAAAA,uBAAAA,EAAAA,EAAAA;;;AAGP,KAAA;AACF;AAEA;AACAzB,KAAAA,CAAM0B,IAAI,GAAG,kBAAA;;;;"}
@@ -0,0 +1,37 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { unstable_useDocumentLayout } from '@strapi/content-manager/strapi-admin';
3
+ import { Flex } from '@strapi/design-system';
4
+ import { useIntl } from 'react-intl';
5
+ import { useParams } from 'react-router-dom';
6
+ import { AssigneeSelect } from './AssigneeSelect.mjs';
7
+ import { StageSelect } from './StageSelect.mjs';
8
+
9
+ const Panel = ()=>{
10
+ const { slug = '', id, collectionType } = useParams();
11
+ const { edit: { options } } = unstable_useDocumentLayout(slug);
12
+ const { formatMessage } = useIntl();
13
+ if (!window.strapi.isEE || !options?.reviewWorkflows || collectionType !== 'single-types' && !id || id === 'create') {
14
+ return null;
15
+ }
16
+ return {
17
+ title: formatMessage({
18
+ id: 'content-manager.containers.edit.panels.review-workflows.title',
19
+ defaultMessage: 'Review Workflows'
20
+ }),
21
+ content: /*#__PURE__*/ jsxs(Flex, {
22
+ direction: "column",
23
+ gap: 2,
24
+ alignItems: "stretch",
25
+ width: "100%",
26
+ children: [
27
+ /*#__PURE__*/ jsx(AssigneeSelect, {}),
28
+ /*#__PURE__*/ jsx(StageSelect, {})
29
+ ]
30
+ })
31
+ };
32
+ };
33
+ // @ts-expect-error – this is fine, we like to label the core panels / actions.
34
+ Panel.type = 'review-workflows';
35
+
36
+ export { Panel };
37
+ //# sourceMappingURL=Panel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Panel.mjs","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/Panel.tsx"],"sourcesContent":["import { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Flex } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { AssigneeSelect } from './AssigneeSelect';\nimport { StageSelect } from './StageSelect';\n\nimport type { PanelComponent } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = () => {\n const {\n slug = '',\n id,\n collectionType,\n } = useParams<{\n collectionType: string;\n slug: string;\n id: string;\n }>();\n\n const {\n edit: { options },\n } = useDocumentLayout(slug);\n const { formatMessage } = useIntl();\n\n if (\n !window.strapi.isEE ||\n !options?.reviewWorkflows ||\n (collectionType !== 'single-types' && !id) ||\n id === 'create'\n ) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-manager.containers.edit.panels.review-workflows.title',\n defaultMessage: 'Review Workflows',\n }),\n content: (\n <Flex direction=\"column\" gap={2} alignItems=\"stretch\" width=\"100%\">\n <AssigneeSelect />\n <StageSelect />\n </Flex>\n ),\n };\n};\n\n// @ts-expect-error – this is fine, we like to label the core panels / actions.\nPanel.type = 'review-workflows';\n\nexport { Panel };\n"],"names":["Panel","slug","id","collectionType","useParams","edit","options","useDocumentLayout","formatMessage","useIntl","window","strapi","isEE","reviewWorkflows","title","defaultMessage","content","_jsxs","Flex","direction","gap","alignItems","width","_jsx","AssigneeSelect","StageSelect","type"],"mappings":";;;;;;;;AAUA,MAAMA,KAAwB,GAAA,IAAA;IAC5B,MAAM,EACJC,OAAO,EAAE,EACTC,EAAE,EACFC,cAAc,EACf,GAAGC,SAAAA,EAAAA;AAMJ,IAAA,MAAM,EACJC,IAAM,EAAA,EAAEC,OAAO,EAAE,EAClB,GAAGC,0BAAkBN,CAAAA,IAAAA,CAAAA;IACtB,MAAM,EAAEO,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,IACE,CAACC,MAAAA,CAAOC,MAAM,CAACC,IAAI,IACnB,CAACN,OAASO,EAAAA,eAAAA,IACTV,cAAmB,KAAA,cAAA,IAAkB,CAACD,EAAAA,IACvCA,OAAO,QACP,EAAA;QACA,OAAO,IAAA;AACT;IAEA,OAAO;AACLY,QAAAA,KAAAA,EAAON,aAAc,CAAA;YACnBN,EAAI,EAAA,+DAAA;YACJa,cAAgB,EAAA;AAClB,SAAA,CAAA;AACAC,QAAAA,OAAAA,gBACEC,IAACC,CAAAA,IAAAA,EAAAA;YAAKC,SAAU,EAAA,QAAA;YAASC,GAAK,EAAA,CAAA;YAAGC,UAAW,EAAA,SAAA;YAAUC,KAAM,EAAA,MAAA;;8BAC1DC,GAACC,CAAAA,cAAAA,EAAAA,EAAAA,CAAAA;8BACDD,GAACE,CAAAA,WAAAA,EAAAA,EAAAA;;;AAGP,KAAA;AACF;AAEA;AACAzB,KAAAA,CAAM0B,IAAI,GAAG,kBAAA;;;;"}
@@ -0,0 +1,329 @@
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 ee = require('@strapi/admin/strapi-admin/ee');
7
+ var strapiAdmin$1 = require('@strapi/content-manager/strapi-admin');
8
+ var designSystem = require('@strapi/design-system');
9
+ var reactIntl = require('react-intl');
10
+ var reactRouterDom = require('react-router-dom');
11
+ var LimitsModal = require('../../../../../components/LimitsModal.js');
12
+ var constants$1 = require('../../../../../constants.js');
13
+ var contentManager = require('../../../../../services/content-manager.js');
14
+ var api = require('../../../../../utils/api.js');
15
+ var colors = require('../../../../../utils/colors.js');
16
+ var constants = require('./constants.js');
17
+
18
+ function _interopNamespaceDefault(e) {
19
+ var n = Object.create(null);
20
+ if (e) {
21
+ Object.keys(e).forEach(function (k) {
22
+ if (k !== 'default') {
23
+ var d = Object.getOwnPropertyDescriptor(e, k);
24
+ Object.defineProperty(n, k, d.get ? d : {
25
+ enumerable: true,
26
+ get: function () { return e[k]; }
27
+ });
28
+ }
29
+ });
30
+ }
31
+ n.default = e;
32
+ return Object.freeze(n);
33
+ }
34
+
35
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
36
+
37
+ /* -------------------------------------------------------------------------------------------------
38
+ * LimitModals
39
+ * -----------------------------------------------------------------------------------------------*/ const WorkflowLimitModal = ({ open, onOpenChange })=>{
40
+ const { formatMessage } = reactIntl.useIntl();
41
+ return /*#__PURE__*/ jsxRuntime.jsxs(LimitsModal.LimitsModal.Root, {
42
+ open: open,
43
+ onOpenChange: onOpenChange,
44
+ children: [
45
+ /*#__PURE__*/ jsxRuntime.jsx(LimitsModal.LimitsModal.Title, {
46
+ children: formatMessage({
47
+ id: 'content-manager.reviewWorkflows.workflows.limit.title',
48
+ defaultMessage: 'You’ve reached the limit of workflows in your plan'
49
+ })
50
+ }),
51
+ /*#__PURE__*/ jsxRuntime.jsx(LimitsModal.LimitsModal.Body, {
52
+ children: formatMessage({
53
+ id: 'content-manager.reviewWorkflows.workflows.limit.body',
54
+ defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.'
55
+ })
56
+ })
57
+ ]
58
+ });
59
+ };
60
+ const StageLimitModal = ({ open, onOpenChange })=>{
61
+ const { formatMessage } = reactIntl.useIntl();
62
+ return /*#__PURE__*/ jsxRuntime.jsxs(LimitsModal.LimitsModal.Root, {
63
+ open: open,
64
+ onOpenChange: onOpenChange,
65
+ children: [
66
+ /*#__PURE__*/ jsxRuntime.jsx(LimitsModal.LimitsModal.Title, {
67
+ children: formatMessage({
68
+ id: 'content-manager.reviewWorkflows.stages.limit.title',
69
+ defaultMessage: 'You have reached the limit of stages for this workflow in your plan'
70
+ })
71
+ }),
72
+ /*#__PURE__*/ jsxRuntime.jsx(LimitsModal.LimitsModal.Body, {
73
+ children: formatMessage({
74
+ id: 'content-manager.reviewWorkflows.stages.limit.body',
75
+ defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.'
76
+ })
77
+ })
78
+ ]
79
+ });
80
+ };
81
+ /* -------------------------------------------------------------------------------------------------
82
+ * StageSelect
83
+ * -----------------------------------------------------------------------------------------------*/ const Select = ({ stages, activeWorkflowStage, isLoading, ...props })=>{
84
+ const { formatMessage } = reactIntl.useIntl();
85
+ const { themeColorName } = colors.getStageColorByHex(activeWorkflowStage?.color) ?? {};
86
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelect, {
87
+ disabled: stages.length === 0,
88
+ placeholder: formatMessage({
89
+ id: 'content-manager.reviewWorkflows.assignee.placeholder',
90
+ defaultMessage: 'Select…'
91
+ }),
92
+ startIcon: activeWorkflowStage && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
93
+ tag: "span",
94
+ height: 2,
95
+ background: activeWorkflowStage?.color,
96
+ borderColor: themeColorName === 'neutral0' ? 'neutral150' : undefined,
97
+ hasRadius: true,
98
+ shrink: 0,
99
+ width: 2,
100
+ marginRight: "-3px"
101
+ }),
102
+ // @ts-expect-error – `customizeContent` is not correctly typed in the DS.
103
+ customizeContent: ()=>{
104
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
105
+ tag: "span",
106
+ justifyContent: "space-between",
107
+ alignItems: "center",
108
+ width: "100%",
109
+ children: [
110
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
111
+ textColor: "neutral800",
112
+ ellipsis: true,
113
+ lineHeight: "inherit",
114
+ children: activeWorkflowStage?.name ?? ''
115
+ }),
116
+ isLoading ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Loader, {
117
+ small: true,
118
+ style: {
119
+ display: 'flex'
120
+ },
121
+ "data-testid": "loader"
122
+ }) : null
123
+ ]
124
+ });
125
+ },
126
+ ...props,
127
+ children: stages.map(({ id, color, name })=>{
128
+ const { themeColorName } = colors.getStageColorByHex(color) ?? {};
129
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.SingleSelectOption, {
130
+ startIcon: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
131
+ height: 2,
132
+ background: color,
133
+ borderColor: themeColorName === 'neutral0' ? 'neutral150' : undefined,
134
+ hasRadius: true,
135
+ shrink: 0,
136
+ width: 2
137
+ }),
138
+ value: id,
139
+ textValue: name,
140
+ children: name
141
+ }, id);
142
+ })
143
+ });
144
+ };
145
+ const StageSelect = ({ isCompact })=>{
146
+ const { collectionType = '', slug: model = '', id = '' } = reactRouterDom.useParams();
147
+ const { formatMessage } = reactIntl.useIntl();
148
+ const { _unstableFormatAPIError: formatAPIError } = strapiAdmin.useAPIErrorHandler();
149
+ const { toggleNotification } = strapiAdmin.useNotification();
150
+ const [{ query }] = strapiAdmin.useQueryParams();
151
+ const params = React__namespace.useMemo(()=>api.buildValidParams(query), [
152
+ query
153
+ ]);
154
+ const { document, isLoading: isLoadingDocument } = strapiAdmin$1.unstable_useDocument({
155
+ collectionType,
156
+ model,
157
+ documentId: id
158
+ }, {
159
+ skip: !id && collectionType !== 'single-types'
160
+ });
161
+ const { data, isLoading: isLoadingStages } = contentManager.useGetStagesQuery({
162
+ slug: collectionType,
163
+ model: model,
164
+ // @ts-expect-error – `id` is not correctly typed in the DS.
165
+ id: document?.documentId,
166
+ params
167
+ }, {
168
+ skip: !document?.documentId
169
+ });
170
+ const { meta, stages = [] } = data ?? {};
171
+ const { getFeature } = ee.useLicenseLimits();
172
+ const [showLimitModal, setShowLimitModal] = React__namespace.useState(null);
173
+ const limits = getFeature('review-workflows') ?? {};
174
+ const activeWorkflowStage = document ? document[constants.STAGE_ATTRIBUTE_NAME] : null;
175
+ const [updateStage, { error }] = contentManager.useUpdateStageMutation();
176
+ const handleChange = async (stageId)=>{
177
+ try {
178
+ /**
179
+ * If the current license has a limit:
180
+ * check if the total count of workflows exceeds that limit and display
181
+ * the limits modal.
182
+ *
183
+ * If the current license does not have a limit (e.g. offline license):
184
+ * do nothing (for now).
185
+ *
186
+ */ if (limits?.[constants$1.CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] && parseInt(limits[constants$1.CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < (meta?.workflowCount ?? 0)) {
187
+ setShowLimitModal('workflow');
188
+ /**
189
+ * If the current license has a limit:
190
+ * check if the total count of stages exceeds that limit and display
191
+ * the limits modal.
192
+ *
193
+ * If the current license does not have a limit (e.g. offline license):
194
+ * do nothing (for now).
195
+ *
196
+ */ } else if (limits?.[constants$1.CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] && parseInt(limits[constants$1.CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length) {
197
+ setShowLimitModal('stage');
198
+ } else {
199
+ if (document?.documentId) {
200
+ const res = await updateStage({
201
+ model,
202
+ id: document.documentId,
203
+ slug: collectionType,
204
+ params,
205
+ data: {
206
+ id: stageId
207
+ }
208
+ });
209
+ if ('data' in res) {
210
+ toggleNotification({
211
+ type: 'success',
212
+ message: formatMessage({
213
+ id: 'content-manager.reviewWorkflows.stage.notification.saved',
214
+ defaultMessage: 'Review stage updated'
215
+ })
216
+ });
217
+ }
218
+ if (isCompact && 'error' in res) {
219
+ toggleNotification({
220
+ type: 'danger',
221
+ message: formatAPIError(res.error)
222
+ });
223
+ }
224
+ }
225
+ }
226
+ } catch (error) {
227
+ toggleNotification({
228
+ type: 'danger',
229
+ message: formatMessage({
230
+ id: 'content-manager.reviewWorkflows.stage.notification.error',
231
+ defaultMessage: 'An error occurred while updating the review stage'
232
+ })
233
+ });
234
+ }
235
+ };
236
+ const isLoading = isLoadingStages || isLoadingDocument;
237
+ const reviewStageLabel = formatMessage({
238
+ id: 'content-manager.reviewWorkflows.stage.label',
239
+ defaultMessage: 'Review stage'
240
+ });
241
+ const reviewStageHint = !isLoading && stages.length === 0 && // TODO: Handle errors and hints
242
+ formatMessage({
243
+ id: 'content-manager.reviewWorkflows.stages.no-transition',
244
+ defaultMessage: 'You don’t have the permission to update this stage.'
245
+ });
246
+ if (isCompact) {
247
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
248
+ children: [
249
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tooltip, {
250
+ label: reviewStageHint,
251
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Root, {
252
+ name: constants.STAGE_ATTRIBUTE_NAME,
253
+ id: constants.STAGE_ATTRIBUTE_NAME,
254
+ children: /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
255
+ children: [
256
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.VisuallyHidden, {
257
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
258
+ children: reviewStageLabel
259
+ })
260
+ }),
261
+ /*#__PURE__*/ jsxRuntime.jsx(Select, {
262
+ stages: stages,
263
+ activeWorkflowStage: activeWorkflowStage,
264
+ isLoading: isLoading,
265
+ size: "S",
266
+ disabled: stages.length === 0,
267
+ value: activeWorkflowStage?.id,
268
+ onChange: handleChange,
269
+ placeholder: formatMessage({
270
+ id: 'content-manager.reviewWorkflows.assignee.placeholder',
271
+ defaultMessage: 'Select…'
272
+ })
273
+ })
274
+ ]
275
+ })
276
+ })
277
+ }),
278
+ /*#__PURE__*/ jsxRuntime.jsx(WorkflowLimitModal, {
279
+ open: showLimitModal === 'workflow',
280
+ onOpenChange: ()=>setShowLimitModal(null)
281
+ }),
282
+ /*#__PURE__*/ jsxRuntime.jsx(StageLimitModal, {
283
+ open: showLimitModal === 'stage',
284
+ onOpenChange: ()=>setShowLimitModal(null)
285
+ })
286
+ ]
287
+ });
288
+ }
289
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
290
+ children: [
291
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Field.Root, {
292
+ hint: reviewStageHint,
293
+ error: error && formatAPIError(error) || undefined,
294
+ name: constants.STAGE_ATTRIBUTE_NAME,
295
+ id: constants.STAGE_ATTRIBUTE_NAME,
296
+ children: [
297
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Label, {
298
+ children: reviewStageLabel
299
+ }),
300
+ /*#__PURE__*/ jsxRuntime.jsx(Select, {
301
+ stages: stages,
302
+ activeWorkflowStage: activeWorkflowStage,
303
+ isLoading: isLoading,
304
+ disabled: stages.length === 0,
305
+ value: activeWorkflowStage?.id,
306
+ onChange: handleChange,
307
+ placeholder: formatMessage({
308
+ id: 'content-manager.reviewWorkflows.assignee.placeholder',
309
+ defaultMessage: 'Select…'
310
+ })
311
+ }),
312
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Hint, {}),
313
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Field.Error, {})
314
+ ]
315
+ }),
316
+ /*#__PURE__*/ jsxRuntime.jsx(WorkflowLimitModal, {
317
+ open: showLimitModal === 'workflow',
318
+ onOpenChange: ()=>setShowLimitModal(null)
319
+ }),
320
+ /*#__PURE__*/ jsxRuntime.jsx(StageLimitModal, {
321
+ open: showLimitModal === 'stage',
322
+ onOpenChange: ()=>setShowLimitModal(null)
323
+ })
324
+ ]
325
+ });
326
+ };
327
+
328
+ exports.StageSelect = StageSelect;
329
+ //# sourceMappingURL=StageSelect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StageSelect.js","sources":["../../../../../../../admin/src/routes/content-manager/model/id/components/StageSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { useNotification, useAPIErrorHandler, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { useLicenseLimits } from '@strapi/admin/strapi-admin/ee';\nimport { unstable_useDocument } from '@strapi/content-manager/strapi-admin';\nimport {\n SingleSelect,\n type SingleSelectProps,\n SingleSelectOption,\n Field,\n Flex,\n Loader,\n Typography,\n VisuallyHidden,\n Tooltip,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useParams } from 'react-router-dom';\n\nimport { Stage } from '../../../../../../../shared/contracts/review-workflows';\nimport { LimitsModal, LimitsModalProps } from '../../../../../components/LimitsModal';\nimport {\n CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME,\n CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME,\n} from '../../../../../constants';\nimport { useGetStagesQuery, useUpdateStageMutation } from '../../../../../services/content-manager';\nimport { buildValidParams } from '../../../../../utils/api';\nimport { getStageColorByHex } from '../../../../../utils/colors';\n\nimport { STAGE_ATTRIBUTE_NAME } from './constants';\n\nimport type { Data } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * LimitModals\n * -----------------------------------------------------------------------------------------------*/\n\nconst WorkflowLimitModal = ({ open, onOpenChange }: LimitsModalProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LimitsModal.Root open={open} onOpenChange={onOpenChange}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.title',\n defaultMessage: 'You’ve reached the limit of workflows in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.workflows.limit.body',\n defaultMessage: 'Delete a workflow or contact Sales to enable more workflows.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n );\n};\n\nconst StageLimitModal = ({ open, onOpenChange }: LimitsModalProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LimitsModal.Root open={open} onOpenChange={onOpenChange}>\n <LimitsModal.Title>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.title',\n defaultMessage: 'You have reached the limit of stages for this workflow in your plan',\n })}\n </LimitsModal.Title>\n\n <LimitsModal.Body>\n {formatMessage({\n id: 'content-manager.reviewWorkflows.stages.limit.body',\n defaultMessage: 'Try deleting some stages or contact Sales to enable more stages.',\n })}\n </LimitsModal.Body>\n </LimitsModal.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * StageSelect\n * -----------------------------------------------------------------------------------------------*/\n\nconst Select = ({\n stages,\n activeWorkflowStage,\n isLoading,\n ...props\n}: SingleSelectProps & { stages: Stage[]; activeWorkflowStage: Stage; isLoading: boolean }) => {\n const { formatMessage } = useIntl();\n const { themeColorName } = getStageColorByHex(activeWorkflowStage?.color) ?? {};\n\n return (\n <SingleSelect\n disabled={stages.length === 0}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select…',\n })}\n startIcon={\n activeWorkflowStage && (\n <Flex\n tag=\"span\"\n height={2}\n background={activeWorkflowStage?.color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n marginRight=\"-3px\"\n />\n )\n }\n // @ts-expect-error – `customizeContent` is not correctly typed in the DS.\n customizeContent={() => {\n return (\n <Flex tag=\"span\" justifyContent=\"space-between\" alignItems=\"center\" width=\"100%\">\n <Typography textColor=\"neutral800\" ellipsis lineHeight=\"inherit\">\n {activeWorkflowStage?.name ?? ''}\n </Typography>\n {isLoading ? <Loader small style={{ display: 'flex' }} data-testid=\"loader\" /> : null}\n </Flex>\n );\n }}\n {...props}\n >\n {stages.map(({ id, color, name }) => {\n const { themeColorName } = getStageColorByHex(color) ?? {};\n\n return (\n <SingleSelectOption\n key={id}\n startIcon={\n <Flex\n height={2}\n background={color}\n borderColor={themeColorName === 'neutral0' ? 'neutral150' : undefined}\n hasRadius\n shrink={0}\n width={2}\n />\n }\n value={id}\n textValue={name}\n >\n {name}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n\nexport const StageSelect = ({ isCompact }: { isCompact?: boolean }) => {\n const {\n collectionType = '',\n slug: model = '',\n id = '',\n } = useParams<{\n collectionType: string;\n slug: string;\n id: string;\n }>();\n const { formatMessage } = useIntl();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n const { toggleNotification } = useNotification();\n const [{ query }] = useQueryParams();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const { document, isLoading: isLoadingDocument } = unstable_useDocument(\n {\n collectionType,\n model,\n documentId: id,\n },\n {\n skip: !id && collectionType !== 'single-types',\n }\n );\n\n const { data, isLoading: isLoadingStages } = useGetStagesQuery(\n {\n slug: collectionType,\n model: model,\n // @ts-expect-error – `id` is not correctly typed in the DS.\n id: document?.documentId,\n params,\n },\n {\n skip: !document?.documentId,\n }\n );\n\n const { meta, stages = [] } = data ?? {};\n\n const { getFeature } = useLicenseLimits();\n const [showLimitModal, setShowLimitModal] = React.useState<'stage' | 'workflow' | null>(null);\n\n const limits = getFeature<string>('review-workflows') ?? {};\n\n const activeWorkflowStage = document ? document[STAGE_ATTRIBUTE_NAME] : null;\n\n const [updateStage, { error }] = useUpdateStageMutation();\n\n const handleChange = async (stageId: Data.ID) => {\n try {\n /**\n * If the current license has a limit:\n * check if the total count of workflows exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n\n if (\n limits?.[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME], 10) < (meta?.workflowCount ?? 0)\n ) {\n setShowLimitModal('workflow');\n\n /**\n * If the current license has a limit:\n * check if the total count of stages exceeds that limit and display\n * the limits modal.\n *\n * If the current license does not have a limit (e.g. offline license):\n * do nothing (for now).\n *\n */\n } else if (\n limits?.[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME] &&\n parseInt(limits[CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME], 10) < stages.length\n ) {\n setShowLimitModal('stage');\n } else {\n if (document?.documentId) {\n const res = await updateStage({\n model,\n id: document.documentId,\n slug: collectionType,\n params,\n data: { id: stageId },\n });\n\n if ('data' in res) {\n toggleNotification({\n type: 'success',\n message: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.notification.saved',\n defaultMessage: 'Review stage 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 } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'content-manager.reviewWorkflows.stage.notification.error',\n defaultMessage: 'An error occurred while updating the review stage',\n }),\n });\n }\n };\n\n const isLoading = isLoadingStages || isLoadingDocument;\n\n const reviewStageLabel = formatMessage({\n id: 'content-manager.reviewWorkflows.stage.label',\n defaultMessage: 'Review stage',\n });\n const reviewStageHint =\n !isLoading &&\n stages.length === 0 &&\n // TODO: Handle errors and hints\n formatMessage({\n id: 'content-manager.reviewWorkflows.stages.no-transition',\n defaultMessage: 'You don’t have the permission to update this stage.',\n });\n\n if (isCompact) {\n return (\n <>\n <Tooltip label={reviewStageHint}>\n <Field.Root name={STAGE_ATTRIBUTE_NAME} id={STAGE_ATTRIBUTE_NAME}>\n <>\n <VisuallyHidden>\n <Field.Label>{reviewStageLabel}</Field.Label>\n </VisuallyHidden>\n <Select\n stages={stages}\n activeWorkflowStage={activeWorkflowStage}\n isLoading={isLoading}\n size=\"S\"\n disabled={stages.length === 0}\n value={activeWorkflowStage?.id}\n onChange={handleChange}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select…',\n })}\n />\n </>\n </Field.Root>\n </Tooltip>\n <WorkflowLimitModal\n open={showLimitModal === 'workflow'}\n onOpenChange={() => setShowLimitModal(null)}\n />\n <StageLimitModal\n open={showLimitModal === 'stage'}\n onOpenChange={() => setShowLimitModal(null)}\n />\n </>\n );\n }\n\n return (\n <>\n <Field.Root\n hint={reviewStageHint}\n error={(error && formatAPIError(error)) || undefined}\n name={STAGE_ATTRIBUTE_NAME}\n id={STAGE_ATTRIBUTE_NAME}\n >\n <Field.Label>{reviewStageLabel}</Field.Label>\n <Select\n stages={stages}\n activeWorkflowStage={activeWorkflowStage}\n isLoading={isLoading}\n disabled={stages.length === 0}\n value={activeWorkflowStage?.id}\n onChange={handleChange}\n placeholder={formatMessage({\n id: 'content-manager.reviewWorkflows.assignee.placeholder',\n defaultMessage: 'Select…',\n })}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n <WorkflowLimitModal\n open={showLimitModal === 'workflow'}\n onOpenChange={() => setShowLimitModal(null)}\n />\n <StageLimitModal\n open={showLimitModal === 'stage'}\n onOpenChange={() => setShowLimitModal(null)}\n />\n </>\n );\n};\n"],"names":["WorkflowLimitModal","open","onOpenChange","formatMessage","useIntl","_jsxs","LimitsModal","Root","_jsx","Title","id","defaultMessage","Body","StageLimitModal","Select","stages","activeWorkflowStage","isLoading","props","themeColorName","getStageColorByHex","color","SingleSelect","disabled","length","placeholder","startIcon","Flex","tag","height","background","borderColor","undefined","hasRadius","shrink","width","marginRight","customizeContent","justifyContent","alignItems","Typography","textColor","ellipsis","lineHeight","name","Loader","small","style","display","data-testid","map","SingleSelectOption","value","textValue","StageSelect","isCompact","collectionType","slug","model","useParams","_unstableFormatAPIError","formatAPIError","useAPIErrorHandler","toggleNotification","useNotification","query","useQueryParams","params","React","useMemo","buildValidParams","document","isLoadingDocument","unstable_useDocument","documentId","skip","data","isLoadingStages","useGetStagesQuery","meta","getFeature","useLicenseLimits","showLimitModal","setShowLimitModal","useState","limits","STAGE_ATTRIBUTE_NAME","updateStage","error","useUpdateStageMutation","handleChange","stageId","CHARGEBEE_WORKFLOW_ENTITLEMENT_NAME","parseInt","workflowCount","CHARGEBEE_STAGES_PER_WORKFLOW_ENTITLEMENT_NAME","res","type","message","reviewStageLabel","reviewStageHint","_Fragment","Tooltip","label","Field","VisuallyHidden","Label","size","onChange","hint","Hint","Error"],"mappings":"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"}