@reltio/components 1.4.2180 → 1.4.2182
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/ActionButton/ActionButton.js +1 -1
- package/CommentDialog/CommentDialog.d.ts +14 -0
- package/CommentDialog/CommentDialog.js +43 -0
- package/CommentDialog/CommentDialog.module.css.js +9 -0
- package/cjs/ActionButton/ActionButton.js +1 -1
- package/cjs/CommentDialog/CommentDialog.d.ts +14 -0
- package/cjs/CommentDialog/CommentDialog.js +73 -0
- package/cjs/CommentDialog/CommentDialog.module.css.js +9 -0
- package/cjs/contexts/CommentDialogContext/index.d.ts +16 -0
- package/cjs/contexts/CommentDialogContext/index.js +68 -0
- package/cjs/contexts/WorkflowDefinitionsContext/index.d.ts +11 -0
- package/cjs/contexts/WorkflowDefinitionsContext/index.js +25 -0
- package/cjs/features/workflow/AddWorkflowDialog/AddWorkflowDialog.js +15 -11
- package/cjs/features/workflow/AddWorkflowDialog/AddWorkflowDialog.spec.js +10 -9
- package/cjs/features/workflow/AddWorkflowDialog/styles.d.ts +1 -1
- package/cjs/features/workflow/AddWorkflowDialog/styles.js +11 -4
- package/cjs/features/workflow/ReassignButton/components/ReassignDialog/styles.d.ts +1 -1
- package/cjs/features/workflow/TaskActionButtons/TaskActionButtons.spec.js +54 -1
- package/cjs/features/workflow/WorkflowTaskCard/WorkflowTaskCard.test.js +3 -1
- package/cjs/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +3 -1
- package/cjs/features/workflow/WorkflowTaskCard/components/GenericWorkflowTaskCard/GenericWorkflowTaskCard.spec.js +9 -7
- package/cjs/features/workflow/WorkflowTaskCard/components/PotentialMatchTaskCard/PotentialMatchTaskCard.spec.js +3 -1
- package/cjs/features/workflow/helpers/common.d.ts +2 -1
- package/cjs/features/workflow/helpers/common.js +3 -1
- package/cjs/features/workflow/hooks/useWorkflowActions.js +82 -22
- package/cjs/features/workflow/hooks/useWorkflowDefinitions.d.ts +7 -2
- package/cjs/features/workflow/hooks/useWorkflowDefinitions.js +20 -7
- package/cjs/features/workflow/index.d.ts +1 -0
- package/cjs/features/workflow/index.js +4 -1
- package/cjs/hooks/useRequestDCRReview/useRequestDCRReview.js +88 -17
- package/contexts/CommentDialogContext/index.d.ts +16 -0
- package/contexts/CommentDialogContext/index.js +40 -0
- package/contexts/WorkflowDefinitionsContext/index.d.ts +11 -0
- package/contexts/WorkflowDefinitionsContext/index.js +18 -0
- package/features/workflow/AddWorkflowDialog/AddWorkflowDialog.js +15 -11
- package/features/workflow/AddWorkflowDialog/AddWorkflowDialog.spec.js +10 -9
- package/features/workflow/AddWorkflowDialog/styles.d.ts +1 -1
- package/features/workflow/AddWorkflowDialog/styles.js +11 -4
- package/features/workflow/ReassignButton/components/ReassignDialog/styles.d.ts +1 -1
- package/features/workflow/TaskActionButtons/TaskActionButtons.spec.js +55 -2
- package/features/workflow/WorkflowTaskCard/WorkflowTaskCard.test.js +3 -1
- package/features/workflow/WorkflowTaskCard/components/DataChangeRequestTaskCard/DataChangeRequestTaskCard.spec.js +3 -1
- package/features/workflow/WorkflowTaskCard/components/GenericWorkflowTaskCard/GenericWorkflowTaskCard.spec.js +9 -7
- package/features/workflow/WorkflowTaskCard/components/PotentialMatchTaskCard/PotentialMatchTaskCard.spec.js +3 -1
- package/features/workflow/helpers/common.d.ts +2 -1
- package/features/workflow/helpers/common.js +2 -1
- package/features/workflow/hooks/useWorkflowActions.js +82 -22
- package/features/workflow/hooks/useWorkflowDefinitions.d.ts +7 -2
- package/features/workflow/hooks/useWorkflowDefinitions.js +22 -9
- package/features/workflow/index.d.ts +1 -0
- package/features/workflow/index.js +2 -0
- package/hooks/useRequestDCRReview/useRequestDCRReview.js +90 -19
- package/package.json +2 -2
|
@@ -72,6 +72,7 @@ var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
|
72
72
|
var constants_1 = require("../../../../../constants");
|
|
73
73
|
var MdmModuleContext_1 = require("../../../../../contexts/MdmModuleContext");
|
|
74
74
|
var WorkflowTasksContext_1 = require("../../../../../contexts/WorkflowTasksContext");
|
|
75
|
+
var CommentDialogContext_1 = require("../../../../../contexts/CommentDialogContext");
|
|
75
76
|
var ErrorPopup_1 = require("../../../../../ErrorPopup");
|
|
76
77
|
var task_test_data_1 = require("./task.test-data");
|
|
77
78
|
var GenericWorkflowTaskCard_1 = require("./GenericWorkflowTaskCard");
|
|
@@ -111,10 +112,11 @@ var setUp = function (_a) {
|
|
|
111
112
|
return __assign(__assign({}, (0, react_2.render)(react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues, actions: { errorSet: errorSet } },
|
|
112
113
|
react_1.default.createElement(styles_2.ThemeProvider, { theme: (0, styles_1.createTheme)(constants_1.theme) },
|
|
113
114
|
react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment },
|
|
114
|
-
react_1.default.createElement(
|
|
115
|
-
react_1.default.createElement(
|
|
116
|
-
react_1.default.createElement(
|
|
117
|
-
|
|
115
|
+
react_1.default.createElement(CommentDialogContext_1.CommentDialogProvider, null,
|
|
116
|
+
react_1.default.createElement(WorkflowTasksContext_1.WorkflowTasksContext.Provider, { value: workflowTaskContextValue },
|
|
117
|
+
react_1.default.createElement(GenericWorkflowTaskCard_1.GenericWorkflowTaskCard, { task: task },
|
|
118
|
+
react_1.default.createElement("div", { className: "someChildren" }, "some children")),
|
|
119
|
+
react_1.default.createElement(ErrorPopup_1.ErrorPopup, { showErrorFromStore: true })))))))), { user: user });
|
|
118
120
|
};
|
|
119
121
|
var checkAlwaysVisibleElements = function (task) {
|
|
120
122
|
var processDefinitionDisplayName = task.processDefinitionDisplayName, createdBy = task.createdBy, createTime = task.createTime, dueDate = task.dueDate, displayName = task.displayName;
|
|
@@ -305,7 +307,7 @@ describe('GenericWorkflowTaskCard tests', function () {
|
|
|
305
307
|
tenant: tenant.id,
|
|
306
308
|
taskId: defaultTask.taskId,
|
|
307
309
|
action: defaultTask.possibleActions[1].action,
|
|
308
|
-
processInstanceComment:
|
|
310
|
+
processInstanceComment: null
|
|
309
311
|
});
|
|
310
312
|
expect(onActionSuccess).toHaveBeenCalledWith(defaultTask.possibleActions[1].action);
|
|
311
313
|
return [2 /*return*/];
|
|
@@ -330,7 +332,7 @@ describe('GenericWorkflowTaskCard tests', function () {
|
|
|
330
332
|
tenant: tenant.id,
|
|
331
333
|
taskId: defaultTask.taskId,
|
|
332
334
|
action: defaultTask.possibleActions[1].action,
|
|
333
|
-
processInstanceComment:
|
|
335
|
+
processInstanceComment: null
|
|
334
336
|
});
|
|
335
337
|
expect(onActionSuccess).toHaveBeenCalledWith(defaultTask.possibleActions[1].action);
|
|
336
338
|
return [2 /*return*/];
|
|
@@ -375,7 +377,7 @@ describe('GenericWorkflowTaskCard tests', function () {
|
|
|
375
377
|
tenant: tenant.id,
|
|
376
378
|
taskId: defaultTask.taskId,
|
|
377
379
|
action: defaultTask.possibleActions[1].action,
|
|
378
|
-
processInstanceComment:
|
|
380
|
+
processInstanceComment: null
|
|
379
381
|
});
|
|
380
382
|
expect(onActionSuccess).not.toHaveBeenCalled();
|
|
381
383
|
expect(react_2.screen.getByText('Error')).toBeInTheDocument();
|
|
@@ -57,6 +57,7 @@ var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
|
57
57
|
var LocalizationProvider_1 = require("@mui/x-date-pickers/LocalizationProvider");
|
|
58
58
|
var AdapterMoment_1 = require("@mui/x-date-pickers/AdapterMoment");
|
|
59
59
|
var MdmModuleContext_1 = require("../../../../../contexts/MdmModuleContext");
|
|
60
|
+
var CommentDialogContext_1 = require("../../../../../contexts/CommentDialogContext");
|
|
60
61
|
var PotentialMatchTaskCard_1 = require("./PotentialMatchTaskCard");
|
|
61
62
|
describe('PotentialMatchTaskCard tests', function () {
|
|
62
63
|
var mdmValues = {
|
|
@@ -109,7 +110,8 @@ describe('PotentialMatchTaskCard tests', function () {
|
|
|
109
110
|
var Providers = function (_a) {
|
|
110
111
|
var children = _a.children;
|
|
111
112
|
return (react_1.default.createElement(LocalizationProvider_1.LocalizationProvider, { dateAdapter: AdapterMoment_1.AdapterMoment },
|
|
112
|
-
react_1.default.createElement(
|
|
113
|
+
react_1.default.createElement(CommentDialogContext_1.CommentDialogProvider, null,
|
|
114
|
+
react_1.default.createElement(MdmModuleContext_1.MdmModuleProvider, { values: mdmValues }, children))));
|
|
113
115
|
};
|
|
114
116
|
return __assign({ user: user }, (0, react_2.render)(react_1.default.createElement(PotentialMatchTaskCard_1.PotentialMatchTaskCard, __assign({}, defaultProps, props)), { wrapper: Providers }));
|
|
115
117
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AttributeType, DCRAttributeValue, DCRObjectsInfo, DCROperationTypes, DCRValue, WorkflowTaskData } from '@reltio/mdm-sdk';
|
|
1
|
+
import { AttributeType, DCRAttributeValue, DCRObjectsInfo, DCROperationTypes, DCRValue, WorkflowTaskData, WorkflowDefinition } from '@reltio/mdm-sdk';
|
|
2
2
|
export declare const getOperationType: (type: string, oldValue?: DCRAttributeValue) => DCROperationTypes;
|
|
3
3
|
export declare const getOperationLabel: (operation: DCROperationTypes) => string;
|
|
4
4
|
export declare const getAttributeDescription: (attrType: AttributeType, value: DCRAttributeValue, currentEntityUri: string, objectsInfo?: DCRObjectsInfo) => {
|
|
@@ -11,3 +11,4 @@ export declare const getDCRUri: (objectUris?: string[]) => string;
|
|
|
11
11
|
export declare const getDCRId: (objectUris?: string[]) => string;
|
|
12
12
|
export declare const isOpenTask: (isOpen: WorkflowTaskData["isOpen"]) => boolean;
|
|
13
13
|
export declare const isRequestedTask: (processTypes: string[], assignee: string) => (task: WorkflowTaskData) => boolean;
|
|
14
|
+
export declare const findWorkflowDefinitionByType: (definitions: WorkflowDefinition[], type: string) => WorkflowDefinition | undefined;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.isRequestedTask = exports.isOpenTask = exports.getDCRId = exports.getDCRUri = exports.getSuggestionsCount = exports.getDataTypeDefinition = exports.getAttributeDescription = exports.getOperationLabel = exports.getOperationType = void 0;
|
|
6
|
+
exports.findWorkflowDefinitionByType = exports.isRequestedTask = exports.isOpenTask = exports.getDCRId = exports.getDCRUri = exports.getSuggestionsCount = exports.getDataTypeDefinition = exports.getAttributeDescription = exports.getOperationLabel = exports.getOperationType = void 0;
|
|
7
7
|
var ramda_1 = require("ramda");
|
|
8
8
|
var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
9
9
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
@@ -80,3 +80,5 @@ var isRequestedTask = function (processTypes, assignee) { return function (task)
|
|
|
80
80
|
return (!processTypes || processTypes.includes(task.processType)) && (!assignee || assignee === task.assignee);
|
|
81
81
|
}; };
|
|
82
82
|
exports.isRequestedTask = isRequestedTask;
|
|
83
|
+
var findWorkflowDefinitionByType = function (definitions, type) { return definitions.find((0, ramda_1.propEq)('type', type)); };
|
|
84
|
+
exports.findWorkflowDefinitionByType = findWorkflowDefinitionByType;
|
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.useWorkflowActions = void 0;
|
|
4
40
|
var react_1 = require("react");
|
|
@@ -7,6 +43,7 @@ var errors_1 = require("../helpers/errors");
|
|
|
7
43
|
var common_1 = require("../helpers/common");
|
|
8
44
|
var WorkflowTasksContext_1 = require("../../../contexts/WorkflowTasksContext");
|
|
9
45
|
var MdmModuleContext_1 = require("../../../contexts/MdmModuleContext");
|
|
46
|
+
var CommentDialogContext_1 = require("../../../contexts/CommentDialogContext");
|
|
10
47
|
var useWorkflowActions = function (task, onActionSuccess) {
|
|
11
48
|
var _a = task !== null && task !== void 0 ? task : {}, possibleActions = _a.possibleActions, assignee = _a.assignee, taskId = _a.taskId, isOpen = _a.isOpen;
|
|
12
49
|
var workflowTasks = (0, react_1.useContext)(WorkflowTasksContext_1.WorkflowTasksContext);
|
|
@@ -14,34 +51,57 @@ var useWorkflowActions = function (task, onActionSuccess) {
|
|
|
14
51
|
var environment = (0, MdmModuleContext_1.useMdmWorkflowEnvironmentUrl)();
|
|
15
52
|
var tenant = (0, MdmModuleContext_1.useMdmTenant)();
|
|
16
53
|
var username = (0, MdmModuleContext_1.useMdmUsername)();
|
|
54
|
+
var showCommentDialog = (0, CommentDialogContext_1.useCommentDialog)();
|
|
17
55
|
var _b = (0, react_1.useState)(false), actionRequestIsInProgress = _b[0], setActionRequestIsInProgress = _b[1];
|
|
18
56
|
var handleActionSuccess = onActionSuccess !== null && onActionSuccess !== void 0 ? onActionSuccess : workflowTasks === null || workflowTasks === void 0 ? void 0 : workflowTasks.onActionSuccess;
|
|
19
|
-
var performTaskAction = (0, react_1.useCallback)(function (action
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
57
|
+
var performTaskAction = (0, react_1.useCallback)(function (action, commentRequired) {
|
|
58
|
+
return function (comment) { return __awaiter(void 0, void 0, void 0, function () {
|
|
59
|
+
var processInstanceComment;
|
|
60
|
+
return __generator(this, function (_a) {
|
|
61
|
+
switch (_a.label) {
|
|
62
|
+
case 0:
|
|
63
|
+
if (!(workflowPath && taskId)) return [3 /*break*/, 3];
|
|
64
|
+
setActionRequestIsInProgress(true);
|
|
65
|
+
processInstanceComment = typeof comment === 'string' && comment.length ? comment : null;
|
|
66
|
+
if (!(commentRequired && !processInstanceComment)) return [3 /*break*/, 2];
|
|
67
|
+
return [4 /*yield*/, showCommentDialog()];
|
|
68
|
+
case 1:
|
|
69
|
+
processInstanceComment = _a.sent();
|
|
70
|
+
if (processInstanceComment === null) {
|
|
71
|
+
setActionRequestIsInProgress(false);
|
|
72
|
+
return [2 /*return*/];
|
|
73
|
+
}
|
|
74
|
+
_a.label = 2;
|
|
75
|
+
case 2:
|
|
76
|
+
(0, mdm_sdk_1.runTaskAction)({
|
|
77
|
+
taskId: taskId,
|
|
78
|
+
workflowPath: workflowPath,
|
|
79
|
+
environment: environment,
|
|
80
|
+
tenant: tenant,
|
|
81
|
+
action: action,
|
|
82
|
+
processInstanceComment: processInstanceComment
|
|
83
|
+
})
|
|
84
|
+
.then(function () {
|
|
85
|
+
handleActionSuccess === null || handleActionSuccess === void 0 ? void 0 : handleActionSuccess(action);
|
|
86
|
+
})
|
|
87
|
+
.catch(errors_1.showWorkflowError)
|
|
88
|
+
.finally(function () {
|
|
89
|
+
setActionRequestIsInProgress(false);
|
|
90
|
+
});
|
|
91
|
+
_a.label = 3;
|
|
92
|
+
case 3: return [2 /*return*/];
|
|
93
|
+
}
|
|
37
94
|
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
95
|
+
}); };
|
|
96
|
+
}, [workflowPath, taskId, environment, tenant, handleActionSuccess, showCommentDialog]);
|
|
40
97
|
var actions = (0, react_1.useMemo)(function () {
|
|
41
98
|
return username === assignee && (0, common_1.isOpenTask)(isOpen)
|
|
42
99
|
? (possibleActions || []).map(function (_a) {
|
|
43
|
-
var action = _a.action, label = _a.label;
|
|
44
|
-
return ({
|
|
100
|
+
var action = _a.action, label = _a.label, commentRequired = _a.commentRequired;
|
|
101
|
+
return ({
|
|
102
|
+
text: label,
|
|
103
|
+
onClick: performTaskAction(action, commentRequired)
|
|
104
|
+
});
|
|
45
105
|
})
|
|
46
106
|
: [];
|
|
47
107
|
}, [possibleActions, performTaskAction, username, assignee, isOpen]);
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { WorkflowDefinition } from '@reltio/mdm-sdk';
|
|
2
|
+
export declare const useWorkflowDefinitions: ({ all, canViewDefinitions }?: {
|
|
3
|
+
all?: boolean;
|
|
4
|
+
canViewDefinitions?: boolean;
|
|
5
|
+
}) => {
|
|
6
|
+
definitions: WorkflowDefinition[];
|
|
7
|
+
loading: boolean;
|
|
3
8
|
};
|
|
@@ -11,27 +11,40 @@ var filterDefinitions = function (definitions, entityTypeUri) {
|
|
|
11
11
|
return manualStart && (!objectTypes || (objectTypes === null || objectTypes === void 0 ? void 0 : objectTypes.some(function (uri) { return uri === entityTypeUri; })));
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
|
-
var
|
|
15
|
-
var
|
|
14
|
+
var memoizedProcessDefinitions = (0, mdm_sdk_1.memoizeWith)(function (_a) {
|
|
15
|
+
var workflowPath = _a.workflowPath, environment = _a.environment, tenant = _a.tenant;
|
|
16
|
+
return "".concat(workflowPath, "-").concat(environment, "-").concat(tenant);
|
|
17
|
+
}, mdm_sdk_1.processDefinitions);
|
|
18
|
+
var useWorkflowDefinitions = function (_a) {
|
|
19
|
+
var _b = _a === void 0 ? {} : _a, _c = _b.all, all = _c === void 0 ? false : _c, _d = _b.canViewDefinitions, canViewDefinitions = _d === void 0 ? true : _d;
|
|
20
|
+
var _e = (0, react_1.useState)([]), definitions = _e[0], setDefinitions = _e[1];
|
|
21
|
+
var _f = (0, react_1.useState)(false), loading = _f[0], setLoading = _f[1];
|
|
16
22
|
var workflowPath = (0, MdmModuleContext_1.useMdmWorkflowPath)();
|
|
17
23
|
var environment = (0, MdmModuleContext_1.useMdmWorkflowEnvironmentUrl)();
|
|
18
24
|
var tenant = (0, MdmModuleContext_1.useMdmTenant)();
|
|
19
25
|
var entity = (0, MdmModuleContext_1.useMdmEntity)();
|
|
20
|
-
var entityType = entity.type;
|
|
26
|
+
var entityType = entity === null || entity === void 0 ? void 0 : entity.type;
|
|
21
27
|
var safePromise = (0, useSafePromise_1.useSafePromise)();
|
|
22
28
|
(0, react_1.useEffect)(function () {
|
|
23
|
-
|
|
29
|
+
if (!canViewDefinitions) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
setLoading(true);
|
|
33
|
+
safePromise(memoizedProcessDefinitions({ workflowPath: workflowPath, environment: environment, tenant: tenant }))
|
|
24
34
|
.then(function (_a) {
|
|
25
35
|
var data = _a.data;
|
|
26
36
|
if (!data) {
|
|
27
37
|
return;
|
|
28
38
|
}
|
|
29
|
-
setDefinitions(filterDefinitions(data, entityType));
|
|
39
|
+
setDefinitions(all ? data : filterDefinitions(data, entityType));
|
|
30
40
|
})
|
|
31
41
|
.catch(function (error) {
|
|
32
42
|
console.warn('Workflow error', error);
|
|
43
|
+
})
|
|
44
|
+
.finally(function () {
|
|
45
|
+
setLoading(false);
|
|
33
46
|
});
|
|
34
|
-
}, [entityType, workflowPath, environment, tenant]);
|
|
35
|
-
return { definitions: definitions };
|
|
47
|
+
}, [entityType, workflowPath, environment, tenant, all, canViewDefinitions]);
|
|
48
|
+
return (0, react_1.useMemo)(function () { return ({ definitions: definitions, loading: loading }); }, [definitions, loading]);
|
|
36
49
|
};
|
|
37
50
|
exports.useWorkflowDefinitions = useWorkflowDefinitions;
|
|
@@ -11,3 +11,4 @@ export { useWorkflowActions } from './hooks/useWorkflowActions';
|
|
|
11
11
|
export { useWorkflowCheckPermission } from './hooks/useWorkflowCheckPermission';
|
|
12
12
|
export { useWorkflowTasks } from './hooks/useWorkflowTasks';
|
|
13
13
|
export { useWorkflowDefaultActionSuccessHandler } from './hooks/useWorkflowDefaultActionSuccessHandler';
|
|
14
|
+
export { findWorkflowDefinitionByType } from './helpers/common';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useWorkflowDefaultActionSuccessHandler = exports.useWorkflowTasks = exports.useWorkflowCheckPermission = exports.useWorkflowActions = exports.useWorkflowComments = exports.useWorkflowAssignee = exports.TaskActionButtons = exports.WorkflowComments = exports.ReassignButton = exports.AssigneeSelector = exports.TaskActions = exports.AddWorkflowButton = exports.WorkflowTaskCard = void 0;
|
|
3
|
+
exports.findWorkflowDefinitionByType = exports.useWorkflowDefaultActionSuccessHandler = exports.useWorkflowTasks = exports.useWorkflowCheckPermission = exports.useWorkflowActions = exports.useWorkflowComments = exports.useWorkflowAssignee = exports.TaskActionButtons = exports.WorkflowComments = exports.ReassignButton = exports.AssigneeSelector = exports.TaskActions = exports.AddWorkflowButton = exports.WorkflowTaskCard = void 0;
|
|
4
4
|
// components
|
|
5
5
|
var WorkflowTaskCard_1 = require("./WorkflowTaskCard");
|
|
6
6
|
Object.defineProperty(exports, "WorkflowTaskCard", { enumerable: true, get: function () { return WorkflowTaskCard_1.WorkflowTaskCard; } });
|
|
@@ -29,3 +29,6 @@ var useWorkflowTasks_1 = require("./hooks/useWorkflowTasks");
|
|
|
29
29
|
Object.defineProperty(exports, "useWorkflowTasks", { enumerable: true, get: function () { return useWorkflowTasks_1.useWorkflowTasks; } });
|
|
30
30
|
var useWorkflowDefaultActionSuccessHandler_1 = require("./hooks/useWorkflowDefaultActionSuccessHandler");
|
|
31
31
|
Object.defineProperty(exports, "useWorkflowDefaultActionSuccessHandler", { enumerable: true, get: function () { return useWorkflowDefaultActionSuccessHandler_1.useWorkflowDefaultActionSuccessHandler; } });
|
|
32
|
+
// helpers
|
|
33
|
+
var common_1 = require("./helpers/common");
|
|
34
|
+
Object.defineProperty(exports, "findWorkflowDefinitionByType", { enumerable: true, get: function () { return common_1.findWorkflowDefinitionByType; } });
|
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
40
|
};
|
|
@@ -9,32 +45,67 @@ var ui_i18n_1 = __importDefault(require("ui-i18n"));
|
|
|
9
45
|
var ramda_1 = require("ramda");
|
|
10
46
|
var mdm_sdk_1 = require("@reltio/mdm-sdk");
|
|
11
47
|
var MdmModuleContext_1 = require("../../contexts/MdmModuleContext");
|
|
12
|
-
var
|
|
48
|
+
var CommentDialogContext_1 = require("../../contexts/CommentDialogContext");
|
|
49
|
+
var WorkflowDefinitionsContext_1 = require("../../contexts/WorkflowDefinitionsContext");
|
|
50
|
+
var workflow_1 = require("../../features/workflow");
|
|
13
51
|
var useRequestDCRReview = function (_a) {
|
|
14
52
|
var entities = _a.entities, entity = _a.entity, onStartRequest = _a.onStartRequest, onEndRequest = _a.onEndRequest, onError = _a.onError, showSnackbarMessage = _a.showSnackbarMessage;
|
|
15
53
|
var workflowPath = (0, MdmModuleContext_1.useMdmWorkflowPath)();
|
|
16
54
|
var environment = (0, MdmModuleContext_1.useMdmWorkflowEnvironmentUrl)();
|
|
55
|
+
var showCommentDialog = (0, CommentDialogContext_1.useCommentDialog)();
|
|
56
|
+
var definitions = (0, react_1.useContext)(WorkflowDefinitionsContext_1.WorkflowDefinitionsContext).definitions;
|
|
57
|
+
var _b = ((0, workflow_1.findWorkflowDefinitionByType)(definitions, mdm_sdk_1.PredefinedWorkflowProcessType.potentialMatchReview) || {}).requiresCommentOnStart, requiresCommentOnStart = _b === void 0 ? false : _b;
|
|
17
58
|
var tenant = (0, MdmModuleContext_1.useMdmTenant)();
|
|
18
59
|
var getUri = (0, ramda_1.prop)('uri');
|
|
19
60
|
var getUrisFromEntities = (0, ramda_1.pipe)(ramda_1.concat, (0, ramda_1.map)(getUri));
|
|
20
61
|
var uris = getUrisFromEntities([entity], entities);
|
|
21
|
-
var startPMReview = (0, react_1.useCallback)(function () {
|
|
22
|
-
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
62
|
+
var startPMReview = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
63
|
+
var comment;
|
|
64
|
+
return __generator(this, function (_a) {
|
|
65
|
+
switch (_a.label) {
|
|
66
|
+
case 0:
|
|
67
|
+
onStartRequest === null || onStartRequest === void 0 ? void 0 : onStartRequest();
|
|
68
|
+
comment = null;
|
|
69
|
+
if (!requiresCommentOnStart) return [3 /*break*/, 2];
|
|
70
|
+
return [4 /*yield*/, showCommentDialog()];
|
|
71
|
+
case 1:
|
|
72
|
+
comment = _a.sent();
|
|
73
|
+
if (comment === null) {
|
|
74
|
+
onEndRequest === null || onEndRequest === void 0 ? void 0 : onEndRequest();
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
}
|
|
77
|
+
_a.label = 2;
|
|
78
|
+
case 2:
|
|
79
|
+
(0, mdm_sdk_1.startProcessInstanceByPairs)({
|
|
80
|
+
workflowPath: workflowPath,
|
|
81
|
+
processType: mdm_sdk_1.PredefinedWorkflowProcessType.potentialMatchReview,
|
|
82
|
+
objectURIs: uris,
|
|
83
|
+
tenant: tenant,
|
|
84
|
+
environment: environment,
|
|
85
|
+
comment: comment
|
|
86
|
+
})
|
|
87
|
+
.then(function () {
|
|
88
|
+
showSnackbarMessage === null || showSnackbarMessage === void 0 ? void 0 : showSnackbarMessage(ui_i18n_1.default.text('Potential match request: Done'));
|
|
89
|
+
})
|
|
90
|
+
.catch(onError)
|
|
91
|
+
.finally(function () {
|
|
92
|
+
onEndRequest === null || onEndRequest === void 0 ? void 0 : onEndRequest();
|
|
93
|
+
});
|
|
94
|
+
return [2 /*return*/];
|
|
95
|
+
}
|
|
36
96
|
});
|
|
37
|
-
}, [
|
|
97
|
+
}); }, [
|
|
98
|
+
onStartRequest,
|
|
99
|
+
onEndRequest,
|
|
100
|
+
onError,
|
|
101
|
+
workflowPath,
|
|
102
|
+
uris,
|
|
103
|
+
tenant,
|
|
104
|
+
environment,
|
|
105
|
+
showSnackbarMessage,
|
|
106
|
+
showCommentDialog,
|
|
107
|
+
requiresCommentOnStart
|
|
108
|
+
]);
|
|
38
109
|
return startPMReview;
|
|
39
110
|
};
|
|
40
111
|
exports.useRequestDCRReview = useRequestDCRReview;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
type DialogOptions = {
|
|
3
|
+
title?: string;
|
|
4
|
+
message?: string;
|
|
5
|
+
confirmLabel?: string;
|
|
6
|
+
cancelLabel?: string;
|
|
7
|
+
defaultComment?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
};
|
|
10
|
+
type DialogResult = string | null;
|
|
11
|
+
type CommentDialogContextType = (options?: DialogOptions) => Promise<DialogResult>;
|
|
12
|
+
export declare const useCommentDialog: () => CommentDialogContextType;
|
|
13
|
+
export declare const CommentDialogProvider: ({ children }: {
|
|
14
|
+
children: ReactNode;
|
|
15
|
+
}) => React.JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { CommentDialog } from '../../CommentDialog/CommentDialog';
|
|
13
|
+
import React, { createContext, useContext, useState, useRef, useCallback } from 'react';
|
|
14
|
+
var CommentDialogContext = createContext(undefined);
|
|
15
|
+
export var useCommentDialog = function () {
|
|
16
|
+
var context = useContext(CommentDialogContext);
|
|
17
|
+
if (!context)
|
|
18
|
+
throw new Error('useCommentDialog must be used within CommentDialogProvider');
|
|
19
|
+
return context;
|
|
20
|
+
};
|
|
21
|
+
export var CommentDialogProvider = function (_a) {
|
|
22
|
+
var children = _a.children;
|
|
23
|
+
var _b = useState(null), options = _b[0], setOptions = _b[1];
|
|
24
|
+
var commentResolverRef = useRef(null);
|
|
25
|
+
var showCommentDialog = useCallback(function (options) {
|
|
26
|
+
setOptions(options || {});
|
|
27
|
+
return new Promise(function (resolve) {
|
|
28
|
+
commentResolverRef.current = resolve;
|
|
29
|
+
});
|
|
30
|
+
}, []);
|
|
31
|
+
var handleClose = function (result) {
|
|
32
|
+
var _a;
|
|
33
|
+
setOptions(null);
|
|
34
|
+
(_a = commentResolverRef.current) === null || _a === void 0 ? void 0 : _a.call(commentResolverRef, result);
|
|
35
|
+
commentResolverRef.current = null;
|
|
36
|
+
};
|
|
37
|
+
return (React.createElement(CommentDialogContext.Provider, { value: showCommentDialog },
|
|
38
|
+
children,
|
|
39
|
+
options && React.createElement(CommentDialog, __assign({}, options, { onConfirm: handleClose, onCancel: function () { return handleClose(null); } }))));
|
|
40
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { WorkflowDefinition } from '@reltio/mdm-sdk';
|
|
3
|
+
type WorkflowDefinitionsContextType = {
|
|
4
|
+
definitions: WorkflowDefinition[];
|
|
5
|
+
loading: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const WorkflowDefinitionsContext: React.Context<WorkflowDefinitionsContextType>;
|
|
8
|
+
export declare const WorkflowDefinitionsProvider: ({ children }: {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
}) => React.JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useWorkflowDefinitions } from '../../features/workflow/hooks/useWorkflowDefinitions';
|
|
3
|
+
import { useWorkflowCheckPermission } from '../../features/workflow/hooks/useWorkflowCheckPermission';
|
|
4
|
+
import { useMdmIsWorkflowEnabled } from '../MdmModuleContext';
|
|
5
|
+
export var WorkflowDefinitionsContext = React.createContext({
|
|
6
|
+
definitions: [],
|
|
7
|
+
loading: false
|
|
8
|
+
});
|
|
9
|
+
WorkflowDefinitionsContext.displayName = 'WorkflowDefinitionsContext';
|
|
10
|
+
export var WorkflowDefinitionsProvider = function (_a) {
|
|
11
|
+
var children = _a.children;
|
|
12
|
+
var isWorkflowEnabled = useMdmIsWorkflowEnabled();
|
|
13
|
+
var checkWorkflowPermission = useWorkflowCheckPermission();
|
|
14
|
+
var canViewProcessDefinitions = checkWorkflowPermission('VIEW_PROCESS_DEFINITIONS');
|
|
15
|
+
var canViewDefinitions = isWorkflowEnabled && canViewProcessDefinitions;
|
|
16
|
+
var workflowDefinitions = useWorkflowDefinitions({ all: true, canViewDefinitions: canViewDefinitions });
|
|
17
|
+
return (React.createElement(WorkflowDefinitionsContext.Provider, { value: workflowDefinitions }, children));
|
|
18
|
+
};
|
|
@@ -6,9 +6,10 @@ import Snackbar from '@mui/material/Snackbar';
|
|
|
6
6
|
import Popover from '@mui/material/Popover';
|
|
7
7
|
import Typography from '@mui/material/Typography';
|
|
8
8
|
import Button from '@mui/material/Button';
|
|
9
|
-
import {
|
|
9
|
+
import { DropDownSelector } from '../../../DropDownSelector';
|
|
10
10
|
import { useWorkflowDefinitions } from '../hooks/useWorkflowDefinitions';
|
|
11
11
|
import { useWorkflowProcessInstance } from '../hooks/useWorkflowProcessInstance';
|
|
12
|
+
import { findWorkflowDefinitionByType } from '../helpers/common';
|
|
12
13
|
import { useStyles } from './styles';
|
|
13
14
|
export var AddWorkflowDialog = function (_a) {
|
|
14
15
|
var anchorEl = _a.anchorEl, onClose = _a.onClose;
|
|
@@ -16,8 +17,8 @@ export var AddWorkflowDialog = function (_a) {
|
|
|
16
17
|
var _b = useState(''), comment = _b[0], setComment = _b[1];
|
|
17
18
|
var _c = useState(null), taskType = _c[0], setTaskType = _c[1];
|
|
18
19
|
var _d = useState(false), isOpenSnackbar = _d[0], setIsOpenSnackbar = _d[1];
|
|
19
|
-
var
|
|
20
|
-
var
|
|
20
|
+
var _e = useWorkflowDefinitions(), definitions = _e.definitions, loadingDefinitions = _e.loading;
|
|
21
|
+
var _f = useWorkflowProcessInstance(), processInstance = _f.processInstance, loading = _f.loading;
|
|
21
22
|
var handleChangeComment = function (e) {
|
|
22
23
|
setComment(e.target.value);
|
|
23
24
|
};
|
|
@@ -38,6 +39,9 @@ export var AddWorkflowDialog = function (_a) {
|
|
|
38
39
|
setIsOpenSnackbar(false);
|
|
39
40
|
};
|
|
40
41
|
var open = Boolean(anchorEl);
|
|
42
|
+
var currentDefinition = findWorkflowDefinitionByType(definitions, taskType === null || taskType === void 0 ? void 0 : taskType.value);
|
|
43
|
+
var isCommentRequired = (currentDefinition === null || currentDefinition === void 0 ? void 0 : currentDefinition.requiresCommentOnStart) || false;
|
|
44
|
+
var isStartButtonDisabled = loading || taskType === null || loadingDefinitions || (isCommentRequired && !comment);
|
|
41
45
|
return (React.createElement(React.Fragment, null,
|
|
42
46
|
React.createElement(Popover, { open: open, anchorEl: anchorEl, onClose: onClose, anchorOrigin: {
|
|
43
47
|
vertical: 'bottom',
|
|
@@ -50,26 +54,26 @@ export var AddWorkflowDialog = function (_a) {
|
|
|
50
54
|
} },
|
|
51
55
|
React.createElement("div", { className: styles.content },
|
|
52
56
|
React.createElement(Typography, { className: styles.title }, i18n.text('Add new workflow')),
|
|
53
|
-
React.createElement(
|
|
54
|
-
InputProps: {
|
|
55
|
-
disableUnderline: true
|
|
56
|
-
}
|
|
57
|
-
}, placeholder: i18n.text('Select task type'), value: taskType, onChange: handleChangeTaskType, label: '', options: definitions.map(function (definition) {
|
|
57
|
+
React.createElement(DropDownSelector, { className: styles.simpleDropDownSelector, height: 44, value: taskType, onChange: handleChangeTaskType, label: i18n.text('Select task type'), options: definitions.map(function (definition) {
|
|
58
58
|
return {
|
|
59
59
|
value: definition.type,
|
|
60
60
|
label: definition.displayName
|
|
61
61
|
};
|
|
62
62
|
}) }),
|
|
63
|
-
React.createElement(TextField, { variant: "filled", hiddenLabel: true, size: "small",
|
|
64
|
-
disableUnderline: true,
|
|
63
|
+
React.createElement(TextField, { variant: "filled", hiddenLabel: true, size: "small", minRows: 1, required: isCommentRequired, label: i18n.text('Type a comment'), InputProps: {
|
|
65
64
|
classes: {
|
|
66
65
|
input: styles.input,
|
|
67
66
|
root: styles.inputRoot
|
|
68
67
|
}
|
|
68
|
+
}, InputLabelProps: {
|
|
69
|
+
classes: {
|
|
70
|
+
root: styles.inputLabelRoot,
|
|
71
|
+
asterisk: styles.asterisk
|
|
72
|
+
}
|
|
69
73
|
}, value: comment, onChange: handleChangeComment, multiline: true })),
|
|
70
74
|
React.createElement("div", { className: styles.footer },
|
|
71
75
|
React.createElement(Button, { disabled: loading, className: styles.cancelButton, onClick: onClose }, i18n.text('Cancel')),
|
|
72
|
-
React.createElement(Button, { disabled:
|
|
76
|
+
React.createElement(Button, { disabled: isStartButtonDisabled, color: "primary", onClick: handleStart }, i18n.text('Start')))),
|
|
73
77
|
React.createElement(Portal, { container: document.body },
|
|
74
78
|
React.createElement(Snackbar, { open: isOpenSnackbar, autoHideDuration: 5000, onClose: handleCloseSnackbar, message: i18n.text('A new workflow has started'), anchorOrigin: { vertical: 'bottom', horizontal: 'center' } }))));
|
|
75
79
|
};
|