@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.
- package/Components/AdminConfig/WorkflowsMenu.js +18 -19
- package/Components/AdminConfig/WorkflowsMenu.js.map +1 -1
- package/Components/App/ContentReviews.js +24 -25
- package/Components/App/ContentReviews.js.map +1 -1
- package/Components/App/WorkflowsAdminApp.js +5 -10
- package/Components/App/WorkflowsAdminApp.js.map +1 -1
- package/Components/App/index.js +0 -2
- package/Components/Common/Options/OptionItem/Approve.js +16 -20
- package/Components/Common/Options/OptionItem/Approve.js.map +1 -1
- package/Components/Common/Options/OptionItem/OpenInNewWindow.js +3 -6
- package/Components/Common/Options/OptionItem/OpenInNewWindow.js.map +1 -1
- package/Components/Common/Options/OptionItem/Reject.js +16 -20
- package/Components/Common/Options/OptionItem/Reject.js.map +1 -1
- package/Components/Common/Options/OptionItem/Start.js +15 -19
- package/Components/Common/Options/OptionItem/Start.js.map +1 -1
- package/Components/Common/Options/OptionItem/TakeOver.js +15 -19
- package/Components/Common/Options/OptionItem/TakeOver.js.map +1 -1
- package/Components/Common/Options/WorkflowStateOptions.js +57 -58
- package/Components/Common/Options/WorkflowStateOptions.js.map +1 -1
- package/Components/Common/Options/index.js +0 -2
- package/Components/Common/TagState.js +9 -10
- package/Components/Common/TagState.js.map +1 -1
- package/Components/Common/TagStep.js +9 -10
- package/Components/Common/TagStep.js.map +1 -1
- package/Components/Common/YouCanTrackAllContentReviewsHere.js +8 -9
- package/Components/Common/YouCanTrackAllContentReviewsHere.js.map +1 -1
- package/Components/Common/index.js +0 -2
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarApproved.js +15 -23
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarApproved.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarCancelReview.js +15 -23
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarCancelReview.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarError.js +14 -23
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarError.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarLoading.js +10 -18
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarLoading.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRejected.js +22 -30
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRejected.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRequestReview.js +13 -21
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarRequestReview.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarReview.js +30 -51
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarReview.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarStartReview.js +17 -25
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarStartReview.js.map +1 -1
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarWorkflow.js +7 -15
- package/Components/WorkflowState/Bar/Bars/WorkflowStateBarWorkflow.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/ApproveDialog.js +13 -16
- package/Components/WorkflowState/Bar/Dialogs/ApproveDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/ApproveSuccessDialog.js +11 -14
- package/Components/WorkflowState/Bar/Dialogs/ApproveSuccessDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/CancelReviewDialog.js +10 -11
- package/Components/WorkflowState/Bar/Dialogs/CancelReviewDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/CommentDialog.js +11 -14
- package/Components/WorkflowState/Bar/Dialogs/CommentDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/RejectDialog.js +13 -16
- package/Components/WorkflowState/Bar/Dialogs/RejectDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/RejectSuccessDialog.js +11 -14
- package/Components/WorkflowState/Bar/Dialogs/RejectSuccessDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/RequestReviewDialog.js +10 -11
- package/Components/WorkflowState/Bar/Dialogs/RequestReviewDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/StartDialog.js +13 -16
- package/Components/WorkflowState/Bar/Dialogs/StartDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/StartSuccessDialog.js +11 -14
- package/Components/WorkflowState/Bar/Dialogs/StartSuccessDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/TakeOverDialog.js +15 -18
- package/Components/WorkflowState/Bar/Dialogs/TakeOverDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/TakeOverSuccessDialog.js +11 -14
- package/Components/WorkflowState/Bar/Dialogs/TakeOverSuccessDialog.js.map +1 -1
- package/Components/WorkflowState/Bar/Dialogs/index.js +0 -2
- package/Components/WorkflowState/Bar/WorkflowStateBar.js +13 -20
- package/Components/WorkflowState/Bar/WorkflowStateBar.js.map +1 -1
- package/Components/WorkflowState/Bar/WorkflowStateBarComponent.js +10 -18
- package/Components/WorkflowState/Bar/WorkflowStateBarComponent.js.map +1 -1
- package/Components/WorkflowState/Bar/WorkflowStateBarDialogs.js +51 -52
- package/Components/WorkflowState/Bar/WorkflowStateBarDialogs.js.map +1 -1
- package/Components/WorkflowState/Bar/index.js +0 -2
- package/Components/WorkflowState/Overlay/WorkflowStateOverlay.js +7 -11
- package/Components/WorkflowState/Overlay/WorkflowStateOverlay.js.map +1 -1
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltip.js +32 -40
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltip.js.map +1 -1
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContent.js +30 -36
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContent.js.map +1 -1
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContentComment.js +17 -21
- package/Components/WorkflowState/Tooltip/WorkflowStateTooltipContentComment.js.map +1 -1
- package/Components/WorkflowState/WorkflowStateProvider.d.ts +1 -0
- package/Components/WorkflowState/WorkflowStateProvider.js +41 -40
- package/Components/WorkflowState/WorkflowStateProvider.js.map +1 -1
- package/Components/WorkflowState/index.js +0 -2
- package/Components/WorkflowState/useWorkflowState.js +5 -6
- package/Components/WorkflowState/useWorkflowState.js.map +1 -1
- package/Components/WorkflowStateDialogs/ApproveDialog.js +43 -44
- package/Components/WorkflowStateDialogs/ApproveDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/ApproveSuccessDialog.js +27 -29
- package/Components/WorkflowStateDialogs/ApproveSuccessDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/CancelReviewDialog.js +29 -32
- package/Components/WorkflowStateDialogs/CancelReviewDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/CommentDialog.js +34 -40
- package/Components/WorkflowStateDialogs/CommentDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/RejectDialog.js +73 -76
- package/Components/WorkflowStateDialogs/RejectDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/RejectSuccessDialog.js +25 -27
- package/Components/WorkflowStateDialogs/RejectSuccessDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/RequestReviewDialog.js +29 -32
- package/Components/WorkflowStateDialogs/RequestReviewDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/StartDialog.js +29 -33
- package/Components/WorkflowStateDialogs/StartDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/StartSuccessDialog.js +25 -27
- package/Components/WorkflowStateDialogs/StartSuccessDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/TakeOverDialog.js +29 -34
- package/Components/WorkflowStateDialogs/TakeOverDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/TakeOverSuccessDialog.js +25 -27
- package/Components/WorkflowStateDialogs/TakeOverSuccessDialog.js.map +1 -1
- package/Components/WorkflowStateDialogs/index.js +0 -2
- package/Components/WorkflowStateList/List/WorkflowStateList.js +80 -87
- package/Components/WorkflowStateList/List/WorkflowStateList.js.map +1 -1
- package/Components/WorkflowStateList/List/WorkflowStateListFilters.js +67 -61
- package/Components/WorkflowStateList/List/WorkflowStateListFilters.js.map +1 -1
- package/Components/WorkflowStateList/List/WorkflowStateListOptions.js +7 -8
- package/Components/WorkflowStateList/List/WorkflowStateListOptions.js.map +1 -1
- package/Components/WorkflowStateList/List/WorkflowStateListView.js +18 -21
- package/Components/WorkflowStateList/List/WorkflowStateListView.js.map +1 -1
- package/Components/WorkflowStateList/List/index.js +0 -2
- package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlay.js +24 -27
- package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlay.js.map +1 -1
- package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlayView.js +18 -25
- package/Components/WorkflowStateList/Overlay/WorkflowStateListAppOverlayView.js.map +1 -1
- package/Components/WorkflowStateList/Overlay/index.js +0 -2
- package/Components/WorkflowStateList/Provider/WorkflowStateListProvider.js +30 -31
- package/Components/WorkflowStateList/Provider/WorkflowStateListProvider.js.map +1 -1
- package/Components/WorkflowStateList/Provider/index.js +0 -2
- package/Components/WorkflowStateList/hooks/index.js +0 -2
- package/Components/WorkflowStateList/hooks/useWorkflowStateList.js +5 -6
- package/Components/WorkflowStateList/hooks/useWorkflowStateList.js.map +1 -1
- package/Components/WorkflowStateList/index.js +0 -2
- package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCard.js +42 -45
- package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCard.js.map +1 -1
- package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCardTabs.js +43 -53
- package/Components/WorkflowStatesWidget/Card/WorkflowStatesWidgetCardTabs.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/ApproveDialog.js +18 -21
- package/Components/WorkflowStatesWidget/Dialogs/ApproveDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/ApproveSuccessDialog.js +10 -13
- package/Components/WorkflowStatesWidget/Dialogs/ApproveSuccessDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/RejectDialog.js +18 -21
- package/Components/WorkflowStatesWidget/Dialogs/RejectDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/RejectSuccessDialog.js +10 -13
- package/Components/WorkflowStatesWidget/Dialogs/RejectSuccessDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/StartDialog.js +18 -21
- package/Components/WorkflowStatesWidget/Dialogs/StartDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/StartSuccessDialog.js +10 -13
- package/Components/WorkflowStatesWidget/Dialogs/StartSuccessDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/TakeOverDialog.js +21 -24
- package/Components/WorkflowStatesWidget/Dialogs/TakeOverDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/TakeOverSuccessDialog.js +10 -13
- package/Components/WorkflowStatesWidget/Dialogs/TakeOverSuccessDialog.js.map +1 -1
- package/Components/WorkflowStatesWidget/Dialogs/index.js +0 -2
- package/Components/WorkflowStatesWidget/List/WorkflowStateList.js +10 -13
- package/Components/WorkflowStatesWidget/List/WorkflowStateList.js.map +1 -1
- package/Components/WorkflowStatesWidget/List/WorkflowStateRow.js +16 -17
- package/Components/WorkflowStatesWidget/List/WorkflowStateRow.js.map +1 -1
- package/Components/WorkflowStatesWidget/List/WorkflowStateRowOptions.js +36 -27
- package/Components/WorkflowStatesWidget/List/WorkflowStateRowOptions.js.map +1 -1
- package/Components/WorkflowStatesWidget/Provider/WorkflowStatesProvider.js +24 -28
- package/Components/WorkflowStatesWidget/Provider/WorkflowStatesProvider.js.map +1 -1
- package/Components/WorkflowStatesWidget/Row/WorkflowStateRowDescription.js +12 -17
- package/Components/WorkflowStatesWidget/Row/WorkflowStateRowDescription.js.map +1 -1
- package/Components/WorkflowStatesWidget/WorkflowStatesOwnWidget.js +22 -20
- package/Components/WorkflowStatesWidget/WorkflowStatesOwnWidget.js.map +1 -1
- package/Components/WorkflowStatesWidget/WorkflowStatesRequestedWidget.js +20 -20
- package/Components/WorkflowStatesWidget/WorkflowStatesRequestedWidget.js.map +1 -1
- package/Components/WorkflowStatesWidget/hooks/useWorkflowStatesWidget.js +5 -6
- package/Components/WorkflowStatesWidget/hooks/useWorkflowStatesWidget.js.map +1 -1
- package/Components/WorkflowStatesWidget/index.js +0 -2
- package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js +34 -40
- package/Components/WorkflowsEditor/DataList/WorkflowsDataList.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Error/FormattedError.js +28 -33
- package/Components/WorkflowsEditor/Editor/Error/FormattedError.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Error/WorkflowError.js +28 -35
- package/Components/WorkflowsEditor/Editor/Error/WorkflowError.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormColor.js +11 -17
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormColor.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormDescription.js +8 -9
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormDescription.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormNotifications.js +27 -37
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormNotifications.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTeams.js +21 -31
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTeams.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTitle.js +9 -10
- package/Components/WorkflowsEditor/Editor/Step/Form/StepFormTitle.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/InactiveStep.js +14 -15
- package/Components/WorkflowsEditor/Editor/Step/InactiveStep.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/NewStep.js +52 -51
- package/Components/WorkflowsEditor/Editor/Step/NewStep.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Step/RemoveStep.js +26 -32
- package/Components/WorkflowsEditor/Editor/Step/Step/RemoveStep.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/Step/Step.js +119 -134
- package/Components/WorkflowsEditor/Editor/Step/Step.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/WorkflowEditor.js +37 -38
- package/Components/WorkflowsEditor/Editor/WorkflowEditor.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/WorkflowEditorSteps.js +34 -39
- package/Components/WorkflowsEditor/Editor/WorkflowEditorSteps.js.map +1 -1
- package/Components/WorkflowsEditor/Editor/WorkflowEditorView.js +17 -23
- package/Components/WorkflowsEditor/Editor/WorkflowEditorView.js.map +1 -1
- package/Components/WorkflowsEditor/WorkflowsEditor.js +3 -4
- package/Components/WorkflowsEditor/WorkflowsEditor.js.map +1 -1
- package/Components/WorkflowsEditor/WorkflowsEditorBase.js +26 -33
- package/Components/WorkflowsEditor/WorkflowsEditorBase.js.map +1 -1
- package/Components/WorkflowsEditor/index.js +0 -2
- package/Components/WorkflowsPermissions/HasWorkflowsEditorPermission.js +6 -6
- package/Components/WorkflowsPermissions/HasWorkflowsEditorPermission.js.map +1 -1
- package/Components/WorkflowsPermissions/SecurityPermissions.js +11 -14
- package/Components/WorkflowsPermissions/SecurityPermissions.js.map +1 -1
- package/Components/WorkflowsPermissions/constants.js +2 -1
- package/Components/WorkflowsPermissions/constants.js.map +1 -1
- package/Components/WorkflowsPermissions/index.js +0 -2
- package/Components/WorkflowsPermissions/useWorkflowsPermission.js +13 -22
- package/Components/WorkflowsPermissions/useWorkflowsPermission.js.map +1 -1
- package/Components/helpers/index.js +0 -2
- package/Components/helpers/stateName.js +14 -13
- package/Components/helpers/stateName.js.map +1 -1
- package/Components/helpers/tagStateVariant.js +14 -13
- package/Components/helpers/tagStateVariant.js.map +1 -1
- package/Gateways/WorkflowNotificationTypesGateway.js +24 -23
- package/Gateways/WorkflowNotificationTypesGateway.js.map +1 -1
- package/Gateways/WorkflowStateGateway.js +163 -170
- package/Gateways/WorkflowStateGateway.js.map +1 -1
- package/Gateways/WorkflowStateListGateway.js +87 -80
- package/Gateways/WorkflowStateListGateway.js.map +1 -1
- package/Gateways/WorkflowStatesWidgetGateway.js +124 -123
- package/Gateways/WorkflowStatesWidgetGateway.js.map +1 -1
- package/Gateways/WorkflowsGateway.js +70 -67
- package/Gateways/WorkflowsGateway.js.map +1 -1
- package/Gateways/abstraction/WorkflowNotificationTypesGateway.js +0 -3
- package/Gateways/abstraction/WorkflowStateGateway.js +0 -3
- package/Gateways/abstraction/WorkflowStateListGateway.js +0 -3
- package/Gateways/abstraction/WorkflowStatesWidgetGateway.js +0 -3
- package/Gateways/abstraction/WorkflowsGateway.js +0 -3
- package/Gateways/graphql/workflowNotifications.js +5 -4
- package/Gateways/graphql/workflowNotifications.js.map +1 -1
- package/Gateways/graphql/workflowStates.js +15 -14
- package/Gateways/graphql/workflowStates.js.map +1 -1
- package/Gateways/graphql/workflows.js +8 -7
- package/Gateways/graphql/workflows.js.map +1 -1
- package/Gateways/index.js +0 -2
- package/Models/WorkflowModel.js +61 -70
- package/Models/WorkflowModel.js.map +1 -1
- package/Models/WorkflowStateModel.js +88 -107
- package/Models/WorkflowStateModel.js.map +1 -1
- package/Models/WorkflowStateStepModel.js +41 -40
- package/Models/WorkflowStateStepModel.js.map +1 -1
- package/Models/WorkflowStepModel.js +26 -25
- package/Models/WorkflowStepModel.js.map +1 -1
- package/Models/abstractions/WorkflowModel.js +0 -3
- package/Models/abstractions/WorkflowStateModel.js +0 -3
- package/Models/abstractions/WorkflowStateStepModel.js +0 -3
- package/Models/abstractions/WorkflowStepModel.js +0 -3
- package/Models/index.js +0 -2
- package/Presenters/WorkflowStateListPresenter.js +45 -49
- package/Presenters/WorkflowStateListPresenter.js.map +1 -1
- package/Presenters/WorkflowStatePresenter.d.ts +2 -0
- package/Presenters/WorkflowStatePresenter.js +192 -214
- package/Presenters/WorkflowStatePresenter.js.map +1 -1
- package/Presenters/WorkflowStatesWidgetPresenter.js +214 -259
- package/Presenters/WorkflowStatesWidgetPresenter.js.map +1 -1
- package/Presenters/WorkflowsPresenter.js +101 -103
- package/Presenters/WorkflowsPresenter.js.map +1 -1
- package/Presenters/abstractions/WorkflowStateListPresenter.js +0 -3
- package/Presenters/abstractions/WorkflowStatePresenter.js +0 -3
- package/Presenters/abstractions/WorkflowStatesWidgetPresenter.js +0 -3
- package/Presenters/abstractions/WorkflowsPresenter.js +0 -3
- package/Presenters/index.js +0 -2
- package/Repositories/WorkflowNotificationTypesRepository.js +26 -25
- package/Repositories/WorkflowNotificationTypesRepository.js.map +1 -1
- package/Repositories/WorkflowStateListRepository.js +65 -69
- package/Repositories/WorkflowStateListRepository.js.map +1 -1
- package/Repositories/WorkflowStateRepository.js +121 -127
- package/Repositories/WorkflowStateRepository.js.map +1 -1
- package/Repositories/WorkflowStatesWidgetRepository.js +120 -131
- package/Repositories/WorkflowStatesWidgetRepository.js.map +1 -1
- package/Repositories/WorkflowsRepository.js +71 -80
- package/Repositories/WorkflowsRepository.js.map +1 -1
- package/Repositories/abstractions/WorkflowNotificationTypesRepository.js +0 -3
- package/Repositories/abstractions/WorkflowStateListRepository.js +0 -3
- package/Repositories/abstractions/WorkflowStateRepository.js +0 -3
- package/Repositories/abstractions/WorkflowStatesWidgetRepository.js +0 -3
- package/Repositories/abstractions/WorkflowsRepository.js +0 -3
- package/Repositories/index.js +0 -2
- package/domain/permissionsSchema.js +6 -5
- package/domain/permissionsSchema.js.map +1 -1
- package/features/permissions/abstractions.js +2 -1
- package/features/permissions/abstractions.js.map +1 -1
- package/features/permissions/feature.js +2 -1
- package/features/permissions/feature.js.map +1 -1
- package/hooks/canUseWorkflows.js +7 -6
- package/hooks/canUseWorkflows.js.map +1 -1
- package/index.js +32 -33
- package/index.js.map +1 -1
- package/package.json +12 -13
- package/routes.js +15 -13
- package/routes.js.map +1 -1
- package/types.js +11 -15
- package/types.js.map +1 -1
- package/Components/App/index.js.map +0 -1
- package/Components/Common/Options/index.js.map +0 -1
- package/Components/Common/index.js.map +0 -1
- package/Components/WorkflowState/Bar/Dialogs/index.js.map +0 -1
- package/Components/WorkflowState/Bar/index.js.map +0 -1
- package/Components/WorkflowState/index.js.map +0 -1
- package/Components/WorkflowStateDialogs/index.js.map +0 -1
- package/Components/WorkflowStateList/List/index.js.map +0 -1
- package/Components/WorkflowStateList/Overlay/index.js.map +0 -1
- package/Components/WorkflowStateList/Provider/index.js.map +0 -1
- package/Components/WorkflowStateList/hooks/index.js.map +0 -1
- package/Components/WorkflowStateList/index.js.map +0 -1
- package/Components/WorkflowStatesWidget/Dialogs/index.js.map +0 -1
- package/Components/WorkflowStatesWidget/index.js.map +0 -1
- package/Components/WorkflowsEditor/index.js.map +0 -1
- package/Components/WorkflowsPermissions/index.js.map +0 -1
- package/Components/helpers/index.js.map +0 -1
- package/Gateways/abstraction/WorkflowNotificationTypesGateway.js.map +0 -1
- package/Gateways/abstraction/WorkflowStateGateway.js.map +0 -1
- package/Gateways/abstraction/WorkflowStateListGateway.js.map +0 -1
- package/Gateways/abstraction/WorkflowStatesWidgetGateway.js.map +0 -1
- package/Gateways/abstraction/WorkflowsGateway.js.map +0 -1
- package/Gateways/index.js.map +0 -1
- package/Models/abstractions/WorkflowModel.js.map +0 -1
- package/Models/abstractions/WorkflowStateModel.js.map +0 -1
- package/Models/abstractions/WorkflowStateStepModel.js.map +0 -1
- package/Models/abstractions/WorkflowStepModel.js.map +0 -1
- package/Models/index.js.map +0 -1
- package/Presenters/abstractions/WorkflowStateListPresenter.js.map +0 -1
- package/Presenters/abstractions/WorkflowStatePresenter.js.map +0 -1
- package/Presenters/abstractions/WorkflowStatesWidgetPresenter.js.map +0 -1
- package/Presenters/abstractions/WorkflowsPresenter.js.map +0 -1
- package/Presenters/index.js.map +0 -1
- package/Repositories/abstractions/WorkflowNotificationTypesRepository.js.map +0 -1
- package/Repositories/abstractions/WorkflowStateListRepository.js.map +0 -1
- package/Repositories/abstractions/WorkflowStateRepository.js.map +0 -1
- package/Repositories/abstractions/WorkflowStatesWidgetRepository.js.map +0 -1
- package/Repositories/abstractions/WorkflowsRepository.js.map +0 -1
- 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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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":"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","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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"}
|