camunda-bpmn-js 0.13.0-alpha.0 → 0.13.0-alpha.1

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.
@@ -8280,6 +8280,20 @@
8280
8280
  * @param {Object} options
8281
8281
  */
8282
8282
  Properties.prototype.define = function(target, name, options) {
8283
+
8284
+ if (!options.writable) {
8285
+
8286
+ var value = options.value;
8287
+
8288
+ // use getters for read-only variables to support ES6 proxies
8289
+ // cf. https://github.com/bpmn-io/internal-docs/issues/386
8290
+ options = assign({}, options, {
8291
+ get: function() { return value; }
8292
+ });
8293
+
8294
+ delete options.value;
8295
+ }
8296
+
8283
8297
  Object.defineProperty(target, name, options);
8284
8298
  };
8285
8299
 
@@ -25682,14 +25696,23 @@
25682
25696
  // the touch recognizer
25683
25697
  var recognizer;
25684
25698
 
25685
- function handler(type) {
25699
+ function handler(type, buttonType) {
25686
25700
 
25687
25701
  return function(event) {
25688
25702
 
25689
- interactionEvents.fire(type, event);
25703
+ var gfx = getGfx(event.target),
25704
+ element = gfx && elementRegistry.get(gfx);
25705
+
25706
+ // translate into an actual mouse click event
25707
+ if (buttonType) {
25708
+ event.srcEvent.button = buttonType;
25709
+ }
25710
+
25711
+ return interactionEvents.fire(type, event, element);
25690
25712
  };
25691
25713
  }
25692
25714
 
25715
+
25693
25716
  function getGfx(target) {
25694
25717
  var node = closest(target, 'svg, .djs-element', true);
25695
25718
  return node;
@@ -25700,10 +25723,6 @@
25700
25723
  // touch recognizer
25701
25724
  recognizer = createTouchRecognizer(svg);
25702
25725
 
25703
- recognizer.on('doubletap', handler('element.dblclick'));
25704
-
25705
- recognizer.on('tap', handler('element.click'));
25706
-
25707
25726
  function startGrabCanvas(event) {
25708
25727
 
25709
25728
  var lx = 0, ly = 0;
@@ -25771,6 +25790,9 @@
25771
25790
  recognizer.on('pinchcancel', end);
25772
25791
  }
25773
25792
 
25793
+ recognizer.on('tap', handler('element.click'));
25794
+ recognizer.on('doubletap', handler('element.dblclick', 1));
25795
+
25774
25796
  recognizer.on('panstart', startGrab);
25775
25797
  recognizer.on('press', startGrab);
25776
25798
 
@@ -35894,7 +35916,7 @@
35894
35916
  return this._createEntries(element, DATA_OBJECT_REFERENCE);
35895
35917
  }
35896
35918
 
35897
- if (is$1(businessObject, 'bpmn:DataStoreReference')) {
35919
+ if (is$1(businessObject, 'bpmn:DataStoreReference') && !is$1(element.parent, 'bpmn:Collaboration')) {
35898
35920
  return this._createEntries(element, DATA_STORE_REFERENCE);
35899
35921
  }
35900
35922
 
@@ -39895,7 +39917,7 @@
39895
39917
 
39896
39918
  function activateDirectEdit(element, force) {
39897
39919
  if (force ||
39898
- isAny(element, [ 'bpmn:Task', 'bpmn:TextAnnotation', 'bpmn:Group' ]) ||
39920
+ isAny(element, [ 'bpmn:Task', 'bpmn:TextAnnotation' ]) ||
39899
39921
  isCollapsedSubProcess(element)) {
39900
39922
 
39901
39923
  directEditing.activate(element);
@@ -41237,122 +41259,97 @@
41237
41259
  }
41238
41260
  });
41239
41261
 
41240
- function ensureCollaboration(context) {
41241
- var parent = context.parent,
41242
- collaboration;
41243
-
41262
+ // turn process into collaboration when creating first participant
41263
+ function getOrCreateCollaboration() {
41244
41264
  var rootElement = canvas.getRootElement();
41245
41265
 
41246
41266
  if (is$1(rootElement, 'bpmn:Collaboration')) {
41247
- collaboration = rootElement;
41248
- } else {
41249
-
41250
- // update root element by making collaboration
41251
- collaboration = modeling.makeCollaboration();
41252
-
41253
- // re-use process when creating first participant
41254
- context.process = parent;
41267
+ return rootElement;
41255
41268
  }
41256
41269
 
41257
- context.parent = collaboration;
41270
+ return modeling.makeCollaboration();
41258
41271
  }
41259
41272
 
41260
- // turn process into collaboration before adding participant
41261
- this.preExecute('shape.create', function(context) {
41262
- var parent = context.parent,
41263
- shape = context.shape;
41264
-
41265
- if (is$1(shape, 'bpmn:Participant') && is$1(parent, 'bpmn:Process')) {
41266
- ensureCollaboration(context);
41267
- }
41268
- }, true);
41269
-
41270
- this.execute('shape.create', function(context) {
41271
- var process = context.process,
41272
- shape = context.shape;
41273
-
41274
- if (process) {
41275
- context.oldProcessRef = shape.businessObject.processRef;
41273
+ // when creating mutliple elements through `elements.create` parent must be set to collaboration
41274
+ // and passed to `shape.create` as hint
41275
+ this.preExecute('elements.create', HIGH_PRIORITY$9, function(context) {
41276
+ var elements = context.elements,
41277
+ parent = context.parent,
41278
+ participant = findParticipant(elements),
41279
+ hints;
41276
41280
 
41277
- // re-use process when creating first participant
41278
- shape.businessObject.processRef = process.businessObject;
41279
- }
41280
- }, true);
41281
+ if (participant && is$1(parent, 'bpmn:Process')) {
41282
+ context.parent = getOrCreateCollaboration();
41281
41283
 
41282
- this.revert('shape.create', function(context) {
41283
- var process = context.process,
41284
- shape = context.shape;
41284
+ hints = context.hints = context.hints || {};
41285
41285
 
41286
- if (process) {
41287
-
41288
- // re-use process when creating first participant
41289
- shape.businessObject.processRef = context.oldProcessRef;
41286
+ hints.participant = participant;
41287
+ hints.process = parent;
41288
+ hints.processRef = getBusinessObject(participant).get('processRef');
41290
41289
  }
41291
41290
  }, true);
41292
41291
 
41293
- this.postExecute('shape.create', function(context) {
41294
- var process = context.process,
41292
+ // when creating single shape through `shape.create` parent must be set to collaboration
41293
+ // unless it was already set through `elements.create`
41294
+ this.preExecute('shape.create', function(context) {
41295
+ var parent = context.parent,
41295
41296
  shape = context.shape;
41296
41297
 
41297
- if (process) {
41298
-
41299
- // move children from process to participant
41300
- var processChildren = process.children.slice();
41298
+ if (is$1(shape, 'bpmn:Participant') && is$1(parent, 'bpmn:Process')) {
41299
+ context.parent = getOrCreateCollaboration();
41301
41300
 
41302
- modeling.moveElements(processChildren, { x: 0, y: 0 }, shape);
41301
+ context.process = parent;
41302
+ context.processRef = getBusinessObject(shape).get('processRef');
41303
41303
  }
41304
-
41305
41304
  }, true);
41306
41305
 
41307
- // turn process into collaboration when creating participants
41308
- this.preExecute('elements.create', HIGH_PRIORITY$9, function(context) {
41309
- var elements = context.elements,
41310
- parent = context.parent,
41311
- participant;
41312
-
41313
- var hasParticipants = findParticipant(elements);
41314
-
41315
- if (hasParticipants && is$1(parent, 'bpmn:Process')) {
41316
- ensureCollaboration(context);
41317
-
41318
- participant = findParticipant(elements);
41306
+ // #execute necessary because #preExecute not called on CommandStack#redo
41307
+ this.execute('shape.create', function(context) {
41308
+ var hints = context.hints || {},
41309
+ process = context.process || hints.process,
41310
+ shape = context.shape,
41311
+ participant = hints.participant;
41319
41312
 
41320
- context.oldProcessRef = participant.businessObject.processRef;
41313
+ // both shape.create and elements.create must be handled
41314
+ if (process && (!participant || shape === participant)) {
41321
41315
 
41322
- // re-use process when creating first participant
41323
- participant.businessObject.processRef = parent.businessObject;
41316
+ // monkey-patch process ref
41317
+ getBusinessObject(shape).set('processRef', getBusinessObject(process));
41324
41318
  }
41325
41319
  }, true);
41326
41320
 
41327
- this.revert('elements.create', function(context) {
41328
- var elements = context.elements,
41329
- process = context.process,
41330
- participant;
41321
+ this.revert('shape.create', function(context) {
41322
+ var hints = context.hints || {},
41323
+ process = context.process || hints.process,
41324
+ processRef = context.processRef || hints.processRef,
41325
+ shape = context.shape,
41326
+ participant = hints.participant;
41331
41327
 
41332
- if (process) {
41333
- participant = findParticipant(elements);
41328
+ // both shape.create and elements.create must be handled
41329
+ if (process && (!participant || shape === participant)) {
41334
41330
 
41335
- // re-use process when creating first participant
41336
- participant.businessObject.processRef = context.oldProcessRef;
41331
+ // monkey-patch process ref
41332
+ getBusinessObject(shape).set('processRef', processRef);
41337
41333
  }
41338
41334
  }, true);
41339
41335
 
41340
- this.postExecute('elements.create', function(context) {
41341
- var elements = context.elements,
41342
- process = context.process,
41343
- participant;
41336
+ this.postExecute('shape.create', function(context) {
41337
+ var hints = context.hints || {},
41338
+ process = context.process || context.hints.process,
41339
+ shape = context.shape,
41340
+ participant = hints.participant;
41344
41341
 
41345
41342
  if (process) {
41346
- participant = findParticipant(elements);
41343
+ var children = process.children.slice();
41347
41344
 
41348
- // move children from process to first participant
41349
- var processChildren = process.children.slice();
41350
-
41351
- modeling.moveElements(processChildren, { x: 0, y: 0 }, participant);
41345
+ // both shape.create and elements.create must be handled
41346
+ if (!participant) {
41347
+ modeling.moveElements(children, { x: 0, y: 0 }, shape);
41348
+ } else if (shape === participant) {
41349
+ modeling.moveElements(children, { x: 0, y: 0 }, participant);
41350
+ }
41352
41351
  }
41353
-
41354
41352
  }, true);
41355
-
41356
41353
  }
41357
41354
 
41358
41355
  CreateParticipantBehavior$1.$inject = [
@@ -44773,7 +44770,9 @@
44773
44770
  var rootElement = canvas.getRootElement(),
44774
44771
  rootElementBo = rootElement.businessObject;
44775
44772
 
44776
- moddle.ids.unclaim(rootElementBo.id);
44773
+ if (is$1(rootElement, 'bpmn:Collaboration')) {
44774
+ moddle.ids.unclaim(rootElementBo.id);
44775
+ }
44777
44776
  });
44778
44777
  }
44779
44778
 
@@ -48721,6 +48720,10 @@
48721
48720
  };
48722
48721
 
48723
48722
  BpmnFactory.prototype._ensureId = function(element) {
48723
+ if (element.id) {
48724
+ this._model.ids.claim(element.id, element);
48725
+ return;
48726
+ }
48724
48727
 
48725
48728
  // generate semantic ids for elements
48726
48729
  // bpmn:SequenceFlow -> SequenceFlow_ID
@@ -48791,7 +48794,8 @@
48791
48794
 
48792
48795
  BpmnFactory.prototype.createDiEdge = function(semantic, waypoints, attrs) {
48793
48796
  return this.create('bpmndi:BPMNEdge', assign({
48794
- bpmnElement: semantic
48797
+ bpmnElement: semantic,
48798
+ waypoint: this.createDiWaypoints(waypoints)
48795
48799
  }, attrs));
48796
48800
  };
48797
48801
 
@@ -52976,12 +52980,26 @@
52976
52980
  // TODO @barmac: remove once we drop bpmn.io properties
52977
52981
  ensureLegacySupport(assignedDi);
52978
52982
 
52979
- self._commandStack.execute('element.updateProperties', {
52980
- element: element,
52981
- properties: {
52982
- di: assignedDi
52983
- }
52984
- });
52983
+ if (element.labelTarget) {
52984
+
52985
+ // set label colors as bpmndi:BPMNLabel#color
52986
+ self._commandStack.execute('element.updateModdleProperties', {
52987
+ element: element,
52988
+ moddleElement: element.businessObject.di.label,
52989
+ properties: {
52990
+ color: di['background-color']
52991
+ }
52992
+ });
52993
+ } else {
52994
+
52995
+ // set colors bpmndi:BPMNEdge or bpmndi:BPMNShape
52996
+ self._commandStack.execute('element.updateProperties', {
52997
+ element: element,
52998
+ properties: {
52999
+ di: assignedDi
53000
+ }
53001
+ });
53002
+ }
52985
53003
  });
52986
53004
 
52987
53005
  };
@@ -56191,7 +56209,7 @@
56191
56209
 
56192
56210
  create.start(event, [ subProcess, startEvent ], {
56193
56211
  hints: {
56194
- autoSelect: [ startEvent ]
56212
+ autoSelect: [ subProcess ]
56195
56213
  }
56196
56214
  });
56197
56215
  }
@@ -61230,7 +61248,7 @@
61230
61248
  descriptionLoaded
61231
61249
  } = props; // set-up layout context
61232
61250
 
61233
- const [layout, setLayout] = l(createLayoutContext(layoutConfig));
61251
+ const [layout, setLayout] = l(createLayout(layoutConfig));
61234
61252
  y$1(() => {
61235
61253
  if (typeof layoutChanged === 'function') {
61236
61254
  layoutChanged(layout);
@@ -61242,7 +61260,9 @@
61242
61260
  };
61243
61261
 
61244
61262
  const setLayoutForKey = (key, config) => {
61245
- setLayout(set(layout, key, config));
61263
+ const newLayout = assign({}, layout);
61264
+ set(newLayout, key, config);
61265
+ setLayout(newLayout);
61246
61266
  };
61247
61267
 
61248
61268
  const layoutContext = {
@@ -61301,7 +61321,7 @@
61301
61321
  });
61302
61322
  } // helpers //////////////////
61303
61323
 
61304
- function createLayoutContext(overrides) {
61324
+ function createLayout(overrides) {
61305
61325
  return { ...DEFAULT_LAYOUT,
61306
61326
  ...overrides
61307
61327
  };
@@ -66074,7 +66094,20 @@
66074
66094
  return () => {
66075
66095
  eventBus.off('elements.changed', onElementsChanged);
66076
66096
  };
66077
- }, [selectedElement]); // (2c) provided entries changed
66097
+ }, [selectedElement]); // (2c) root element changed
66098
+
66099
+ y$1(() => {
66100
+ const onRootAdded = e => {
66101
+ const element = e.element;
66102
+
66103
+ _update(element);
66104
+ };
66105
+
66106
+ eventBus.on('root.added', onRootAdded);
66107
+ return () => {
66108
+ eventBus.off('root.added', onRootAdded);
66109
+ };
66110
+ }, [selectedElement]); // (2d) provided entries changed
66078
66111
 
66079
66112
  y$1(() => {
66080
66113
  const onProvidersChanged = () => {
@@ -66085,7 +66118,7 @@
66085
66118
  return () => {
66086
66119
  eventBus.off('propertiesPanel.providersChanged', onProvidersChanged);
66087
66120
  };
66088
- }, [selectedElement]); // (2d) element templates changed
66121
+ }, [selectedElement]); // (2e) element templates changed
66089
66122
 
66090
66123
  y$1(() => {
66091
66124
  const onTemplatesChanged = () => {
@@ -66175,23 +66208,20 @@
66175
66208
  this._layoutConfig = layoutConfig;
66176
66209
  this._descriptionConfig = descriptionConfig;
66177
66210
  this._container = domify('<div style="height: 100%" class="bio-properties-panel-container" input-handle-modified-keys="y,z"></div>');
66178
-
66179
- this._eventBus.on('root.added', event => {
66180
- const {
66181
- element
66182
- } = event;
66183
-
66184
- this._render(element);
66185
-
66211
+ eventBus.on('diagram.init', () => {
66186
66212
  if (parent) {
66187
66213
  this.attachTo(parent);
66188
66214
  }
66189
-
66190
- return;
66191
66215
  });
66216
+ eventBus.on('diagram.destroy', () => {
66217
+ this.detach();
66218
+ });
66219
+ eventBus.on('root.added', event => {
66220
+ const {
66221
+ element
66222
+ } = event;
66192
66223
 
66193
- eventBus.on('root.removed', () => {
66194
- this._destroy();
66224
+ this._render(element);
66195
66225
  });
66196
66226
  }
66197
66227
  /**
@@ -67921,7 +67951,7 @@
67921
67951
  isEdited: isEdited$1
67922
67952
  }, {
67923
67953
  id: 'completionCondition',
67924
- component: o$2(CompletionCondition, {
67954
+ component: o$2(CompletionCondition$1, {
67925
67955
  element: element
67926
67956
  }),
67927
67957
  isEdited: isEdited$1
@@ -67956,7 +67986,7 @@
67956
67986
  });
67957
67987
  }
67958
67988
 
67959
- function CompletionCondition(props) {
67989
+ function CompletionCondition$1(props) {
67960
67990
  const {
67961
67991
  element
67962
67992
  } = props;
@@ -68130,7 +68160,7 @@
68130
68160
  */
68131
68161
 
68132
68162
 
68133
- function getCompletionCondition(element) {
68163
+ function getCompletionCondition$1(element) {
68134
68164
  return getProperty$2(element, 'completionCondition');
68135
68165
  }
68136
68166
  /**
@@ -68143,7 +68173,7 @@
68143
68173
 
68144
68174
 
68145
68175
  function getCompletionConditionValue(element) {
68146
- const completionCondition = getCompletionCondition(element);
68176
+ const completionCondition = getCompletionCondition$1(element);
68147
68177
  return getBody(completionCondition);
68148
68178
  }
68149
68179
 
@@ -69152,6 +69182,329 @@
69152
69182
  return getExtensionElementsList$1(businessObject, 'zeebe:AssignmentDefinition')[0];
69153
69183
  }
69154
69184
 
69185
+ const DMN_IMPLEMENTATION_OPTION = 'dmn',
69186
+ JOB_WORKER_IMPLEMENTATION_OPTION = 'jobWorker',
69187
+ DEFAULT_IMPLEMENTATION_OPTION = DMN_IMPLEMENTATION_OPTION;
69188
+ function BusinessRuleImplementationProps(props) {
69189
+ const {
69190
+ element
69191
+ } = props;
69192
+
69193
+ if (!is$1(element, 'bpmn:BusinessRuleTask')) {
69194
+ return [];
69195
+ }
69196
+
69197
+ return [{
69198
+ id: 'businessRuleImplementation',
69199
+ component: o$2(BusinessRuleImplementation, {
69200
+ element: element
69201
+ }),
69202
+ isEdited: () => isBusinessRuleImplementationEdited(element)
69203
+ }];
69204
+ }
69205
+
69206
+ function BusinessRuleImplementation(props) {
69207
+ const {
69208
+ element
69209
+ } = props;
69210
+ const commandStack = useService('commandStack');
69211
+ const bpmnFactory = useService('bpmnFactory');
69212
+ const translate = useService('translate');
69213
+
69214
+ const getValue = () => {
69215
+ if (getCalledDecision$1(element)) {
69216
+ return DMN_IMPLEMENTATION_OPTION;
69217
+ }
69218
+
69219
+ if (getTaskDefinition$3(element)) {
69220
+ return JOB_WORKER_IMPLEMENTATION_OPTION;
69221
+ }
69222
+
69223
+ return DEFAULT_IMPLEMENTATION_OPTION;
69224
+ };
69225
+ /**
69226
+ * Set value by either creating a zeebe:calledDecision or a zeebe:taskDefintion
69227
+ * extension element. Note that they must not exist both at the same time, however
69228
+ * this will be ensured by a bpmn-js behavior (and not by the propPanel).
69229
+ */
69230
+
69231
+
69232
+ const setValue = value => {
69233
+ const commands = [];
69234
+ const businessObject = getBusinessObject(element);
69235
+ let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
69236
+
69237
+ if (!extensionElements) {
69238
+ extensionElements = createElement('bpmn:ExtensionElements', {
69239
+ values: []
69240
+ }, businessObject, bpmnFactory);
69241
+ commands.push({
69242
+ cmd: 'properties-panel.update-businessobject',
69243
+ context: {
69244
+ element: element,
69245
+ businessObject: businessObject,
69246
+ properties: {
69247
+ extensionElements
69248
+ }
69249
+ }
69250
+ });
69251
+ } // (2) ensure task definition or called decision
69252
+
69253
+
69254
+ let extensionElement, extensionElementType;
69255
+
69256
+ if (value === DMN_IMPLEMENTATION_OPTION) {
69257
+ extensionElement = getCalledDecision$1(element);
69258
+ extensionElementType = 'zeebe:CalledDecision';
69259
+ } else if (value === JOB_WORKER_IMPLEMENTATION_OPTION) {
69260
+ extensionElement = getTaskDefinition$3(element);
69261
+ extensionElementType = 'zeebe:TaskDefinition';
69262
+ }
69263
+
69264
+ if (!extensionElement) {
69265
+ extensionElement = createElement(extensionElementType, {}, extensionElements, bpmnFactory);
69266
+ commands.push({
69267
+ cmd: 'properties-panel.update-businessobject-list',
69268
+ context: {
69269
+ element: element,
69270
+ currentObject: extensionElements,
69271
+ propertyName: 'values',
69272
+ objectsToAdd: [extensionElement]
69273
+ }
69274
+ });
69275
+ } // (3) commit all updates
69276
+
69277
+
69278
+ commandStack.execute('properties-panel.multi-command-executor', commands);
69279
+ };
69280
+
69281
+ const getOptions = () => {
69282
+ const options = [{
69283
+ value: DMN_IMPLEMENTATION_OPTION,
69284
+ label: translate('DMN decision')
69285
+ }, {
69286
+ value: JOB_WORKER_IMPLEMENTATION_OPTION,
69287
+ label: translate('Job worker')
69288
+ }];
69289
+ return options;
69290
+ };
69291
+
69292
+ return SelectEntry({
69293
+ element,
69294
+ id: 'businessRuleImplementation',
69295
+ label: translate('Implementation'),
69296
+ getValue,
69297
+ setValue,
69298
+ getOptions
69299
+ });
69300
+ } // helper ///////////////////////
69301
+
69302
+
69303
+ function getTaskDefinition$3(element) {
69304
+ const businessObject = getBusinessObject(element);
69305
+ return getExtensionElementsList$1(businessObject, 'zeebe:TaskDefinition')[0];
69306
+ }
69307
+
69308
+ function getCalledDecision$1(element) {
69309
+ const businessObject = getBusinessObject(element);
69310
+ return getExtensionElementsList$1(businessObject, 'zeebe:CalledDecision')[0];
69311
+ }
69312
+
69313
+ function isBusinessRuleImplementationEdited(element) {
69314
+ return getTaskDefinition$3(element);
69315
+ }
69316
+
69317
+ function CalledDecisionProps(props) {
69318
+ const {
69319
+ element
69320
+ } = props;
69321
+
69322
+ if (!is$1(element, 'bpmn:BusinessRuleTask')) {
69323
+ return [];
69324
+ } // Don't show if we have a taskDefinition, because then implementation is done
69325
+ // via taskDefinition and not via calledDecision
69326
+
69327
+
69328
+ if (getTaskDefinition$2(element)) {
69329
+ return [];
69330
+ }
69331
+
69332
+ return [{
69333
+ id: 'decisionId',
69334
+ component: o$2(DecisionID, {
69335
+ element: element
69336
+ }),
69337
+ isEdited: isEdited$1
69338
+ }, {
69339
+ id: 'resultVariable',
69340
+ component: o$2(ResultVariable$3, {
69341
+ element: element
69342
+ }),
69343
+ isEdited: isEdited$1
69344
+ }];
69345
+ }
69346
+
69347
+ function DecisionID(props) {
69348
+ const {
69349
+ element
69350
+ } = props;
69351
+ const commandStack = useService('commandStack');
69352
+ const bpmnFactory = useService('bpmnFactory');
69353
+ const translate = useService('translate');
69354
+ const debounce = useService('debounceInput');
69355
+
69356
+ const getValue = () => {
69357
+ return (getCalledDecision(element) || {}).decisionId;
69358
+ };
69359
+
69360
+ const setValue = value => {
69361
+ const commands = [];
69362
+ const businessObject = getBusinessObject(element);
69363
+ let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
69364
+
69365
+ if (!extensionElements) {
69366
+ extensionElements = createElement('bpmn:ExtensionElements', {
69367
+ values: []
69368
+ }, businessObject, bpmnFactory);
69369
+ commands.push({
69370
+ cmd: 'properties-panel.update-businessobject',
69371
+ context: {
69372
+ element: element,
69373
+ businessObject: businessObject,
69374
+ properties: {
69375
+ extensionElements
69376
+ }
69377
+ }
69378
+ });
69379
+ } // (2) ensure calledDecision
69380
+
69381
+
69382
+ let calledDecision = getCalledDecision(element);
69383
+
69384
+ if (!calledDecision) {
69385
+ calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
69386
+ commands.push({
69387
+ cmd: 'properties-panel.update-businessobject-list',
69388
+ context: {
69389
+ element: element,
69390
+ currentObject: extensionElements,
69391
+ propertyName: 'values',
69392
+ objectsToAdd: [calledDecision]
69393
+ }
69394
+ });
69395
+ } // (3) update caledDecision.decisionId
69396
+
69397
+
69398
+ commands.push({
69399
+ cmd: 'properties-panel.update-businessobject',
69400
+ context: {
69401
+ element: element,
69402
+ businessObject: calledDecision,
69403
+ properties: {
69404
+ decisionId: value
69405
+ }
69406
+ }
69407
+ }); // (4) commit all updates
69408
+
69409
+ commandStack.execute('properties-panel.multi-command-executor', commands);
69410
+ };
69411
+
69412
+ return TextfieldEntry({
69413
+ element,
69414
+ id: 'decisionId',
69415
+ label: translate('ID'),
69416
+ getValue,
69417
+ setValue,
69418
+ debounce
69419
+ });
69420
+ }
69421
+
69422
+ function ResultVariable$3(props) {
69423
+ const {
69424
+ element
69425
+ } = props;
69426
+ const commandStack = useService('commandStack');
69427
+ const bpmnFactory = useService('bpmnFactory');
69428
+ const translate = useService('translate');
69429
+ const debounce = useService('debounceInput');
69430
+
69431
+ const getValue = () => {
69432
+ return (getCalledDecision(element) || {}).resultVariable;
69433
+ };
69434
+
69435
+ const setValue = value => {
69436
+ const commands = [];
69437
+ const businessObject = getBusinessObject(element);
69438
+ let extensionElements = businessObject.get('extensionElements'); // (1) ensure extension elements
69439
+
69440
+ if (!extensionElements) {
69441
+ extensionElements = createElement('bpmn:ExtensionElements', {
69442
+ values: []
69443
+ }, businessObject, bpmnFactory);
69444
+ commands.push({
69445
+ cmd: 'properties-panel.update-businessobject',
69446
+ context: {
69447
+ element: element,
69448
+ businessObject: businessObject,
69449
+ properties: {
69450
+ extensionElements
69451
+ }
69452
+ }
69453
+ });
69454
+ } // (2) ensure calledDecision
69455
+
69456
+
69457
+ let calledDecision = getCalledDecision(element);
69458
+
69459
+ if (!calledDecision) {
69460
+ calledDecision = createElement('zeebe:CalledDecision', {}, extensionElements, bpmnFactory);
69461
+ commands.push({
69462
+ cmd: 'properties-panel.update-businessobject-list',
69463
+ context: {
69464
+ element: element,
69465
+ currentObject: extensionElements,
69466
+ propertyName: 'values',
69467
+ objectsToAdd: [calledDecision]
69468
+ }
69469
+ });
69470
+ } // (3) update caledDecision.decisionId
69471
+
69472
+
69473
+ commands.push({
69474
+ cmd: 'properties-panel.update-businessobject',
69475
+ context: {
69476
+ element: element,
69477
+ businessObject: calledDecision,
69478
+ properties: {
69479
+ resultVariable: value
69480
+ }
69481
+ }
69482
+ }); // (4) commit all updates
69483
+
69484
+ commandStack.execute('properties-panel.multi-command-executor', commands);
69485
+ };
69486
+
69487
+ return TextfieldEntry({
69488
+ element,
69489
+ id: 'resultVariable',
69490
+ label: translate('Result variable'),
69491
+ getValue,
69492
+ setValue,
69493
+ debounce
69494
+ });
69495
+ } // helper ///////////////////////
69496
+
69497
+
69498
+ function getCalledDecision(element) {
69499
+ const businessObject = getBusinessObject(element);
69500
+ return getExtensionElementsList$1(businessObject, 'zeebe:CalledDecision')[0];
69501
+ }
69502
+
69503
+ function getTaskDefinition$2(element) {
69504
+ const businessObject = getBusinessObject(element);
69505
+ return getExtensionElementsList$1(businessObject, 'zeebe:TaskDefinition')[0];
69506
+ }
69507
+
69155
69508
  function ConditionProps$1(props) {
69156
69509
  const {
69157
69510
  element
@@ -69603,16 +69956,13 @@
69603
69956
 
69604
69957
  if (is$1(element, 'bpmn:EndEvent') || is$1(element, 'bpmn:IntermediateThrowEvent')) {
69605
69958
  return !!getMessageEventDefinition(element);
69606
- } // Due to delayed Zeebe 1.3 implementation, temporarily unbuild this
69607
- // TODO: re-enable for Zeebe 1.4 release
69608
- // Cf. https://github.com/camunda/camunda-modeler/issues/2524#issuecomment-979049379
69609
- // A BusinessRuleTask is per default not a ServiceTask, only if it has a TaskDefinition
69959
+ } // A BusinessRuleTask is per default not a ServiceTask, only if it has a TaskDefinition
69610
69960
  // (ie. if the implementation is set to ==JobWorker)
69611
69961
 
69612
- /* if (is(element, 'bpmn:BusinessRuleTask') && !getTaskDefinition(element)) {
69613
- return false;
69614
- }*/
69615
69962
 
69963
+ if (is$1(element, 'bpmn:BusinessRuleTask') && !getTaskDefinition$1(element)) {
69964
+ return false;
69965
+ }
69616
69966
 
69617
69967
  return true;
69618
69968
  }
@@ -69623,11 +69973,10 @@
69623
69973
  return is$1(element, 'bpmn:IntermediateThrowEvent') && !!getMessageEventDefinition(element);
69624
69974
  } // helper ////////////////
69625
69975
 
69626
- /* function getTaskDefinition(element) {
69976
+ function getTaskDefinition$1(element) {
69627
69977
  const businessObject = getBusinessObject(element);
69628
-
69629
- return getExtensionElementsList(businessObject, 'zeebe:TaskDefinition')[0];
69630
- }*/
69978
+ return getExtensionElementsList$1(businessObject, 'zeebe:TaskDefinition')[0];
69979
+ }
69631
69980
 
69632
69981
  function areHeadersSupported(element) {
69633
69982
  return is$1(element, 'bpmn:UserTask') || isZeebeServiceTask(element);
@@ -70255,6 +70604,12 @@
70255
70604
  element: element
70256
70605
  }),
70257
70606
  isEdited: isEdited$1
70607
+ }, {
70608
+ id: 'multiInstance-completionCondition',
70609
+ component: o$2(CompletionCondition, {
70610
+ element: element
70611
+ }),
70612
+ isEdited: isEdited$1
70258
70613
  }];
70259
70614
  }
70260
70615
 
@@ -70364,6 +70719,42 @@
70364
70719
  setValue,
70365
70720
  debounce
70366
70721
  });
70722
+ }
70723
+
70724
+ function CompletionCondition(props) {
70725
+ const {
70726
+ element
70727
+ } = props;
70728
+ const commandStack = useService('commandStack');
70729
+ const bpmnFactory = useService('bpmnFactory');
70730
+ const translate = useService('translate');
70731
+ const debounce = useService('debounceInput');
70732
+
70733
+ const getValue = () => {
70734
+ const completionCondition = getCompletionCondition(element);
70735
+ return completionCondition && completionCondition.get('body');
70736
+ };
70737
+
70738
+ const setValue = value => {
70739
+ if (value && value !== '') {
70740
+ const loopCharacteristics = getLoopCharacteristics$1(element);
70741
+ const completionCondition = createElement('bpmn:FormalExpression', {
70742
+ body: value
70743
+ }, loopCharacteristics, bpmnFactory);
70744
+ setCompletionCondition(element, commandStack, completionCondition);
70745
+ } else {
70746
+ setCompletionCondition(element, commandStack, undefined);
70747
+ }
70748
+ };
70749
+
70750
+ return TextfieldEntry({
70751
+ element,
70752
+ id: 'multiInstance-completionCondition',
70753
+ label: translate('Completion condition'),
70754
+ getValue,
70755
+ setValue,
70756
+ debounce
70757
+ });
70367
70758
  } // helper ///////////////////////
70368
70759
 
70369
70760
 
@@ -70381,6 +70772,20 @@
70381
70772
  return !!getLoopCharacteristics$1(element);
70382
70773
  }
70383
70774
 
70775
+ function getCompletionCondition(element) {
70776
+ return getLoopCharacteristics$1(element).get('completionCondition');
70777
+ }
70778
+
70779
+ function setCompletionCondition(element, commandStack, completionCondition = undefined) {
70780
+ commandStack.execute('properties-panel.update-businessobject', {
70781
+ element,
70782
+ businessObject: getLoopCharacteristics$1(element),
70783
+ properties: {
70784
+ completionCondition
70785
+ }
70786
+ });
70787
+ }
70788
+
70384
70789
  function getProperty$1(element, propertyName) {
70385
70790
  const loopCharacteristics = getLoopCharacteristics$1(element),
70386
70791
  zeebeLoopCharacteristics = getZeebeLoopCharacteristics(loopCharacteristics);
@@ -71386,12 +71791,7 @@
71386
71791
  }
71387
71792
 
71388
71793
  const LOW_PRIORITY$1$1 = 500;
71389
- const ZEEBE_GROUPS = [// Due to delayed Zeebe 1.3 implementation, temporarily unbuild this
71390
- // TODO: re-enable for Zeebe 1.4 release
71391
- // Cf. https://github.com/camunda/camunda-modeler/issues/2524#issuecomment-979049379
71392
- // BusinessRuleImplementationGroup,
71393
- // CalledDecisionGroup,
71394
- TaskDefinitionGroup, AssignmentDefinitionGroup, FormGroup$1, ConditionGroup$1, TargetGroup, InputGroup$1, OutputPropagationGroup, OutputGroup$1, HeaderGroup];
71794
+ const ZEEBE_GROUPS = [BusinessRuleImplementationGroup, CalledDecisionGroup, TaskDefinitionGroup, AssignmentDefinitionGroup, FormGroup$1, ConditionGroup$1, TargetGroup, InputGroup$1, OutputPropagationGroup, OutputGroup$1, HeaderGroup];
71395
71795
  class ZeebePropertiesProvider {
71396
71796
  constructor(propertiesPanel, injector) {
71397
71797
  propertiesPanel.registerProvider(LOW_PRIORITY$1$1, this);
@@ -71418,22 +71818,19 @@
71418
71818
  }
71419
71819
 
71420
71820
  }
71421
- ZeebePropertiesProvider.$inject = ['propertiesPanel', 'injector']; // Due to delayed Zeebe 1.3 implementation, temporarily unbuild this
71422
- // TODO: re-enable for Zeebe 1.4 release
71423
- // Cf. https://github.com/camunda/camunda-modeler/issues/2524#issuecomment-979049379
71821
+ ZeebePropertiesProvider.$inject = ['propertiesPanel', 'injector'];
71424
71822
 
71425
- /* function CalledDecisionGroup(element) {
71823
+ function CalledDecisionGroup(element) {
71426
71824
  const group = {
71427
71825
  id: 'calledDecision',
71428
71826
  label: 'Called decision',
71429
- entries: [
71430
- ...CalledDecisionProps({ element })
71431
- ],
71827
+ entries: [...CalledDecisionProps({
71828
+ element
71829
+ })],
71432
71830
  component: Group
71433
71831
  };
71434
-
71435
71832
  return group.entries.length ? group : null;
71436
- }*/
71833
+ }
71437
71834
 
71438
71835
  function TaskDefinitionGroup(element) {
71439
71836
  const group = {
@@ -71532,23 +71929,19 @@
71532
71929
  component: Group
71533
71930
  };
71534
71931
  return group.entries.length ? group : null;
71535
- } // Due to delayed Zeebe 1.3 implementation, temporarily unbuild this
71536
- // TODO: re-enable for Zeebe 1.4 release
71537
- // Cf. https://github.com/camunda/camunda-modeler/issues/2524#issuecomment-979049379
71932
+ }
71538
71933
 
71539
- /* function BusinessRuleImplementationGroup(element) {
71934
+ function BusinessRuleImplementationGroup(element) {
71540
71935
  const group = {
71541
71936
  id: 'businessRuleImplementation',
71542
71937
  label: 'Implementation',
71543
- entries: [
71544
- ...BusinessRuleImplementationProps({ element })
71545
- ],
71938
+ entries: [...BusinessRuleImplementationProps({
71939
+ element
71940
+ })],
71546
71941
  component: Group
71547
71942
  };
71548
-
71549
71943
  return group.entries.length ? group : null;
71550
- }*/
71551
-
71944
+ }
71552
71945
 
71553
71946
  function AssignmentDefinitionGroup(element) {
71554
71947
  const group = {
@@ -71621,6 +72014,272 @@
71621
72014
  zeebePropertiesProvider: ['type', ZeebePropertiesProvider]
71622
72015
  };
71623
72016
 
72017
+ var e$2,
72018
+ o$3 = {};
72019
+
72020
+ function n$1(r, t, e) {
72021
+ if (3 === r.nodeType) {
72022
+ var o = "textContent" in r ? r.textContent : r.nodeValue || "";
72023
+
72024
+ if (!1 !== n$1.options.trim) {
72025
+ var a = 0 === t || t === e.length - 1;
72026
+ if ((!(o = o.match(/^[\s\n]+$/g) && "all" !== n$1.options.trim ? " " : o.replace(/(^[\s\n]+|[\s\n]+$)/g, "all" === n$1.options.trim || a ? "" : " ")) || " " === o) && e.length > 1 && a) return null;
72027
+ }
72028
+
72029
+ return o;
72030
+ }
72031
+
72032
+ if (1 !== r.nodeType) return null;
72033
+ var p = String(r.nodeName).toLowerCase();
72034
+ if ("script" === p && !n$1.options.allowScripts) return null;
72035
+ var l,
72036
+ s,
72037
+ u = n$1.h(p, function (r) {
72038
+ var t = r && r.length;
72039
+ if (!t) return null;
72040
+
72041
+ for (var e = {}, o = 0; o < t; o++) {
72042
+ var a = r[o],
72043
+ i = a.name,
72044
+ p = a.value;
72045
+ "on" === i.substring(0, 2) && n$1.options.allowEvents && (p = new Function(p)), e[i] = p;
72046
+ }
72047
+
72048
+ return e;
72049
+ }(r.attributes), (s = (l = r.childNodes) && Array.prototype.map.call(l, n$1).filter(i$2)) && s.length ? s : null);
72050
+ return n$1.visitor && n$1.visitor(u), u;
72051
+ }
72052
+
72053
+ var a$2,
72054
+ i$2 = function (r) {
72055
+ return r;
72056
+ },
72057
+ p$2 = {};
72058
+
72059
+ function l$1(r) {
72060
+ var t = (r.type || "").toLowerCase(),
72061
+ e = l$1.map;
72062
+ e && e.hasOwnProperty(t) ? (r.type = e[t], r.props = Object.keys(r.props || {}).reduce(function (t, e) {
72063
+ var o;
72064
+ return t[(o = e, o.replace(/-(.)/g, function (r, t) {
72065
+ return t.toUpperCase();
72066
+ }))] = r.props[e], t;
72067
+ }, {})) : r.type = t.replace(/[^a-z0-9-]/i, "");
72068
+ }
72069
+
72070
+ ((function (t) {
72071
+ function i() {
72072
+ t.apply(this, arguments);
72073
+ }
72074
+
72075
+ return t && (i.__proto__ = t), (i.prototype = Object.create(t && t.prototype)).constructor = i, i.setReviver = function (r) {
72076
+ a$2 = r;
72077
+ }, i.prototype.shouldComponentUpdate = function (r) {
72078
+ var t = this.props;
72079
+ return r.wrap !== t.wrap || r.type !== t.type || r.markup !== t.markup;
72080
+ }, i.prototype.setComponents = function (r) {
72081
+ if (this.map = {}, r) for (var t in r) if (r.hasOwnProperty(t)) {
72082
+ var e = t.replace(/([A-Z]+)([A-Z][a-z0-9])|([a-z0-9]+)([A-Z])/g, "$1$3-$2$4").toLowerCase();
72083
+ this.map[e] = r[t];
72084
+ }
72085
+ }, i.prototype.render = function (t) {
72086
+ var i = t.wrap;
72087
+ void 0 === i && (i = !0);
72088
+
72089
+ var s,
72090
+ u = t.type,
72091
+ c = t.markup,
72092
+ m = t.components,
72093
+ v = t.reviver,
72094
+ f = t.onError,
72095
+ d = t["allow-scripts"],
72096
+ h$1 = t["allow-events"],
72097
+ y = t.trim,
72098
+ w = function (r, t) {
72099
+ var e = {};
72100
+
72101
+ for (var o in r) Object.prototype.hasOwnProperty.call(r, o) && -1 === t.indexOf(o) && (e[o] = r[o]);
72102
+
72103
+ return e;
72104
+ }(t, ["wrap", "type", "markup", "components", "reviver", "onError", "allow-scripts", "allow-events", "trim"]),
72105
+ C = v || this.reviver || this.constructor.prototype.reviver || a$2 || a;
72106
+
72107
+ this.setComponents(m);
72108
+ var g = {
72109
+ allowScripts: d,
72110
+ allowEvents: h$1,
72111
+ trim: y
72112
+ };
72113
+
72114
+ try {
72115
+ s = function (r, t, a, i, s) {
72116
+ var u = function (r, t) {
72117
+ var o,
72118
+ n,
72119
+ a,
72120
+ i,
72121
+ p = "html" === t ? "text/html" : "application/xml";
72122
+ "html" === t ? (i = "body", a = "<!DOCTYPE html>\n<html><body>" + r + "</body></html>") : (i = "xml", a = '<?xml version="1.0" encoding="UTF-8"?>\n<xml>' + r + "</xml>");
72123
+
72124
+ try {
72125
+ o = new DOMParser().parseFromString(a, p);
72126
+ } catch (r) {
72127
+ n = r;
72128
+ }
72129
+
72130
+ if (o || "html" !== t || ((o = e$2 || (e$2 = function () {
72131
+ if (document.implementation && document.implementation.createHTMLDocument) return document.implementation.createHTMLDocument("");
72132
+ var r = document.createElement("iframe");
72133
+ return r.style.cssText = "position:absolute; left:0; top:-999em; width:1px; height:1px; overflow:hidden;", r.setAttribute("sandbox", "allow-forms"), document.body.appendChild(r), r.contentWindow.document;
72134
+ }())).open(), o.write(a), o.close()), o) {
72135
+ var l = o.getElementsByTagName(i)[0],
72136
+ s = l.firstChild;
72137
+ return r && !s && (l.error = "Document parse failed."), s && "parsererror" === String(s.nodeName).toLowerCase() && (s.removeChild(s.firstChild), s.removeChild(s.lastChild), l.error = s.textContent || s.nodeValue || n || "Unknown error", l.removeChild(s)), l;
72138
+ }
72139
+ }(r, t);
72140
+
72141
+ if (u && u.error) throw new Error(u.error);
72142
+ var c = u && u.body || u;
72143
+ l$1.map = i || p$2;
72144
+
72145
+ var m = c && function (r, t, e, a) {
72146
+ return n$1.visitor = t, n$1.h = e, n$1.options = a || o$3, n$1(r);
72147
+ }(c, l$1, a, s);
72148
+
72149
+ return l$1.map = null, m && m.props && m.props.children || null;
72150
+ }(c, u, C, this.map, g);
72151
+ } catch (r) {
72152
+ f ? f({
72153
+ error: r
72154
+ }) : "undefined" != typeof console && console.error && console.error("preact-markup: " + r);
72155
+ }
72156
+
72157
+ if (!1 === i) return s || null;
72158
+ var x = w.hasOwnProperty("className") ? "className" : "class",
72159
+ b = w[x];
72160
+ return b ? b.splice ? b.splice(0, 0, "markup") : "string" == typeof b ? w[x] += " markup" : "object" == typeof b && (b.markup = !0) : w[x] = "markup", C("div", w, s || null);
72161
+ }, i;
72162
+ })(p));
72163
+
72164
+ document.createElement('form');
72165
+
72166
+ /* eslint-disable react-hooks/rules-of-hooks */
72167
+ const DescriptionProvider = {
72168
+ conditionExpression: element => {
72169
+ const translate = useService('translate');
72170
+ return o$2("a", {
72171
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/exclusive-gateways/exclusive-gateways#conditions",
72172
+ target: "_blank",
72173
+ rel: "noopener",
72174
+ title: translate('Conditions documentation'),
72175
+ children: translate('How to define conditions')
72176
+ });
72177
+ },
72178
+ messageSubscriptionCorrelationKey: element => {
72179
+ const translate = useService('translate');
72180
+
72181
+ if (is$1(element, 'bpmn:ReceiveTask')) {
72182
+ return o$2("a", {
72183
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/receive-tasks/receive-tasks/#messages",
72184
+ target: "_blank",
72185
+ rel: "noopener",
72186
+ title: translate('Receive task documentation'),
72187
+ children: translate('How to configure a receive task')
72188
+ });
72189
+ }
72190
+
72191
+ return o$2("a", {
72192
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/message-events/message-events/#messages",
72193
+ target: "_blank",
72194
+ rel: "noopener",
72195
+ title: translate('Message event documentation'),
72196
+ children: translate('How to configure a message event')
72197
+ });
72198
+ },
72199
+ messageName: element => {
72200
+ const translate = useService('translate');
72201
+
72202
+ if (is$1(element, 'bpmn:StartEvent') && !isInEventSubProcess(element)) {
72203
+ return o$2("a", {
72204
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/message-events/message-events/#messages",
72205
+ target: "_blank",
72206
+ rel: "noopener",
72207
+ title: translate('Message event documentation'),
72208
+ children: translate('How to configure a message event')
72209
+ });
72210
+ }
72211
+ },
72212
+ targetProcessId: element => {
72213
+ const translate = useService('translate');
72214
+ return o$2("a", {
72215
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/call-activities/call-activities",
72216
+ target: "_blank",
72217
+ rel: "noopener",
72218
+ title: translate('Call activity documentation'),
72219
+ children: translate('How to call another process')
72220
+ });
72221
+ },
72222
+ taskDefinitionType: element => {
72223
+ const translate = useService('translate');
72224
+
72225
+ if (is$1(element, 'bpmn:ServiceTask')) {
72226
+ return o$2("a", {
72227
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/service-tasks/service-tasks/#task-definition",
72228
+ target: "_blank",
72229
+ rel: "noopener",
72230
+ title: translate('Service task documentation'),
72231
+ children: translate('How to configure a service task')
72232
+ });
72233
+ }
72234
+
72235
+ if (is$1(element, 'bpmn:BusinessRuleTask')) {
72236
+ return o$2("a", {
72237
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/business-rule-tasks/business-rule-tasks/#defining-a-task",
72238
+ target: "_blank",
72239
+ rel: "noopener",
72240
+ title: translate('Business rule task documentation'),
72241
+ children: translate('How to configure a business rule task')
72242
+ });
72243
+ }
72244
+
72245
+ if (is$1(element, 'bpmn:ScriptTask')) {
72246
+ return o$2("a", {
72247
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/script-tasks/script-tasks/#defining-a-task",
72248
+ target: "_blank",
72249
+ rel: "noopener",
72250
+ title: translate('Script task documentation'),
72251
+ children: translate('How to configure a script task')
72252
+ });
72253
+ }
72254
+
72255
+ if (is$1(element, 'bpmn:SendTask')) {
72256
+ return o$2("a", {
72257
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/send-tasks/send-tasks/#defining-a-task",
72258
+ target: "_blank",
72259
+ rel: "noopener",
72260
+ title: translate('Send task documentation'),
72261
+ children: translate('How to configure a send task')
72262
+ });
72263
+ }
72264
+ },
72265
+ errorCode: element => {
72266
+ const translate = useService('translate');
72267
+ return o$2("a", {
72268
+ href: "https://docs.camunda.io/docs/reference/bpmn-processes/error-events/error-events/#defining-the-error",
72269
+ target: "_blank",
72270
+ rel: "noopener",
72271
+ title: translate('Error event documentation'),
72272
+ children: translate('How to configure an error event')
72273
+ });
72274
+ }
72275
+ };
72276
+
72277
+ function isInEventSubProcess(element) {
72278
+ const bo = getBusinessObject(element),
72279
+ parent = bo.$parent;
72280
+ return is$1(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
72281
+ }
72282
+
71624
72283
  /**
71625
72284
  *
71626
72285
  * @param {Object} options
@@ -72210,7 +72869,7 @@
72210
72869
  * generate a semantic id with given prefix
72211
72870
  */
72212
72871
  function nextId$1(prefix) {
72213
- const ids = new Ids([32,32,1]);
72872
+ const ids = new Ids([ 32,32,1 ]);
72214
72873
 
72215
72874
  return ids.nextPrefixed(prefix);
72216
72875
  }
@@ -73230,6 +73889,10 @@
73230
73889
  moddleExtensions: {
73231
73890
  zeebe: zeebeModdle,
73232
73891
  ...options.moddleExtensions
73892
+ },
73893
+ propertiesPanel: {
73894
+ description: DescriptionProvider,
73895
+ ...options.propertiesPanel
73233
73896
  }
73234
73897
  };
73235
73898