1 import entryFactory from 'bpmn-js-properties-panel/lib/factory/EntryFactory';
2 import cmdHelper from 'bpmn-js-properties-panel/lib/helper/CmdHelper';
5 IMPLEMENTATION_TYPE_VALUE,
7 } from './implementationConstants';
9 import InputOutputUpdater from './InputOutputUpdater';
11 const workflowActivity = (element, config, bpmnFactory, options, translate) => {
12 const { getImplementationType, getBusinessObject } = options;
14 const isWorkflowActivity = element =>
15 getImplementationType(element) === 'workflowActivity';
17 const workflowActivityEntry = entryFactory.selectBox({
19 label: translate('Activity Spec'),
20 selectOptions: config.activities,
22 modelProperty: 'workflowActivity',
24 get: function(element) {
25 var bo = getBusinessObject(element);
26 const value = bo.get(implementationType.ACTIVITY);
28 value && value.indexOf(IMPLEMENTATION_TYPE_VALUE) > -1
29 ? value.substr(IMPLEMENTATION_TYPE_VALUE.length)
33 workflowActivity: activityValue
37 set: function(element, values) {
38 var bo = getBusinessObject(element);
41 const dataForUpdate = {};
43 const activityInputsOutputs = config.getActivityInputsOutputs(
44 values.workflowActivity
48 implementationType.ACTIVITY
49 ] = `${IMPLEMENTATION_TYPE_VALUE}${values.workflowActivity}`;
51 dataForUpdate[implementationType.EXPRESSION] =
52 implementationType.EXPRESSION_VALUE;
54 dataForUpdate[SERVICE_TASK_NAME] = values.workflowActivity;
57 cmdHelper.updateBusinessObject(element, bo, dataForUpdate)
61 ...InputOutputUpdater({
65 activityInputsOutputs,
71 validate: function(element, values) {
72 return isWorkflowActivity(element) && !values.workflowActivity
73 ? { workflowActivity: 'Must provide a value' }
77 hidden: function(element) {
78 return !isWorkflowActivity(element);
82 return [workflowActivityEntry];
85 export default workflowActivity;