@webiny/app-workflows 6.3.0 → 6.4.0-beta.1

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 (339) hide show
  1. package/Components/AdminConfig/WorkflowsMenu.js +18 -19
  2. package/Components/AdminConfig/WorkflowsMenu.js.map +1 -1
  3. package/Components/App/ContentReviews.js +24 -25
  4. package/Components/App/ContentReviews.js.map +1 -1
  5. package/Components/App/WorkflowsAdminApp.js +5 -10
  6. package/Components/App/WorkflowsAdminApp.js.map +1 -1
  7. package/Components/App/index.js +0 -2
  8. package/Components/Common/Options/OptionItem/Approve.js +16 -20
  9. package/Components/Common/Options/OptionItem/Approve.js.map +1 -1
  10. package/Components/Common/Options/OptionItem/OpenInNewWindow.js +3 -6
  11. package/Components/Common/Options/OptionItem/OpenInNewWindow.js.map +1 -1
  12. package/Components/Common/Options/OptionItem/Reject.js +16 -20
  13. package/Components/Common/Options/OptionItem/Reject.js.map +1 -1
  14. package/Components/Common/Options/OptionItem/Start.js +15 -19
  15. package/Components/Common/Options/OptionItem/Start.js.map +1 -1
  16. package/Components/Common/Options/OptionItem/TakeOver.js +15 -19
  17. package/Components/Common/Options/OptionItem/TakeOver.js.map +1 -1
  18. package/Components/Common/Options/WorkflowStateOptions.js +57 -58
  19. package/Components/Common/Options/WorkflowStateOptions.js.map +1 -1
  20. package/Components/Common/Options/index.js +0 -2
  21. package/Components/Common/TagState.js +9 -10
  22. package/Components/Common/TagState.js.map +1 -1
  23. package/Components/Common/TagStep.js +9 -10
  24. package/Components/Common/TagStep.js.map +1 -1
  25. package/Components/Common/YouCanTrackAllContentReviewsHere.js +8 -9
  26. package/Components/Common/YouCanTrackAllContentReviewsHere.js.map +1 -1
  27. package/Components/Common/index.js +0 -2
  28. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarApproved.js +15 -23
  29. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarApproved.js.map +1 -1
  30. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarCancelReview.js +15 -23
  31. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarCancelReview.js.map +1 -1
  32. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarError.js +14 -23
  33. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarError.js.map +1 -1
  34. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarLoading.js +10 -18
  35. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarLoading.js.map +1 -1
  36. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRejected.js +22 -30
  37. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRejected.js.map +1 -1
  38. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRequestReview.js +13 -21
  39. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRequestReview.js.map +1 -1
  40. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarReview.js +30 -51
  41. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarReview.js.map +1 -1
  42. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarStartReview.js +17 -25
  43. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarStartReview.js.map +1 -1
  44. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarWorkflow.js +7 -15
  45. package/Components/WorkflowState/Bar/Bars/WorkflowStateBarWorkflow.js.map +1 -1
  46. package/Components/WorkflowState/Bar/Dialogs/ApproveDialog.js +13 -16
  47. package/Components/WorkflowState/Bar/Dialogs/ApproveDialog.js.map +1 -1
  48. package/Components/WorkflowState/Bar/Dialogs/ApproveSuccessDialog.js +11 -14
  49. package/Components/WorkflowState/Bar/Dialogs/ApproveSuccessDialog.js.map +1 -1
  50. package/Components/WorkflowState/Bar/Dialogs/CancelReviewDialog.js +10 -11
  51. package/Components/WorkflowState/Bar/Dialogs/CancelReviewDialog.js.map +1 -1
  52. package/Components/WorkflowState/Bar/Dialogs/CommentDialog.js +11 -14
  53. package/Components/WorkflowState/Bar/Dialogs/CommentDialog.js.map +1 -1
  54. package/Components/WorkflowState/Bar/Dialogs/RejectDialog.js +13 -16
  55. package/Components/WorkflowState/Bar/Dialogs/RejectDialog.js.map +1 -1
  56. package/Components/WorkflowState/Bar/Dialogs/RejectSuccessDialog.js +11 -14
  57. package/Components/WorkflowState/Bar/Dialogs/RejectSuccessDialog.js.map +1 -1
  58. package/Components/WorkflowState/Bar/Dialogs/RequestReviewDialog.js +10 -11
  59. package/Components/WorkflowState/Bar/Dialogs/RequestReviewDialog.js.map +1 -1
  60. package/Components/WorkflowState/Bar/Dialogs/StartDialog.js +13 -16
  61. package/Components/WorkflowState/Bar/Dialogs/StartDialog.js.map +1 -1
  62. package/Components/WorkflowState/Bar/Dialogs/StartSuccessDialog.js +11 -14
  63. package/Components/WorkflowState/Bar/Dialogs/StartSuccessDialog.js.map +1 -1
  64. package/Components/WorkflowState/Bar/Dialogs/TakeOverDialog.js +15 -18
  65. package/Components/WorkflowState/Bar/Dialogs/TakeOverDialog.js.map +1 -1
  66. package/Components/WorkflowState/Bar/Dialogs/TakeOverSuccessDialog.js +11 -14
  67. package/Components/WorkflowState/Bar/Dialogs/TakeOverSuccessDialog.js.map +1 -1
  68. package/Components/WorkflowState/Bar/Dialogs/index.js +0 -2
  69. package/Components/WorkflowState/Bar/WorkflowStateBar.js +13 -20
  70. package/Components/WorkflowState/Bar/WorkflowStateBar.js.map +1 -1
  71. package/Components/WorkflowState/Bar/WorkflowStateBarComponent.js +10 -18
  72. package/Components/WorkflowState/Bar/WorkflowStateBarComponent.js.map +1 -1
  73. package/Components/WorkflowState/Bar/WorkflowStateBarDialogs.js +51 -52
  74. package/Components/WorkflowState/Bar/WorkflowStateBarDialogs.js.map +1 -1
  75. package/Components/WorkflowState/Bar/index.js +0 -2
  76. package/Components/WorkflowState/Overlay/WorkflowStateOverlay.js +7 -11
  77. package/Components/WorkflowState/Overlay/WorkflowStateOverlay.js.map +1 -1
  78. package/Components/WorkflowState/Tooltip/WorkflowStateTooltip.js +32 -40
  79. package/Components/WorkflowState/Tooltip/WorkflowStateTooltip.js.map +1 -1
  80. package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContent.js +30 -36
  81. package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContent.js.map +1 -1
  82. package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContentComment.js +17 -21
  83. package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContentComment.js.map +1 -1
  84. package/Components/WorkflowState/WorkflowStateProvider.d.ts +1 -0
  85. package/Components/WorkflowState/WorkflowStateProvider.js +41 -40
  86. package/Components/WorkflowState/WorkflowStateProvider.js.map +1 -1
  87. package/Components/WorkflowState/index.js +0 -2
  88. package/Components/WorkflowState/useWorkflowState.js +5 -6
  89. package/Components/WorkflowState/useWorkflowState.js.map +1 -1
  90. package/Components/WorkflowStateDialogs/ApproveDialog.js +43 -44
  91. package/Components/WorkflowStateDialogs/ApproveDialog.js.map +1 -1
  92. package/Components/WorkflowStateDialogs/ApproveSuccessDialog.js +27 -29
  93. package/Components/WorkflowStateDialogs/ApproveSuccessDialog.js.map +1 -1
  94. package/Components/WorkflowStateDialogs/CancelReviewDialog.js +29 -32
  95. package/Components/WorkflowStateDialogs/CancelReviewDialog.js.map +1 -1
  96. package/Components/WorkflowStateDialogs/CommentDialog.js +34 -40
  97. package/Components/WorkflowStateDialogs/CommentDialog.js.map +1 -1
  98. package/Components/WorkflowStateDialogs/RejectDialog.js +73 -76
  99. package/Components/WorkflowStateDialogs/RejectDialog.js.map +1 -1
  100. package/Components/WorkflowStateDialogs/RejectSuccessDialog.js +25 -27
  101. package/Components/WorkflowStateDialogs/RejectSuccessDialog.js.map +1 -1
  102. package/Components/WorkflowStateDialogs/RequestReviewDialog.js +29 -32
  103. package/Components/WorkflowStateDialogs/RequestReviewDialog.js.map +1 -1
  104. package/Components/WorkflowStateDialogs/StartDialog.js +29 -33
  105. package/Components/WorkflowStateDialogs/StartDialog.js.map +1 -1
  106. package/Components/WorkflowStateDialogs/StartSuccessDialog.js +25 -27
  107. package/Components/WorkflowStateDialogs/StartSuccessDialog.js.map +1 -1
  108. package/Components/WorkflowStateDialogs/TakeOverDialog.js +29 -34
  109. package/Components/WorkflowStateDialogs/TakeOverDialog.js.map +1 -1
  110. package/Components/WorkflowStateDialogs/TakeOverSuccessDialog.js +25 -27
  111. package/Components/WorkflowStateDialogs/TakeOverSuccessDialog.js.map +1 -1
  112. package/Components/WorkflowStateDialogs/index.js +0 -2
  113. package/Components/WorkflowStateList/List/WorkflowStateList.js +80 -87
  114. package/Components/WorkflowStateList/List/WorkflowStateList.js.map +1 -1
  115. package/Components/WorkflowStateList/List/WorkflowStateListFilters.js +67 -61
  116. package/Components/WorkflowStateList/List/WorkflowStateListFilters.js.map +1 -1
  117. package/Components/WorkflowStateList/List/WorkflowStateListOptions.js +7 -8
  118. package/Components/WorkflowStateList/List/WorkflowStateListOptions.js.map +1 -1
  119. package/Components/WorkflowStateList/List/WorkflowStateListView.js +18 -21
  120. package/Components/WorkflowStateList/List/WorkflowStateListView.js.map +1 -1
  121. package/Components/WorkflowStateList/List/index.js +0 -2
  122. package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlay.js +24 -27
  123. package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlay.js.map +1 -1
  124. package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlayView.js +18 -25
  125. package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlayView.js.map +1 -1
  126. package/Components/WorkflowStateList/Overlay/index.js +0 -2
  127. package/Components/WorkflowStateList/Provider/WorkflowStateListProvider.js +30 -31
  128. package/Components/WorkflowStateList/Provider/WorkflowStateListProvider.js.map +1 -1
  129. package/Components/WorkflowStateList/Provider/index.js +0 -2
  130. package/Components/WorkflowStateList/hooks/index.js +0 -2
  131. package/Components/WorkflowStateList/hooks/useWorkflowStateList.js +5 -6
  132. package/Components/WorkflowStateList/hooks/useWorkflowStateList.js.map +1 -1
  133. package/Components/WorkflowStateList/index.js +0 -2
  134. package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCard.js +42 -45
  135. package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCard.js.map +1 -1
  136. package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCardTabs.js +43 -53
  137. package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCardTabs.js.map +1 -1
  138. package/Components/WorkflowStatesWidget/Dialogs/ApproveDialog.js +18 -21
  139. package/Components/WorkflowStatesWidget/Dialogs/ApproveDialog.js.map +1 -1
  140. package/Components/WorkflowStatesWidget/Dialogs/ApproveSuccessDialog.js +10 -13
  141. package/Components/WorkflowStatesWidget/Dialogs/ApproveSuccessDialog.js.map +1 -1
  142. package/Components/WorkflowStatesWidget/Dialogs/RejectDialog.js +18 -21
  143. package/Components/WorkflowStatesWidget/Dialogs/RejectDialog.js.map +1 -1
  144. package/Components/WorkflowStatesWidget/Dialogs/RejectSuccessDialog.js +10 -13
  145. package/Components/WorkflowStatesWidget/Dialogs/RejectSuccessDialog.js.map +1 -1
  146. package/Components/WorkflowStatesWidget/Dialogs/StartDialog.js +18 -21
  147. package/Components/WorkflowStatesWidget/Dialogs/StartDialog.js.map +1 -1
  148. package/Components/WorkflowStatesWidget/Dialogs/StartSuccessDialog.js +10 -13
  149. package/Components/WorkflowStatesWidget/Dialogs/StartSuccessDialog.js.map +1 -1
  150. package/Components/WorkflowStatesWidget/Dialogs/TakeOverDialog.js +21 -24
  151. package/Components/WorkflowStatesWidget/Dialogs/TakeOverDialog.js.map +1 -1
  152. package/Components/WorkflowStatesWidget/Dialogs/TakeOverSuccessDialog.js +10 -13
  153. package/Components/WorkflowStatesWidget/Dialogs/TakeOverSuccessDialog.js.map +1 -1
  154. package/Components/WorkflowStatesWidget/Dialogs/index.js +0 -2
  155. package/Components/WorkflowStatesWidget/List/WorkflowStateList.js +10 -13
  156. package/Components/WorkflowStatesWidget/List/WorkflowStateList.js.map +1 -1
  157. package/Components/WorkflowStatesWidget/List/WorkflowStateRow.js +16 -17
  158. package/Components/WorkflowStatesWidget/List/WorkflowStateRow.js.map +1 -1
  159. package/Components/WorkflowStatesWidget/List/WorkflowStateRowOptions.js +36 -27
  160. package/Components/WorkflowStatesWidget/List/WorkflowStateRowOptions.js.map +1 -1
  161. package/Components/WorkflowStatesWidget/Provider/WorkflowStatesProvider.js +24 -28
  162. package/Components/WorkflowStatesWidget/Provider/WorkflowStatesProvider.js.map +1 -1
  163. package/Components/WorkflowStatesWidget/Row/WorkflowStateRowDescription.js +12 -17
  164. package/Components/WorkflowStatesWidget/Row/WorkflowStateRowDescription.js.map +1 -1
  165. package/Components/WorkflowStatesWidget/WorkflowStatesOwnWidget.js +22 -20
  166. package/Components/WorkflowStatesWidget/WorkflowStatesOwnWidget.js.map +1 -1
  167. package/Components/WorkflowStatesWidget/WorkflowStatesRequestedWidget.js +20 -20
  168. package/Components/WorkflowStatesWidget/WorkflowStatesRequestedWidget.js.map +1 -1
  169. package/Components/WorkflowStatesWidget/hooks/useWorkflowStatesWidget.js +5 -6
  170. package/Components/WorkflowStatesWidget/hooks/useWorkflowStatesWidget.js.map +1 -1
  171. package/Components/WorkflowStatesWidget/index.js +0 -2
  172. package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js +34 -40
  173. package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js.map +1 -1
  174. package/Components/WorkflowsEditor/Editor/Error/FormattedError.js +28 -33
  175. package/Components/WorkflowsEditor/Editor/Error/FormattedError.js.map +1 -1
  176. package/Components/WorkflowsEditor/Editor/Error/WorkflowError.js +28 -35
  177. package/Components/WorkflowsEditor/Editor/Error/WorkflowError.js.map +1 -1
  178. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormColor.js +11 -17
  179. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormColor.js.map +1 -1
  180. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormDescription.js +8 -9
  181. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormDescription.js.map +1 -1
  182. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormNotifications.js +27 -37
  183. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormNotifications.js.map +1 -1
  184. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTeams.js +21 -31
  185. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTeams.js.map +1 -1
  186. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTitle.js +9 -10
  187. package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTitle.js.map +1 -1
  188. package/Components/WorkflowsEditor/Editor/Step/InactiveStep.js +14 -15
  189. package/Components/WorkflowsEditor/Editor/Step/InactiveStep.js.map +1 -1
  190. package/Components/WorkflowsEditor/Editor/Step/NewStep.js +52 -51
  191. package/Components/WorkflowsEditor/Editor/Step/NewStep.js.map +1 -1
  192. package/Components/WorkflowsEditor/Editor/Step/Step/RemoveStep.js +26 -32
  193. package/Components/WorkflowsEditor/Editor/Step/Step/RemoveStep.js.map +1 -1
  194. package/Components/WorkflowsEditor/Editor/Step/Step.js +119 -134
  195. package/Components/WorkflowsEditor/Editor/Step/Step.js.map +1 -1
  196. package/Components/WorkflowsEditor/Editor/WorkflowEditor.js +37 -38
  197. package/Components/WorkflowsEditor/Editor/WorkflowEditor.js.map +1 -1
  198. package/Components/WorkflowsEditor/Editor/WorkflowEditorSteps.js +34 -39
  199. package/Components/WorkflowsEditor/Editor/WorkflowEditorSteps.js.map +1 -1
  200. package/Components/WorkflowsEditor/Editor/WorkflowEditorView.js +17 -23
  201. package/Components/WorkflowsEditor/Editor/WorkflowEditorView.js.map +1 -1
  202. package/Components/WorkflowsEditor/WorkflowsEditor.js +3 -4
  203. package/Components/WorkflowsEditor/WorkflowsEditor.js.map +1 -1
  204. package/Components/WorkflowsEditor/WorkflowsEditorBase.js +26 -33
  205. package/Components/WorkflowsEditor/WorkflowsEditorBase.js.map +1 -1
  206. package/Components/WorkflowsEditor/index.js +0 -2
  207. package/Components/WorkflowsPermissions/HasWorkflowsEditorPermission.js +6 -6
  208. package/Components/WorkflowsPermissions/HasWorkflowsEditorPermission.js.map +1 -1
  209. package/Components/WorkflowsPermissions/SecurityPermissions.js +11 -14
  210. package/Components/WorkflowsPermissions/SecurityPermissions.js.map +1 -1
  211. package/Components/WorkflowsPermissions/constants.js +2 -1
  212. package/Components/WorkflowsPermissions/constants.js.map +1 -1
  213. package/Components/WorkflowsPermissions/index.js +0 -2
  214. package/Components/WorkflowsPermissions/useWorkflowsPermission.js +13 -22
  215. package/Components/WorkflowsPermissions/useWorkflowsPermission.js.map +1 -1
  216. package/Components/helpers/index.js +0 -2
  217. package/Components/helpers/stateName.js +14 -13
  218. package/Components/helpers/stateName.js.map +1 -1
  219. package/Components/helpers/tagStateVariant.js +14 -13
  220. package/Components/helpers/tagStateVariant.js.map +1 -1
  221. package/Gateways/WorkflowNotificationTypesGateway.js +24 -23
  222. package/Gateways/WorkflowNotificationTypesGateway.js.map +1 -1
  223. package/Gateways/WorkflowStateGateway.js +163 -170
  224. package/Gateways/WorkflowStateGateway.js.map +1 -1
  225. package/Gateways/WorkflowStateListGateway.js +87 -80
  226. package/Gateways/WorkflowStateListGateway.js.map +1 -1
  227. package/Gateways/WorkflowStatesWidgetGateway.js +124 -123
  228. package/Gateways/WorkflowStatesWidgetGateway.js.map +1 -1
  229. package/Gateways/WorkflowsGateway.js +70 -67
  230. package/Gateways/WorkflowsGateway.js.map +1 -1
  231. package/Gateways/abstraction/WorkflowNotificationTypesGateway.js +0 -3
  232. package/Gateways/abstraction/WorkflowStateGateway.js +0 -3
  233. package/Gateways/abstraction/WorkflowStateListGateway.js +0 -3
  234. package/Gateways/abstraction/WorkflowStatesWidgetGateway.js +0 -3
  235. package/Gateways/abstraction/WorkflowsGateway.js +0 -3
  236. package/Gateways/graphql/workflowNotifications.js +5 -4
  237. package/Gateways/graphql/workflowNotifications.js.map +1 -1
  238. package/Gateways/graphql/workflowStates.js +15 -14
  239. package/Gateways/graphql/workflowStates.js.map +1 -1
  240. package/Gateways/graphql/workflows.js +8 -7
  241. package/Gateways/graphql/workflows.js.map +1 -1
  242. package/Gateways/index.js +0 -2
  243. package/Models/WorkflowModel.js +61 -70
  244. package/Models/WorkflowModel.js.map +1 -1
  245. package/Models/WorkflowStateModel.js +88 -107
  246. package/Models/WorkflowStateModel.js.map +1 -1
  247. package/Models/WorkflowStateStepModel.js +41 -40
  248. package/Models/WorkflowStateStepModel.js.map +1 -1
  249. package/Models/WorkflowStepModel.js +26 -25
  250. package/Models/WorkflowStepModel.js.map +1 -1
  251. package/Models/abstractions/WorkflowModel.js +0 -3
  252. package/Models/abstractions/WorkflowStateModel.js +0 -3
  253. package/Models/abstractions/WorkflowStateStepModel.js +0 -3
  254. package/Models/abstractions/WorkflowStepModel.js +0 -3
  255. package/Models/index.js +0 -2
  256. package/Presenters/WorkflowStateListPresenter.js +45 -49
  257. package/Presenters/WorkflowStateListPresenter.js.map +1 -1
  258. package/Presenters/WorkflowStatePresenter.d.ts +2 -0
  259. package/Presenters/WorkflowStatePresenter.js +192 -214
  260. package/Presenters/WorkflowStatePresenter.js.map +1 -1
  261. package/Presenters/WorkflowStatesWidgetPresenter.js +214 -259
  262. package/Presenters/WorkflowStatesWidgetPresenter.js.map +1 -1
  263. package/Presenters/WorkflowsPresenter.js +101 -103
  264. package/Presenters/WorkflowsPresenter.js.map +1 -1
  265. package/Presenters/abstractions/WorkflowStateListPresenter.js +0 -3
  266. package/Presenters/abstractions/WorkflowStatePresenter.js +0 -3
  267. package/Presenters/abstractions/WorkflowStatesWidgetPresenter.js +0 -3
  268. package/Presenters/abstractions/WorkflowsPresenter.js +0 -3
  269. package/Presenters/index.js +0 -2
  270. package/Repositories/WorkflowNotificationTypesRepository.js +26 -25
  271. package/Repositories/WorkflowNotificationTypesRepository.js.map +1 -1
  272. package/Repositories/WorkflowStateListRepository.js +65 -69
  273. package/Repositories/WorkflowStateListRepository.js.map +1 -1
  274. package/Repositories/WorkflowStateRepository.js +121 -127
  275. package/Repositories/WorkflowStateRepository.js.map +1 -1
  276. package/Repositories/WorkflowStatesWidgetRepository.js +120 -131
  277. package/Repositories/WorkflowStatesWidgetRepository.js.map +1 -1
  278. package/Repositories/WorkflowsRepository.js +71 -80
  279. package/Repositories/WorkflowsRepository.js.map +1 -1
  280. package/Repositories/abstractions/WorkflowNotificationTypesRepository.js +0 -3
  281. package/Repositories/abstractions/WorkflowStateListRepository.js +0 -3
  282. package/Repositories/abstractions/WorkflowStateRepository.js +0 -3
  283. package/Repositories/abstractions/WorkflowStatesWidgetRepository.js +0 -3
  284. package/Repositories/abstractions/WorkflowsRepository.js +0 -3
  285. package/Repositories/index.js +0 -2
  286. package/domain/permissionsSchema.js +6 -5
  287. package/domain/permissionsSchema.js.map +1 -1
  288. package/features/permissions/abstractions.js +2 -1
  289. package/features/permissions/abstractions.js.map +1 -1
  290. package/features/permissions/feature.js +2 -1
  291. package/features/permissions/feature.js.map +1 -1
  292. package/hooks/canUseWorkflows.js +7 -6
  293. package/hooks/canUseWorkflows.js.map +1 -1
  294. package/index.js +32 -33
  295. package/index.js.map +1 -1
  296. package/package.json +12 -13
  297. package/routes.js +15 -13
  298. package/routes.js.map +1 -1
  299. package/types.js +11 -15
  300. package/types.js.map +1 -1
  301. package/Components/App/index.js.map +0 -1
  302. package/Components/Common/Options/index.js.map +0 -1
  303. package/Components/Common/index.js.map +0 -1
  304. package/Components/WorkflowState/Bar/Dialogs/index.js.map +0 -1
  305. package/Components/WorkflowState/Bar/index.js.map +0 -1
  306. package/Components/WorkflowState/index.js.map +0 -1
  307. package/Components/WorkflowStateDialogs/index.js.map +0 -1
  308. package/Components/WorkflowStateList/List/index.js.map +0 -1
  309. package/Components/WorkflowStateList/Overlay/index.js.map +0 -1
  310. package/Components/WorkflowStateList/Provider/index.js.map +0 -1
  311. package/Components/WorkflowStateList/hooks/index.js.map +0 -1
  312. package/Components/WorkflowStateList/index.js.map +0 -1
  313. package/Components/WorkflowStatesWidget/Dialogs/index.js.map +0 -1
  314. package/Components/WorkflowStatesWidget/index.js.map +0 -1
  315. package/Components/WorkflowsEditor/index.js.map +0 -1
  316. package/Components/WorkflowsPermissions/index.js.map +0 -1
  317. package/Components/helpers/index.js.map +0 -1
  318. package/Gateways/abstraction/WorkflowNotificationTypesGateway.js.map +0 -1
  319. package/Gateways/abstraction/WorkflowStateGateway.js.map +0 -1
  320. package/Gateways/abstraction/WorkflowStateListGateway.js.map +0 -1
  321. package/Gateways/abstraction/WorkflowStatesWidgetGateway.js.map +0 -1
  322. package/Gateways/abstraction/WorkflowsGateway.js.map +0 -1
  323. package/Gateways/index.js.map +0 -1
  324. package/Models/abstractions/WorkflowModel.js.map +0 -1
  325. package/Models/abstractions/WorkflowStateModel.js.map +0 -1
  326. package/Models/abstractions/WorkflowStateStepModel.js.map +0 -1
  327. package/Models/abstractions/WorkflowStepModel.js.map +0 -1
  328. package/Models/index.js.map +0 -1
  329. package/Presenters/abstractions/WorkflowStateListPresenter.js.map +0 -1
  330. package/Presenters/abstractions/WorkflowStatePresenter.js.map +0 -1
  331. package/Presenters/abstractions/WorkflowStatesWidgetPresenter.js.map +0 -1
  332. package/Presenters/abstractions/WorkflowsPresenter.js.map +0 -1
  333. package/Presenters/index.js.map +0 -1
  334. package/Repositories/abstractions/WorkflowNotificationTypesRepository.js.map +0 -1
  335. package/Repositories/abstractions/WorkflowStateListRepository.js.map +0 -1
  336. package/Repositories/abstractions/WorkflowStateRepository.js.map +0 -1
  337. package/Repositories/abstractions/WorkflowStatesWidgetRepository.js.map +0 -1
  338. package/Repositories/abstractions/WorkflowsRepository.js.map +0 -1
  339. package/Repositories/index.js.map +0 -1
@@ -1,225 +1,203 @@
1
1
  import { makeAutoObservable, runInAction, toJS } from "mobx";
2
2
  import { WorkflowStateModel } from "../Models/index.js";
3
3
  import { WorkflowStateValue } from "../types.js";
4
- export class WorkflowStatePresenter {
5
- workflow = null;
6
- state = undefined;
7
- dialog = null;
8
- step = null;
9
- get isOwner() {
10
- if (!this.identity) {
11
- return false;
4
+ class WorkflowStatePresenter {
5
+ get isOwner() {
6
+ if (!this.identity) return false;
7
+ return this.state?.createdBy?.id === this.identity.id;
12
8
  }
13
- return this.state?.createdBy?.id === this.identity.id;
14
- }
15
- /**
16
- * Determines whether the current user can cancel the review request.
17
- * User must be the owner of the requested review.
18
- * Previous step must not exist (only the initial request can be cancelled).
19
- * Current step must be in pending state.
20
- */
21
- get canCancel() {
22
- if (!this.isOwner) {
23
- return false;
24
- } else if (this.state?.previousStep) {
25
- return false;
26
- } else if (this.state?.state === WorkflowStateValue.approved || this.state?.state === WorkflowStateValue.rejected) {
27
- return false;
9
+ get canCancel() {
10
+ if (!this.isOwner) return false;
11
+ if (this.state?.previousStep) return false;
12
+ if (this.state?.state === WorkflowStateValue.approved || this.state?.state === WorkflowStateValue.rejected) return false;
13
+ return true;
28
14
  }
29
- return true;
30
- }
31
- get vm() {
32
- return {
33
- workflow: toJS(this.workflow),
34
- state: this.state?.toJS(),
35
- step: this.state?.currentStep?.toJS(),
36
- lastApprovedStep: toJS(this.state?.lastApproved || null),
37
- lastRejectedStep: toJS(this.state?.lastRejected || null),
38
- nextStep: toJS(this.state ? this.state.nextStep : null),
39
- loading: this.repository.loading || this.workflowsRepository.loading,
40
- error: toJS(this.repository.error || this.workflowsRepository.error),
41
- app: this.app,
42
- id: this.targetRevisionId,
43
- canCancel: this.canCancel,
44
- dialog: this.dialog
45
- };
46
- }
47
- constructor(params) {
48
- this.repository = params.repository;
49
- this.workflowsRepository = params.workflowsRepository;
50
- this.app = params.app;
51
- this.title = params.title;
52
- this.identity = params.identity;
53
- this.targetRevisionId = params.targetRevisionId;
54
- makeAutoObservable(this);
55
- this.init();
56
- }
57
- async init() {
58
- const workflows = await this.workflowsRepository.listWorkflows({
59
- where: {
60
- app: this.app
61
- }
62
- });
63
- runInAction(() => {
64
- if (workflows.length === 0) {
15
+ get vm() {
16
+ return {
17
+ workflow: toJS(this.workflow),
18
+ state: this.state?.toJS(),
19
+ step: this.state?.currentStep?.toJS(),
20
+ lastApprovedStep: toJS(this.state?.lastApproved || null),
21
+ lastRejectedStep: toJS(this.state?.lastRejected || null),
22
+ nextStep: toJS(this.state ? this.state.nextStep : null),
23
+ loading: this.repository.loading || this.workflowsRepository.loading,
24
+ error: toJS(this.repository.error || this.workflowsRepository.error),
25
+ app: this.app,
26
+ id: this.targetRevisionId,
27
+ canCancel: this.canCancel,
28
+ dialog: this.dialog
29
+ };
30
+ }
31
+ constructor(params){
65
32
  this.workflow = null;
66
- this.state = null;
67
- return;
68
- }
69
- this.workflow = workflows[0];
70
- });
71
- if (!this.workflow) {
72
- return;
73
- } else if (!this.targetRevisionId) {
74
- return;
33
+ this.state = void 0;
34
+ this.dialog = null;
35
+ this.step = null;
36
+ this.requestReview = async ()=>{
37
+ const item = await this.repository.requestReview({
38
+ app: this.app,
39
+ targetRevisionId: this.targetRevisionId,
40
+ title: this.title
41
+ });
42
+ runInAction(()=>{
43
+ this.state = item ? WorkflowStateModel.create(item) : null;
44
+ this.clearDialog();
45
+ });
46
+ };
47
+ this.start = async ()=>{
48
+ const item = await this.repository.start({
49
+ id: this.state.id
50
+ });
51
+ runInAction(()=>{
52
+ this.state = item ? WorkflowStateModel.create(item) : null;
53
+ if (!item) return;
54
+ this.setDialog({
55
+ type: "start:success"
56
+ });
57
+ });
58
+ };
59
+ this.approve = async (comment)=>{
60
+ const item = await this.repository.approve({
61
+ id: this.state.id,
62
+ comment
63
+ });
64
+ runInAction(()=>{
65
+ this.state = item ? WorkflowStateModel.create(item) : null;
66
+ if (!item) return;
67
+ this.setDialog({
68
+ type: "approve:success"
69
+ });
70
+ });
71
+ };
72
+ this.reject = async (comment)=>{
73
+ const item = await this.repository.reject({
74
+ id: this.state.id,
75
+ comment
76
+ });
77
+ runInAction(()=>{
78
+ this.state = item ? WorkflowStateModel.create(item) : null;
79
+ if (!item) return;
80
+ this.setDialog({
81
+ type: "reject:success"
82
+ });
83
+ });
84
+ };
85
+ this.cancel = async ()=>{
86
+ await this.repository.cancel(this.state.id);
87
+ runInAction(()=>{
88
+ this.state = null;
89
+ this.clearDialog();
90
+ });
91
+ };
92
+ this.takeOver = async ()=>{
93
+ const item = await this.repository.takeOver({
94
+ id: this.state.id
95
+ });
96
+ runInAction(()=>{
97
+ this.state = item ? WorkflowStateModel.create(item) : null;
98
+ if (!item) return;
99
+ this.setDialog({
100
+ type: "takeOver:success",
101
+ step: null
102
+ });
103
+ });
104
+ };
105
+ this.showCancelReviewDialog = ()=>{
106
+ runInAction(()=>{
107
+ this.setDialog({
108
+ type: "cancelReview"
109
+ });
110
+ });
111
+ };
112
+ this.showRequestReviewDialog = ()=>{
113
+ runInAction(()=>{
114
+ this.setDialog({
115
+ type: "requestReview"
116
+ });
117
+ });
118
+ };
119
+ this.showStartDialog = ()=>{
120
+ runInAction(()=>{
121
+ this.setDialog({
122
+ type: "start"
123
+ });
124
+ });
125
+ };
126
+ this.showApproveDialog = ()=>{
127
+ runInAction(()=>{
128
+ this.setDialog({
129
+ type: "approve"
130
+ });
131
+ });
132
+ };
133
+ this.hideDialog = ()=>{
134
+ runInAction(()=>{
135
+ this.clearDialog();
136
+ });
137
+ };
138
+ this.showRejectDialog = ()=>{
139
+ runInAction(()=>{
140
+ this.setDialog({
141
+ type: "reject"
142
+ });
143
+ });
144
+ };
145
+ this.showCommentDialog = (id)=>{
146
+ const step = this.state?.steps.find((step)=>step.id === id);
147
+ if (!step) return;
148
+ runInAction(()=>{
149
+ this.setDialog({
150
+ type: "comment",
151
+ step
152
+ });
153
+ });
154
+ };
155
+ this.showTakeOverDialog = ()=>{
156
+ runInAction(()=>{
157
+ this.setDialog({
158
+ type: "takeOver"
159
+ });
160
+ });
161
+ };
162
+ this.repository = params.repository;
163
+ this.workflowsRepository = params.workflowsRepository;
164
+ this.app = params.app;
165
+ this.title = params.title;
166
+ this.identity = params.identity;
167
+ this.targetRevisionId = params.targetRevisionId;
168
+ this.disabled = params.disabled;
169
+ makeAutoObservable(this);
170
+ this.init();
171
+ }
172
+ async init() {
173
+ if (this.disabled) return;
174
+ const workflows = await this.workflowsRepository.listWorkflows({
175
+ where: {
176
+ app: this.app
177
+ }
178
+ });
179
+ runInAction(()=>{
180
+ if (0 === workflows.length) {
181
+ this.workflow = null;
182
+ this.state = null;
183
+ return;
184
+ }
185
+ this.workflow = workflows[0];
186
+ });
187
+ if (!this.workflow) return;
188
+ if (!this.targetRevisionId) return;
189
+ const state = await this.repository.getTargetState(this.app, this.targetRevisionId);
190
+ runInAction(()=>{
191
+ this.state = state ? WorkflowStateModel.create(state) : null;
192
+ });
193
+ }
194
+ clearDialog() {
195
+ this.dialog = null;
75
196
  }
76
- const state = await this.repository.getTargetState(this.app, this.targetRevisionId);
77
- runInAction(() => {
78
- this.state = state ? WorkflowStateModel.create(state) : null;
79
- });
80
- }
81
- clearDialog() {
82
- this.dialog = null;
83
- }
84
- setDialog(dialog) {
85
- this.dialog = dialog;
86
- }
87
- requestReview = async () => {
88
- const item = await this.repository.requestReview({
89
- app: this.app,
90
- targetRevisionId: this.targetRevisionId,
91
- title: this.title
92
- });
93
- runInAction(() => {
94
- this.state = item ? WorkflowStateModel.create(item) : null;
95
- this.clearDialog();
96
- });
97
- };
98
- start = async () => {
99
- const item = await this.repository.start({
100
- id: this.state.id
101
- });
102
- runInAction(() => {
103
- this.state = item ? WorkflowStateModel.create(item) : null;
104
- if (!item) {
105
- return;
106
- }
107
- this.setDialog({
108
- type: "start:success"
109
- });
110
- });
111
- };
112
- approve = async comment => {
113
- const item = await this.repository.approve({
114
- id: this.state.id,
115
- comment
116
- });
117
- runInAction(() => {
118
- this.state = item ? WorkflowStateModel.create(item) : null;
119
- if (!item) {
120
- return;
121
- }
122
- this.setDialog({
123
- type: "approve:success"
124
- });
125
- });
126
- };
127
- reject = async comment => {
128
- const item = await this.repository.reject({
129
- id: this.state.id,
130
- comment
131
- });
132
- runInAction(() => {
133
- this.state = item ? WorkflowStateModel.create(item) : null;
134
- if (!item) {
135
- return;
136
- }
137
- this.setDialog({
138
- type: "reject:success"
139
- });
140
- });
141
- };
142
- cancel = async () => {
143
- await this.repository.cancel(this.state.id);
144
- runInAction(() => {
145
- this.state = null;
146
- this.clearDialog();
147
- });
148
- };
149
- takeOver = async () => {
150
- const item = await this.repository.takeOver({
151
- id: this.state.id
152
- });
153
- runInAction(() => {
154
- this.state = item ? WorkflowStateModel.create(item) : null;
155
- if (!item) {
156
- return;
157
- }
158
- this.setDialog({
159
- type: "takeOver:success",
160
- step: null
161
- });
162
- });
163
- };
164
- showCancelReviewDialog = () => {
165
- runInAction(() => {
166
- this.setDialog({
167
- type: "cancelReview"
168
- });
169
- });
170
- };
171
- showRequestReviewDialog = () => {
172
- runInAction(() => {
173
- this.setDialog({
174
- type: "requestReview"
175
- });
176
- });
177
- };
178
- showStartDialog = () => {
179
- runInAction(() => {
180
- this.setDialog({
181
- type: "start"
182
- });
183
- });
184
- };
185
- showApproveDialog = () => {
186
- runInAction(() => {
187
- this.setDialog({
188
- type: "approve"
189
- });
190
- });
191
- };
192
- hideDialog = () => {
193
- runInAction(() => {
194
- this.clearDialog();
195
- });
196
- };
197
- showRejectDialog = () => {
198
- runInAction(() => {
199
- this.setDialog({
200
- type: "reject"
201
- });
202
- });
203
- };
204
- showCommentDialog = id => {
205
- const step = this.state?.steps.find(step => step.id === id);
206
- if (!step) {
207
- return;
197
+ setDialog(dialog) {
198
+ this.dialog = dialog;
208
199
  }
209
- runInAction(() => {
210
- this.setDialog({
211
- type: "comment",
212
- step
213
- });
214
- });
215
- };
216
- showTakeOverDialog = () => {
217
- runInAction(() => {
218
- this.setDialog({
219
- type: "takeOver"
220
- });
221
- });
222
- };
223
200
  }
201
+ export { WorkflowStatePresenter };
224
202
 
225
203
  //# sourceMappingURL=WorkflowStatePresenter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","runInAction","toJS","WorkflowStateModel","WorkflowStateValue","WorkflowStatePresenter","workflow","state","undefined","dialog","step","isOwner","identity","createdBy","id","canCancel","previousStep","approved","rejected","vm","currentStep","lastApprovedStep","lastApproved","lastRejectedStep","lastRejected","nextStep","loading","repository","workflowsRepository","error","app","targetRevisionId","constructor","params","title","init","workflows","listWorkflows","where","length","getTargetState","create","clearDialog","setDialog","requestReview","item","start","type","approve","comment","reject","cancel","takeOver","showCancelReviewDialog","showRequestReviewDialog","showStartDialog","showApproveDialog","hideDialog","showRejectDialog","showCommentDialog","steps","find","showTakeOverDialog"],"sources":["WorkflowStatePresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatePresenter,\n IWorkflowStatePresenterViewModel,\n IWorkflowStatePresenterViewModelDialog\n} from \"./abstractions/WorkflowStatePresenter.js\";\nimport type { IWorkflowsRepository, IWorkflowStateRepository } from \"../Repositories/index.js\";\nimport { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport {\n type IWorkflowStateModel,\n type IWorkflowStateStepModel,\n WorkflowStateModel\n} from \"~/Models/index.js\";\nimport { type IIdentity, type IWorkflow, WorkflowStateValue } from \"~/types.js\";\n\nexport interface IWorkflowStatePresenterParams {\n repository: IWorkflowStateRepository;\n workflowsRepository: IWorkflowsRepository;\n app: string;\n targetRevisionId: string;\n title: string;\n identity: IIdentity | null;\n}\n\nexport class WorkflowStatePresenter implements IWorkflowStatePresenter {\n private readonly repository;\n private readonly workflowsRepository;\n private workflow: IWorkflow | null = null;\n private readonly app;\n private readonly targetRevisionId;\n private readonly title;\n private readonly identity;\n private state: IWorkflowStateModel | null | undefined = undefined;\n private dialog: IWorkflowStatePresenterViewModelDialog | null = null;\n step: IWorkflowStateStepModel | null = null;\n\n private get isOwner(): boolean {\n if (!this.identity) {\n return false;\n }\n return this.state?.createdBy?.id === this.identity.id;\n }\n /**\n * Determines whether the current user can cancel the review request.\n * User must be the owner of the requested review.\n * Previous step must not exist (only the initial request can be cancelled).\n * Current step must be in pending state.\n */\n private get canCancel(): boolean {\n if (!this.isOwner) {\n return false;\n } else if (this.state?.previousStep) {\n return false;\n } else if (\n this.state?.state === WorkflowStateValue.approved ||\n this.state?.state === WorkflowStateValue.rejected\n ) {\n return false;\n }\n return true;\n }\n\n get vm(): IWorkflowStatePresenterViewModel {\n return {\n workflow: toJS(this.workflow),\n state: this.state?.toJS(),\n step: this.state?.currentStep?.toJS(),\n lastApprovedStep: toJS(this.state?.lastApproved || null),\n lastRejectedStep: toJS(this.state?.lastRejected || null),\n nextStep: toJS(this.state ? this.state.nextStep : null),\n loading: this.repository.loading || this.workflowsRepository.loading,\n error: toJS(this.repository.error || this.workflowsRepository.error),\n app: this.app,\n id: this.targetRevisionId,\n canCancel: this.canCancel,\n dialog: this.dialog\n };\n }\n\n public constructor(params: IWorkflowStatePresenterParams) {\n this.repository = params.repository;\n this.workflowsRepository = params.workflowsRepository;\n this.app = params.app;\n this.title = params.title;\n this.identity = params.identity;\n this.targetRevisionId = params.targetRevisionId;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n const workflows = await this.workflowsRepository.listWorkflows({\n where: {\n app: this.app\n }\n });\n\n runInAction(() => {\n if (workflows.length === 0) {\n this.workflow = null;\n this.state = null;\n return;\n }\n this.workflow = workflows[0];\n });\n if (!this.workflow) {\n return;\n } else if (!this.targetRevisionId) {\n return;\n }\n\n const state = await this.repository.getTargetState(this.app, this.targetRevisionId);\n runInAction(() => {\n this.state = state ? WorkflowStateModel.create(state) : null;\n });\n }\n\n private clearDialog() {\n this.dialog = null;\n }\n\n private setDialog(dialog: IWorkflowStatePresenterViewModelDialog) {\n this.dialog = dialog;\n }\n\n requestReview = async () => {\n const item = await this.repository.requestReview({\n app: this.app,\n targetRevisionId: this.targetRevisionId,\n title: this.title\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n this.clearDialog();\n });\n };\n\n start = async () => {\n const item = await this.repository.start({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"start:success\"\n });\n });\n };\n\n approve = async (comment?: string) => {\n const item = await this.repository.approve({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"approve:success\"\n });\n });\n };\n\n reject = async (comment: string) => {\n const item = await this.repository.reject({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"reject:success\"\n });\n });\n };\n\n cancel = async () => {\n await this.repository.cancel(this.state!.id);\n runInAction(() => {\n this.state = null;\n this.clearDialog();\n });\n };\n\n takeOver = async () => {\n const item = await this.repository.takeOver({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"takeOver:success\",\n step: null\n });\n });\n };\n\n showCancelReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"cancelReview\"\n });\n });\n };\n\n showRequestReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"requestReview\"\n });\n });\n };\n\n showStartDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"start\"\n });\n });\n };\n\n showApproveDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"approve\"\n });\n });\n };\n\n hideDialog = () => {\n runInAction(() => {\n this.clearDialog();\n });\n };\n\n showRejectDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"reject\"\n });\n });\n };\n\n showCommentDialog = (id: string) => {\n const step = this.state?.steps.find(step => step.id === id);\n if (!step) {\n return;\n }\n runInAction(() => {\n this.setDialog({\n type: \"comment\",\n step\n });\n });\n };\n\n showTakeOverDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"takeOver\"\n });\n });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Presenters/WorkflowStatePresenter.js","sources":["../../src/Presenters/WorkflowStatePresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatePresenter,\n IWorkflowStatePresenterViewModel,\n IWorkflowStatePresenterViewModelDialog\n} from \"./abstractions/WorkflowStatePresenter.js\";\nimport type { IWorkflowsRepository, IWorkflowStateRepository } from \"../Repositories/index.js\";\nimport { makeAutoObservable, runInAction, toJS } from \"mobx\";\nimport {\n type IWorkflowStateModel,\n type IWorkflowStateStepModel,\n WorkflowStateModel\n} from \"~/Models/index.js\";\nimport { type IIdentity, type IWorkflow, WorkflowStateValue } from \"~/types.js\";\n\nexport interface IWorkflowStatePresenterParams {\n repository: IWorkflowStateRepository;\n workflowsRepository: IWorkflowsRepository;\n app: string;\n targetRevisionId: string;\n title: string;\n identity: IIdentity | null;\n disabled: boolean;\n}\n\nexport class WorkflowStatePresenter implements IWorkflowStatePresenter {\n private readonly repository;\n private readonly workflowsRepository;\n private workflow: IWorkflow | null = null;\n private readonly app;\n private readonly targetRevisionId;\n private readonly title;\n private readonly identity;\n private readonly disabled;\n private state: IWorkflowStateModel | null | undefined = undefined;\n private dialog: IWorkflowStatePresenterViewModelDialog | null = null;\n step: IWorkflowStateStepModel | null = null;\n\n private get isOwner(): boolean {\n if (!this.identity) {\n return false;\n }\n return this.state?.createdBy?.id === this.identity.id;\n }\n /**\n * Determines whether the current user can cancel the review request.\n * User must be the owner of the requested review.\n * Previous step must not exist (only the initial request can be cancelled).\n * Current step must be in pending state.\n */\n private get canCancel(): boolean {\n if (!this.isOwner) {\n return false;\n } else if (this.state?.previousStep) {\n return false;\n } else if (\n this.state?.state === WorkflowStateValue.approved ||\n this.state?.state === WorkflowStateValue.rejected\n ) {\n return false;\n }\n return true;\n }\n\n get vm(): IWorkflowStatePresenterViewModel {\n return {\n workflow: toJS(this.workflow),\n state: this.state?.toJS(),\n step: this.state?.currentStep?.toJS(),\n lastApprovedStep: toJS(this.state?.lastApproved || null),\n lastRejectedStep: toJS(this.state?.lastRejected || null),\n nextStep: toJS(this.state ? this.state.nextStep : null),\n loading: this.repository.loading || this.workflowsRepository.loading,\n error: toJS(this.repository.error || this.workflowsRepository.error),\n app: this.app,\n id: this.targetRevisionId,\n canCancel: this.canCancel,\n dialog: this.dialog\n };\n }\n\n public constructor(params: IWorkflowStatePresenterParams) {\n this.repository = params.repository;\n this.workflowsRepository = params.workflowsRepository;\n this.app = params.app;\n this.title = params.title;\n this.identity = params.identity;\n this.targetRevisionId = params.targetRevisionId;\n this.disabled = params.disabled;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n if (this.disabled) {\n return;\n }\n const workflows = await this.workflowsRepository.listWorkflows({\n where: {\n app: this.app\n }\n });\n\n runInAction(() => {\n if (workflows.length === 0) {\n this.workflow = null;\n this.state = null;\n return;\n }\n this.workflow = workflows[0];\n });\n if (!this.workflow) {\n return;\n } else if (!this.targetRevisionId) {\n return;\n }\n\n const state = await this.repository.getTargetState(this.app, this.targetRevisionId);\n runInAction(() => {\n this.state = state ? WorkflowStateModel.create(state) : null;\n });\n }\n\n private clearDialog() {\n this.dialog = null;\n }\n\n private setDialog(dialog: IWorkflowStatePresenterViewModelDialog) {\n this.dialog = dialog;\n }\n\n requestReview = async () => {\n const item = await this.repository.requestReview({\n app: this.app,\n targetRevisionId: this.targetRevisionId,\n title: this.title\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n this.clearDialog();\n });\n };\n\n start = async () => {\n const item = await this.repository.start({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"start:success\"\n });\n });\n };\n\n approve = async (comment?: string) => {\n const item = await this.repository.approve({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"approve:success\"\n });\n });\n };\n\n reject = async (comment: string) => {\n const item = await this.repository.reject({\n id: this.state!.id,\n comment\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"reject:success\"\n });\n });\n };\n\n cancel = async () => {\n await this.repository.cancel(this.state!.id);\n runInAction(() => {\n this.state = null;\n this.clearDialog();\n });\n };\n\n takeOver = async () => {\n const item = await this.repository.takeOver({\n id: this.state!.id\n });\n runInAction(() => {\n this.state = item ? WorkflowStateModel.create(item) : null;\n if (!item) {\n return;\n }\n this.setDialog({\n type: \"takeOver:success\",\n step: null\n });\n });\n };\n\n showCancelReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"cancelReview\"\n });\n });\n };\n\n showRequestReviewDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"requestReview\"\n });\n });\n };\n\n showStartDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"start\"\n });\n });\n };\n\n showApproveDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"approve\"\n });\n });\n };\n\n hideDialog = () => {\n runInAction(() => {\n this.clearDialog();\n });\n };\n\n showRejectDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"reject\"\n });\n });\n };\n\n showCommentDialog = (id: string) => {\n const step = this.state?.steps.find(step => step.id === id);\n if (!step) {\n return;\n }\n runInAction(() => {\n this.setDialog({\n type: \"comment\",\n step\n });\n });\n };\n\n showTakeOverDialog = () => {\n runInAction(() => {\n this.setDialog({\n type: \"takeOver\"\n });\n });\n };\n}\n"],"names":["WorkflowStatePresenter","WorkflowStateValue","toJS","params","undefined","item","runInAction","WorkflowStateModel","comment","id","step","makeAutoObservable","workflows","state","dialog"],"mappings":"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"}