camunda-bpmn-js 0.12.1 → 0.13.0-drilldown.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/assets/base-modeler.css +2 -1
  3. package/dist/assets/bpmn-js.css +113 -0
  4. package/dist/assets/camunda-platform-modeler.css +2 -1
  5. package/dist/assets/diagram-js.css +82 -78
  6. package/dist/assets/element-templates.css +75 -0
  7. package/dist/assets/properties-panel.css +115 -18
  8. package/dist/base-modeler.development.js +37641 -40582
  9. package/dist/base-modeler.production.min.js +8 -3
  10. package/dist/camunda-cloud-modeler.development.js +41845 -42826
  11. package/dist/camunda-cloud-modeler.production.min.js +8 -3
  12. package/dist/camunda-platform-modeler.development.js +51089 -53714
  13. package/dist/camunda-platform-modeler.production.min.js +8 -3
  14. package/lib/base/Modeler.js +5 -9
  15. package/lib/camunda-cloud/Modeler.js +16 -3
  16. package/lib/camunda-cloud/features/drilldown/index.js +3 -0
  17. package/lib/camunda-cloud/features/modeling/behavior/CleanUpAssignmentDefinitionBehavior.js +78 -0
  18. package/lib/camunda-cloud/features/modeling/behavior/CreateZeebeCallActivityBehavior.js +2 -2
  19. package/lib/camunda-cloud/features/modeling/behavior/FormDefinitionBehavior.js +2 -2
  20. package/lib/camunda-cloud/features/modeling/behavior/index.js +3 -0
  21. package/lib/camunda-cloud/helper/CalledElementHelper.js +1 -1
  22. package/lib/camunda-cloud/helper/ElementHelper.js +18 -0
  23. package/lib/camunda-cloud/helper/ExtensionElementsHelper.js +17 -0
  24. package/lib/camunda-cloud/helper/FormsHelper.js +5 -5
  25. package/lib/camunda-cloud/helper/InputOutputHelper.js +2 -6
  26. package/lib/camunda-cloud/helper/Utils.js +10 -0
  27. package/lib/camunda-cloud/helper/ZeebeServiceTaskHelper.js +22 -5
  28. package/lib/camunda-platform/Modeler.js +7 -3
  29. package/package.json +11 -10
  30. package/styles/base-modeler.css +2 -1
  31. package/styles/camunda-platform-modeler.css +2 -1
  32. package/lib/camunda-cloud/features/properties-provider/ZeebePropertiesProvider.js +0 -201
  33. package/lib/camunda-cloud/features/properties-provider/index.js +0 -11
  34. package/lib/camunda-cloud/features/properties-provider/parts/CallActivityProps.js +0 -90
  35. package/lib/camunda-cloud/features/properties-provider/parts/ErrorProps.js +0 -13
  36. package/lib/camunda-cloud/features/properties-provider/parts/FormProps.js +0 -14
  37. package/lib/camunda-cloud/features/properties-provider/parts/HeadersProps.js +0 -52
  38. package/lib/camunda-cloud/features/properties-provider/parts/InputOutputProps.js +0 -8
  39. package/lib/camunda-cloud/features/properties-provider/parts/MessageProps.js +0 -51
  40. package/lib/camunda-cloud/features/properties-provider/parts/MultiInstanceProps.js +0 -25
  41. package/lib/camunda-cloud/features/properties-provider/parts/SequenceFlowProps.js +0 -149
  42. package/lib/camunda-cloud/features/properties-provider/parts/TaskDefinitionProps.js +0 -135
  43. package/lib/camunda-cloud/features/properties-provider/parts/TimerEventProps.js +0 -77
  44. package/lib/camunda-cloud/features/properties-provider/parts/implementation/ElementReferenceExtensionElementProperty.js +0 -110
  45. package/lib/camunda-cloud/features/properties-provider/parts/implementation/FormDefinition.js +0 -207
  46. package/lib/camunda-cloud/features/properties-provider/parts/implementation/Headers.js +0 -208
  47. package/lib/camunda-cloud/features/properties-provider/parts/implementation/InputOutput.js +0 -274
  48. package/lib/camunda-cloud/features/properties-provider/parts/implementation/InputOutputParameter.js +0 -147
  49. package/lib/camunda-cloud/features/properties-provider/parts/implementation/MultiInstanceLoopCharacteristics.js +0 -176
  50. package/lib/camunda-cloud/features/properties-provider/parts/implementation/OutputParameterToggle.js +0 -97
  51. package/lib/camunda-cloud/features/properties-provider/parts/implementation/TimerDurationDefinition.js +0 -69
  52. package/lib/camunda-cloud/features/properties-provider/parts/implementation/TimerEventDefinition.js +0 -132
@@ -1,135 +0,0 @@
1
- import elementHelper from 'bpmn-js-properties-panel/lib/helper/ElementHelper';
2
-
3
- import cmdHelper from 'bpmn-js-properties-panel/lib/helper/CmdHelper';
4
-
5
- import {
6
- getBusinessObject
7
- } from 'bpmn-js/lib/util/ModelUtil';
8
-
9
- import {
10
- isZeebeServiceTask
11
- } from '../../../helper/ZeebeServiceTaskHelper.js';
12
-
13
- import entryFactory from 'bpmn-js-properties-panel/lib/factory/EntryFactory';
14
-
15
- import extensionElementsHelper from 'bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper';
16
-
17
-
18
- export default function(group, element, bpmnFactory, translate) {
19
-
20
- if (!isZeebeServiceTask(element)) {
21
- return;
22
- }
23
-
24
- function getElements(bo, type, prop) {
25
- const elems = extensionElementsHelper.getExtensionElements(bo, type);
26
- return !prop ? elems : (elems[0] || {})[prop] || [];
27
- }
28
-
29
- function getTaskDefinition(element) {
30
- const bo = getBusinessObject(element);
31
- return (getElements(bo, 'zeebe:TaskDefinition') || [])[0];
32
- }
33
-
34
- group.entries.push(entryFactory.validationAwareTextField(translate, {
35
- id: 'taskDefinitionType',
36
- label: translate('Type'),
37
- modelProperty: 'type',
38
-
39
- getProperty: function(element, node) {
40
- return (getTaskDefinition(element) || {}).type;
41
- },
42
-
43
- setProperty: function(element, values, node) {
44
- const bo = getBusinessObject(element);
45
- const commands = [];
46
-
47
- // create extensionElements
48
- let extensionElements = bo.get('extensionElements');
49
- if (!extensionElements) {
50
- extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);
51
- commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));
52
- }
53
-
54
- // create taskDefinition
55
- let taskDefinition = getTaskDefinition(element);
56
-
57
- if (!taskDefinition) {
58
- taskDefinition = elementHelper.createElement('zeebe:TaskDefinition', { }, extensionElements, bpmnFactory);
59
- commands.push(cmdHelper.addAndRemoveElementsFromList(
60
- element,
61
- extensionElements,
62
- 'values',
63
- 'extensionElements',
64
- [ taskDefinition ],
65
- []
66
- ));
67
- }
68
-
69
- commands.push(cmdHelper.updateBusinessObject(element, taskDefinition, values));
70
- return commands;
71
- },
72
-
73
- validate: function(element, values) {
74
- const bo = getTaskDefinition(element);
75
- let validation = {};
76
- if (bo) {
77
- const {
78
- type
79
- } = values;
80
-
81
- if (!type) {
82
- validation = {
83
- type: translate('Must have a type')
84
- };
85
- }
86
-
87
- }
88
- return validation;
89
- }
90
- }));
91
-
92
- group.entries.push(entryFactory.textField(translate, {
93
- id: 'taskDefinitionRetries',
94
- label: translate('Retries'),
95
- modelProperty: 'retries',
96
-
97
- get: function(element) {
98
- return {
99
- retries: (getTaskDefinition(element) || {}).retries
100
- };
101
- },
102
-
103
- set: function(element, values) {
104
- const bo = getBusinessObject(element);
105
- const commands = [];
106
-
107
- // create extensionElements
108
- let extensionElements = bo.get('extensionElements');
109
- if (!extensionElements) {
110
- extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);
111
- commands.push(cmdHelper.updateProperties(element, { extensionElements: extensionElements }));
112
- }
113
-
114
- // create taskDefinition
115
- let taskDefinition = getTaskDefinition(element);
116
-
117
- if (!taskDefinition) {
118
- taskDefinition = elementHelper.createElement('zeebe:TaskDefinition', { }, extensionElements, bpmnFactory);
119
- commands.push(cmdHelper.addAndRemoveElementsFromList(
120
- element,
121
- extensionElements,
122
- 'values',
123
- 'extensionElements',
124
- [ taskDefinition ],
125
- []
126
- ));
127
- }
128
-
129
- commands.push(cmdHelper.updateBusinessObject(element, taskDefinition, values));
130
- return commands;
131
- }
132
-
133
- }));
134
-
135
- }
@@ -1,77 +0,0 @@
1
- import eventDefinitionHelper from 'bpmn-js-properties-panel/lib/helper/EventDefinitionHelper';
2
-
3
- import {
4
- getBusinessObject,
5
- is
6
- } from 'bpmn-js/lib/util/ModelUtil';
7
-
8
- import {
9
- isEventSubProcess
10
- } from 'bpmn-js/lib/util/DiUtil';
11
-
12
- import timerEventDefinitionImpl from './implementation/TimerEventDefinition';
13
-
14
- import timerDurationDefinitionImpl from './implementation/TimerDurationDefinition';
15
-
16
- export default function(group, element, bpmnFactory, translate) {
17
-
18
- const timerEventDefinition = eventDefinitionHelper.getTimerEventDefinition(element);
19
-
20
- const timerOptions = getTimerOptions(element);
21
-
22
- if (!timerEventDefinition) {
23
- return;
24
- }
25
-
26
- if (!timerOptions.length) {
27
- return timerDurationDefinitionImpl(group, bpmnFactory, timerEventDefinition, translate);
28
- }
29
-
30
- timerEventDefinitionImpl(group, bpmnFactory, timerEventDefinition, timerOptions, translate);
31
- }
32
-
33
-
34
- // helper //////////
35
-
36
- const cancelActivity = (element) => {
37
- const bo = getBusinessObject(element);
38
- return bo.cancelActivity;
39
- };
40
-
41
- const isInterrupting = (element) => {
42
- const bo = getBusinessObject(element);
43
- return bo.isInterrupting !== false;
44
- };
45
-
46
- const getTimerOptions = (element) => {
47
- let timerOptions = [];
48
-
49
- const isStartEvent = is(element, 'bpmn:StartEvent');
50
- const isBoundaryEvent = is(element, 'bpmn:BoundaryEvent');
51
-
52
- const hasEventSubprocessParent = isEventSubProcess(element.parent);
53
-
54
- if (isBoundaryEvent || hasEventSubprocessParent) {
55
- timerOptions = [
56
- ...timerOptions,
57
- { value: 'timeDuration', name: 'Duration' }
58
- ];
59
-
60
- if (!cancelActivity(element) && !(hasEventSubprocessParent && isInterrupting(element))) {
61
- timerOptions = [
62
- ...timerOptions,
63
- { value: 'timeCycle', name: 'Cycle' }
64
- ];
65
- }
66
- }
67
-
68
- if (isStartEvent && !hasEventSubprocessParent) {
69
- timerOptions = [
70
- ...timerOptions,
71
- { value: 'timeDate', name: 'Date' },
72
- { value: 'timeCycle', name: 'Cycle' }
73
- ];
74
- }
75
-
76
- return timerOptions;
77
- };
@@ -1,110 +0,0 @@
1
- import entryFactory from 'bpmn-js-properties-panel/lib/factory/EntryFactory';
2
-
3
- import cmdHelper from 'bpmn-js-properties-panel/lib/helper/CmdHelper';
4
-
5
- import elementHelper from 'bpmn-js-properties-panel/lib/helper/ElementHelper';
6
-
7
- import extensionElementsHelper from 'bpmn-js-properties-panel/lib/helper/ExtensionElementsHelper';
8
-
9
- import {
10
- getBusinessObject
11
- } from 'bpmn-js/lib/util/ModelUtil';
12
-
13
- /**
14
- * Create an entry to modify a property of an element which
15
- * is referenced by a event definition.
16
- *
17
- * @param {djs.model.Base} element
18
- * @param {ModdleElement} definition
19
- * @param {BpmnFactory} bpmnFactory
20
- * @param {Function} translate
21
- * @param {Object} options
22
- * @param {string} options.id the id of the entry
23
- * @param {string} options.label the label of the entry
24
- * @param {string} options.referenceProperty the name of referencing property
25
- * @param {string} options.modelProperty the name of property to modify
26
- * @param {string} options.extensionElement the name of the extensionElement to modify
27
- * @param {string} options.shouldValidate a flag indicate whether to validate or not
28
- *
29
- * @return {Array<Object>} return an array containing the entries
30
- */
31
- export default function(element, definition, bpmnFactory, translate, options) {
32
-
33
- const id = options.id || 'element-property';
34
- const label = options.label;
35
- const referenceProperty = options.referenceProperty;
36
- const modelProperty = options.modelProperty || 'name';
37
- const extensionElementKey = options.extensionElement || 'zeebe:Subscription';
38
- const shouldValidate = options.shouldValidate || false;
39
-
40
-
41
- function getElements(bo, type, prop) {
42
- const elems = extensionElementsHelper.getExtensionElements(bo, type);
43
- return !prop ? elems : (elems[0] || {})[prop] || [];
44
- }
45
-
46
- function getExtensionElement(element) {
47
- const bo = getBusinessObject(element);
48
- return (getElements(bo, extensionElementKey) || [])[0];
49
- }
50
-
51
- const entry = entryFactory.textField(translate, {
52
- id: id,
53
- label: label,
54
- modelProperty: modelProperty,
55
-
56
- get: function(element, node) {
57
- const reference = definition.get(referenceProperty);
58
- const props = {};
59
- props[modelProperty] = reference && (getExtensionElement(reference) || {})[modelProperty];
60
- return props;
61
- },
62
-
63
- set: function(element, values, node) {
64
-
65
- const reference = definition.get(referenceProperty);
66
- const bo = getBusinessObject(reference);
67
- reference.businessObject = bo;
68
- const commands = [];
69
- let extensionElements = bo.get('extensionElements');
70
- if (!extensionElements) {
71
- extensionElements = elementHelper.createElement('bpmn:ExtensionElements', { values: [] }, bo, bpmnFactory);
72
- commands.push(cmdHelper.updateProperties(reference, { extensionElements: extensionElements }));
73
- }
74
-
75
- let extensionElement = getExtensionElement(reference);
76
-
77
- if (!extensionElement) {
78
- extensionElement = elementHelper.createElement(extensionElementKey, { }, extensionElements, bpmnFactory);
79
- commands.push(cmdHelper.addAndRemoveElementsFromList(
80
- element,
81
- extensionElements,
82
- 'values',
83
- 'extensionElements',
84
- [ extensionElement ],
85
- []
86
- ));
87
- }
88
-
89
- commands.push(cmdHelper.updateBusinessObject(element, extensionElement, values));
90
- return commands;
91
- },
92
-
93
- hidden: function(element, node) {
94
- return !definition.get(referenceProperty);
95
- }
96
- });
97
-
98
- if (shouldValidate) {
99
- entry.validate = (element, values, node) => {
100
- const reference = definition.get(referenceProperty);
101
- if (reference && !values[modelProperty]) {
102
- const validationErrors = {};
103
- validationErrors[modelProperty] = 'Must provide a value';
104
- return validationErrors;
105
- }
106
- };
107
- }
108
-
109
- return [ entry ];
110
- }
@@ -1,207 +0,0 @@
1
- import entryFactory from 'bpmn-js-properties-panel/lib/factory/EntryFactory';
2
-
3
- import {
4
- getBusinessObject,
5
- is
6
- } from 'bpmn-js/lib/util/ModelUtil';
7
-
8
- import elementHelper from 'bpmn-js-properties-panel/lib/helper/ElementHelper';
9
-
10
- import cmdHelper from 'bpmn-js-properties-panel/lib/helper/CmdHelper';
11
-
12
- import {
13
- createFormDefinition,
14
- createFormId,
15
- createFormKey,
16
- createUserTaskForm,
17
- getFormDefinition,
18
- getUserTaskForm
19
- } from '../../../../helper/FormsHelper';
20
-
21
-
22
- export default function(element, bpmnFactory, translate) {
23
- let entries = [];
24
-
25
- function cleanupUserTaskForm(element) {
26
-
27
- const businessObject = getBusinessObject(element),
28
- rootElement = getRootElement(element),
29
- extensionElements = businessObject.get('extensionElements'),
30
- rootExtensionElements = rootElement.get('extensionElements');
31
-
32
- let commands = [];
33
-
34
- // (1) remove form definition
35
- const formDefinition = getFormDefinition(element);
36
-
37
- if (!formDefinition) {
38
- return commands;
39
- }
40
-
41
- commands.push(cmdHelper.removeElementsFromList(
42
- element,
43
- extensionElements,
44
- 'values',
45
- 'extensionElements',
46
- [ formDefinition ]
47
- ));
48
-
49
- // (2) remove referenced user task form
50
- const userTaskForm = getUserTaskForm(element);
51
-
52
- if (!userTaskForm) {
53
- return commands;
54
- }
55
-
56
- commands.push(cmdHelper.removeElementsFromList(
57
- element,
58
- rootExtensionElements,
59
- 'values',
60
- 'extensionElements',
61
- [ userTaskForm ]
62
- ));
63
-
64
- return commands;
65
- }
66
-
67
- entries.push(entryFactory.textField(translate, {
68
- id: 'form-json',
69
- label: translate('Form JSON Configuration'),
70
- modelProperty: 'formJSON',
71
- get: function(element) {
72
- const userTaskForm = getUserTaskForm(element);
73
-
74
- return {
75
- formJSON: userTaskForm ? userTaskForm.get('body') : ''
76
- };
77
- },
78
- set: function(element, values) {
79
-
80
- const businessObject = getBusinessObject(element),
81
- rootElement = getRootElement(element),
82
- body = values.formJSON;
83
-
84
- let commands = [],
85
- userTaskForm,
86
- formId;
87
-
88
- // (0) cleanup user task form + form definition on empty body
89
- if (!body || body === '') {
90
- return cleanupUserTaskForm(element);
91
- }
92
-
93
- // (1) ensure extension elements
94
- let extensionElements = businessObject.get('extensionElements');
95
-
96
- if (!extensionElements) {
97
- extensionElements = elementHelper.createElement(
98
- 'bpmn:ExtensionElements',
99
- { values: [] },
100
- businessObject,
101
- bpmnFactory
102
- );
103
-
104
- commands.push(
105
- cmdHelper.updateBusinessObject(element, businessObject, {
106
- extensionElements: extensionElements,
107
- })
108
- );
109
- }
110
-
111
- // (2) ensure root element extension elements
112
- let rootExtensionElements = rootElement.get('extensionElements');
113
-
114
- if (!rootExtensionElements) {
115
- rootExtensionElements = elementHelper.createElement(
116
- 'bpmn:ExtensionElements',
117
- { values: [] },
118
- rootElement,
119
- bpmnFactory
120
- );
121
-
122
- commands.push(
123
- cmdHelper.updateBusinessObject(element, rootElement, {
124
- extensionElements: rootExtensionElements,
125
- })
126
- );
127
- }
128
-
129
- // (3) ensure form definition
130
- let formDefinition = getFormDefinition(element);
131
-
132
- if (!formDefinition) {
133
- formId = createFormId();
134
-
135
- formDefinition = createFormDefinition(
136
- {
137
- formKey: createFormKey(formId)
138
- },
139
- extensionElements,
140
- bpmnFactory
141
- );
142
-
143
- commands.push(cmdHelper.addAndRemoveElementsFromList(
144
- element,
145
- extensionElements,
146
- 'values',
147
- 'extensionElements',
148
- [ formDefinition ],
149
- []
150
- ));
151
- }
152
-
153
- formId = resolveFormId(formDefinition.get('formKey'));
154
-
155
- // (4) ensure user task form
156
- userTaskForm = getUserTaskForm(element);
157
-
158
- if (!userTaskForm) {
159
- userTaskForm = createUserTaskForm(
160
- {
161
- id: formId,
162
- body: body
163
- },
164
- rootExtensionElements,
165
- bpmnFactory
166
- );
167
-
168
- commands.push(cmdHelper.addAndRemoveElementsFromList(
169
- element,
170
- rootExtensionElements,
171
- 'values',
172
- 'extensionElements',
173
- [ userTaskForm ],
174
- []
175
- ));
176
- }
177
-
178
- // (5) update user task form
179
- commands.push(cmdHelper.updateBusinessObject(element, userTaskForm, {
180
- body: values.formJSON
181
- }));
182
-
183
- return commands;
184
-
185
- }
186
- }));
187
-
188
- return entries;
189
- }
190
-
191
-
192
- // helpers //////////////////////
193
-
194
- function getRootElement(element) {
195
- var businessObject = getBusinessObject(element),
196
- parent = businessObject;
197
-
198
- while (parent.$parent && !is(parent, 'bpmn:Process')) {
199
- parent = parent.$parent;
200
- }
201
-
202
- return parent;
203
- }
204
-
205
- function resolveFormId(formKey) {
206
- return formKey.split(':')[2];
207
- }