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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,273 +1,228 @@
1
1
  import { WorkflowStateValue } from "../types.js";
2
2
  import { makeAutoObservable, observable, runInAction, set, toJS } from "mobx";
3
- const mapListStatesResponse = key => {
4
- return input => {
5
- return {
6
- key,
7
- items: input.items,
8
- totalCount: input.totalCount
9
- };
10
- };
11
- };
12
- const mapPromiseAllResponse = results => {
13
- return results.reduce((output, result) => {
14
- output[result.key] = {
15
- items: result.items,
16
- total: result.totalCount
17
- };
18
- return output;
19
- }, {});
20
- };
21
- export class WorkflowStatesWidgetPresenter {
22
- #type;
23
- #states;
24
- get vm() {
25
- return {
26
- type: this.#type,
27
- states: this.#states,
28
- loading: toJS(this.repository.loading),
29
- error: toJS(this.repository.error),
30
- values: toJS(this.values),
31
- dialogLoading: this.repository.actionLoading,
32
- dialogError: this.repository.actionError,
33
- showStartDialog: this.dialog === "start" && this.state ? this.state : null,
34
- showStartSuccessDialog: this.dialog === "start:success" && this.state ? this.state : null,
35
- showApproveDialog: this.dialog === "approve" && this.state ? this.state : null,
36
- showApproveSuccessDialog: this.dialog === "approve:success" && this.state ? this.state : null,
37
- showRejectDialog: this.dialog === "reject" && this.state ? this.state : null,
38
- showRejectSuccessDialog: this.dialog === "reject:success" && this.state ? this.state : null,
39
- showTakeOverDialog: this.dialog === "takeOver" && this.state ? this.state : null,
40
- showTakeOverSuccessDialog: this.dialog === "takeOver:success" && this.state ? this.state : null
41
- };
42
- }
43
- constructor(params) {
44
- this.repository = params.repository;
45
- this.#type = params.type;
46
- this.#states = params.states;
47
- this.values = observable.object({});
48
- this.dialog = null;
49
- this.state = null;
50
- makeAutoObservable(this);
51
- this.init();
52
- }
53
- async init() {
54
- const result = await this.load();
55
- runInAction(() => {
56
- for (const key in result) {
57
- set(this.values, key, result[key]);
58
- }
59
- });
60
- }
61
- async load() {
62
- if (this.#type === "requested") {
63
- return await this.initRequested();
3
+ const mapListStatesResponse = (key)=>(input)=>({
4
+ key,
5
+ items: input.items,
6
+ totalCount: input.totalCount
7
+ });
8
+ const mapPromiseAllResponse = (results)=>results.reduce((output, result)=>{
9
+ output[result.key] = {
10
+ items: result.items,
11
+ total: result.totalCount
12
+ };
13
+ return output;
14
+ }, {});
15
+ class WorkflowStatesWidgetPresenter {
16
+ #type;
17
+ #states;
18
+ get vm() {
19
+ return {
20
+ type: this.#type,
21
+ states: this.#states,
22
+ loading: toJS(this.repository.loading),
23
+ error: toJS(this.repository.error),
24
+ values: toJS(this.values),
25
+ dialogLoading: this.repository.actionLoading,
26
+ dialogError: this.repository.actionError,
27
+ showStartDialog: "start" === this.dialog && this.state ? this.state : null,
28
+ showStartSuccessDialog: "start:success" === this.dialog && this.state ? this.state : null,
29
+ showApproveDialog: "approve" === this.dialog && this.state ? this.state : null,
30
+ showApproveSuccessDialog: "approve:success" === this.dialog && this.state ? this.state : null,
31
+ showRejectDialog: "reject" === this.dialog && this.state ? this.state : null,
32
+ showRejectSuccessDialog: "reject:success" === this.dialog && this.state ? this.state : null,
33
+ showTakeOverDialog: "takeOver" === this.dialog && this.state ? this.state : null,
34
+ showTakeOverSuccessDialog: "takeOver:success" === this.dialog && this.state ? this.state : null
35
+ };
64
36
  }
65
- return await this.initOwn();
66
- }
67
- async initOwn() {
68
- return await Promise.all(this.#states.map(state => {
69
- return this.repository.listOwnStates({
70
- state,
71
- limit: 5
72
- }).then(mapListStatesResponse(state));
73
- })).then(mapPromiseAllResponse);
74
- }
75
- async initRequested() {
76
- return await Promise.all(this.#states.map(state => {
77
- return this.repository.listRequestedStates({
78
- state,
79
- limit: 5
80
- }).then(mapListStatesResponse(state));
81
- })).then(mapPromiseAllResponse);
82
- }
83
- increaseTotals(key) {
84
- const value = this.values[key];
85
- if (!value) {
86
- set(this.values, key, {
87
- items: [],
88
- total: 1
89
- });
90
- return;
37
+ constructor(params){
38
+ this.startStateStep = async (state)=>{
39
+ const key = WorkflowStateValue.pending;
40
+ const values = this.values[key];
41
+ const items = values.items || [];
42
+ const index = items.findIndex((item)=>item.id === state.id);
43
+ if (-1 === index) return;
44
+ const original = items[index];
45
+ const result = await this.repository.startStateStep({
46
+ id: state.id
47
+ });
48
+ if (!result) return;
49
+ runInAction(()=>{
50
+ this.moveStepBetweenStates({
51
+ from: original,
52
+ to: result
53
+ });
54
+ if (result.state === WorkflowStateValue.inReview) {
55
+ this.decreaseTotals(WorkflowStateValue.pending);
56
+ this.increaseTotals(WorkflowStateValue.inReview);
57
+ }
58
+ this.state = result;
59
+ this.dialog = "start:success";
60
+ });
61
+ };
62
+ this.takeOverStateStep = async (state)=>{
63
+ const key = WorkflowStateValue.inReview;
64
+ const values = this.values[key];
65
+ const items = values.items || [];
66
+ const index = items.findIndex((item)=>item.id === state.id);
67
+ if (-1 === index) return;
68
+ const result = await this.repository.takeOverStateStep({
69
+ id: state.id
70
+ });
71
+ if (!result) return;
72
+ runInAction(()=>{
73
+ items[index] = result;
74
+ set(this.values, key, {
75
+ ...values,
76
+ items
77
+ });
78
+ this.state = result;
79
+ this.dialog = "takeOver:success";
80
+ });
81
+ };
82
+ this.approveStateStep = async (state, comment)=>{
83
+ const key = WorkflowStateValue.inReview;
84
+ const values = this.values[key];
85
+ const items = values.items || [];
86
+ const original = items.find((item)=>item.id === state.id);
87
+ if (!original) return;
88
+ const result = await this.repository.approveStateStep({
89
+ id: state.id,
90
+ comment
91
+ });
92
+ if (!result) return;
93
+ runInAction(()=>{
94
+ this.moveStepBetweenStates({
95
+ from: original,
96
+ to: result
97
+ });
98
+ if (result.state === WorkflowStateValue.pending) this.increaseTotals(WorkflowStateValue.pending);
99
+ this.decreaseTotals(WorkflowStateValue.inReview);
100
+ this.state = result;
101
+ this.dialog = "approve:success";
102
+ });
103
+ };
104
+ this.rejectStateStep = async (state, comment)=>{
105
+ const key = WorkflowStateValue.inReview;
106
+ const values = this.values[key];
107
+ const items = values.items || [];
108
+ const original = items.find((item)=>item.id === state.id && item.state);
109
+ if (!original) return;
110
+ const result = await this.repository.rejectStateStep({
111
+ id: state.id,
112
+ comment
113
+ });
114
+ if (!result) return;
115
+ runInAction(()=>{
116
+ this.moveStepBetweenStates({
117
+ from: original,
118
+ to: result
119
+ });
120
+ if (result.state === WorkflowStateValue.rejected) this.decreaseTotals(WorkflowStateValue.inReview);
121
+ this.state = result;
122
+ this.dialog = "reject:success";
123
+ });
124
+ };
125
+ this.showStartStateStepDialog = (state)=>{
126
+ runInAction(()=>{
127
+ this.state = state;
128
+ this.dialog = "start";
129
+ });
130
+ };
131
+ this.showTakeOverStateStepDialog = (state)=>{
132
+ runInAction(()=>{
133
+ this.state = state;
134
+ this.dialog = "takeOver";
135
+ });
136
+ };
137
+ this.showApproveStateStepDialog = (state)=>{
138
+ runInAction(()=>{
139
+ this.state = state;
140
+ this.dialog = "approve";
141
+ });
142
+ };
143
+ this.showRejectStateStepDialog = (state)=>{
144
+ runInAction(()=>{
145
+ this.state = state;
146
+ this.dialog = "reject";
147
+ });
148
+ };
149
+ this.hideDialog = ()=>{
150
+ runInAction(()=>{
151
+ this.state = null;
152
+ this.dialog = null;
153
+ });
154
+ };
155
+ this.repository = params.repository;
156
+ this.#type = params.type;
157
+ this.#states = params.states;
158
+ this.values = observable.object({});
159
+ this.dialog = null;
160
+ this.state = null;
161
+ makeAutoObservable(this);
162
+ this.init();
91
163
  }
92
- set(this.values, key, {
93
- ...value,
94
- total: value.total + 1
95
- });
96
- }
97
- decreaseTotals(key) {
98
- const value = this.values[key];
99
- if (!value?.total) {
100
- return;
164
+ async init() {
165
+ const result = await this.load();
166
+ runInAction(()=>{
167
+ for(const key in result)set(this.values, key, result[key]);
168
+ });
101
169
  }
102
- set(this.values, key, {
103
- ...value,
104
- total: value.total - 1
105
- });
106
- }
107
- moveStepBetweenStates(params) {
108
- const {
109
- from: fromState,
110
- to: toState
111
- } = params;
112
- if (fromState.state === toState.state) {
113
- return;
170
+ async load() {
171
+ if ("requested" === this.#type) return await this.initRequested();
172
+ return await this.initOwn();
114
173
  }
115
- const from = fromState.state;
116
- const to = toState.state;
117
- const fromIndex = this.values[from].items.findIndex(item => item.id === fromState.id);
118
- if (fromIndex === -1) {
119
- return;
174
+ async initOwn() {
175
+ return await Promise.all(this.#states.map((state)=>this.repository.listOwnStates({
176
+ state,
177
+ limit: 5
178
+ }).then(mapListStatesResponse(state)))).then(mapPromiseAllResponse);
120
179
  }
121
- const fromItems = Array.from(this.values[from].items);
122
- fromItems.splice(fromIndex, 1);
123
- set(this.values, from, {
124
- ...this.values[from],
125
- items: fromItems
126
- });
127
- const toItems = Array.from(this.values[to]?.items || []);
128
- toItems.unshift(toState);
129
- set(this.values, to, {
130
- total: this.values[to]?.total || 0,
131
- items: toItems
132
- });
133
- }
134
- startStateStep = async state => {
135
- const key = WorkflowStateValue.pending;
136
- const values = this.values[key];
137
- const items = values.items || [];
138
- const index = items.findIndex(item => item.id === state.id);
139
- if (index === -1) {
140
- return;
180
+ async initRequested() {
181
+ return await Promise.all(this.#states.map((state)=>this.repository.listRequestedStates({
182
+ state,
183
+ limit: 5
184
+ }).then(mapListStatesResponse(state)))).then(mapPromiseAllResponse);
141
185
  }
142
- const original = items[index];
143
- const result = await this.repository.startStateStep({
144
- id: state.id
145
- });
146
- if (!result) {
147
- return;
186
+ increaseTotals(key) {
187
+ const value = this.values[key];
188
+ if (!value) return void set(this.values, key, {
189
+ items: [],
190
+ total: 1
191
+ });
192
+ set(this.values, key, {
193
+ ...value,
194
+ total: value.total + 1
195
+ });
148
196
  }
149
- runInAction(() => {
150
- this.moveStepBetweenStates({
151
- from: original,
152
- to: result
153
- });
154
- if (result.state === WorkflowStateValue.inReview) {
155
- this.decreaseTotals(WorkflowStateValue.pending);
156
- this.increaseTotals(WorkflowStateValue.inReview);
157
- }
158
- this.state = result;
159
- this.dialog = "start:success";
160
- });
161
- };
162
- takeOverStateStep = async state => {
163
- const key = WorkflowStateValue.inReview;
164
- const values = this.values[key];
165
- const items = values.items || [];
166
- const index = items.findIndex(item => item.id === state.id);
167
- if (index === -1) {
168
- return;
197
+ decreaseTotals(key) {
198
+ const value = this.values[key];
199
+ if (!value?.total) return;
200
+ set(this.values, key, {
201
+ ...value,
202
+ total: value.total - 1
203
+ });
169
204
  }
170
- const result = await this.repository.takeOverStateStep({
171
- id: state.id
172
- });
173
- if (!result) {
174
- return;
205
+ moveStepBetweenStates(params) {
206
+ const { from: fromState, to: toState } = params;
207
+ if (fromState.state === toState.state) return;
208
+ const from = fromState.state;
209
+ const to = toState.state;
210
+ const fromIndex = this.values[from].items.findIndex((item)=>item.id === fromState.id);
211
+ if (-1 === fromIndex) return;
212
+ const fromItems = Array.from(this.values[from].items);
213
+ fromItems.splice(fromIndex, 1);
214
+ set(this.values, from, {
215
+ ...this.values[from],
216
+ items: fromItems
217
+ });
218
+ const toItems = Array.from(this.values[to]?.items || []);
219
+ toItems.unshift(toState);
220
+ set(this.values, to, {
221
+ total: this.values[to]?.total || 0,
222
+ items: toItems
223
+ });
175
224
  }
176
- runInAction(() => {
177
- items[index] = result;
178
- set(this.values, key, {
179
- ...values,
180
- items
181
- });
182
- this.state = result;
183
- this.dialog = "takeOver:success";
184
- });
185
- };
186
- approveStateStep = async (state, comment) => {
187
- const key = WorkflowStateValue.inReview;
188
- const values = this.values[key];
189
- const items = values.items || [];
190
- const original = items.find(item => item.id === state.id);
191
- if (!original) {
192
- return;
193
- }
194
- const result = await this.repository.approveStateStep({
195
- id: state.id,
196
- comment
197
- });
198
- if (!result) {
199
- return;
200
- }
201
- runInAction(() => {
202
- this.moveStepBetweenStates({
203
- from: original,
204
- to: result
205
- });
206
- if (result.state === WorkflowStateValue.pending) {
207
- this.increaseTotals(WorkflowStateValue.pending);
208
- }
209
- this.decreaseTotals(WorkflowStateValue.inReview);
210
- this.state = result;
211
- this.dialog = "approve:success";
212
- });
213
- };
214
- rejectStateStep = async (state, comment) => {
215
- const key = WorkflowStateValue.inReview;
216
- const values = this.values[key];
217
- const items = values.items || [];
218
- const original = items.find(item => item.id === state.id && item.state);
219
- if (!original) {
220
- return;
221
- }
222
- const result = await this.repository.rejectStateStep({
223
- id: state.id,
224
- comment
225
- });
226
- if (!result) {
227
- return;
228
- }
229
- runInAction(() => {
230
- this.moveStepBetweenStates({
231
- from: original,
232
- to: result
233
- });
234
- if (result.state === WorkflowStateValue.rejected) {
235
- this.decreaseTotals(WorkflowStateValue.inReview);
236
- }
237
- this.state = result;
238
- this.dialog = "reject:success";
239
- });
240
- };
241
- showStartStateStepDialog = state => {
242
- runInAction(() => {
243
- this.state = state;
244
- this.dialog = "start";
245
- });
246
- };
247
- showTakeOverStateStepDialog = state => {
248
- runInAction(() => {
249
- this.state = state;
250
- this.dialog = "takeOver";
251
- });
252
- };
253
- showApproveStateStepDialog = state => {
254
- runInAction(() => {
255
- this.state = state;
256
- this.dialog = "approve";
257
- });
258
- };
259
- showRejectStateStepDialog = state => {
260
- runInAction(() => {
261
- this.state = state;
262
- this.dialog = "reject";
263
- });
264
- };
265
- hideDialog = () => {
266
- runInAction(() => {
267
- this.state = null;
268
- this.dialog = null;
269
- });
270
- };
271
225
  }
226
+ export { WorkflowStatesWidgetPresenter };
272
227
 
273
228
  //# sourceMappingURL=WorkflowStatesWidgetPresenter.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WorkflowStateValue","makeAutoObservable","observable","runInAction","set","toJS","mapListStatesResponse","key","input","items","totalCount","mapPromiseAllResponse","results","reduce","output","result","total","WorkflowStatesWidgetPresenter","type","states","vm","loading","repository","error","values","dialogLoading","actionLoading","dialogError","actionError","showStartDialog","dialog","state","showStartSuccessDialog","showApproveDialog","showApproveSuccessDialog","showRejectDialog","showRejectSuccessDialog","showTakeOverDialog","showTakeOverSuccessDialog","constructor","params","object","init","load","initRequested","initOwn","Promise","all","map","listOwnStates","limit","then","listRequestedStates","increaseTotals","value","decreaseTotals","moveStepBetweenStates","from","fromState","to","toState","fromIndex","findIndex","item","id","fromItems","Array","splice","toItems","unshift","startStateStep","pending","index","original","inReview","takeOverStateStep","approveStateStep","comment","find","rejectStateStep","rejected","showStartStateStepDialog","showTakeOverStateStepDialog","showApproveStateStepDialog","showRejectStateStepDialog","hideDialog"],"sources":["WorkflowStatesWidgetPresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatesWidgetRepository,\n IWorkflowStatesWidgetRepositoryListResult\n} from \"~/Repositories/abstractions/WorkflowStatesWidgetRepository.js\";\nimport type {\n IWorkflowStatesWidgetPresenter,\n IWorkflowStatesWidgetPresenterViewModel,\n IWorkflowStatesWidgetPresenterViewModelValues\n} from \"./abstractions/WorkflowStatesWidgetPresenter.js\";\nimport { type IWorkflowState, WorkflowStateValue } from \"~/types.js\";\nimport { makeAutoObservable, observable, runInAction, set, toJS } from \"mobx\";\nimport type { NonEmptyArray } from \"@webiny/app/types.js\";\n\nexport interface IWorkflowStatesWidgetPresenterParams {\n repository: IWorkflowStatesWidgetRepository;\n type: \"own\" | \"requested\";\n states: NonEmptyArray<WorkflowStateValue>;\n}\n\ninterface IResultData {\n key: WorkflowStateValue;\n items: IWorkflowState[];\n totalCount: number;\n}\n\nconst mapListStatesResponse = (key: WorkflowStateValue) => {\n return (input: IWorkflowStatesWidgetRepositoryListResult): IResultData => {\n return {\n key,\n items: input.items,\n totalCount: input.totalCount\n };\n };\n};\n\nconst mapPromiseAllResponse = (\n results: IResultData[]\n): IWorkflowStatesWidgetPresenterViewModelValues => {\n return results.reduce<IWorkflowStatesWidgetPresenterViewModelValues>((output, result) => {\n output[result.key] = {\n items: result.items,\n total: result.totalCount\n };\n return output;\n }, {});\n};\n\ninterface IMoveStepBetweenStatesParams {\n from: IWorkflowState;\n to: IWorkflowState;\n}\n\nexport class WorkflowStatesWidgetPresenter implements IWorkflowStatesWidgetPresenter {\n readonly #type;\n readonly #states;\n private readonly repository;\n private dialog:\n | \"approve\"\n | \"reject\"\n | \"approve:success\"\n | \"reject:success\"\n | \"start\"\n | \"start:success\"\n | \"takeOver\"\n | \"takeOver:success\"\n | null;\n private state: IWorkflowState | null;\n private readonly values;\n\n public get vm(): IWorkflowStatesWidgetPresenterViewModel {\n return {\n type: this.#type,\n states: this.#states,\n loading: toJS(this.repository.loading),\n error: toJS(this.repository.error),\n values: toJS(this.values),\n dialogLoading: this.repository.actionLoading,\n dialogError: this.repository.actionError,\n showStartDialog: this.dialog === \"start\" && this.state ? this.state : null,\n showStartSuccessDialog:\n this.dialog === \"start:success\" && this.state ? this.state : null,\n showApproveDialog: this.dialog === \"approve\" && this.state ? this.state : null,\n showApproveSuccessDialog:\n this.dialog === \"approve:success\" && this.state ? this.state : null,\n showRejectDialog: this.dialog === \"reject\" && this.state ? this.state : null,\n showRejectSuccessDialog:\n this.dialog === \"reject:success\" && this.state ? this.state : null,\n showTakeOverDialog: this.dialog === \"takeOver\" && this.state ? this.state : null,\n showTakeOverSuccessDialog:\n this.dialog === \"takeOver:success\" && this.state ? this.state : null\n };\n }\n\n public constructor(params: IWorkflowStatesWidgetPresenterParams) {\n this.repository = params.repository;\n this.#type = params.type;\n this.#states = params.states;\n this.values = observable.object<IWorkflowStatesWidgetPresenterViewModelValues>({});\n this.dialog = null;\n this.state = null;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n const result = await this.load();\n\n runInAction(() => {\n for (const key in result) {\n set(this.values, key, result[key]);\n }\n });\n }\n\n private async load(): Promise<IWorkflowStatesWidgetPresenterViewModelValues> {\n if (this.#type === \"requested\") {\n return await this.initRequested();\n }\n return await this.initOwn();\n }\n\n private async initOwn() {\n return await Promise.all(\n this.#states.map(state => {\n return this.repository\n .listOwnStates({\n state,\n limit: 5\n })\n .then(mapListStatesResponse(state));\n })\n ).then(mapPromiseAllResponse);\n }\n\n private async initRequested() {\n return await Promise.all(\n this.#states.map(state => {\n return this.repository\n .listRequestedStates({\n state,\n limit: 5\n })\n .then(mapListStatesResponse(state));\n })\n ).then(mapPromiseAllResponse);\n }\n\n private increaseTotals(key: WorkflowStateValue): void {\n const value = this.values[key];\n if (!value) {\n set(this.values, key, {\n items: [],\n total: 1\n });\n return;\n }\n set(this.values, key, {\n ...value,\n total: value.total + 1\n });\n }\n\n private decreaseTotals(key: WorkflowStateValue): void {\n const value = this.values[key];\n if (!value?.total) {\n return;\n }\n\n set(this.values, key, {\n ...value,\n total: value.total - 1\n });\n }\n\n private moveStepBetweenStates(params: IMoveStepBetweenStatesParams): void {\n const { from: fromState, to: toState } = params;\n if (fromState.state === toState.state) {\n return;\n }\n const from = fromState.state;\n const to = toState.state;\n\n const fromIndex = this.values[from].items.findIndex(item => item.id === fromState.id);\n if (fromIndex === -1) {\n return;\n }\n const fromItems = Array.from(this.values[from].items);\n fromItems.splice(fromIndex, 1);\n set(this.values, from, {\n ...this.values[from],\n items: fromItems\n });\n\n const toItems = Array.from(this.values[to]?.items || []);\n toItems.unshift(toState);\n set(this.values, to, {\n total: this.values[to]?.total || 0,\n items: toItems\n });\n }\n\n startStateStep = async (state: IWorkflowState): Promise<void> => {\n const key = WorkflowStateValue.pending;\n const values = this.values[key];\n const items = values.items || [];\n const index = items.findIndex(item => item.id === state.id);\n if (index === -1) {\n return;\n }\n const original = items[index];\n const result = await this.repository.startStateStep({\n id: state.id\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.inReview) {\n this.decreaseTotals(WorkflowStateValue.pending);\n this.increaseTotals(WorkflowStateValue.inReview);\n }\n this.state = result;\n this.dialog = \"start:success\";\n });\n };\n\n takeOverStateStep = async (state: IWorkflowState): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const index = items.findIndex(item => item.id === state.id);\n if (index === -1) {\n return;\n }\n const result = await this.repository.takeOverStateStep({\n id: state.id\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n items[index] = result;\n set(this.values, key, {\n ...values,\n items\n });\n this.state = result;\n this.dialog = \"takeOver:success\";\n });\n };\n\n approveStateStep = async (state: IWorkflowState, comment?: string): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const original = items.find(item => item.id === state.id);\n if (!original) {\n return;\n }\n\n const result = await this.repository.approveStateStep({\n id: state.id,\n comment\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.pending) {\n this.increaseTotals(WorkflowStateValue.pending);\n }\n this.decreaseTotals(WorkflowStateValue.inReview);\n this.state = result;\n this.dialog = \"approve:success\";\n });\n };\n\n rejectStateStep = async (state: IWorkflowState, comment: string): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const original = items.find(item => item.id === state.id && item.state);\n if (!original) {\n return;\n }\n const result = await this.repository.rejectStateStep({\n id: state.id,\n comment\n });\n if (!result) {\n return;\n }\n\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.rejected) {\n this.decreaseTotals(WorkflowStateValue.inReview);\n }\n this.state = result;\n this.dialog = \"reject:success\";\n });\n };\n\n showStartStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"start\";\n });\n };\n\n showTakeOverStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"takeOver\";\n });\n };\n\n showApproveStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"approve\";\n });\n };\n\n showRejectStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"reject\";\n });\n };\n\n hideDialog = (): void => {\n runInAction(() => {\n this.state = null;\n this.dialog = null;\n });\n };\n}\n"],"mappings":"AASA,SAA8BA,kBAAkB;AAChD,SAASC,kBAAkB,EAAEC,UAAU,EAAEC,WAAW,EAAEC,GAAG,EAAEC,IAAI,QAAQ,MAAM;AAe7E,MAAMC,qBAAqB,GAAIC,GAAuB,IAAK;EACvD,OAAQC,KAAgD,IAAkB;IACtE,OAAO;MACHD,GAAG;MACHE,KAAK,EAAED,KAAK,CAACC,KAAK;MAClBC,UAAU,EAAEF,KAAK,CAACE;IACtB,CAAC;EACL,CAAC;AACL,CAAC;AAED,MAAMC,qBAAqB,GACvBC,OAAsB,IAC0B;EAChD,OAAOA,OAAO,CAACC,MAAM,CAAgD,CAACC,MAAM,EAAEC,MAAM,KAAK;IACrFD,MAAM,CAACC,MAAM,CAACR,GAAG,CAAC,GAAG;MACjBE,KAAK,EAAEM,MAAM,CAACN,KAAK;MACnBO,KAAK,EAAED,MAAM,CAACL;IAClB,CAAC;IACD,OAAOI,MAAM;EACjB,CAAC,EAAE,CAAC,CAAC,CAAC;AACV,CAAC;AAOD,OAAO,MAAMG,6BAA6B,CAA2C;EACxE,CAACC,IAAI;EACL,CAACC,MAAM;EAehB,IAAWC,EAAEA,CAAA,EAA4C;IACrD,OAAO;MACHF,IAAI,EAAE,IAAI,CAAC,CAACA,IAAI;MAChBC,MAAM,EAAE,IAAI,CAAC,CAACA,MAAM;MACpBE,OAAO,EAAEhB,IAAI,CAAC,IAAI,CAACiB,UAAU,CAACD,OAAO,CAAC;MACtCE,KAAK,EAAElB,IAAI,CAAC,IAAI,CAACiB,UAAU,CAACC,KAAK,CAAC;MAClCC,MAAM,EAAEnB,IAAI,CAAC,IAAI,CAACmB,MAAM,CAAC;MACzBC,aAAa,EAAE,IAAI,CAACH,UAAU,CAACI,aAAa;MAC5CC,WAAW,EAAE,IAAI,CAACL,UAAU,CAACM,WAAW;MACxCC,eAAe,EAAE,IAAI,CAACC,MAAM,KAAK,OAAO,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MAC1EC,sBAAsB,EAClB,IAAI,CAACF,MAAM,KAAK,eAAe,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MACrEE,iBAAiB,EAAE,IAAI,CAACH,MAAM,KAAK,SAAS,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MAC9EG,wBAAwB,EACpB,IAAI,CAACJ,MAAM,KAAK,iBAAiB,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MACvEI,gBAAgB,EAAE,IAAI,CAACL,MAAM,KAAK,QAAQ,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MAC5EK,uBAAuB,EACnB,IAAI,CAACN,MAAM,KAAK,gBAAgB,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MACtEM,kBAAkB,EAAE,IAAI,CAACP,MAAM,KAAK,UAAU,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG,IAAI;MAChFO,yBAAyB,EACrB,IAAI,CAACR,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAACC,KAAK,GAAG,IAAI,CAACA,KAAK,GAAG;IACxE,CAAC;EACL;EAEOQ,WAAWA,CAACC,MAA4C,EAAE;IAC7D,IAAI,CAAClB,UAAU,GAAGkB,MAAM,CAAClB,UAAU;IACnC,IAAI,CAAC,CAACJ,IAAI,GAAGsB,MAAM,CAACtB,IAAI;IACxB,IAAI,CAAC,CAACC,MAAM,GAAGqB,MAAM,CAACrB,MAAM;IAC5B,IAAI,CAACK,MAAM,GAAGtB,UAAU,CAACuC,MAAM,CAAgD,CAAC,CAAC,CAAC;IAClF,IAAI,CAACX,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,KAAK,GAAG,IAAI;IAEjB9B,kBAAkB,CAAC,IAAI,CAAC;IAExB,IAAI,CAACyC,IAAI,CAAC,CAAC;EACf;EAEA,MAAcA,IAAIA,CAAA,EAAkB;IAChC,MAAM3B,MAAM,GAAG,MAAM,IAAI,CAAC4B,IAAI,CAAC,CAAC;IAEhCxC,WAAW,CAAC,MAAM;MACd,KAAK,MAAMI,GAAG,IAAIQ,MAAM,EAAE;QACtBX,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEjB,GAAG,EAAEQ,MAAM,CAACR,GAAG,CAAC,CAAC;MACtC;IACJ,CAAC,CAAC;EACN;EAEA,MAAcoC,IAAIA,CAAA,EAA2D;IACzE,IAAI,IAAI,CAAC,CAACzB,IAAI,KAAK,WAAW,EAAE;MAC5B,OAAO,MAAM,IAAI,CAAC0B,aAAa,CAAC,CAAC;IACrC;IACA,OAAO,MAAM,IAAI,CAACC,OAAO,CAAC,CAAC;EAC/B;EAEA,MAAcA,OAAOA,CAAA,EAAG;IACpB,OAAO,MAAMC,OAAO,CAACC,GAAG,CACpB,IAAI,CAAC,CAAC5B,MAAM,CAAC6B,GAAG,CAACjB,KAAK,IAAI;MACtB,OAAO,IAAI,CAACT,UAAU,CACjB2B,aAAa,CAAC;QACXlB,KAAK;QACLmB,KAAK,EAAE;MACX,CAAC,CAAC,CACDC,IAAI,CAAC7C,qBAAqB,CAACyB,KAAK,CAAC,CAAC;IAC3C,CAAC,CACL,CAAC,CAACoB,IAAI,CAACxC,qBAAqB,CAAC;EACjC;EAEA,MAAciC,aAAaA,CAAA,EAAG;IAC1B,OAAO,MAAME,OAAO,CAACC,GAAG,CACpB,IAAI,CAAC,CAAC5B,MAAM,CAAC6B,GAAG,CAACjB,KAAK,IAAI;MACtB,OAAO,IAAI,CAACT,UAAU,CACjB8B,mBAAmB,CAAC;QACjBrB,KAAK;QACLmB,KAAK,EAAE;MACX,CAAC,CAAC,CACDC,IAAI,CAAC7C,qBAAqB,CAACyB,KAAK,CAAC,CAAC;IAC3C,CAAC,CACL,CAAC,CAACoB,IAAI,CAACxC,qBAAqB,CAAC;EACjC;EAEQ0C,cAAcA,CAAC9C,GAAuB,EAAQ;IAClD,MAAM+C,KAAK,GAAG,IAAI,CAAC9B,MAAM,CAACjB,GAAG,CAAC;IAC9B,IAAI,CAAC+C,KAAK,EAAE;MACRlD,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEjB,GAAG,EAAE;QAClBE,KAAK,EAAE,EAAE;QACTO,KAAK,EAAE;MACX,CAAC,CAAC;MACF;IACJ;IACAZ,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEjB,GAAG,EAAE;MAClB,GAAG+C,KAAK;MACRtC,KAAK,EAAEsC,KAAK,CAACtC,KAAK,GAAG;IACzB,CAAC,CAAC;EACN;EAEQuC,cAAcA,CAAChD,GAAuB,EAAQ;IAClD,MAAM+C,KAAK,GAAG,IAAI,CAAC9B,MAAM,CAACjB,GAAG,CAAC;IAC9B,IAAI,CAAC+C,KAAK,EAAEtC,KAAK,EAAE;MACf;IACJ;IAEAZ,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEjB,GAAG,EAAE;MAClB,GAAG+C,KAAK;MACRtC,KAAK,EAAEsC,KAAK,CAACtC,KAAK,GAAG;IACzB,CAAC,CAAC;EACN;EAEQwC,qBAAqBA,CAAChB,MAAoC,EAAQ;IACtE,MAAM;MAAEiB,IAAI,EAAEC,SAAS;MAAEC,EAAE,EAAEC;IAAQ,CAAC,GAAGpB,MAAM;IAC/C,IAAIkB,SAAS,CAAC3B,KAAK,KAAK6B,OAAO,CAAC7B,KAAK,EAAE;MACnC;IACJ;IACA,MAAM0B,IAAI,GAAGC,SAAS,CAAC3B,KAAK;IAC5B,MAAM4B,EAAE,GAAGC,OAAO,CAAC7B,KAAK;IAExB,MAAM8B,SAAS,GAAG,IAAI,CAACrC,MAAM,CAACiC,IAAI,CAAC,CAAChD,KAAK,CAACqD,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKN,SAAS,CAACM,EAAE,CAAC;IACrF,IAAIH,SAAS,KAAK,CAAC,CAAC,EAAE;MAClB;IACJ;IACA,MAAMI,SAAS,GAAGC,KAAK,CAACT,IAAI,CAAC,IAAI,CAACjC,MAAM,CAACiC,IAAI,CAAC,CAAChD,KAAK,CAAC;IACrDwD,SAAS,CAACE,MAAM,CAACN,SAAS,EAAE,CAAC,CAAC;IAC9BzD,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEiC,IAAI,EAAE;MACnB,GAAG,IAAI,CAACjC,MAAM,CAACiC,IAAI,CAAC;MACpBhD,KAAK,EAAEwD;IACX,CAAC,CAAC;IAEF,MAAMG,OAAO,GAAGF,KAAK,CAACT,IAAI,CAAC,IAAI,CAACjC,MAAM,CAACmC,EAAE,CAAC,EAAElD,KAAK,IAAI,EAAE,CAAC;IACxD2D,OAAO,CAACC,OAAO,CAACT,OAAO,CAAC;IACxBxD,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEmC,EAAE,EAAE;MACjB3C,KAAK,EAAE,IAAI,CAACQ,MAAM,CAACmC,EAAE,CAAC,EAAE3C,KAAK,IAAI,CAAC;MAClCP,KAAK,EAAE2D;IACX,CAAC,CAAC;EACN;EAEAE,cAAc,GAAG,MAAOvC,KAAqB,IAAoB;IAC7D,MAAMxB,GAAG,GAAGP,kBAAkB,CAACuE,OAAO;IACtC,MAAM/C,MAAM,GAAG,IAAI,CAACA,MAAM,CAACjB,GAAG,CAAC;IAC/B,MAAME,KAAK,GAAGe,MAAM,CAACf,KAAK,IAAI,EAAE;IAChC,MAAM+D,KAAK,GAAG/D,KAAK,CAACqD,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKjC,KAAK,CAACiC,EAAE,CAAC;IAC3D,IAAIQ,KAAK,KAAK,CAAC,CAAC,EAAE;MACd;IACJ;IACA,MAAMC,QAAQ,GAAGhE,KAAK,CAAC+D,KAAK,CAAC;IAC7B,MAAMzD,MAAM,GAAG,MAAM,IAAI,CAACO,UAAU,CAACgD,cAAc,CAAC;MAChDN,EAAE,EAAEjC,KAAK,CAACiC;IACd,CAAC,CAAC;IACF,IAAI,CAACjD,MAAM,EAAE;MACT;IACJ;IACAZ,WAAW,CAAC,MAAM;MACd,IAAI,CAACqD,qBAAqB,CAAC;QACvBC,IAAI,EAAEgB,QAAQ;QACdd,EAAE,EAAE5C;MACR,CAAC,CAAC;MACF,IAAIA,MAAM,CAACgB,KAAK,KAAK/B,kBAAkB,CAAC0E,QAAQ,EAAE;QAC9C,IAAI,CAACnB,cAAc,CAACvD,kBAAkB,CAACuE,OAAO,CAAC;QAC/C,IAAI,CAAClB,cAAc,CAACrD,kBAAkB,CAAC0E,QAAQ,CAAC;MACpD;MACA,IAAI,CAAC3C,KAAK,GAAGhB,MAAM;MACnB,IAAI,CAACe,MAAM,GAAG,eAAe;IACjC,CAAC,CAAC;EACN,CAAC;EAED6C,iBAAiB,GAAG,MAAO5C,KAAqB,IAAoB;IAChE,MAAMxB,GAAG,GAAGP,kBAAkB,CAAC0E,QAAQ;IACvC,MAAMlD,MAAM,GAAG,IAAI,CAACA,MAAM,CAACjB,GAAG,CAAC;IAC/B,MAAME,KAAK,GAAGe,MAAM,CAACf,KAAK,IAAI,EAAE;IAChC,MAAM+D,KAAK,GAAG/D,KAAK,CAACqD,SAAS,CAACC,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKjC,KAAK,CAACiC,EAAE,CAAC;IAC3D,IAAIQ,KAAK,KAAK,CAAC,CAAC,EAAE;MACd;IACJ;IACA,MAAMzD,MAAM,GAAG,MAAM,IAAI,CAACO,UAAU,CAACqD,iBAAiB,CAAC;MACnDX,EAAE,EAAEjC,KAAK,CAACiC;IACd,CAAC,CAAC;IACF,IAAI,CAACjD,MAAM,EAAE;MACT;IACJ;IACAZ,WAAW,CAAC,MAAM;MACdM,KAAK,CAAC+D,KAAK,CAAC,GAAGzD,MAAM;MACrBX,GAAG,CAAC,IAAI,CAACoB,MAAM,EAAEjB,GAAG,EAAE;QAClB,GAAGiB,MAAM;QACTf;MACJ,CAAC,CAAC;MACF,IAAI,CAACsB,KAAK,GAAGhB,MAAM;MACnB,IAAI,CAACe,MAAM,GAAG,kBAAkB;IACpC,CAAC,CAAC;EACN,CAAC;EAED8C,gBAAgB,GAAG,MAAAA,CAAO7C,KAAqB,EAAE8C,OAAgB,KAAoB;IACjF,MAAMtE,GAAG,GAAGP,kBAAkB,CAAC0E,QAAQ;IACvC,MAAMlD,MAAM,GAAG,IAAI,CAACA,MAAM,CAACjB,GAAG,CAAC;IAC/B,MAAME,KAAK,GAAGe,MAAM,CAACf,KAAK,IAAI,EAAE;IAChC,MAAMgE,QAAQ,GAAGhE,KAAK,CAACqE,IAAI,CAACf,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKjC,KAAK,CAACiC,EAAE,CAAC;IACzD,IAAI,CAACS,QAAQ,EAAE;MACX;IACJ;IAEA,MAAM1D,MAAM,GAAG,MAAM,IAAI,CAACO,UAAU,CAACsD,gBAAgB,CAAC;MAClDZ,EAAE,EAAEjC,KAAK,CAACiC,EAAE;MACZa;IACJ,CAAC,CAAC;IACF,IAAI,CAAC9D,MAAM,EAAE;MACT;IACJ;IACAZ,WAAW,CAAC,MAAM;MACd,IAAI,CAACqD,qBAAqB,CAAC;QACvBC,IAAI,EAAEgB,QAAQ;QACdd,EAAE,EAAE5C;MACR,CAAC,CAAC;MACF,IAAIA,MAAM,CAACgB,KAAK,KAAK/B,kBAAkB,CAACuE,OAAO,EAAE;QAC7C,IAAI,CAAClB,cAAc,CAACrD,kBAAkB,CAACuE,OAAO,CAAC;MACnD;MACA,IAAI,CAAChB,cAAc,CAACvD,kBAAkB,CAAC0E,QAAQ,CAAC;MAChD,IAAI,CAAC3C,KAAK,GAAGhB,MAAM;MACnB,IAAI,CAACe,MAAM,GAAG,iBAAiB;IACnC,CAAC,CAAC;EACN,CAAC;EAEDiD,eAAe,GAAG,MAAAA,CAAOhD,KAAqB,EAAE8C,OAAe,KAAoB;IAC/E,MAAMtE,GAAG,GAAGP,kBAAkB,CAAC0E,QAAQ;IACvC,MAAMlD,MAAM,GAAG,IAAI,CAACA,MAAM,CAACjB,GAAG,CAAC;IAC/B,MAAME,KAAK,GAAGe,MAAM,CAACf,KAAK,IAAI,EAAE;IAChC,MAAMgE,QAAQ,GAAGhE,KAAK,CAACqE,IAAI,CAACf,IAAI,IAAIA,IAAI,CAACC,EAAE,KAAKjC,KAAK,CAACiC,EAAE,IAAID,IAAI,CAAChC,KAAK,CAAC;IACvE,IAAI,CAAC0C,QAAQ,EAAE;MACX;IACJ;IACA,MAAM1D,MAAM,GAAG,MAAM,IAAI,CAACO,UAAU,CAACyD,eAAe,CAAC;MACjDf,EAAE,EAAEjC,KAAK,CAACiC,EAAE;MACZa;IACJ,CAAC,CAAC;IACF,IAAI,CAAC9D,MAAM,EAAE;MACT;IACJ;IAEAZ,WAAW,CAAC,MAAM;MACd,IAAI,CAACqD,qBAAqB,CAAC;QACvBC,IAAI,EAAEgB,QAAQ;QACdd,EAAE,EAAE5C;MACR,CAAC,CAAC;MACF,IAAIA,MAAM,CAACgB,KAAK,KAAK/B,kBAAkB,CAACgF,QAAQ,EAAE;QAC9C,IAAI,CAACzB,cAAc,CAACvD,kBAAkB,CAAC0E,QAAQ,CAAC;MACpD;MACA,IAAI,CAAC3C,KAAK,GAAGhB,MAAM;MACnB,IAAI,CAACe,MAAM,GAAG,gBAAgB;IAClC,CAAC,CAAC;EACN,CAAC;EAEDmD,wBAAwB,GAAIlD,KAAqB,IAAW;IACxD5B,WAAW,CAAC,MAAM;MACd,IAAI,CAAC4B,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACD,MAAM,GAAG,OAAO;IACzB,CAAC,CAAC;EACN,CAAC;EAEDoD,2BAA2B,GAAInD,KAAqB,IAAW;IAC3D5B,WAAW,CAAC,MAAM;MACd,IAAI,CAAC4B,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACD,MAAM,GAAG,UAAU;IAC5B,CAAC,CAAC;EACN,CAAC;EAEDqD,0BAA0B,GAAIpD,KAAqB,IAAW;IAC1D5B,WAAW,CAAC,MAAM;MACd,IAAI,CAAC4B,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACD,MAAM,GAAG,SAAS;IAC3B,CAAC,CAAC;EACN,CAAC;EAEDsD,yBAAyB,GAAIrD,KAAqB,IAAW;IACzD5B,WAAW,CAAC,MAAM;MACd,IAAI,CAAC4B,KAAK,GAAGA,KAAK;MAClB,IAAI,CAACD,MAAM,GAAG,QAAQ;IAC1B,CAAC,CAAC;EACN,CAAC;EAEDuD,UAAU,GAAGA,CAAA,KAAY;IACrBlF,WAAW,CAAC,MAAM;MACd,IAAI,CAAC4B,KAAK,GAAG,IAAI;MACjB,IAAI,CAACD,MAAM,GAAG,IAAI;IACtB,CAAC,CAAC;EACN,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"Presenters/WorkflowStatesWidgetPresenter.js","sources":["../../src/Presenters/WorkflowStatesWidgetPresenter.ts"],"sourcesContent":["import type {\n IWorkflowStatesWidgetRepository,\n IWorkflowStatesWidgetRepositoryListResult\n} from \"~/Repositories/abstractions/WorkflowStatesWidgetRepository.js\";\nimport type {\n IWorkflowStatesWidgetPresenter,\n IWorkflowStatesWidgetPresenterViewModel,\n IWorkflowStatesWidgetPresenterViewModelValues\n} from \"./abstractions/WorkflowStatesWidgetPresenter.js\";\nimport { type IWorkflowState, WorkflowStateValue } from \"~/types.js\";\nimport { makeAutoObservable, observable, runInAction, set, toJS } from \"mobx\";\nimport type { NonEmptyArray } from \"@webiny/app/types.js\";\n\nexport interface IWorkflowStatesWidgetPresenterParams {\n repository: IWorkflowStatesWidgetRepository;\n type: \"own\" | \"requested\";\n states: NonEmptyArray<WorkflowStateValue>;\n}\n\ninterface IResultData {\n key: WorkflowStateValue;\n items: IWorkflowState[];\n totalCount: number;\n}\n\nconst mapListStatesResponse = (key: WorkflowStateValue) => {\n return (input: IWorkflowStatesWidgetRepositoryListResult): IResultData => {\n return {\n key,\n items: input.items,\n totalCount: input.totalCount\n };\n };\n};\n\nconst mapPromiseAllResponse = (\n results: IResultData[]\n): IWorkflowStatesWidgetPresenterViewModelValues => {\n return results.reduce<IWorkflowStatesWidgetPresenterViewModelValues>((output, result) => {\n output[result.key] = {\n items: result.items,\n total: result.totalCount\n };\n return output;\n }, {});\n};\n\ninterface IMoveStepBetweenStatesParams {\n from: IWorkflowState;\n to: IWorkflowState;\n}\n\nexport class WorkflowStatesWidgetPresenter implements IWorkflowStatesWidgetPresenter {\n readonly #type;\n readonly #states;\n private readonly repository;\n private dialog:\n | \"approve\"\n | \"reject\"\n | \"approve:success\"\n | \"reject:success\"\n | \"start\"\n | \"start:success\"\n | \"takeOver\"\n | \"takeOver:success\"\n | null;\n private state: IWorkflowState | null;\n private readonly values;\n\n public get vm(): IWorkflowStatesWidgetPresenterViewModel {\n return {\n type: this.#type,\n states: this.#states,\n loading: toJS(this.repository.loading),\n error: toJS(this.repository.error),\n values: toJS(this.values),\n dialogLoading: this.repository.actionLoading,\n dialogError: this.repository.actionError,\n showStartDialog: this.dialog === \"start\" && this.state ? this.state : null,\n showStartSuccessDialog:\n this.dialog === \"start:success\" && this.state ? this.state : null,\n showApproveDialog: this.dialog === \"approve\" && this.state ? this.state : null,\n showApproveSuccessDialog:\n this.dialog === \"approve:success\" && this.state ? this.state : null,\n showRejectDialog: this.dialog === \"reject\" && this.state ? this.state : null,\n showRejectSuccessDialog:\n this.dialog === \"reject:success\" && this.state ? this.state : null,\n showTakeOverDialog: this.dialog === \"takeOver\" && this.state ? this.state : null,\n showTakeOverSuccessDialog:\n this.dialog === \"takeOver:success\" && this.state ? this.state : null\n };\n }\n\n public constructor(params: IWorkflowStatesWidgetPresenterParams) {\n this.repository = params.repository;\n this.#type = params.type;\n this.#states = params.states;\n this.values = observable.object<IWorkflowStatesWidgetPresenterViewModelValues>({});\n this.dialog = null;\n this.state = null;\n\n makeAutoObservable(this);\n\n this.init();\n }\n\n private async init(): Promise<void> {\n const result = await this.load();\n\n runInAction(() => {\n for (const key in result) {\n set(this.values, key, result[key]);\n }\n });\n }\n\n private async load(): Promise<IWorkflowStatesWidgetPresenterViewModelValues> {\n if (this.#type === \"requested\") {\n return await this.initRequested();\n }\n return await this.initOwn();\n }\n\n private async initOwn() {\n return await Promise.all(\n this.#states.map(state => {\n return this.repository\n .listOwnStates({\n state,\n limit: 5\n })\n .then(mapListStatesResponse(state));\n })\n ).then(mapPromiseAllResponse);\n }\n\n private async initRequested() {\n return await Promise.all(\n this.#states.map(state => {\n return this.repository\n .listRequestedStates({\n state,\n limit: 5\n })\n .then(mapListStatesResponse(state));\n })\n ).then(mapPromiseAllResponse);\n }\n\n private increaseTotals(key: WorkflowStateValue): void {\n const value = this.values[key];\n if (!value) {\n set(this.values, key, {\n items: [],\n total: 1\n });\n return;\n }\n set(this.values, key, {\n ...value,\n total: value.total + 1\n });\n }\n\n private decreaseTotals(key: WorkflowStateValue): void {\n const value = this.values[key];\n if (!value?.total) {\n return;\n }\n\n set(this.values, key, {\n ...value,\n total: value.total - 1\n });\n }\n\n private moveStepBetweenStates(params: IMoveStepBetweenStatesParams): void {\n const { from: fromState, to: toState } = params;\n if (fromState.state === toState.state) {\n return;\n }\n const from = fromState.state;\n const to = toState.state;\n\n const fromIndex = this.values[from].items.findIndex(item => item.id === fromState.id);\n if (fromIndex === -1) {\n return;\n }\n const fromItems = Array.from(this.values[from].items);\n fromItems.splice(fromIndex, 1);\n set(this.values, from, {\n ...this.values[from],\n items: fromItems\n });\n\n const toItems = Array.from(this.values[to]?.items || []);\n toItems.unshift(toState);\n set(this.values, to, {\n total: this.values[to]?.total || 0,\n items: toItems\n });\n }\n\n startStateStep = async (state: IWorkflowState): Promise<void> => {\n const key = WorkflowStateValue.pending;\n const values = this.values[key];\n const items = values.items || [];\n const index = items.findIndex(item => item.id === state.id);\n if (index === -1) {\n return;\n }\n const original = items[index];\n const result = await this.repository.startStateStep({\n id: state.id\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.inReview) {\n this.decreaseTotals(WorkflowStateValue.pending);\n this.increaseTotals(WorkflowStateValue.inReview);\n }\n this.state = result;\n this.dialog = \"start:success\";\n });\n };\n\n takeOverStateStep = async (state: IWorkflowState): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const index = items.findIndex(item => item.id === state.id);\n if (index === -1) {\n return;\n }\n const result = await this.repository.takeOverStateStep({\n id: state.id\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n items[index] = result;\n set(this.values, key, {\n ...values,\n items\n });\n this.state = result;\n this.dialog = \"takeOver:success\";\n });\n };\n\n approveStateStep = async (state: IWorkflowState, comment?: string): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const original = items.find(item => item.id === state.id);\n if (!original) {\n return;\n }\n\n const result = await this.repository.approveStateStep({\n id: state.id,\n comment\n });\n if (!result) {\n return;\n }\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.pending) {\n this.increaseTotals(WorkflowStateValue.pending);\n }\n this.decreaseTotals(WorkflowStateValue.inReview);\n this.state = result;\n this.dialog = \"approve:success\";\n });\n };\n\n rejectStateStep = async (state: IWorkflowState, comment: string): Promise<void> => {\n const key = WorkflowStateValue.inReview;\n const values = this.values[key];\n const items = values.items || [];\n const original = items.find(item => item.id === state.id && item.state);\n if (!original) {\n return;\n }\n const result = await this.repository.rejectStateStep({\n id: state.id,\n comment\n });\n if (!result) {\n return;\n }\n\n runInAction(() => {\n this.moveStepBetweenStates({\n from: original,\n to: result\n });\n if (result.state === WorkflowStateValue.rejected) {\n this.decreaseTotals(WorkflowStateValue.inReview);\n }\n this.state = result;\n this.dialog = \"reject:success\";\n });\n };\n\n showStartStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"start\";\n });\n };\n\n showTakeOverStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"takeOver\";\n });\n };\n\n showApproveStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"approve\";\n });\n };\n\n showRejectStateStepDialog = (state: IWorkflowState): void => {\n runInAction(() => {\n this.state = state;\n this.dialog = \"reject\";\n });\n };\n\n hideDialog = (): void => {\n runInAction(() => {\n this.state = null;\n this.dialog = null;\n });\n };\n}\n"],"names":["mapListStatesResponse","key","input","mapPromiseAllResponse","results","output","result","WorkflowStatesWidgetPresenter","toJS","params","state","WorkflowStateValue","values","items","index","item","original","runInAction","set","comment","observable","makeAutoObservable","Promise","value","fromState","toState","from","to","fromIndex","fromItems","Array","toItems"],"mappings":"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"}