camunda-bpmn-js 2.4.0 → 2.6.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.
@@ -4785,6 +4785,28 @@
4785
4785
 
4786
4786
  var intersectPaths = /*@__PURE__*/getDefaultExportFromCjs(intersect);
4787
4787
 
4788
+ /**
4789
+ * Checks whether a value is an instance of Connection.
4790
+ *
4791
+ * @param {any} value
4792
+ *
4793
+ * @return {boolean}
4794
+ */
4795
+ function isConnection$2(value) {
4796
+ return isObject$1(value) && has$2(value, 'waypoints');
4797
+ }
4798
+
4799
+ /**
4800
+ * Checks whether a value is an instance of Label.
4801
+ *
4802
+ * @param {any} value
4803
+ *
4804
+ * @return {boolean}
4805
+ */
4806
+ function isLabel$2(value) {
4807
+ return isObject$1(value) && has$2(value, 'labelTarget');
4808
+ }
4809
+
4788
4810
  /**
4789
4811
  * @typedef {import('../core/Types').ElementLike} Element
4790
4812
  * @typedef {import('../core/Types').ConnectionLike} Connection
@@ -4939,7 +4961,7 @@
4939
4961
  * @return {Point}
4940
4962
  */
4941
4963
  function getMid(element) {
4942
- if (isConnection$h(element)) {
4964
+ if (isConnection$2(element)) {
4943
4965
  return getConnectionMid(element);
4944
4966
  }
4945
4967
 
@@ -5079,10 +5101,6 @@
5079
5101
  return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));
5080
5102
  }
5081
5103
 
5082
- function isConnection$h(element) {
5083
- return !!element.waypoints;
5084
- }
5085
-
5086
5104
  /**
5087
5105
  * @typedef {import('./Types').ConnectionLike} ConnectionLike
5088
5106
  * @typedef {import('./Types').RootLike} RootLike
@@ -7386,6 +7404,7 @@
7386
7404
  *
7387
7405
  * @return {Root}
7388
7406
  */
7407
+
7389
7408
  /**
7390
7409
  * Creates a connection.
7391
7410
  *
@@ -7409,6 +7428,7 @@
7409
7428
  *
7410
7429
  * @return {Connection}
7411
7430
  */
7431
+
7412
7432
  /**
7413
7433
  * Creates a shape.
7414
7434
  *
@@ -7432,6 +7452,7 @@
7432
7452
  *
7433
7453
  * @return {Shape}
7434
7454
  */
7455
+
7435
7456
  /**
7436
7457
  * Creates a label.
7437
7458
  *
@@ -7451,6 +7472,7 @@
7451
7472
  *
7452
7473
  * @param {'label'} type
7453
7474
  * @param {Object} [attrs]
7475
+ *
7454
7476
  * @return {Label}
7455
7477
  */
7456
7478
  function create(type, attrs) {
@@ -7465,6 +7487,7 @@
7465
7487
  * Checks whether an object is a model instance.
7466
7488
  *
7467
7489
  * @param {any} obj
7490
+ *
7468
7491
  * @return {boolean}
7469
7492
  */
7470
7493
  function isModelElement(obj) {
@@ -11712,7 +11735,7 @@
11712
11735
  }
11713
11736
  }
11714
11737
 
11715
- function inherits$1(ctor, superCtor) {
11738
+ function inherits(ctor, superCtor) {
11716
11739
  ctor.super_ = superCtor;
11717
11740
  ctor.prototype = Object.create(superCtor.prototype, {
11718
11741
  constructor: {
@@ -11878,7 +11901,7 @@
11878
11901
  this.tagName = tagName;
11879
11902
  }
11880
11903
 
11881
- inherits$1(ValueSerializer, BodySerializer);
11904
+ inherits(ValueSerializer, BodySerializer);
11882
11905
 
11883
11906
  ValueSerializer.prototype.serializeTo = function(writer) {
11884
11907
 
@@ -12371,7 +12394,7 @@
12371
12394
  ElementSerializer.call(this, parent, propertyDescriptor);
12372
12395
  }
12373
12396
 
12374
- inherits$1(TypeSerializer, ElementSerializer);
12397
+ inherits(TypeSerializer, ElementSerializer);
12375
12398
 
12376
12399
  TypeSerializer.prototype.parseNsAttributes = function(element) {
12377
12400
 
@@ -18069,7 +18092,7 @@
18069
18092
  *
18070
18093
  * @return {boolean}
18071
18094
  */
18072
- function isInterrupting(element) {
18095
+ function isInterrupting$1(element) {
18073
18096
  return element && getBusinessObject$2(element).isInterrupting !== false;
18074
18097
  }
18075
18098
 
@@ -18166,7 +18189,7 @@
18166
18189
  * @return {boolean}
18167
18190
  */
18168
18191
  function hasExternalLabel(element) {
18169
- return isLabel$7(element.label);
18192
+ return isLabel$2(element.label);
18170
18193
  }
18171
18194
 
18172
18195
  /**
@@ -18290,19 +18313,10 @@
18290
18313
  }
18291
18314
 
18292
18315
  /**
18293
- * @param {Element} element
18316
+ * @param {ModdleElement} semantic
18294
18317
  *
18295
- * @return {boolean}
18296
- */
18297
- function isLabel$7(element) {
18298
- return element && !!element.labelTarget;
18299
- }
18300
-
18301
-
18302
- /**
18303
- * @typedef { import('../model').DiagramElement } DiagramElement
18318
+ * @returns {string}
18304
18319
  */
18305
-
18306
18320
  function getLabelAttr(semantic) {
18307
18321
  if (
18308
18322
  is$6(semantic, 'bpmn:FlowElement') ||
@@ -18325,6 +18339,11 @@
18325
18339
  }
18326
18340
  }
18327
18341
 
18342
+ /**
18343
+ * @param {ModdleElement} semantic
18344
+ *
18345
+ * @returns {string}
18346
+ */
18328
18347
  function getCategoryValue(semantic) {
18329
18348
  var categoryValueRef = semantic['categoryValueRef'];
18330
18349
 
@@ -18337,9 +18356,9 @@
18337
18356
  }
18338
18357
 
18339
18358
  /**
18340
- * @param {DiagramElement} element
18359
+ * @param {Element} element
18341
18360
  *
18342
- * @return {string} label
18361
+ * @return {string}
18343
18362
  */
18344
18363
  function getLabel(element) {
18345
18364
  var semantic = element.businessObject,
@@ -18358,10 +18377,10 @@
18358
18377
 
18359
18378
 
18360
18379
  /**
18361
- * @param {DiagramElement} element
18380
+ * @param {Element} element
18362
18381
  * @param {string} text
18363
18382
  *
18364
- * @return {DiagramElement} element
18383
+ * @return {Element}
18365
18384
  */
18366
18385
  function setLabel(element, text) {
18367
18386
  var semantic = element.businessObject,
@@ -18583,7 +18602,7 @@
18583
18602
  */
18584
18603
 
18585
18604
  /**
18586
- * @typedef { import('../model').DiagramElement } DiagramElement
18605
+ * @typedef { import('../model/Types').Element } Element
18587
18606
  */
18588
18607
 
18589
18608
  /**
@@ -18949,8 +18968,8 @@
18949
18968
  }
18950
18969
 
18951
18970
  function as(type) {
18952
- return function(parentGfx, element) {
18953
- return renderer(type)(parentGfx, element);
18971
+ return function(parentGfx, element, options) {
18972
+ return renderer(type)(parentGfx, element, options);
18954
18973
  };
18955
18974
  }
18956
18975
 
@@ -19089,7 +19108,7 @@
19089
19108
 
19090
19109
  return drawCircle(parentGfx, element.width, element.height, attrs);
19091
19110
  },
19092
- 'bpmn:StartEvent': function(parentGfx, element) {
19111
+ 'bpmn:StartEvent': function(parentGfx, element, options) {
19093
19112
  var attrs = {
19094
19113
  fill: getFillColor(element, defaultFillColor),
19095
19114
  stroke: getStrokeColor$1(element, defaultStrokeColor)
@@ -19107,7 +19126,9 @@
19107
19126
 
19108
19127
  var circle = renderer('bpmn:Event')(parentGfx, element, attrs);
19109
19128
 
19110
- renderEventContent(element, parentGfx);
19129
+ if (!options || options.renderIcon !== false) {
19130
+ renderEventContent(element, parentGfx);
19131
+ }
19111
19132
 
19112
19133
  return circle;
19113
19134
  },
@@ -19360,14 +19381,16 @@
19360
19381
  stroke: getStrokeColor$1(event, defaultStrokeColor)
19361
19382
  });
19362
19383
  },
19363
- 'bpmn:EndEvent': function(parentGfx, element) {
19384
+ 'bpmn:EndEvent': function(parentGfx, element, options) {
19364
19385
  var circle = renderer('bpmn:Event')(parentGfx, element, {
19365
19386
  strokeWidth: 4,
19366
19387
  fill: getFillColor(element, defaultFillColor),
19367
19388
  stroke: getStrokeColor$1(element, defaultStrokeColor)
19368
19389
  });
19369
19390
 
19370
- renderEventContent(element, parentGfx);
19391
+ if (!options || options.renderIcon !== false) {
19392
+ renderEventContent(element, parentGfx);
19393
+ }
19371
19394
 
19372
19395
  return circle;
19373
19396
  },
@@ -19380,7 +19403,7 @@
19380
19403
 
19381
19404
  return circle;
19382
19405
  },
19383
- 'bpmn:IntermediateEvent': function(parentGfx, element) {
19406
+ 'bpmn:IntermediateEvent': function(parentGfx, element, options) {
19384
19407
  var outer = renderer('bpmn:Event')(parentGfx, element, {
19385
19408
  strokeWidth: 1.5,
19386
19409
  fill: getFillColor(element, defaultFillColor),
@@ -19394,7 +19417,9 @@
19394
19417
  stroke: getStrokeColor$1(element, defaultStrokeColor)
19395
19418
  });
19396
19419
 
19397
- renderEventContent(element, parentGfx);
19420
+ if (!options || options.renderIcon !== false) {
19421
+ renderEventContent(element, parentGfx);
19422
+ }
19398
19423
 
19399
19424
  return outer;
19400
19425
  },
@@ -20112,7 +20137,7 @@
20112
20137
 
20113
20138
  return elementStore;
20114
20139
  },
20115
- 'bpmn:BoundaryEvent': function(parentGfx, element) {
20140
+ 'bpmn:BoundaryEvent': function(parentGfx, element, options) {
20116
20141
 
20117
20142
  var semantic = getBusinessObject$2(element),
20118
20143
  cancel = semantic.cancelActivity;
@@ -20143,7 +20168,9 @@
20143
20168
 
20144
20169
  /* inner path */ drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, innerAttrs);
20145
20170
 
20146
- renderEventContent(element, parentGfx);
20171
+ if (!options || options.renderIcon !== false) {
20172
+ renderEventContent(element, parentGfx);
20173
+ }
20147
20174
 
20148
20175
  return outer;
20149
20176
  },
@@ -20424,7 +20451,7 @@
20424
20451
 
20425
20452
 
20426
20453
  /**
20427
- * @param {DiagramElement} element
20454
+ * @param {Element} element
20428
20455
  *
20429
20456
  * @return {boolean}
20430
20457
  */
@@ -20436,7 +20463,7 @@
20436
20463
  * Draw shape into parentGfx.
20437
20464
  *
20438
20465
  * @param {SVGElement} parentGfx
20439
- * @param {DiagramElement} element
20466
+ * @param {Element} element
20440
20467
  *
20441
20468
  * @return {SVGElement} mainGfx
20442
20469
  */
@@ -20452,7 +20479,7 @@
20452
20479
  * Draw connection into parentGfx.
20453
20480
  *
20454
20481
  * @param {SVGElement} parentGfx
20455
- * @param {DiagramElement} element
20482
+ * @param {Element} element
20456
20483
  *
20457
20484
  * @return {SVGElement} mainGfx
20458
20485
  */
@@ -20467,7 +20494,7 @@
20467
20494
  /**
20468
20495
  * Get shape path.
20469
20496
  *
20470
- * @param {DiagramElement} element
20497
+ * @param {Element} element
20471
20498
  *
20472
20499
  * @return {string} path
20473
20500
  */
@@ -24007,7 +24034,7 @@
24007
24034
  * @param {boolean} [unwrap] whether the event should be unwrapped
24008
24035
  * @param {any} [that]
24009
24036
  */
24010
- CommandInterceptor$1.prototype.canExecute = createHook('canExecute');
24037
+ CommandInterceptor$1.prototype.canExecute = createHook$1('canExecute');
24011
24038
 
24012
24039
  /**
24013
24040
  * Add a <preExecute> phase of command interceptor.
@@ -24018,7 +24045,7 @@
24018
24045
  * @param {boolean} [unwrap] whether the event should be unwrapped
24019
24046
  * @param {any} [that]
24020
24047
  */
24021
- CommandInterceptor$1.prototype.preExecute = createHook('preExecute');
24048
+ CommandInterceptor$1.prototype.preExecute = createHook$1('preExecute');
24022
24049
 
24023
24050
  /**
24024
24051
  * Add a <preExecuted> phase of command interceptor.
@@ -24029,7 +24056,7 @@
24029
24056
  * @param {boolean} [unwrap] whether the event should be unwrapped
24030
24057
  * @param {any} [that]
24031
24058
  */
24032
- CommandInterceptor$1.prototype.preExecuted = createHook('preExecuted');
24059
+ CommandInterceptor$1.prototype.preExecuted = createHook$1('preExecuted');
24033
24060
 
24034
24061
  /**
24035
24062
  * Add a <execute> phase of command interceptor.
@@ -24040,7 +24067,7 @@
24040
24067
  * @param {boolean} [unwrap] whether the event should be unwrapped
24041
24068
  * @param {any} [that]
24042
24069
  */
24043
- CommandInterceptor$1.prototype.execute = createHook('execute');
24070
+ CommandInterceptor$1.prototype.execute = createHook$1('execute');
24044
24071
 
24045
24072
  /**
24046
24073
  * Add a <executed> phase of command interceptor.
@@ -24051,7 +24078,7 @@
24051
24078
  * @param {boolean} [unwrap] whether the event should be unwrapped
24052
24079
  * @param {any} [that]
24053
24080
  */
24054
- CommandInterceptor$1.prototype.executed = createHook('executed');
24081
+ CommandInterceptor$1.prototype.executed = createHook$1('executed');
24055
24082
 
24056
24083
  /**
24057
24084
  * Add a <postExecute> phase of command interceptor.
@@ -24062,7 +24089,7 @@
24062
24089
  * @param {boolean} [unwrap] whether the event should be unwrapped
24063
24090
  * @param {any} [that]
24064
24091
  */
24065
- CommandInterceptor$1.prototype.postExecute = createHook('postExecute');
24092
+ CommandInterceptor$1.prototype.postExecute = createHook$1('postExecute');
24066
24093
 
24067
24094
  /**
24068
24095
  * Add a <postExecuted> phase of command interceptor.
@@ -24073,7 +24100,7 @@
24073
24100
  * @param {boolean} [unwrap] whether the event should be unwrapped
24074
24101
  * @param {any} [that]
24075
24102
  */
24076
- CommandInterceptor$1.prototype.postExecuted = createHook('postExecuted');
24103
+ CommandInterceptor$1.prototype.postExecuted = createHook$1('postExecuted');
24077
24104
 
24078
24105
  /**
24079
24106
  * Add a <revert> phase of command interceptor.
@@ -24084,7 +24111,7 @@
24084
24111
  * @param {boolean} [unwrap] whether the event should be unwrapped
24085
24112
  * @param {any} [that]
24086
24113
  */
24087
- CommandInterceptor$1.prototype.revert = createHook('revert');
24114
+ CommandInterceptor$1.prototype.revert = createHook$1('revert');
24088
24115
 
24089
24116
  /**
24090
24117
  * Add a <reverted> phase of command interceptor.
@@ -24095,7 +24122,7 @@
24095
24122
  * @param {boolean} [unwrap] whether the event should be unwrapped
24096
24123
  * @param {any} [that]
24097
24124
  */
24098
- CommandInterceptor$1.prototype.reverted = createHook('reverted');
24125
+ CommandInterceptor$1.prototype.reverted = createHook$1('reverted');
24099
24126
 
24100
24127
  /*
24101
24128
  * Add prototype methods for each phase of command execution (e.g. execute,
@@ -24110,7 +24137,7 @@
24110
24137
  * unwrap?: boolean
24111
24138
  * ) => any }
24112
24139
  */
24113
- function createHook(hook) {
24140
+ function createHook$1(hook) {
24114
24141
 
24115
24142
  /**
24116
24143
  * @this {CommandInterceptor}
@@ -30977,7 +31004,7 @@
30977
31004
  let element = closest(event.delegateTarget || event.target, '.entry', true);
30978
31005
  let entryId = attr$1(element, DATA_REF);
30979
31006
 
30980
- entry = this._getEntry(entryId);
31007
+ entry = { id: entryId, ...this._getEntry(entryId) };
30981
31008
  }
30982
31009
 
30983
31010
  const handler = entry.action;
@@ -31950,7 +31977,7 @@
31950
31977
  y: sourceTrbl.top - 50 - element.height / 2
31951
31978
  };
31952
31979
 
31953
- if (isConnection$g(source)) {
31980
+ if (isConnection$2(source)) {
31954
31981
  position = getMid(source);
31955
31982
  position.x += 100;
31956
31983
  position.y -= 50;
@@ -31995,10 +32022,6 @@
31995
32022
  return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
31996
32023
  }
31997
32024
 
31998
- function isConnection$g(element) {
31999
- return !!element.waypoints;
32000
- }
32001
-
32002
32025
  /**
32003
32026
  * @typedef {import('diagram-js/lib/core/EventBus').default} EventBus
32004
32027
  */
@@ -32436,7 +32459,7 @@
32436
32459
 
32437
32460
  forEach$2(elements, function(element) {
32438
32461
 
32439
- if (is$6(element, 'bpmn:Lane') || isLabel$7(element)) {
32462
+ if (is$6(element, 'bpmn:Lane') || isLabel$2(element)) {
32440
32463
  canResize = false;
32441
32464
  return;
32442
32465
  }
@@ -35450,7 +35473,7 @@
35450
35473
  hoverMid = hover && getSnapPoint(hover, event);
35451
35474
 
35452
35475
  // only snap on connections, elements can have multiple connect endpoints
35453
- if (!isConnection$f(hover) || !hoverMid || !hoverMid.x || !hoverMid.y) {
35476
+ if (!isConnection$2(hover) || !hoverMid || !hoverMid.x || !hoverMid.y) {
35454
35477
  return;
35455
35478
  }
35456
35479
 
@@ -35502,13 +35525,6 @@
35502
35525
 
35503
35526
  BendpointSnapping.$inject = [ 'eventBus' ];
35504
35527
 
35505
-
35506
- // helpers //////////////////////
35507
-
35508
- function isConnection$f(element) {
35509
- return element && !!element.waypoints;
35510
- }
35511
-
35512
35528
  /**
35513
35529
  * @type { import('didi').ModuleDeclaration }
35514
35530
  */
@@ -37035,11 +37051,11 @@
37035
37051
  elements = filter(elements, function(element) {
37036
37052
  var labelTarget = element.labelTarget;
37037
37053
 
37038
- return !element.parent && !(isLabel$6(element) && elements.indexOf(labelTarget) !== -1);
37054
+ return !element.parent && !(isLabel$2(element) && elements.indexOf(labelTarget) !== -1);
37039
37055
  });
37040
37056
 
37041
37057
  var shape = find$2(elements, function(element) {
37042
- return !isConnection$e(element);
37058
+ return !isConnection$2(element);
37043
37059
  });
37044
37060
 
37045
37061
  var attach = false,
@@ -37194,7 +37210,7 @@
37194
37210
 
37195
37211
  // update shape
37196
37212
  shape = find$2(elements, function(element) {
37197
- return !isConnection$e(element);
37213
+ return !isConnection$2(element);
37198
37214
  });
37199
37215
  }
37200
37216
 
@@ -37235,7 +37251,7 @@
37235
37251
  }
37236
37252
 
37237
37253
  var shape = find$2(elements, function(element) {
37238
- return !isConnection$e(element);
37254
+ return !isConnection$2(element);
37239
37255
  });
37240
37256
 
37241
37257
  if (!shape) {
@@ -37269,7 +37285,7 @@
37269
37285
 
37270
37286
  // center elements around cursor
37271
37287
  forEach$2(elements, function(element) {
37272
- if (isConnection$e(element)) {
37288
+ if (isConnection$2(element)) {
37273
37289
  element.waypoints = map$2(element.waypoints, function(waypoint) {
37274
37290
  return {
37275
37291
  x: waypoint.x - bbox.x - bbox.width / 2,
@@ -37331,16 +37347,8 @@
37331
37347
  }
37332
37348
  }
37333
37349
 
37334
- function isConnection$e(element) {
37335
- return !!element.waypoints;
37336
- }
37337
-
37338
37350
  function isSingleShape(elements) {
37339
- return elements && elements.length === 1 && !isConnection$e(elements[0]);
37340
- }
37341
-
37342
- function isLabel$6(element) {
37343
- return !!element.labelTarget;
37351
+ return elements && elements.length === 1 && !isConnection$2(elements[ 0 ]);
37344
37352
  }
37345
37353
 
37346
37354
  /**
@@ -37673,7 +37681,7 @@
37673
37681
  }
37674
37682
 
37675
37683
  // connections (priority = 3)
37676
- if (isConnection$d(element)) {
37684
+ if (isConnection$2(element)) {
37677
37685
  descriptor.priority = 3;
37678
37686
 
37679
37687
  descriptor.source = element.source.id;
@@ -37683,7 +37691,7 @@
37683
37691
  }
37684
37692
 
37685
37693
  // labels (priority = 4)
37686
- if (isLabel$5(element)) {
37694
+ if (isLabel$2(element)) {
37687
37695
  descriptor.priority = 4;
37688
37696
 
37689
37697
  descriptor.labelTarget = element.labelTarget.id;
@@ -37816,7 +37824,7 @@
37816
37824
 
37817
37825
  // center elements around cursor
37818
37826
  forEach$2(elements, function(element) {
37819
- if (isConnection$d(element)) {
37827
+ if (isConnection$2(element)) {
37820
37828
  element.waypoints = map$2(element.waypoints, function(waypoint) {
37821
37829
  return {
37822
37830
  x: waypoint.x - bbox.x - bbox.width / 2,
@@ -37869,7 +37877,7 @@
37869
37877
 
37870
37878
  var element;
37871
37879
 
37872
- if (isConnection$d(attrs)) {
37880
+ if (isConnection$2(attrs)) {
37873
37881
  attrs.source = cache[ descriptor.source ];
37874
37882
  attrs.target = cache[ descriptor.target ];
37875
37883
 
@@ -37880,7 +37888,7 @@
37880
37888
  return;
37881
37889
  }
37882
37890
 
37883
- if (isLabel$5(attrs)) {
37891
+ if (isLabel$2(attrs)) {
37884
37892
  attrs.labelTarget = cache[ attrs.labelTarget ];
37885
37893
 
37886
37894
  element = cache[ descriptor.id ] = self.createLabel(attrs);
@@ -37935,7 +37943,7 @@
37935
37943
  source,
37936
37944
  target;
37937
37945
 
37938
- if (isConnection$d(element)) {
37946
+ if (isConnection$2(element)) {
37939
37947
  source = find$2(elements, matchPattern({ id: element.source.id }));
37940
37948
  target = find$2(elements, matchPattern({ id: element.target.id }));
37941
37949
 
@@ -37944,7 +37952,7 @@
37944
37952
  }
37945
37953
  }
37946
37954
 
37947
- if (isLabel$5(element)) {
37955
+ if (isLabel$2(element)) {
37948
37956
  labelTarget = find$2(elements, matchPattern({ id: element.labelTarget.id }));
37949
37957
 
37950
37958
  if (!labelTarget) {
@@ -38037,7 +38045,7 @@
38037
38045
  eachElement$2(parents, function(element, _index, depth) {
38038
38046
 
38039
38047
  // do NOT add external labels directly
38040
- if (isLabel$5(element)) {
38048
+ if (isLabel$2(element)) {
38041
38049
  return;
38042
38050
  }
38043
38051
 
@@ -38135,14 +38143,6 @@
38135
38143
  return !!element.host;
38136
38144
  }
38137
38145
 
38138
- function isConnection$d(element) {
38139
- return !!element.waypoints;
38140
- }
38141
-
38142
- function isLabel$5(element) {
38143
- return !!element.labelTarget;
38144
- }
38145
-
38146
38146
  function copyWaypoints$1(element) {
38147
38147
  return map$2(element.waypoints, function(waypoint) {
38148
38148
 
@@ -38226,7 +38226,7 @@
38226
38226
 
38227
38227
  // do not copy business object + di for labels;
38228
38228
  // will be pulled from the referenced label target
38229
- if (isLabel$7(element)) {
38229
+ if (isLabel$2(element)) {
38230
38230
  return descriptor;
38231
38231
  }
38232
38232
 
@@ -38294,7 +38294,7 @@
38294
38294
  di = descriptor.di;
38295
38295
 
38296
38296
  // wire existing di + businessObject for external label
38297
- if (isLabel$7(descriptor)) {
38297
+ if (isLabel$2(descriptor)) {
38298
38298
  descriptor.businessObject = getBusinessObject$2(cache[ descriptor.labelTarget ]);
38299
38299
  descriptor.di = getDi$1(cache[ descriptor.labelTarget ]);
38300
38300
 
@@ -44375,7 +44375,7 @@
44375
44375
  ResizeHandles.prototype.addResizer = function(element) {
44376
44376
  var self = this;
44377
44377
 
44378
- if (isConnection$c(element) || !this._resize.canResize({ shape: element })) {
44378
+ if (isConnection$2(element) || !this._resize.canResize({ shape: element })) {
44379
44379
  return;
44380
44380
  }
44381
44381
 
@@ -44427,10 +44427,6 @@
44427
44427
  return offset;
44428
44428
  }
44429
44429
 
44430
- function isConnection$c(element) {
44431
- return !!element.waypoints;
44432
- }
44433
-
44434
44430
  /**
44435
44431
  * @type { import('didi').ModuleDeclaration }
44436
44432
  */
@@ -44790,7 +44786,7 @@
44790
44786
  // external label not yet created
44791
44787
  if (isLabelExternal(target)
44792
44788
  && !hasExternalLabel(target)
44793
- && !isLabel$7(target)) {
44789
+ && !isLabel$2(target)) {
44794
44790
 
44795
44791
  var externalLabelMid = getExternalLabelMid(element);
44796
44792
 
@@ -45467,7 +45463,7 @@
45467
45463
  }
45468
45464
 
45469
45465
  function shouldReplace$1(shape, host) {
45470
- return !isLabel$7(shape) &&
45466
+ return !isLabel$2(shape) &&
45471
45467
  isAny$1(shape, [ 'bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent' ]) && !!host;
45472
45468
  }
45473
45469
 
@@ -45644,8 +45640,8 @@
45644
45640
  // ignore connections, groups and labels
45645
45641
  var children = rootElement.children.filter(function(element) {
45646
45642
  return !is$6(element, 'bpmn:Group') &&
45647
- !isLabel$7(element) &&
45648
- !isConnection$b(element);
45643
+ !isLabel$2(element) &&
45644
+ !isConnection$2(element);
45649
45645
  });
45650
45646
 
45651
45647
  // ensure for available children to calculate bounds
@@ -45816,10 +45812,6 @@
45816
45812
  };
45817
45813
  }
45818
45814
 
45819
- function isConnection$b(element) {
45820
- return !!element.waypoints;
45821
- }
45822
-
45823
45815
  function findParticipant(elements) {
45824
45816
  return find$2(elements, function(element) {
45825
45817
  return is$6(element, 'bpmn:Participant');
@@ -46424,7 +46416,7 @@
46424
46416
  }
46425
46417
 
46426
46418
  function shouldReplace(shape, host) {
46427
- return !isLabel$7(shape) && is$6(shape, 'bpmn:BoundaryEvent') && !host;
46419
+ return !isLabel$2(shape) && is$6(shape, 'bpmn:BoundaryEvent') && !host;
46428
46420
  }
46429
46421
 
46430
46422
  function includes$6(array, item) {
@@ -48131,7 +48123,7 @@
48131
48123
 
48132
48124
  var element = context.shape || context.connection;
48133
48125
 
48134
- if (isLabel$7(element) || !isLabelExternal(element)) {
48126
+ if (isLabel$2(element) || !isLabelExternal(element)) {
48135
48127
  return;
48136
48128
  }
48137
48129
 
@@ -50670,7 +50662,7 @@
50670
50662
  shape = context.shape,
50671
50663
  shapeBo = shape.businessObject;
50672
50664
 
50673
- if (isLabel$7(shape)) {
50665
+ if (isLabel$2(shape)) {
50674
50666
  return;
50675
50667
  }
50676
50668
 
@@ -51119,12 +51111,12 @@
51119
51111
  position = context.position,
51120
51112
  target = context.target;
51121
51113
 
51122
- if (isConnection$a(target) && !canInsert(elements, target)) {
51114
+ if (isConnection$2(target) && !canInsert(elements, target)) {
51123
51115
  return false;
51124
51116
  }
51125
51117
 
51126
51118
  return every(elements, function(element) {
51127
- if (isConnection$a(element)) {
51119
+ if (isConnection$2(element)) {
51128
51120
  return canConnect(element.source, element.target, element);
51129
51121
  }
51130
51122
 
@@ -51233,7 +51225,7 @@
51233
51225
  * @return {boolean}
51234
51226
  */
51235
51227
  function nonExistingOrLabel(element) {
51236
- return !element || isLabel$7(element);
51228
+ return !element || isLabel$2(element);
51237
51229
  }
51238
51230
 
51239
51231
  function isSame$1(a, b) {
@@ -51467,15 +51459,6 @@
51467
51459
  );
51468
51460
  }
51469
51461
 
51470
- /**
51471
- * @param {Element} element
51472
- *
51473
- * @return {boolean}
51474
- */
51475
- function isConnection$a(element) {
51476
- return element.waypoints;
51477
- }
51478
-
51479
51462
  /**
51480
51463
  * @param {Element} element
51481
51464
  *
@@ -51566,7 +51549,7 @@
51566
51549
  function canDrop(element, target) {
51567
51550
 
51568
51551
  // can move labels and groups everywhere
51569
- if (isLabel$7(element) || isGroup(element)) {
51552
+ if (isLabel$2(element) || isGroup(element)) {
51570
51553
  return true;
51571
51554
  }
51572
51555
 
@@ -51656,7 +51639,7 @@
51656
51639
  * @return {boolean}
51657
51640
  */
51658
51641
  function isBoundaryEvent(element) {
51659
- return !isLabel$7(element) && is$6(element, 'bpmn:BoundaryEvent');
51642
+ return !isLabel$2(element) && is$6(element, 'bpmn:BoundaryEvent');
51660
51643
  }
51661
51644
 
51662
51645
  /**
@@ -51765,7 +51748,7 @@
51765
51748
  var element = elements[0];
51766
51749
 
51767
51750
  // do not attach labels
51768
- if (isLabel$7(element)) {
51751
+ if (isLabel$2(element)) {
51769
51752
  return false;
51770
51753
  }
51771
51754
 
@@ -51840,7 +51823,7 @@
51840
51823
 
51841
51824
  // replace a non-interrupting start event by a blank interrupting start event
51842
51825
  // when the target is not an event sub process
51843
- if (!isInterrupting(element)) {
51826
+ if (!isInterrupting$1(element)) {
51844
51827
  canExecute.replacements.push({
51845
51828
  oldElementId: element.id,
51846
51829
  newElementType: 'bpmn:StartEvent'
@@ -51937,7 +51920,7 @@
51937
51920
  return false;
51938
51921
  }
51939
51922
 
51940
- if (isLabel$7(shape) || isGroup(shape)) {
51923
+ if (isLabel$2(shape) || isGroup(shape)) {
51941
51924
  return true;
51942
51925
  }
51943
51926
 
@@ -52118,7 +52101,7 @@
52118
52101
  // return true if shape can be inserted into connection parent
52119
52102
  return (
52120
52103
  isAny$1(connection, [ 'bpmn:SequenceFlow', 'bpmn:MessageFlow' ]) &&
52121
- !isLabel$7(connection) &&
52104
+ !isLabel$2(connection) &&
52122
52105
  is$6(shape, 'bpmn:FlowNode') &&
52123
52106
  !is$6(shape, 'bpmn:BoundaryEvent') &&
52124
52107
  canDrop(shape, connection.parent));
@@ -52141,7 +52124,7 @@
52141
52124
  * @return {boolean}
52142
52125
  */
52143
52126
  function canCopy(elements, element) {
52144
- if (isLabel$7(element)) {
52127
+ if (isLabel$2(element)) {
52145
52128
  return true;
52146
52129
  }
52147
52130
 
@@ -53049,12 +53032,12 @@
53049
53032
  }
53050
53033
 
53051
53034
  forEach$2(elements, function(element) {
53052
- if (!element.parent || isLabel$4(element)) {
53035
+ if (!element.parent || isLabel$2(element)) {
53053
53036
  return;
53054
53037
  }
53055
53038
 
53056
53039
  // handle connections separately
53057
- if (isConnection$9(element)) {
53040
+ if (isConnection$2(element)) {
53058
53041
  connections.push(element);
53059
53042
 
53060
53043
  return;
@@ -53225,15 +53208,15 @@
53225
53208
 
53226
53209
  // find children that are not moving or resizing
53227
53210
  var nonMovingResizingChildren = filter(children, function(child) {
53228
- return !isConnection$9(child) &&
53229
- !isLabel$4(child) &&
53211
+ return !isConnection$2(child) &&
53212
+ !isLabel$2(child) &&
53230
53213
  !includes$3(movingShapes, child) &&
53231
53214
  !includes$3(resizingShapes, child);
53232
53215
  });
53233
53216
 
53234
53217
  // find children that are moving
53235
53218
  var movingChildren = filter(children, function(child) {
53236
- return !isConnection$9(child) && !isLabel$4(child) && includes$3(movingShapes, child);
53219
+ return !isConnection$2(child) && !isLabel$2(child) && includes$3(movingShapes, child);
53237
53220
  });
53238
53221
 
53239
53222
  var minOrMax,
@@ -53367,14 +53350,6 @@
53367
53350
  return !!element.host;
53368
53351
  }
53369
53352
 
53370
- function isConnection$9(element) {
53371
- return !!element.waypoints;
53372
- }
53373
-
53374
- function isLabel$4(element) {
53375
- return !!element.labelTarget;
53376
- }
53377
-
53378
53353
  var MARKER_DRAGGING$1 = 'djs-dragging',
53379
53354
  MARKER_RESIZING = 'djs-resizing';
53380
53355
 
@@ -53533,7 +53508,7 @@
53533
53508
  });
53534
53509
  });
53535
53510
 
53536
- return isConnection$8(element)
53511
+ return isConnection$2(element)
53537
53512
  && (sourceIsMoving || sourceIsResizing)
53538
53513
  && (targetIsMoving || targetIsResizing);
53539
53514
  });
@@ -53663,16 +53638,6 @@
53663
53638
  'previewSupport'
53664
53639
  ];
53665
53640
 
53666
-
53667
- // helpers //////////////////////
53668
-
53669
- /**
53670
- * Checks if an element is a connection.
53671
- */
53672
- function isConnection$8(element) {
53673
- return element.waypoints;
53674
- }
53675
-
53676
53641
  /**
53677
53642
  * @type { import('didi').ModuleDeclaration }
53678
53643
  */
@@ -55712,7 +55677,7 @@
55712
55677
  BpmnUpdater.prototype.updateParent = function(element, oldParent) {
55713
55678
 
55714
55679
  // do not update BPMN 2.0 label parent
55715
- if (isLabel$7(element)) {
55680
+ if (isLabel$2(element)) {
55716
55681
  return;
55717
55682
  }
55718
55683
 
@@ -55777,7 +55742,7 @@
55777
55742
  });
55778
55743
  }
55779
55744
 
55780
- var target = isLabel$7(shape) ? this._getLabel(di) : di;
55745
+ var target = isLabel$2(shape) ? this._getLabel(di) : di;
55781
55746
 
55782
55747
  var bounds = target.bounds;
55783
55748
 
@@ -56838,7 +56803,7 @@
56838
56803
 
56839
56804
  // center elements around position
56840
56805
  forEach$2(elements, function(element) {
56841
- if (isConnection$7(element)) {
56806
+ if (isConnection$2(element)) {
56842
56807
  element.waypoints = map$2(element.waypoints, function(waypoint) {
56843
56808
  return {
56844
56809
  x: round$3(waypoint.x - bbox.x - bbox.width / 2 + position.x),
@@ -56858,7 +56823,7 @@
56858
56823
  var cache = {};
56859
56824
 
56860
56825
  forEach$2(elements, function(element) {
56861
- if (isConnection$7(element)) {
56826
+ if (isConnection$2(element)) {
56862
56827
  cache[ element.id ] = isNumber$1(parentIndex) ?
56863
56828
  modeling.createConnection(
56864
56829
  cache[ element.source.id ],
@@ -56885,6 +56850,10 @@
56885
56850
  createShapeHints.autoResize = false;
56886
56851
  }
56887
56852
 
56853
+ if (isLabel$2(element)) {
56854
+ createShapeHints = omit(createShapeHints, [ 'attach' ]);
56855
+ }
56856
+
56888
56857
  cache[ element.id ] = isNumber$1(parentIndex) ?
56889
56858
  modeling.createShape(
56890
56859
  element,
@@ -56902,13 +56871,7 @@
56902
56871
  });
56903
56872
 
56904
56873
  context.elements = values(cache);
56905
- };
56906
-
56907
- // helpers //////////
56908
-
56909
- function isConnection$7(element) {
56910
- return !!element.waypoints;
56911
- }
56874
+ };
56912
56875
 
56913
56876
  /**
56914
56877
  * @typedef {import('../../../model/Types').Element} Element
@@ -57231,7 +57194,7 @@
57231
57194
 
57232
57195
  // remove child shapes and connections
57233
57196
  saveClear(shape.children, function(child) {
57234
- if (isConnection$6(child)) {
57197
+ if (isConnection$2(child)) {
57235
57198
  modeling.removeConnection(child, { nested: true });
57236
57199
  } else {
57237
57200
  modeling.removeShape(child, { nested: true });
@@ -57279,10 +57242,6 @@
57279
57242
  return shape;
57280
57243
  };
57281
57244
 
57282
- function isConnection$6(element) {
57283
- return element.waypoints;
57284
- }
57285
-
57286
57245
  /**
57287
57246
  * @typedef {import('../Modeling').default} Modeling
57288
57247
  */
@@ -60413,13 +60372,13 @@
60413
60372
  }
60414
60373
 
60415
60374
  forEach$2(elements, function(element) {
60416
- var assignedDi = isConnection$5(element) ? pick(di, [ 'border-color' ]) : di,
60375
+ var assignedDi = isConnection$2(element) ? pick(di, [ 'border-color' ]) : di,
60417
60376
  elementDi = getDi$1(element);
60418
60377
 
60419
60378
  // TODO @barmac: remove once we drop bpmn.io properties
60420
60379
  ensureLegacySupport(assignedDi);
60421
60380
 
60422
- if (isLabel$7(element)) {
60381
+ if (isLabel$2(element)) {
60423
60382
 
60424
60383
  // set label colors as bpmndi:BPMNLabel#color
60425
60384
  self._commandStack.execute('element.updateModdleProperties', {
@@ -60479,10 +60438,6 @@
60479
60438
  return /^#[0-9a-fA-F]{6}$/.test(context.fillStyle) ? context.fillStyle : null;
60480
60439
  }
60481
60440
 
60482
- function isConnection$5(element) {
60483
- return !!element.waypoints;
60484
- }
60485
-
60486
60441
  /**
60487
60442
  * Add legacy properties if required.
60488
60443
  *
@@ -60545,7 +60500,7 @@
60545
60500
  businessObject = element.businessObject,
60546
60501
  newLabel = ctx.newLabel;
60547
60502
 
60548
- if (!isLabel$7(element)
60503
+ if (!isLabel$2(element)
60549
60504
  && isLabelExternal(element)
60550
60505
  && !hasExternalLabel(element)
60551
60506
  && !isEmptyText(newLabel)) {
@@ -60585,11 +60540,11 @@
60585
60540
  hints = ctx.hints || {};
60586
60541
 
60587
60542
  // ignore internal labels for elements except text annotations
60588
- if (!isLabel$7(label) && !is$6(label, 'bpmn:TextAnnotation')) {
60543
+ if (!isLabel$2(label) && !is$6(label, 'bpmn:TextAnnotation')) {
60589
60544
  return;
60590
60545
  }
60591
60546
 
60592
- if (isLabel$7(label) && isEmptyText(newLabel)) {
60547
+ if (isLabel$2(label) && isEmptyText(newLabel)) {
60593
60548
 
60594
60549
  if (hints.removeShape !== false) {
60595
60550
  modeling.removeShape(label, { unsetLabel: false });
@@ -62698,7 +62653,7 @@
62698
62653
 
62699
62654
  var filteredElements = filter(elements, function(element) {
62700
62655
 
62701
- if (!isConnection$4(element)) {
62656
+ if (!isConnection$2(element)) {
62702
62657
  return true;
62703
62658
  } else {
62704
62659
 
@@ -62716,13 +62671,6 @@
62716
62671
  return size(groupBy(elements, function(e) { return e.parent && e.parent.id; })) !== 1;
62717
62672
  }
62718
62673
 
62719
- /**
62720
- * Checks if an element is a connection.
62721
- */
62722
- function isConnection$4(element) {
62723
- return element.waypoints;
62724
- }
62725
-
62726
62674
  /**
62727
62675
  * @type { import('didi').ModuleDeclaration }
62728
62676
  */
@@ -64779,7 +64727,7 @@
64779
64727
  });
64780
64728
 
64781
64729
  // snap labels to mid only
64782
- if (isLabel$3(shape)) {
64730
+ if (isLabel$2(shape)) {
64783
64731
  return snapContext;
64784
64732
  }
64785
64733
 
@@ -64802,9 +64750,9 @@
64802
64750
  forEach$2(snapTargets, function(snapTarget) {
64803
64751
 
64804
64752
  // handle labels
64805
- if (isLabel$3(snapTarget)) {
64753
+ if (isLabel$2(snapTarget)) {
64806
64754
 
64807
- if (isLabel$3(shape)) {
64755
+ if (isLabel$2(shape)) {
64808
64756
  snapPoints.add('mid', mid$2(snapTarget));
64809
64757
  }
64810
64758
 
@@ -64812,7 +64760,7 @@
64812
64760
  }
64813
64761
 
64814
64762
  // handle connections
64815
- if (isConnection$3(snapTarget)) {
64763
+ if (isConnection$2(snapTarget)) {
64816
64764
 
64817
64765
  // ignore single segment connections
64818
64766
  if (snapTarget.waypoints.length < 3) {
@@ -64853,16 +64801,8 @@
64853
64801
 
64854
64802
  // helpers //////////
64855
64803
 
64856
- function isConnection$3(element) {
64857
- return !!element.waypoints;
64858
- }
64859
-
64860
64804
  function isHidden$1(element) {
64861
64805
  return !!element.hidden;
64862
- }
64863
-
64864
- function isLabel$3(element) {
64865
- return !!element.labelTarget;
64866
64806
  }
64867
64807
 
64868
64808
  /**
@@ -65271,18 +65211,10 @@
65271
65211
  return element.host === host;
65272
65212
  }
65273
65213
 
65274
- function isConnection$2(element) {
65275
- return !!element.waypoints;
65276
- }
65277
-
65278
65214
  function isHidden(element) {
65279
65215
  return !!element.hidden;
65280
65216
  }
65281
65217
 
65282
- function isLabel$2(element) {
65283
- return !!element.labelTarget;
65284
- }
65285
-
65286
65218
  function isHorizontal(direction) {
65287
65219
  return direction === 'n' || direction === 's';
65288
65220
  }
@@ -67812,6 +67744,10 @@
67812
67744
 
67813
67745
  var t$1,u,r,o$2=0,i$2=[],c=n$1.__b,f=n$1.__r,e$2=n$1.diffed,a$1=n$1.__c,v=n$1.unmount;function m(t,r){n$1.__h&&n$1.__h(u,t,o$2||r),o$2=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l$1(n){return o$2=1,p$1(w$1,n)}function p$1(n,r,o){var i=m(t$1++,2);return i.t=n,i.__c||(i.__=[o?o(r):w$1(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}));}],i.__c=u),i.__}function y(r,o){var i=m(t$1++,3);!n$1.__s&&k$1(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i));}function h(r,o){var i=m(t$1++,4);!n$1.__s&&k$1(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i));}function s(n){return o$2=5,d(function(){return {current:n}},[])}function _(n,t,u){o$2=6,h(function(){"function"==typeof n?n(t()):n&&(n.current=t());},null==u?u:u.concat(n));}function d(n,u){var r=m(t$1++,7);return k$1(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A$1(n,t){return o$2=8,d(function(){return n},t)}function F$1(n){var r=u.context[n.__c],o=m(t$1++,9);return o.__c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T$1(t,u){n$1.useDebugValue&&n$1.useDebugValue(u?u(t):t);}function x$1(){i$2.forEach(function(t){if(t.__P)try{t.__H.__h.forEach(g$1),t.__H.__h.forEach(j$1),t.__H.__h=[];}catch(u){t.__H.__h=[],n$1.__e(u,t.__v);}}),i$2=[];}n$1.__b=function(n){u=null,c&&c(n);},n$1.__r=function(n){f&&f(n),t$1=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g$1),r.__h.forEach(j$1),r.__h=[]);},n$1.diffed=function(t){e$2&&e$2(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i$2.push(o)&&r===n$1.requestAnimationFrame||((r=n$1.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n);},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u));})(x$1)),u=void 0;},n$1.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g$1),t.__h=t.__h.filter(function(n){return !n.__||j$1(n)});}catch(r){u.some(function(n){n.__h&&(n.__h=[]);}),u=[],n$1.__e(r,t.__v);}}),a$1&&a$1(t,u);},n$1.unmount=function(t){v&&v(t);var u=t.__c;if(u&&u.__H)try{u.__H.__.forEach(g$1);}catch(t){n$1.__e(t,u.__v);}};var b="function"==typeof requestAnimationFrame;function g$1(n){var t=u;"function"==typeof n.__c&&n.__c(),u=t;}function j$1(n){var t=u;n.__c=n.__(),u=t;}function k$1(n,t){return !n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w$1(n,t){return "function"==typeof t?t(n):t}
67814
67746
 
67747
+ function C$1(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function E(n){this.props=n;}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return !r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,a$2(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new p$2).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=n$1.__b;n$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n);};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function x(n){function t(t,e){var r=C$1({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var N=function(n,t){return null==n?null:w$2(w$2(n).map(t))},k={map:N,forEach:N,count:function(n){return n?w$2(n).length:0},only:function(n){var t=w$2(n);if(1!==t.length)throw "Children.only";return t[0]},toArray:w$2},A=n$1.__e;n$1.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e);};var O=n$1.unmount;function L(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n;},function(n){r=n;}),r)throw r;if(!e)throw t;return a$2(e,u)}return u.displayName="Lazy",u.__f=!0,u}function F(){this.u=null,this.o=null;}n$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n);},(L.prototype=new p$2).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L.prototype.componentWillUnmount=function(){this.t=[];},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=C$1({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&a$2(y$1,null,n.fallback);return u&&(u.__h=null),[a$2(y$1,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){N$1(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),N$1(a$2(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function I(n,t){return a$2(j,{__v:n,i:t})}(F.prototype=new p$2).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u();};e?e(o):o();}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=w$2(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t);});};var W="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=""),N$1(n,t),"function"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return O$1(n,t),"function"==typeof e&&e(),n?n.__c:null}p$2.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(p$2.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H=n$1.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}n$1.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=n$1.vnode;n$1.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"value"===u&&"defaultValue"in e&&null==o||("defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=w$2(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=w$2(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r;}t&&e.class!=e.className&&(G.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",G)),n.$$typeof=W,J&&J(n);};var K=n$1.__r;n$1.__r=function(n){K&&K(n),q=n.__c;};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}};"object"==typeof performance&&"function"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()};function fn(n){return a$2.bind(null,n)}function cn(n){return !!n&&n.$$typeof===W}function an(n){return cn(n)?S$1.apply(null,arguments):n}function sn(n){return !!n.__k&&(N$1(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)};var React = {useState:l$1,useReducer:p$1,useEffect:y,useLayoutEffect:h,useRef:s,useImperativeHandle:_,useMemo:d,useCallback:A$1,useContext:F$1,useDebugValue:T$1,version:"16.8.0",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:a$2,createContext:q$1,createFactory:fn,cloneElement:an,createRef:h$1,Fragment:y$1,isValidElement:cn,findDOMNode:hn,Component:p$2,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:y$1,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};
67748
+
67749
+ function o$1(_,o,e,n,t){var f={};for(var l in o)"ref"!=l&&(f[l]=o[l]);var s,u,a={type:_,props:f,key:e,ref:o&&o.ref,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:++n$1.__v,__source:n,__self:t};if("function"==typeof _&&(s=_.defaultProps))for(u in s)void 0===f[u]&&(f[u]=s[u]);return n$1.vnode&&n$1.vnode(a),a}
67750
+
67815
67751
  var classnames$1 = {exports: {}};
67816
67752
 
67817
67753
  /*!
@@ -67873,10 +67809,6 @@
67873
67809
  var classnamesExports = classnames$1.exports;
67874
67810
  var classnames = /*@__PURE__*/getDefaultExportFromCjs(classnamesExports);
67875
67811
 
67876
- function C$1(n,t){for(var e in t)n[e]=t[e];return n}function S(n,t){for(var e in n)if("__source"!==e&&!(e in t))return !0;for(var r in t)if("__source"!==r&&n[r]!==t[r])return !0;return !1}function E(n){this.props=n;}function g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return !r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:S(this.props,n)}function r(t){return this.shouldComponentUpdate=e,a$2(n,t)}return r.displayName="Memo("+(n.displayName||n.name)+")",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new p$2).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return S(this.props,n)||S(this.state,t)};var w=n$1.__b;n$1.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n);};var R="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function x(n){function t(t,e){var r=C$1({},t);return delete r.ref,n(r,(e=t.ref||e)&&("object"!=typeof e||"current"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var N=function(n,t){return null==n?null:w$2(w$2(n).map(t))},k={map:N,forEach:N,count:function(n){return n?w$2(n).length:0},only:function(n){var t=w$2(n);if(1!==t.length)throw "Children.only";return t[0]},toArray:w$2},A=n$1.__e;n$1.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e);};var O=n$1.unmount;function L(){this.__u=0,this.t=null,this.__b=null;}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function D(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n;},function(n){r=n;}),r)throw r;if(!e)throw t;return a$2(e,u)}return u.displayName="Lazy",u.__f=!0,u}function F(){this.u=null,this.o=null;}n$1.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n);},(L.prototype=new p$2).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l());};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O);}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate();}},f=!0===t.__h;r.__u++||f||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i);},L.prototype.componentWillUnmount=function(){this.t=[];},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement("div"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){"function"==typeof n.__c&&n.__c();}),t.__c.__H=null),null!=(t=C$1({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P);}this.__b=null;}var u=t.__e&&a$2(y$1,null,n.fallback);return u&&(u.__h=null),[a$2(y$1,null,t.__e?null:n.children),u]};var M=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&("t"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2];}};function T(n){return this.getChildContext=function(){return n.context},n.children}function j(n){var t=this,e=n.i;t.componentWillUnmount=function(){N$1(null,t.l),t.l=null,t.i=null;},t.i&&t.i!==e&&t.componentWillUnmount(),n.__v?(t.l||(t.i=e,t.l={nodeType:1,parentNode:e,childNodes:[],appendChild:function(n){this.childNodes.push(n),t.i.appendChild(n);},insertBefore:function(n,e){this.childNodes.push(n),t.i.appendChild(n);},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),t.i.removeChild(n);}}),N$1(a$2(T,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount();}function I(n,t){return a$2(j,{__v:n,i:t})}(F.prototype=new p$2).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),M(t,n,r)):u();};e?e(o):o();}},F.prototype.render=function(n){this.u=null,this.o=new Map;var t=w$2(n.children);n.revealOrder&&"b"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},F.prototype.componentDidUpdate=F.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){M(n,e,t);});};var W="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=function(n){return ("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function z(n,t,e){return null==t.__k&&(t.textContent=""),N$1(n,t),"function"==typeof e&&e(),n?n.__c:null}function B(n,t,e){return O$1(n,t),"function"==typeof e&&e(),n?n.__c:null}p$2.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(n){Object.defineProperty(p$2.prototype,n,{configurable:!0,get:function(){return this["UNSAFE_"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t});}});});var H=n$1.event;function Z(){}function Y(){return this.cancelBubble}function $(){return this.defaultPrevented}n$1.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=$,n.nativeEvent=n};var q,G={configurable:!0,get:function(){return this.class}},J=n$1.vnode;n$1.vnode=function(n){var t=n.type,e=n.props,r=e;if("string"==typeof t){for(var u in r={},e){var o=e[u];"value"===u&&"defaultValue"in e&&null==o||("defaultValue"===u&&"value"in e&&null==e.value?u="value":"download"===u&&!0===o?o="":/ondoubleclick/i.test(u)?u="ondblclick":/^onchange(textarea|input)/i.test(u+t)&&!V(e.type)?u="oninput":/^on(Ani|Tra|Tou|BeforeInp)/.test(u)?u=u.toLowerCase():P.test(u)?u=u.replace(/[A-Z0-9]/,"-$&").toLowerCase():null===o&&(o=void 0),r[u]=o);}"select"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=w$2(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value);})),"select"==t&&null!=r.defaultValue&&(r.value=w$2(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value;})),n.props=r;}t&&e.class!=e.className&&(G.enumerable="className"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,"className",G)),n.$$typeof=W,J&&J(n);};var K=n$1.__r;n$1.__r=function(n){K&&K(n),q=n.__c;};var Q={ReactCurrentDispatcher:{current:{readContext:function(n){return q.__n[n.__c].props.value}}}};"object"==typeof performance&&"function"==typeof performance.now?performance.now.bind(performance):function(){return Date.now()};function fn(n){return a$2.bind(null,n)}function cn(n){return !!n&&n.$$typeof===W}function an(n){return cn(n)?S$1.apply(null,arguments):n}function sn(n){return !!n.__k&&(N$1(null,n),!0)}function hn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)};var React = {useState:l$1,useReducer:p$1,useEffect:y,useLayoutEffect:h,useRef:s,useImperativeHandle:_,useMemo:d,useCallback:A$1,useContext:F$1,useDebugValue:T$1,version:"16.8.0",Children:k,render:z,hydrate:B,unmountComponentAtNode:sn,createPortal:I,createElement:a$2,createContext:q$1,createFactory:fn,cloneElement:an,createRef:h$1,Fragment:y$1,isValidElement:cn,findDOMNode:hn,Component:p$2,PureComponent:E,memo:g,forwardRef:x,unstable_batchedUpdates:pn,StrictMode:y$1,Suspense:L,SuspenseList:F,lazy:D,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:Q};
67877
-
67878
- function o$1(_,o,e,n,t){var f={};for(var l in o)"ref"!=l&&(f[l]=o[l]);var s,u,a={type:_,props:f,key:e,ref:o&&o.ref,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:++n$1.__v,__source:n,__self:t};if("function"==typeof _&&(s=_.defaultProps))for(u in s)void 0===f[u]&&(f[u]=s[u]);return n$1.vnode&&n$1.vnode(a),a}
67879
-
67880
67812
  // FIXME profile adding a per-Tree TreeNode cache, validating it by
67881
67813
  // parent pointer
67882
67814
  /// The default maximum length of a `TreeBuffer` node.
@@ -95257,44 +95189,18 @@
95257
95189
  fill: "none",
95258
95190
  xmlns: "http://www.w3.org/2000/svg"
95259
95191
  };
95260
- var FeelRequiredIcon = function FeelRequiredIcon(props) {
95192
+ var FeelIcon$1 = function FeelIcon(props) {
95261
95193
  return o$1("svg", {
95262
95194
  ...props,
95263
- children: [o$1("path", {
95264
- d: "M5.8 7.06V5.95h4.307v1.11H5.8Zm0 3.071v-1.11h4.307v1.11H5.8Z",
95265
- fill: "currentColor"
95266
- }), o$1("path", {
95267
- fillRule: "evenodd",
95268
- clipRule: "evenodd",
95269
- d: "M8 3.268A4.732 4.732 0 1 0 12.732 8H14a6 6 0 1 1-6-6v1.268Z",
95270
- fill: "currentColor"
95271
- }), o$1("path", {
95272
- d: "m11.28 6.072-.832-.56 1.016-1.224L10 3.848l.312-.912 1.392.584L11.632 2h1.032l-.072 1.52 1.392-.584.312.912-1.464.44 1.008 1.224-.832.552-.864-1.296-.864 1.304Z",
95273
- fill: "currentColor"
95274
- })]
95275
- });
95276
- };
95277
- FeelRequiredIcon.defaultProps = {
95278
- viewBox: "0 0 16 16",
95279
- fill: "none",
95280
- xmlns: "http://www.w3.org/2000/svg"
95281
- };
95282
- var FeelOptionalIcon = function FeelOptionalIcon(props) {
95283
- return o$1("svg", {
95284
- ...props,
95285
- children: [o$1("path", {
95286
- d: "M5.845 7.04V5.93h4.307v1.11H5.845Zm0 3.07V9h4.307v1.11H5.845Z",
95287
- fill: "currentColor"
95288
- }), o$1("path", {
95289
- fillRule: "evenodd",
95290
- clipRule: "evenodd",
95291
- d: "M3.286 8a4.714 4.714 0 1 0 9.428 0 4.714 4.714 0 0 0-9.428 0ZM8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2Z",
95292
- fill: "currentColor"
95293
- })]
95195
+ children: o$1("path", {
95196
+ d: "M3.617 11.99c-.137.684-.392 1.19-.765 1.518-.362.328-.882.492-1.558.492H0l.309-1.579h1.264l1.515-7.64h-.912l.309-1.579h.911l.236-1.191c.137-.685.387-1.192.75-1.52C4.753.164 5.277 0 5.953 0h1.294L6.94 1.579H5.675l-.323 1.623h1.264l-.309 1.579H5.043l-1.426 7.208ZM5.605 11.021l3.029-4.155L7.28 3.202h2.073l.706 2.547h.176l1.691-2.547H14l-3.014 4.051 1.338 3.768H10.25l-.706-2.606H9.37L7.678 11.02H5.605Z",
95197
+ fill: "currentcolor"
95198
+ })
95294
95199
  });
95295
95200
  };
95296
- FeelOptionalIcon.defaultProps = {
95297
- viewBox: "0 0 16 16",
95201
+ FeelIcon$1.defaultProps = {
95202
+ width: "14",
95203
+ height: "14",
95298
95204
  fill: "none",
95299
95205
  xmlns: "http://www.w3.org/2000/svg"
95300
95206
  };
@@ -95539,6 +95445,18 @@
95539
95445
  * @param {setSticky} setSticky
95540
95446
  */
95541
95447
  function useStickyIntersectionObserver(ref, scrollContainerSelector, setSticky) {
95448
+ const [scrollContainer, setScrollContainer] = l$1(query$1(scrollContainerSelector));
95449
+ const updateScrollContainer = A$1(() => {
95450
+ const newScrollContainer = query$1(scrollContainerSelector);
95451
+ if (newScrollContainer !== scrollContainer) {
95452
+ setScrollContainer(newScrollContainer);
95453
+ }
95454
+ }, [scrollContainerSelector, scrollContainer]);
95455
+ y(() => {
95456
+ updateScrollContainer();
95457
+ }, [updateScrollContainer]);
95458
+ useEvent('propertiesPanel.attach', updateScrollContainer);
95459
+ useEvent('propertiesPanel.detach', updateScrollContainer);
95542
95460
  y(() => {
95543
95461
  const Observer = IntersectionObserver;
95544
95462
 
@@ -95546,37 +95464,36 @@
95546
95464
  if (!Observer) {
95547
95465
  return;
95548
95466
  }
95549
- let observer;
95550
- if (ref.current) {
95551
- const scrollContainer = query$1(scrollContainerSelector);
95552
- observer = new Observer(entries => {
95553
- // The ScrollContainer is unmounted, do not update sticky state
95554
- if (scrollContainer.scrollHeight === 0) {
95555
- return;
95467
+
95468
+ // TODO(@barmac): test this
95469
+ if (!ref.current || !scrollContainer) {
95470
+ return;
95471
+ }
95472
+ const observer = new Observer(entries => {
95473
+ // scroll container is unmounted, do not update sticky state
95474
+ if (scrollContainer.scrollHeight === 0) {
95475
+ return;
95476
+ }
95477
+ entries.forEach(entry => {
95478
+ if (entry.intersectionRatio < 1) {
95479
+ setSticky(true);
95480
+ } else if (entry.intersectionRatio === 1) {
95481
+ setSticky(false);
95556
95482
  }
95557
- entries.forEach(entry => {
95558
- if (entry.intersectionRatio < 1) {
95559
- setSticky(true);
95560
- } else if (entry.intersectionRatio === 1) {
95561
- setSticky(false);
95562
- }
95563
- });
95564
- }, {
95565
- root: scrollContainer,
95566
- rootMargin: '0px 0px 999999% 0px',
95567
- // Use bottom margin to avoid stickyness when scrolling out to bottom
95568
- threshold: [1]
95569
95483
  });
95570
- observer.observe(ref.current);
95571
- }
95484
+ }, {
95485
+ root: scrollContainer,
95486
+ rootMargin: '0px 0px 999999% 0px',
95487
+ // Use bottom margin to avoid stickyness when scrolling out to bottom
95488
+ threshold: [1]
95489
+ });
95490
+ observer.observe(ref.current);
95572
95491
 
95573
95492
  // Unobserve if unmounted
95574
95493
  return () => {
95575
- if (ref.current && observer) {
95576
- observer.unobserve(ref.current);
95577
- }
95494
+ observer.unobserve(ref.current);
95578
95495
  };
95579
- }, [ref, scrollContainerSelector, setSticky]);
95496
+ }, [ref.current, scrollContainer, setSticky]);
95580
95497
  }
95581
95498
 
95582
95499
  /**
@@ -95711,9 +95628,7 @@
95711
95628
  });
95712
95629
  }
95713
95630
 
95714
- const DEFAULT_LAYOUT = {
95715
- open: true
95716
- };
95631
+ const DEFAULT_LAYOUT = {};
95717
95632
  const DEFAULT_DESCRIPTION = {};
95718
95633
 
95719
95634
  /**
@@ -95877,7 +95792,7 @@
95877
95792
  children: o$1(EventContext.Provider, {
95878
95793
  value: eventContext,
95879
95794
  children: o$1("div", {
95880
- class: classnames('bio-properties-panel', layout.open ? 'open' : ''),
95795
+ class: "bio-properties-panel",
95881
95796
  children: [o$1(Header$1, {
95882
95797
  element: element,
95883
95798
  headerProvider: headerProvider
@@ -96656,14 +96571,13 @@
96656
96571
  */
96657
96572
  function FeelIcon(props) {
96658
96573
  const {
96659
- label,
96660
96574
  feel = false,
96661
96575
  active,
96662
96576
  disabled = false,
96663
96577
  onClick = noop$2
96664
96578
  } = props;
96665
- const feelRequiredLabel = ' must be a FEEL expression';
96666
- const feelOptionalLabel = ' can optionally be a FEEL expression';
96579
+ const feelRequiredLabel = 'FEEL expression is mandatory';
96580
+ const feelOptionalLabel = `Click to ${active ? 'remove' : 'set a'} dynamic value with FEEL expression`;
96667
96581
  const handleClick = e => {
96668
96582
  onClick(e);
96669
96583
 
@@ -96676,11 +96590,196 @@
96676
96590
  class: classnames('bio-properties-panel-feel-icon', active ? 'active' : null, feel === 'required' ? 'required' : 'optional'),
96677
96591
  onClick: handleClick,
96678
96592
  disabled: feel === 'required' || disabled,
96679
- title: label + (feel === 'required' ? feelRequiredLabel : feelOptionalLabel),
96680
- children: feel === 'required' ? o$1(FeelRequiredIcon, {}) : o$1(FeelOptionalIcon, {})
96593
+ title: feel === 'required' ? feelRequiredLabel : feelOptionalLabel,
96594
+ children: o$1(FeelIcon$1, {})
96595
+ });
96596
+ }
96597
+
96598
+ function ToggleSwitch(props) {
96599
+ const {
96600
+ id,
96601
+ label,
96602
+ onInput,
96603
+ value,
96604
+ switcherLabel,
96605
+ inline,
96606
+ onFocus,
96607
+ onBlur,
96608
+ inputRef
96609
+ } = props;
96610
+ const [localValue, setLocalValue] = l$1(value);
96611
+ const handleInputCallback = async () => {
96612
+ onInput(!value);
96613
+ };
96614
+ const handleInput = e => {
96615
+ handleInputCallback();
96616
+ setLocalValue(e.target.value);
96617
+ };
96618
+ y(() => {
96619
+ if (value === localValue) {
96620
+ return;
96621
+ }
96622
+ setLocalValue(value);
96623
+ }, [value]);
96624
+ return o$1("div", {
96625
+ class: classnames('bio-properties-panel-toggle-switch', {
96626
+ inline
96627
+ }),
96628
+ children: [o$1("label", {
96629
+ class: "bio-properties-panel-label",
96630
+ for: prefixId$6(id),
96631
+ children: label
96632
+ }), o$1("div", {
96633
+ class: "bio-properties-panel-field-wrapper",
96634
+ children: [o$1("label", {
96635
+ class: "bio-properties-panel-toggle-switch__switcher",
96636
+ children: [o$1("input", {
96637
+ ref: inputRef,
96638
+ id: prefixId$6(id),
96639
+ class: "bio-properties-panel-input",
96640
+ type: "checkbox",
96641
+ onFocus: onFocus,
96642
+ onBlur: onBlur,
96643
+ name: id,
96644
+ onInput: handleInput,
96645
+ checked: !!localValue
96646
+ }), o$1("span", {
96647
+ class: "bio-properties-panel-toggle-switch__slider"
96648
+ })]
96649
+ }), switcherLabel && o$1("p", {
96650
+ class: "bio-properties-panel-toggle-switch__label",
96651
+ children: switcherLabel
96652
+ })]
96653
+ })]
96654
+ });
96655
+ }
96656
+
96657
+ /**
96658
+ * @param {Object} props
96659
+ * @param {Object} props.element
96660
+ * @param {String} props.id
96661
+ * @param {String} props.description
96662
+ * @param {String} props.label
96663
+ * @param {String} props.switcherLabel
96664
+ * @param {Boolean} props.inline
96665
+ * @param {Function} props.getValue
96666
+ * @param {Function} props.setValue
96667
+ * @param {Function} props.onFocus
96668
+ * @param {Function} props.onBlur
96669
+ */
96670
+ function ToggleSwitchEntry(props) {
96671
+ const {
96672
+ element,
96673
+ id,
96674
+ description,
96675
+ label,
96676
+ switcherLabel,
96677
+ inline,
96678
+ getValue,
96679
+ setValue,
96680
+ onFocus,
96681
+ onBlur
96682
+ } = props;
96683
+ const value = getValue(element);
96684
+ return o$1("div", {
96685
+ class: "bio-properties-panel-entry bio-properties-panel-toggle-switch-entry",
96686
+ "data-entry-id": id,
96687
+ children: [o$1(ToggleSwitch, {
96688
+ id: id,
96689
+ label: label,
96690
+ value: value,
96691
+ onInput: setValue,
96692
+ onFocus: onFocus,
96693
+ onBlur: onBlur,
96694
+ switcherLabel: switcherLabel,
96695
+ inline: inline
96696
+ }), o$1(Description, {
96697
+ forId: id,
96698
+ element: element,
96699
+ value: description
96700
+ })]
96701
+ });
96702
+ }
96703
+ function isEdited$7(node) {
96704
+ return node && !!node.checked;
96705
+ }
96706
+
96707
+ // helpers /////////////////
96708
+
96709
+ function prefixId$6(id) {
96710
+ return `bio-properties-panel-${id}`;
96711
+ }
96712
+
96713
+ function NumberField(props) {
96714
+ const {
96715
+ debounce,
96716
+ disabled,
96717
+ displayLabel = true,
96718
+ id,
96719
+ inputRef,
96720
+ label,
96721
+ max,
96722
+ min,
96723
+ onInput,
96724
+ step,
96725
+ value = '',
96726
+ onFocus,
96727
+ onBlur
96728
+ } = props;
96729
+ const [localValue, setLocalValue] = l$1(value);
96730
+ const handleInputCallback = d(() => {
96731
+ return debounce(event => {
96732
+ const {
96733
+ validity,
96734
+ value
96735
+ } = event.target;
96736
+ if (validity.valid) {
96737
+ onInput(value ? parseFloat(value) : undefined);
96738
+ }
96739
+ });
96740
+ }, [onInput, debounce]);
96741
+ const handleInput = e => {
96742
+ handleInputCallback(e);
96743
+ setLocalValue(e.target.value);
96744
+ };
96745
+ y(() => {
96746
+ if (value === localValue) {
96747
+ return;
96748
+ }
96749
+ setLocalValue(value);
96750
+ }, [value]);
96751
+ return o$1("div", {
96752
+ class: "bio-properties-panel-numberfield",
96753
+ children: [displayLabel && o$1("label", {
96754
+ for: prefixId$5(id),
96755
+ class: "bio-properties-panel-label",
96756
+ children: label
96757
+ }), o$1("input", {
96758
+ id: prefixId$5(id),
96759
+ ref: inputRef,
96760
+ type: "number",
96761
+ name: id,
96762
+ spellCheck: "false",
96763
+ autoComplete: "off",
96764
+ disabled: disabled,
96765
+ class: "bio-properties-panel-input",
96766
+ max: max,
96767
+ min: min,
96768
+ onInput: handleInput,
96769
+ onFocus: onFocus,
96770
+ onBlur: onBlur,
96771
+ step: step,
96772
+ value: localValue
96773
+ })]
96681
96774
  });
96682
96775
  }
96683
96776
 
96777
+ // helpers /////////////////
96778
+
96779
+ function prefixId$5(id) {
96780
+ return `bio-properties-panel-${id}`;
96781
+ }
96782
+
96684
96783
  const noop$1 = () => {};
96685
96784
  function FeelTextfield(props) {
96686
96785
  const {
@@ -96699,8 +96798,8 @@
96699
96798
  const [localValue, _setLocalValue] = l$1(value);
96700
96799
  const editorRef = useShowEntryEvent(id);
96701
96800
  const containerRef = s();
96702
- const feelActive = localValue.startsWith('=') || feel === 'required';
96703
- const feelOnlyValue = localValue.startsWith('=') ? localValue.substring(1) : localValue;
96801
+ const feelActive = isString(localValue) && localValue.startsWith('=') || feel === 'required';
96802
+ const feelOnlyValue = isString(localValue) && localValue.startsWith('=') ? localValue.substring(1) : localValue;
96704
96803
  const [focus, _setFocus] = l$1(undefined);
96705
96804
  const setFocus = (offset = 0) => {
96706
96805
  const hasFocus = containerRef.current.contains(document.activeElement);
@@ -96740,7 +96839,7 @@
96740
96839
  return;
96741
96840
  }
96742
96841
  setLocalValue(newValue);
96743
- if (!feelActive && newValue.startsWith('=')) {
96842
+ if (!feelActive && isString(newValue) && newValue.startsWith('=')) {
96744
96843
  // focus is behind `=` sign that will be removed
96745
96844
  setFocus(-1);
96746
96845
  }
@@ -96803,9 +96902,11 @@
96803
96902
  };
96804
96903
  }, [containerRef, feelActive, handleFeelToggle, setFocus]);
96805
96904
  return o$1("div", {
96806
- class: "bio-properties-panel-feel-entry",
96905
+ class: classnames('bio-properties-panel-feel-entry', {
96906
+ 'feel-active': feelActive
96907
+ }),
96807
96908
  children: [o$1("label", {
96808
- for: prefixId$6(id),
96909
+ for: prefixId$4(id),
96809
96910
  class: "bio-properties-panel-label",
96810
96911
  onClick: () => setFocus(),
96811
96912
  children: [label, o$1(FeelIcon, {
@@ -96822,7 +96923,7 @@
96822
96923
  disabled: feel !== 'optional' || disabled,
96823
96924
  onClick: handleFeelToggle
96824
96925
  }), feelActive ? o$1(CodeEditor, {
96825
- id: prefixId$6(id),
96926
+ id: prefixId$4(id),
96826
96927
  name: id,
96827
96928
  onInput: handleLocalInput,
96828
96929
  disabled: disabled,
@@ -96839,7 +96940,8 @@
96839
96940
  ...props,
96840
96941
  onInput: handleLocalInput,
96841
96942
  contentAttributes: {
96842
- 'id': prefixId$6(id)
96943
+ 'id': prefixId$4(id),
96944
+ 'aria-label': label
96843
96945
  },
96844
96946
  value: localValue,
96845
96947
  ref: editorRef
@@ -96876,7 +96978,7 @@
96876
96978
  }
96877
96979
  };
96878
96980
  return o$1("input", {
96879
- id: prefixId$6(id),
96981
+ id: prefixId$4(id),
96880
96982
  type: "text",
96881
96983
  ref: inputRef,
96882
96984
  name: id,
@@ -96890,6 +96992,53 @@
96890
96992
  value: value || ''
96891
96993
  });
96892
96994
  });
96995
+ x((props, ref) => {
96996
+ const {
96997
+ id,
96998
+ debounce,
96999
+ disabled,
97000
+ onInput,
97001
+ value,
97002
+ min,
97003
+ max,
97004
+ step,
97005
+ onFocus,
97006
+ onBlur
97007
+ } = props;
97008
+ const inputRef = s();
97009
+
97010
+ // To be consistent with the FEEL editor, set focus at start of input
97011
+ // this ensures clean editing experience when switching with the keyboard
97012
+ ref.current = {
97013
+ focus: position => {
97014
+ const input = inputRef.current;
97015
+ if (!input) {
97016
+ return;
97017
+ }
97018
+ input.focus();
97019
+ if (typeof position === 'number' && position !== Infinity) {
97020
+ if (position > value.length) {
97021
+ position = value.length;
97022
+ }
97023
+ input.setSelectionRange(position, position);
97024
+ }
97025
+ }
97026
+ };
97027
+ return o$1(NumberField, {
97028
+ id: id,
97029
+ debounce: debounce,
97030
+ disabled: disabled,
97031
+ displayLabel: false,
97032
+ inputRef: inputRef,
97033
+ max: max,
97034
+ min: min,
97035
+ onInput: onInput,
97036
+ step: step,
97037
+ value: value,
97038
+ onFocus: onFocus,
97039
+ onBlur: onBlur
97040
+ });
97041
+ });
96893
97042
  const OptionalFeelTextArea = x((props, ref) => {
96894
97043
  const {
96895
97044
  id,
@@ -96914,7 +97063,7 @@
96914
97063
  }
96915
97064
  };
96916
97065
  return o$1("textarea", {
96917
- id: prefixId$6(id),
97066
+ id: prefixId$4(id),
96918
97067
  type: "text",
96919
97068
  ref: inputRef,
96920
97069
  name: id,
@@ -96929,6 +97078,78 @@
96929
97078
  "data-gramm": "false"
96930
97079
  });
96931
97080
  });
97081
+ x((props, ref) => {
97082
+ const {
97083
+ id,
97084
+ onInput,
97085
+ value,
97086
+ onFocus,
97087
+ onBlur,
97088
+ switcherLabel
97089
+ } = props;
97090
+ const inputRef = s();
97091
+
97092
+ // To be consistent with the FEEL editor, set focus at start of input
97093
+ // this ensures clean editing experience when switching with the keyboard
97094
+ ref.current = {
97095
+ focus: () => {
97096
+ const input = inputRef.current;
97097
+ if (!input) {
97098
+ return;
97099
+ }
97100
+ input.focus();
97101
+ }
97102
+ };
97103
+ return o$1(ToggleSwitch, {
97104
+ id: id,
97105
+ value: value,
97106
+ inputRef: inputRef,
97107
+ onInput: onInput,
97108
+ onFocus: onFocus,
97109
+ onBlur: onBlur,
97110
+ switcherLabel: switcherLabel
97111
+ });
97112
+ });
97113
+ x((props, ref) => {
97114
+ const {
97115
+ id,
97116
+ disabled,
97117
+ onInput,
97118
+ value,
97119
+ onFocus,
97120
+ onBlur
97121
+ } = props;
97122
+ const inputRef = s();
97123
+ const handleChange = ({
97124
+ target
97125
+ }) => {
97126
+ onInput(target.checked);
97127
+ };
97128
+
97129
+ // To be consistent with the FEEL editor, set focus at start of input
97130
+ // this ensures clean editing experience when switching with the keyboard
97131
+ ref.current = {
97132
+ focus: () => {
97133
+ const input = inputRef.current;
97134
+ if (!input) {
97135
+ return;
97136
+ }
97137
+ input.focus();
97138
+ }
97139
+ };
97140
+ return o$1("input", {
97141
+ ref: inputRef,
97142
+ id: prefixId$4(id),
97143
+ name: id,
97144
+ onFocus: onFocus,
97145
+ onBlur: onBlur,
97146
+ type: "checkbox",
97147
+ class: "bio-properties-panel-input",
97148
+ onChange: handleChange,
97149
+ checked: value,
97150
+ disabled: disabled
97151
+ });
97152
+ });
96932
97153
 
96933
97154
  /**
96934
97155
  * @param {Object} props
@@ -97007,11 +97228,13 @@
97007
97228
  return o$1("div", {
97008
97229
  class: classnames(props.class, 'bio-properties-panel-entry', error ? 'has-error' : ''),
97009
97230
  "data-entry-id": id,
97010
- children: [o$1(FeelTextfield, {
97231
+ children: [a$2(FeelTextfield, {
97232
+ ...props,
97011
97233
  debounce: debounce,
97012
97234
  disabled: disabled,
97013
97235
  feel: feel,
97014
97236
  id: id,
97237
+ key: element,
97015
97238
  label: label,
97016
97239
  onInput: onInput,
97017
97240
  onError: onError,
@@ -97025,7 +97248,7 @@
97025
97248
  variables: variables,
97026
97249
  tooltipContainer: tooltipContainer,
97027
97250
  OptionalComponent: props.OptionalComponent
97028
- }, element), error && o$1("div", {
97251
+ }), error && o$1("div", {
97029
97252
  class: "bio-properties-panel-error",
97030
97253
  children: error
97031
97254
  }), o$1(Description, {
@@ -97062,13 +97285,19 @@
97062
97285
  ...props
97063
97286
  });
97064
97287
  }
97065
- function isEdited$7(node) {
97066
- return node && (!!node.value || node.classList.contains('edited'));
97288
+ function isEdited$5(node) {
97289
+ if (!node) {
97290
+ return false;
97291
+ }
97292
+ if (node.type === 'checkbox') {
97293
+ return !!node.checked || node.classList.contains('edited');
97294
+ }
97295
+ return !!node.value || node.classList.contains('edited');
97067
97296
  }
97068
97297
 
97069
97298
  // helpers /////////////////
97070
97299
 
97071
- function prefixId$6(id) {
97300
+ function prefixId$4(id) {
97072
97301
  return `bio-properties-panel-${id}`;
97073
97302
  }
97074
97303
 
@@ -97103,12 +97332,12 @@
97103
97332
  return o$1("div", {
97104
97333
  class: "bio-properties-panel-select",
97105
97334
  children: [o$1("label", {
97106
- for: prefixId$4(id),
97335
+ for: prefixId$3(id),
97107
97336
  class: "bio-properties-panel-label",
97108
97337
  children: label
97109
97338
  }), o$1("select", {
97110
97339
  ref: ref,
97111
- id: prefixId$4(id),
97340
+ id: prefixId$3(id),
97112
97341
  name: id,
97113
97342
  class: "bio-properties-panel-input",
97114
97343
  onInput: handleChange,
@@ -97215,13 +97444,13 @@
97215
97444
  })]
97216
97445
  });
97217
97446
  }
97218
- function isEdited$4(node) {
97447
+ function isEdited$3(node) {
97219
97448
  return node && !!node.value;
97220
97449
  }
97221
97450
 
97222
97451
  // helpers /////////////////
97223
97452
 
97224
- function prefixId$4(id) {
97453
+ function prefixId$3(id) {
97225
97454
  return `bio-properties-panel-${id}`;
97226
97455
  }
97227
97456
 
@@ -97270,12 +97499,12 @@
97270
97499
  return o$1("div", {
97271
97500
  class: "bio-properties-panel-textarea",
97272
97501
  children: [o$1("label", {
97273
- for: prefixId$2(id),
97502
+ for: prefixId$1(id),
97274
97503
  class: "bio-properties-panel-label",
97275
97504
  children: label
97276
97505
  }), o$1("textarea", {
97277
97506
  ref: ref,
97278
- id: prefixId$2(id),
97507
+ id: prefixId$1(id),
97279
97508
  name: id,
97280
97509
  spellCheck: "false",
97281
97510
  class: classnames('bio-properties-panel-input', monospace ? 'bio-properties-panel-input-monospace' : '', autoResize ? 'auto-resize' : ''),
@@ -97375,13 +97604,13 @@
97375
97604
  })]
97376
97605
  });
97377
97606
  }
97378
- function isEdited$2(node) {
97607
+ function isEdited$1(node) {
97379
97608
  return node && !!node.value;
97380
97609
  }
97381
97610
 
97382
97611
  // helpers /////////////////
97383
97612
 
97384
- function prefixId$2(id) {
97613
+ function prefixId$1(id) {
97385
97614
  return `bio-properties-panel-${id}`;
97386
97615
  }
97387
97616
 
@@ -97416,12 +97645,12 @@
97416
97645
  return o$1("div", {
97417
97646
  class: "bio-properties-panel-textfield",
97418
97647
  children: [o$1("label", {
97419
- for: prefixId$1(id),
97648
+ for: prefixId(id),
97420
97649
  class: "bio-properties-panel-label",
97421
97650
  children: label
97422
97651
  }), o$1("input", {
97423
97652
  ref: ref,
97424
- id: prefixId$1(id),
97653
+ id: prefixId(id),
97425
97654
  type: "text",
97426
97655
  name: id,
97427
97656
  spellCheck: "false",
@@ -97513,115 +97742,8 @@
97513
97742
  })]
97514
97743
  });
97515
97744
  }
97516
- function isEdited$1(node) {
97517
- return node && !!node.value;
97518
- }
97519
-
97520
- // helpers /////////////////
97521
-
97522
- function prefixId$1(id) {
97523
- return `bio-properties-panel-${id}`;
97524
- }
97525
-
97526
- function ToggleSwitch(props) {
97527
- const {
97528
- id,
97529
- label,
97530
- onInput,
97531
- value,
97532
- switcherLabel,
97533
- onFocus,
97534
- onBlur
97535
- } = props;
97536
- const [localValue, setLocalValue] = l$1(value);
97537
- const handleInputCallback = async () => {
97538
- onInput(!value);
97539
- };
97540
- const handleInput = e => {
97541
- handleInputCallback();
97542
- setLocalValue(e.target.value);
97543
- };
97544
- y(() => {
97545
- if (value === localValue) {
97546
- return;
97547
- }
97548
- setLocalValue(value);
97549
- }, [value]);
97550
- return o$1("div", {
97551
- class: "bio-properties-panel-toggle-switch",
97552
- children: [o$1("label", {
97553
- class: "bio-properties-panel-label",
97554
- for: prefixId(id),
97555
- children: label
97556
- }), o$1("div", {
97557
- class: "bio-properties-panel-field-wrapper",
97558
- children: [o$1("label", {
97559
- class: "bio-properties-panel-toggle-switch__switcher",
97560
- children: [o$1("input", {
97561
- id: prefixId(id),
97562
- class: "bio-properties-panel-input",
97563
- type: "checkbox",
97564
- onFocus: onFocus,
97565
- onBlur: onBlur,
97566
- name: id,
97567
- onInput: handleInput,
97568
- checked: !!localValue
97569
- }), o$1("span", {
97570
- class: "bio-properties-panel-toggle-switch__slider"
97571
- })]
97572
- }), o$1("p", {
97573
- class: "bio-properties-panel-toggle-switch__label",
97574
- children: switcherLabel
97575
- })]
97576
- })]
97577
- });
97578
- }
97579
-
97580
- /**
97581
- * @param {Object} props
97582
- * @param {Object} props.element
97583
- * @param {String} props.id
97584
- * @param {String} props.description
97585
- * @param {String} props.label
97586
- * @param {String} props.switcherLabel
97587
- * @param {Function} props.getValue
97588
- * @param {Function} props.setValue
97589
- * @param {Function} props.onFocus
97590
- * @param {Function} props.onBlur
97591
- */
97592
- function ToggleSwitchEntry(props) {
97593
- const {
97594
- element,
97595
- id,
97596
- description,
97597
- label,
97598
- switcherLabel,
97599
- getValue,
97600
- setValue,
97601
- onFocus,
97602
- onBlur
97603
- } = props;
97604
- const value = getValue(element);
97605
- return o$1("div", {
97606
- class: "bio-properties-panel-entry bio-properties-panel-toggle-switch-entry",
97607
- "data-entry-id": id,
97608
- children: [o$1(ToggleSwitch, {
97609
- id: id,
97610
- label: label,
97611
- value: value,
97612
- onInput: setValue,
97613
- onFocus: onFocus,
97614
- onBlur: onBlur,
97615
- switcherLabel: switcherLabel
97616
- }), o$1(Description, {
97617
- forId: id,
97618
- element: element,
97619
- value: description
97620
- })]
97621
- });
97622
- }
97623
97745
  function isEdited(node) {
97624
- return node && !!node.checked;
97746
+ return node && !!node.value;
97625
97747
  }
97626
97748
 
97627
97749
  // helpers /////////////////
@@ -101020,7 +101142,7 @@
101020
101142
  type = `${getEventDefinitionPrefix(eventDefinition)}${type}`;
101021
101143
 
101022
101144
  // (1.1) interrupting / non interrupting
101023
- if (is$6(element, 'bpmn:StartEvent') && !isInterrupting(element) || is$6(element, 'bpmn:BoundaryEvent') && !isCancelActivity(element)) {
101145
+ if (is$6(element, 'bpmn:StartEvent') && !isInterrupting$1(element) || is$6(element, 'bpmn:BoundaryEvent') && !isCancelActivity(element)) {
101024
101146
  type = `${type}NonInterrupting`;
101025
101147
  }
101026
101148
  return type;
@@ -101397,7 +101519,7 @@
101397
101519
  eventBus.fire('propertiesPanel.layoutChanged', {
101398
101520
  layout: newLayout
101399
101521
  });
101400
- }, [eventBus, layoutConfig]);
101522
+ }, [eventBus]);
101401
101523
 
101402
101524
  // React to external layout changes
101403
101525
  y(() => {
@@ -101724,17 +101846,17 @@
101724
101846
  function getLinkEventDefinition(element) {
101725
101847
  return getEventDefinition$1(element, 'bpmn:LinkEventDefinition');
101726
101848
  }
101727
- function getSignalEventDefinition(element) {
101849
+ function getSignalEventDefinition$1(element) {
101728
101850
  return getEventDefinition$1(element, 'bpmn:SignalEventDefinition');
101729
101851
  }
101730
101852
  function isLinkSupported(element) {
101731
101853
  return isAny$1(element, ['bpmn:IntermediateThrowEvent', 'bpmn:IntermediateCatchEvent']) && !!getLinkEventDefinition(element);
101732
101854
  }
101733
- function isSignalSupported(element) {
101734
- return is$6(element, 'bpmn:Event') && !!getSignalEventDefinition(element);
101855
+ function isSignalSupported$1(element) {
101856
+ return is$6(element, 'bpmn:Event') && !!getSignalEventDefinition$1(element);
101735
101857
  }
101736
- function getSignal(element) {
101737
- const signalEventDefinition = getSignalEventDefinition(element);
101858
+ function getSignal$1(element) {
101859
+ const signalEventDefinition = getSignalEventDefinition$1(element);
101738
101860
  return signalEventDefinition && signalEventDefinition.get('signalRef');
101739
101861
  }
101740
101862
  function getEscalationEventDefinition(element) {
@@ -101779,7 +101901,7 @@
101779
101901
  }, {
101780
101902
  id: 'activityRef',
101781
101903
  component: ActivityRef,
101782
- isEdited: isEdited$4
101904
+ isEdited: isEdited$3
101783
101905
  }];
101784
101906
  }
101785
101907
  function WaitForCompletion(props) {
@@ -101973,13 +102095,13 @@
101973
102095
  const entries = [{
101974
102096
  id: 'documentation',
101975
102097
  component: ElementDocumentationProperty,
101976
- isEdited: isEdited$2
102098
+ isEdited: isEdited$1
101977
102099
  }];
101978
102100
  if (hasProcessRef$2(element)) {
101979
102101
  entries.push({
101980
102102
  id: 'processDocumentation',
101981
102103
  component: ProcessDocumentationProperty,
101982
- isEdited: isEdited$2
102104
+ isEdited: isEdited$1
101983
102105
  });
101984
102106
  }
101985
102107
  return entries;
@@ -102161,17 +102283,17 @@
102161
102283
  let entries = [{
102162
102284
  id: 'errorRef',
102163
102285
  component: ErrorRef$1,
102164
- isEdited: isEdited$4
102286
+ isEdited: isEdited$3
102165
102287
  }];
102166
102288
  if (error) {
102167
102289
  entries = [...entries, {
102168
102290
  id: 'errorName',
102169
102291
  component: ErrorName$1,
102170
- isEdited: isEdited$1
102292
+ isEdited: isEdited
102171
102293
  }, {
102172
102294
  id: 'errorCode',
102173
102295
  component: ErrorCode$2,
102174
- isEdited: isEdited$1
102296
+ isEdited: isEdited
102175
102297
  }];
102176
102298
  }
102177
102299
  return entries;
@@ -102342,17 +102464,17 @@
102342
102464
  let entries = [{
102343
102465
  id: 'escalationRef',
102344
102466
  component: EscalationRef,
102345
- isEdited: isEdited$4
102467
+ isEdited: isEdited$3
102346
102468
  }];
102347
102469
  if (escalation) {
102348
102470
  entries = [...entries, {
102349
102471
  id: 'escalationName',
102350
102472
  component: EscalationName,
102351
- isEdited: isEdited$1
102473
+ isEdited: isEdited
102352
102474
  }, {
102353
102475
  id: 'escalationCode',
102354
102476
  component: EscalationCode$1,
102355
- isEdited: isEdited$1
102477
+ isEdited: isEdited
102356
102478
  }];
102357
102479
  }
102358
102480
  return entries;
@@ -102624,7 +102746,7 @@
102624
102746
  return [{
102625
102747
  id: 'id',
102626
102748
  component: Id$3,
102627
- isEdited: isEdited$1
102749
+ isEdited: isEdited
102628
102750
  }];
102629
102751
  }
102630
102752
  function Id$3(props) {
@@ -102674,7 +102796,7 @@
102674
102796
  return [{
102675
102797
  id: 'linkName',
102676
102798
  component: LinkName,
102677
- isEdited: isEdited$1
102799
+ isEdited: isEdited
102678
102800
  }];
102679
102801
  }
102680
102802
  function LinkName(props) {
@@ -102728,13 +102850,13 @@
102728
102850
  let entries = [{
102729
102851
  id: 'messageRef',
102730
102852
  component: MessageRef$1,
102731
- isEdited: isEdited$4
102853
+ isEdited: isEdited$3
102732
102854
  }];
102733
102855
  if (message) {
102734
102856
  entries = [...entries, {
102735
102857
  id: 'messageName',
102736
102858
  component: MessageName$1,
102737
- isEdited: isEdited$1
102859
+ isEdited: isEdited
102738
102860
  }];
102739
102861
  }
102740
102862
  return entries;
@@ -102875,11 +102997,11 @@
102875
102997
  const entries = [{
102876
102998
  id: 'loopCardinality',
102877
102999
  component: LoopCardinality,
102878
- isEdited: isEdited$1
103000
+ isEdited: isEdited
102879
103001
  }, {
102880
103002
  id: 'completionCondition',
102881
103003
  component: CompletionCondition$1,
102882
- isEdited: isEdited$1
103004
+ isEdited: isEdited
102883
103005
  }];
102884
103006
  return entries;
102885
103007
  }
@@ -103102,7 +103224,7 @@
103102
103224
  return [{
103103
103225
  id: 'name',
103104
103226
  component: Name$3,
103105
- isEdited: isEdited$2
103227
+ isEdited: isEdited$1
103106
103228
  }];
103107
103229
  }
103108
103230
  function Name$3(props) {
@@ -103211,11 +103333,11 @@
103211
103333
  return [{
103212
103334
  id: 'processId',
103213
103335
  component: ProcessId,
103214
- isEdited: isEdited$1
103336
+ isEdited: isEdited
103215
103337
  }, {
103216
103338
  id: 'processName',
103217
103339
  component: ProcessName,
103218
- isEdited: isEdited$1
103340
+ isEdited: isEdited
103219
103341
  }];
103220
103342
  }
103221
103343
  function ProcessName(props) {
@@ -103287,34 +103409,34 @@
103287
103409
  return is$6(element, 'bpmn:Participant') && element.businessObject.get('processRef');
103288
103410
  }
103289
103411
 
103290
- const EMPTY_OPTION$3 = '';
103291
- const CREATE_NEW_OPTION$2 = 'create-new';
103292
-
103293
103412
  /**
103294
103413
  * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
103295
103414
  */
103296
103415
 
103416
+ const EMPTY_OPTION$3 = '';
103417
+ const CREATE_NEW_OPTION$2 = 'create-new';
103418
+
103297
103419
  /**
103298
- * @returns {Array<Entry>} entries
103420
+ * @returns {Entry[]}
103299
103421
  */
103300
- function SignalProps(props) {
103422
+ function SignalProps$1(props) {
103301
103423
  const {
103302
103424
  element
103303
103425
  } = props;
103304
- if (!isSignalSupported(element)) {
103426
+ if (!isSignalSupported$1(element)) {
103305
103427
  return [];
103306
103428
  }
103307
- const signal = getSignal(element);
103429
+ const signal = getSignal$1(element);
103308
103430
  let entries = [{
103309
103431
  id: 'signalRef',
103310
103432
  component: SignalRef,
103311
- isEdited: isEdited$4
103433
+ isEdited: isEdited$3
103312
103434
  }];
103313
103435
  if (signal) {
103314
103436
  entries = [...entries, {
103315
103437
  id: 'signalName',
103316
- component: SignalName,
103317
- isEdited: isEdited$1
103438
+ component: SignalName$1,
103439
+ isEdited: isEdited
103318
103440
  }];
103319
103441
  }
103320
103442
  return entries;
@@ -103326,9 +103448,9 @@
103326
103448
  const bpmnFactory = useService('bpmnFactory');
103327
103449
  const commandStack = useService('commandStack');
103328
103450
  const translate = useService('translate');
103329
- const signalEventDefinition = getSignalEventDefinition(element);
103451
+ const signalEventDefinition = getSignalEventDefinition$1(element);
103330
103452
  const getValue = () => {
103331
- const signal = getSignal(element);
103453
+ const signal = getSignal$1(element);
103332
103454
  if (signal) {
103333
103455
  return signal.get('id');
103334
103456
  }
@@ -103402,14 +103524,14 @@
103402
103524
  getOptions
103403
103525
  });
103404
103526
  }
103405
- function SignalName(props) {
103527
+ function SignalName$1(props) {
103406
103528
  const {
103407
103529
  element
103408
103530
  } = props;
103409
103531
  const commandStack = useService('commandStack');
103410
103532
  const translate = useService('translate');
103411
103533
  const debounce = useService('debounceInput');
103412
- const signal = getSignal(element);
103534
+ const signal = getSignal$1(element);
103413
103535
  const getValue = () => {
103414
103536
  return signal.get('name');
103415
103537
  };
@@ -103489,6 +103611,16 @@
103489
103611
  const messageEventDefinition = getMessageEventDefinition(element);
103490
103612
  return messageEventDefinition && messageEventDefinition.get('messageRef');
103491
103613
  }
103614
+ function getSignalEventDefinition(element) {
103615
+ return getEventDefinition(element, 'bpmn:SignalEventDefinition');
103616
+ }
103617
+ function isSignalSupported(element) {
103618
+ return is$6(element, 'bpmn:Event') && !!getSignalEventDefinition(element);
103619
+ }
103620
+ function getSignal(element) {
103621
+ const signalEventDefinition = getSignalEventDefinition(element);
103622
+ return signalEventDefinition && signalEventDefinition.get('signalRef');
103623
+ }
103492
103624
 
103493
103625
  function TimerProps$2(props) {
103494
103626
  const {
@@ -103514,7 +103646,7 @@
103514
103646
  entries.push({
103515
103647
  id: getId$1(idPrefix, 'timerEventDefinitionType'),
103516
103648
  component: TimerEventDefinitionType$2,
103517
- isEdited: isEdited$4,
103649
+ isEdited: isEdited$3,
103518
103650
  timerEventDefinition,
103519
103651
  timerEventDefinitionType
103520
103652
  });
@@ -103522,7 +103654,7 @@
103522
103654
  entries.push({
103523
103655
  id: getId$1(idPrefix, 'timerEventDefinitionValue'),
103524
103656
  component: TimerEventDefinitionValue$2,
103525
- isEdited: isEdited$1,
103657
+ isEdited: isEdited,
103526
103658
  timerEventDefinition,
103527
103659
  timerEventDefinitionType
103528
103660
  });
@@ -103800,7 +103932,7 @@
103800
103932
  id: 'signal',
103801
103933
  label: translate('Signal'),
103802
103934
  component: Group,
103803
- entries: [...SignalProps({
103935
+ entries: [...SignalProps$1({
103804
103936
  element
103805
103937
  })]
103806
103938
  };
@@ -104015,15 +104147,15 @@
104015
104147
  return [{
104016
104148
  id: 'assignmentDefinitionAssignee',
104017
104149
  component: Assignee$1,
104018
- isEdited: isEdited$7
104150
+ isEdited: isEdited$5
104019
104151
  }, {
104020
104152
  id: 'assignmentDefinitionCandidateGroups',
104021
104153
  component: CandidateGroups$1,
104022
- isEdited: isEdited$7
104154
+ isEdited: isEdited$5
104023
104155
  }, {
104024
104156
  id: 'assignmentDefinitionCandidateUsers',
104025
104157
  component: CandidateUsers$1,
104026
- isEdited: isEdited$7
104158
+ isEdited: isEdited$5
104027
104159
  }];
104028
104160
  }
104029
104161
  function Assignee$1(props) {
@@ -104458,11 +104590,11 @@
104458
104590
  return [{
104459
104591
  id: 'decisionId',
104460
104592
  component: DecisionID,
104461
- isEdited: isEdited$7
104593
+ isEdited: isEdited$5
104462
104594
  }, {
104463
104595
  id: 'resultVariable',
104464
104596
  component: ResultVariable$4,
104465
- isEdited: isEdited$1
104597
+ isEdited: isEdited
104466
104598
  }];
104467
104599
  }
104468
104600
  function DecisionID(props) {
@@ -104634,7 +104766,7 @@
104634
104766
  conditionProps.push({
104635
104767
  id: 'conditionExpression',
104636
104768
  component: ConditionExpression$1,
104637
- isEdited: isEdited$7
104769
+ isEdited: isEdited$5
104638
104770
  });
104639
104771
  }
104640
104772
  return conditionProps;
@@ -104730,7 +104862,7 @@
104730
104862
  entries.push({
104731
104863
  id: 'errorCode',
104732
104864
  component: ErrorCode$1,
104733
- isEdited: isEdited$7
104865
+ isEdited: isEdited$5
104734
104866
  });
104735
104867
  }
104736
104868
  return entries;
@@ -104788,7 +104920,7 @@
104788
104920
  entries.push({
104789
104921
  id: 'escalationCode',
104790
104922
  component: EscalationCode,
104791
- isEdited: isEdited$7
104923
+ isEdited: isEdited$5
104792
104924
  });
104793
104925
  }
104794
104926
  return entries;
@@ -104836,19 +104968,19 @@
104836
104968
  const entries = [{
104837
104969
  id: 'formType',
104838
104970
  component: FormType$1,
104839
- isEdited: isEdited$4
104971
+ isEdited: isEdited$3
104840
104972
  }];
104841
104973
  if (isCamundaForm(element, formHelper)) {
104842
104974
  entries.push({
104843
104975
  id: 'formConfiguration',
104844
104976
  component: FormConfiguration,
104845
- isEdited: isEdited$2
104977
+ isEdited: isEdited$1
104846
104978
  });
104847
104979
  } else if (isCustomKey(element, formHelper)) {
104848
104980
  entries.push({
104849
104981
  id: 'customFormKey',
104850
104982
  component: CustomFormKey,
104851
- isEdited: isEdited$1
104983
+ isEdited: isEdited
104852
104984
  });
104853
104985
  }
104854
104986
  return entries;
@@ -105505,7 +105637,7 @@
105505
105637
  return getParameters$1.apply(this, [element, 'outputParameters']);
105506
105638
  }
105507
105639
  function areInputParametersSupported$1(element) {
105508
- return isAny$1(element, ['bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:CallActivity', 'bpmn:BusinessRuleTask', 'bpmn:ScriptTask']) || isZeebeServiceTask(element);
105640
+ return isAny$1(element, ['bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:CallActivity', 'bpmn:BusinessRuleTask', 'bpmn:ScriptTask']) || isZeebeServiceTask(element) || isSignalThrowEvent(element);
105509
105641
  }
105510
105642
  function areOutputParametersSupported$1(element) {
105511
105643
  return isAny$1(element, ['zeebe:ZeebeServiceTask', 'bpmn:UserTask', 'bpmn:SubProcess', 'bpmn:ReceiveTask', 'bpmn:CallActivity', 'bpmn:Event', 'bpmn:BusinessRuleTask']);
@@ -105513,6 +105645,12 @@
105513
105645
  function createIOMapping(properties, parent, bpmnFactory) {
105514
105646
  return createElement$1('zeebe:IoMapping', properties, parent, bpmnFactory);
105515
105647
  }
105648
+ function isSignalThrowEvent(element) {
105649
+ if (!isAny$1(element, ['bpmn:EndEvent', 'bpmn:IntermediateThrowEvent'])) {
105650
+ return false;
105651
+ }
105652
+ return !!getEventDefinition$1(element, 'bpmn:SignalEventDefinition');
105653
+ }
105516
105654
 
105517
105655
  function InputProps$1({
105518
105656
  element,
@@ -105673,14 +105811,14 @@
105673
105811
  entries.push({
105674
105812
  id: 'messageName',
105675
105813
  component: MessageName,
105676
- isEdited: isEdited$7
105814
+ isEdited: isEdited$5
105677
105815
  });
105678
105816
  }
105679
105817
  if (message && canHaveSubscriptionCorrelationKey(element)) {
105680
105818
  entries.push({
105681
105819
  id: 'messageSubscriptionCorrelationKey',
105682
105820
  component: SubscriptionCorrelationKey,
105683
- isEdited: isEdited$7
105821
+ isEdited: isEdited$5
105684
105822
  });
105685
105823
  }
105686
105824
  return entries;
@@ -105833,23 +105971,23 @@
105833
105971
  return [{
105834
105972
  id: 'multiInstance-inputCollection',
105835
105973
  component: InputCollection,
105836
- isEdited: isEdited$7
105974
+ isEdited: isEdited$5
105837
105975
  }, {
105838
105976
  id: 'multiInstance-inputElement',
105839
105977
  component: InputElement,
105840
- isEdited: isEdited$1
105978
+ isEdited: isEdited
105841
105979
  }, {
105842
105980
  id: 'multiInstance-outputCollection',
105843
105981
  component: OutputCollection,
105844
- isEdited: isEdited$1
105982
+ isEdited: isEdited
105845
105983
  }, {
105846
105984
  id: 'multiInstance-outputElement',
105847
105985
  component: OutputElement,
105848
- isEdited: isEdited$7
105986
+ isEdited: isEdited$5
105849
105987
  }, {
105850
105988
  id: 'multiInstance-completionCondition',
105851
105989
  component: CompletionCondition,
105852
- isEdited: isEdited$7
105990
+ isEdited: isEdited$5
105853
105991
  }];
105854
105992
  }
105855
105993
  function InputCollection(props) {
@@ -106088,7 +106226,7 @@
106088
106226
  return [{
106089
106227
  id: 'propagateAllChildVariables',
106090
106228
  component: PropagateAllChildVariables,
106091
- isEdited: isEdited
106229
+ isEdited: isEdited$7
106092
106230
  }];
106093
106231
  }
106094
106232
  function PropagateAllChildVariables(props) {
@@ -106511,11 +106649,11 @@
106511
106649
  return [{
106512
106650
  id: 'resultVariable',
106513
106651
  component: ResultVariable$3,
106514
- isEdited: isEdited$1
106652
+ isEdited: isEdited
106515
106653
  }, {
106516
106654
  id: 'scriptExpression',
106517
106655
  component: Expression$3,
106518
- isEdited: isEdited$7
106656
+ isEdited: isEdited$5
106519
106657
  }];
106520
106658
  }
106521
106659
  function Expression$3(props) {
@@ -106675,6 +106813,58 @@
106675
106813
  return getExtensionElementsList$2(businessObject, 'zeebe:Script')[0];
106676
106814
  }
106677
106815
 
106816
+ /**
106817
+ * @returns {Entry[]}
106818
+ */
106819
+ function SignalProps(props) {
106820
+ const {
106821
+ element
106822
+ } = props;
106823
+ if (!isSignalSupported(element)) {
106824
+ return [];
106825
+ }
106826
+ const signal = getSignal(element);
106827
+ let entries = [];
106828
+ if (signal) {
106829
+ entries = [...entries, {
106830
+ id: 'signalName',
106831
+ component: SignalName,
106832
+ isEdited: isEdited$5
106833
+ }];
106834
+ }
106835
+ return entries;
106836
+ }
106837
+ function SignalName(props) {
106838
+ const {
106839
+ element
106840
+ } = props;
106841
+ const commandStack = useService('commandStack');
106842
+ const translate = useService('translate');
106843
+ const debounce = useService('debounceInput');
106844
+ const signal = getSignal(element);
106845
+ const getValue = () => {
106846
+ return signal.get('name');
106847
+ };
106848
+ const setValue = value => {
106849
+ return commandStack.execute('element.updateModdleProperties', {
106850
+ element,
106851
+ moddleElement: signal,
106852
+ properties: {
106853
+ name: value
106854
+ }
106855
+ });
106856
+ };
106857
+ return FeelEntryWithVariableContext({
106858
+ element,
106859
+ id: 'signalName',
106860
+ label: translate('Name'),
106861
+ feel: 'optional',
106862
+ getValue,
106863
+ setValue,
106864
+ debounce
106865
+ });
106866
+ }
106867
+
106678
106868
  function TargetProps(props) {
106679
106869
  const {
106680
106870
  element
@@ -106685,7 +106875,7 @@
106685
106875
  return [{
106686
106876
  id: 'targetProcessId',
106687
106877
  component: TargetProcessId,
106688
- isEdited: isEdited$7
106878
+ isEdited: isEdited$5
106689
106879
  }];
106690
106880
  }
106691
106881
  function TargetProcessId(props) {
@@ -106774,11 +106964,11 @@
106774
106964
  return [{
106775
106965
  id: 'taskDefinitionType',
106776
106966
  component: TaskDefinitionType,
106777
- isEdited: isEdited$7
106967
+ isEdited: isEdited$5
106778
106968
  }, {
106779
106969
  id: 'taskDefinitionRetries',
106780
106970
  component: TaskDefinitionRetries,
106781
- isEdited: isEdited$7
106971
+ isEdited: isEdited$5
106782
106972
  }];
106783
106973
  }
106784
106974
  function TaskDefinitionType(props) {
@@ -106947,11 +107137,11 @@
106947
107137
  return [{
106948
107138
  id: 'taskScheduleDueDate',
106949
107139
  component: DueDate$1,
106950
- isEdited: isEdited$7
107140
+ isEdited: isEdited$5
106951
107141
  }, {
106952
107142
  id: 'taskScheduleFollowUpDate',
106953
107143
  component: FollowUpDate$1,
106954
- isEdited: isEdited$7
107144
+ isEdited: isEdited$5
106955
107145
  }];
106956
107146
  }
106957
107147
  function DueDate$1(props) {
@@ -107135,7 +107325,7 @@
107135
107325
  entries.push({
107136
107326
  id: 'timerEventDefinitionType',
107137
107327
  component: TimerEventDefinitionType$1,
107138
- isEdited: isEdited$4,
107328
+ isEdited: isEdited$3,
107139
107329
  options: timerOptions
107140
107330
  });
107141
107331
  }
@@ -107143,7 +107333,7 @@
107143
107333
  entries.push({
107144
107334
  id: 'timerEventDefinitionValue',
107145
107335
  component: TimerEventDefinitionValue$1,
107146
- isEdited: isEdited$7,
107336
+ isEdited: isEdited$5,
107147
107337
  label: singleOption ? timerOptions[0].label : undefined,
107148
107338
  timerEventDefinitionType: timerEventDefinitionType || timerOptions[0].value
107149
107339
  });
@@ -107320,7 +107510,7 @@
107320
107510
  }
107321
107511
  return false;
107322
107512
  case 'timeCycle':
107323
- if (is$6(element, 'bpmn:StartEvent') && !isInterruptingStartEvent$1(businessObject)) {
107513
+ if (is$6(element, 'bpmn:StartEvent') && !isInterruptingStartEvent(businessObject)) {
107324
107514
  return true;
107325
107515
  }
107326
107516
  if (is$6(element, 'bpmn:BoundaryEvent') && !businessObject.cancelActivity) {
@@ -107424,10 +107614,10 @@
107424
107614
  });
107425
107615
  }
107426
107616
  }
107427
- function isInterruptingStartEvent$1(bo) {
107428
- return isInEventSubProcess$1(bo) && bo.get('isInterrupting') !== false;
107617
+ function isInterruptingStartEvent(bo) {
107618
+ return isInEventSubProcess$2(bo) && bo.get('isInterrupting') !== false;
107429
107619
  }
107430
- function isInEventSubProcess$1(bo) {
107620
+ function isInEventSubProcess$2(bo) {
107431
107621
  const parent = bo.$parent;
107432
107622
  return is$6(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
107433
107623
  }
@@ -107702,6 +107892,10 @@
107702
107892
  return properties && properties.get(getPropertyName(namespace));
107703
107893
  }
107704
107894
 
107895
+ /**
107896
+ * @typedef { import('@bpmn-io/properties-panel').EntryDefinition } Entry
107897
+ */
107898
+
107705
107899
  const LOW_PRIORITY$1$1 = 500;
107706
107900
  const ZEEBE_GROUPS = [BusinessRuleImplementationGroup, CalledDecisionGroup, ScriptImplementationGroup, ScriptGroup$1, TaskDefinitionGroup, AssignmentDefinitionGroup, FormGroup$1, ConditionGroup$1, TargetGroup, InputGroup$1, OutputPropagationGroup, OutputGroup$1, HeaderGroup, ExtensionPropertiesGroup$1];
107707
107901
  let ZeebePropertiesProvider$1 = class ZeebePropertiesProvider {
@@ -107718,6 +107912,7 @@
107718
107912
  updateErrorGroup$1(groups, element);
107719
107913
  updateEscalationGroup$1(groups, element);
107720
107914
  updateMessageGroup$1(groups, element);
107915
+ updateSignalGroup(groups, element);
107721
107916
  updateTimerGroup$1(groups, element, this._injector);
107722
107917
  updateMultiInstanceGroup$1(groups, element);
107723
107918
 
@@ -107902,7 +108097,7 @@
107902
108097
  if (!errorGroup) {
107903
108098
  return;
107904
108099
  }
107905
- errorGroup.entries = overrideGenericEntries$1(errorGroup.entries, ErrorProps$1({
108100
+ errorGroup.entries = replaceEntries(errorGroup.entries, ErrorProps$1({
107906
108101
  element
107907
108102
  }));
107908
108103
  }
@@ -107911,7 +108106,16 @@
107911
108106
  if (!escalationGroup) {
107912
108107
  return;
107913
108108
  }
107914
- escalationGroup.entries = overrideGenericEntries$1(escalationGroup.entries, EscalationProps$1({
108109
+ escalationGroup.entries = replaceEntries(escalationGroup.entries, EscalationProps$1({
108110
+ element
108111
+ }));
108112
+ }
108113
+ function updateSignalGroup(groups, element) {
108114
+ const signalGroup = findGroup$2(groups, 'signal');
108115
+ if (!signalGroup) {
108116
+ return;
108117
+ }
108118
+ signalGroup.entries = replaceEntries(signalGroup.entries, SignalProps({
107915
108119
  element
107916
108120
  }));
107917
108121
  }
@@ -107920,7 +108124,7 @@
107920
108124
  if (!messageGroup) {
107921
108125
  return;
107922
108126
  }
107923
- messageGroup.entries = overrideGenericEntries$1(messageGroup.entries, MessageProps$1({
108127
+ messageGroup.entries = replaceEntries(messageGroup.entries, MessageProps$1({
107924
108128
  element
107925
108129
  }));
107926
108130
  }
@@ -107964,13 +108168,14 @@
107964
108168
  }
107965
108169
 
107966
108170
  /**
107967
- * Replace generic bpmn components with specific zeebe ones.
108171
+ * Replace entries with the same ID.
108172
+ *s
108173
+ * @param {Entry[]} oldEntries
108174
+ * @param {Entry[]} newEntries
107968
108175
  *
107969
- * @param {Array} oldEntries
107970
- * @param {Array} newEntries
107971
- * @returns {Array} combined entries
108176
+ * @returns {Entry[]} combined entries
107972
108177
  */
107973
- function overrideGenericEntries$1(oldEntries, newEntries) {
108178
+ function replaceEntries(oldEntries, newEntries) {
107974
108179
  const filteredEntries = oldEntries.filter(oldEntry => !newEntries.find(newEntry => newEntry.id === oldEntry.id));
107975
108180
  return [...filteredEntries, ...newEntries];
107976
108181
  }
@@ -109666,7 +109871,11 @@
109666
109871
  ElementTemplatesLoader.$inject = ['config.elementTemplates', 'eventBus', 'elementTemplates', 'moddle'];
109667
109872
 
109668
109873
  function unlinkTemplate$1(element, injector) {
109669
- const modeling = injector.get('modeling');
109874
+ const modeling = injector.get('modeling'),
109875
+ eventBus = injector.get('eventBus');
109876
+ eventBus.fire('elementTemplates.unlink', {
109877
+ element
109878
+ });
109670
109879
  modeling.updateProperties(element, {
109671
109880
  'camunda:modelerTemplate': null,
109672
109881
  'camunda:modelerTemplateVersion': null
@@ -109674,7 +109883,11 @@
109674
109883
  }
109675
109884
  function removeTemplate(element, injector) {
109676
109885
  const replace = injector.get('replace'),
109677
- selection = injector.get('selection');
109886
+ selection = injector.get('selection'),
109887
+ eventBus = injector.get('eventBus');
109888
+ eventBus.fire('elementTemplates.remove', {
109889
+ element
109890
+ });
109678
109891
  const businessObject = getBusinessObject$2(element);
109679
109892
  const type = businessObject.$type,
109680
109893
  eventDefinitionType = getEventDefinitionType(businessObject);
@@ -109687,7 +109900,12 @@
109687
109900
  selection.select(newElement);
109688
109901
  }
109689
109902
  function updateTemplate$1(element, newTemplate, injector) {
109690
- const elementTemplates = injector.get('elementTemplates');
109903
+ const elementTemplates = injector.get('elementTemplates'),
109904
+ eventBus = injector.get('eventBus');
109905
+ eventBus.fire('elementTemplates.update', {
109906
+ element,
109907
+ newTemplate
109908
+ });
109691
109909
  return elementTemplates.applyTemplate(element, newTemplate);
109692
109910
  }
109693
109911
  function getVersionOrDateFromTemplate(template) {
@@ -109761,7 +109979,11 @@
109761
109979
  }
109762
109980
 
109763
109981
  function unlinkTemplate(element, injector) {
109764
- const modeling = injector.get('modeling');
109982
+ const modeling = injector.get('modeling'),
109983
+ eventBus = injector.get('eventBus');
109984
+ eventBus.fire('elementTemplates.unlink', {
109985
+ element
109986
+ });
109765
109987
 
109766
109988
  // remove template attributes
109767
109989
  modeling.updateProperties(element, {
@@ -109771,7 +109993,12 @@
109771
109993
  });
109772
109994
  }
109773
109995
  function updateTemplate(element, newTemplate, injector) {
109774
- const elementTemplates = injector.get('elementTemplates');
109996
+ const elementTemplates = injector.get('elementTemplates'),
109997
+ eventBus = injector.get('eventBus');
109998
+ eventBus.fire('elementTemplates.update', {
109999
+ element,
110000
+ newTemplate
110001
+ });
109775
110002
  return elementTemplates.applyTemplate(element, newTemplate);
109776
110003
  }
109777
110004
 
@@ -111797,7 +112024,7 @@
111797
112024
  return {
111798
112025
  id,
111799
112026
  component: DropdownProperty$1,
111800
- isEdited: isEdited$4,
112027
+ isEdited: isEdited$3,
111801
112028
  property
111802
112029
  };
111803
112030
  }
@@ -111806,14 +112033,14 @@
111806
112033
  return {
111807
112034
  id,
111808
112035
  component: FeelProperty,
111809
- isEdited: isEdited$7,
112036
+ isEdited: isEdited$5,
111810
112037
  property
111811
112038
  };
111812
112039
  }
111813
112040
  return {
111814
112041
  id,
111815
112042
  component: StringProperty$1,
111816
- isEdited: isEdited$1,
112043
+ isEdited: isEdited,
111817
112044
  property
111818
112045
  };
111819
112046
  }
@@ -111822,14 +112049,14 @@
111822
112049
  return {
111823
112050
  id,
111824
112051
  component: FeelTextAreaProperty,
111825
- isEdited: isEdited$7,
112052
+ isEdited: isEdited$5,
111826
112053
  property
111827
112054
  };
111828
112055
  }
111829
112056
  return {
111830
112057
  id,
111831
112058
  component: TextAreaProperty$1,
111832
- isEdited: isEdited$2,
112059
+ isEdited: isEdited$1,
111833
112060
  property
111834
112061
  };
111835
112062
  }
@@ -111882,7 +112109,8 @@
111882
112109
  label
111883
112110
  } = property;
111884
112111
  const bpmnFactory = useService('bpmnFactory'),
111885
- commandStack = useService('commandStack');
112112
+ commandStack = useService('commandStack'),
112113
+ translate = useService('translate');
111886
112114
  const getOptions = () => {
111887
112115
  const {
111888
112116
  choices,
@@ -111916,6 +112144,7 @@
111916
112144
  }),
111917
112145
  getValue: propertyGetter$1(element, property),
111918
112146
  setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
112147
+ validate: propertyValidator$1(translate, property),
111919
112148
  disabled: editable === false
111920
112149
  });
111921
112150
  }
@@ -112029,7 +112258,8 @@
112029
112258
  } = property;
112030
112259
  const bpmnFactory = useService('bpmnFactory'),
112031
112260
  commandStack = useService('commandStack'),
112032
- debounce = useService('debounceInput');
112261
+ debounce = useService('debounceInput'),
112262
+ translate = useService('translate');
112033
112263
  return TextAreaEntry({
112034
112264
  debounce,
112035
112265
  element,
@@ -112043,6 +112273,7 @@
112043
112273
  }),
112044
112274
  getValue: propertyGetter$1(element, property),
112045
112275
  setValue: propertySetter$1(bpmnFactory, commandStack, element, property),
112276
+ validate: propertyValidator$1(translate, property),
112046
112277
  disabled: editable === false
112047
112278
  });
112048
112279
  }
@@ -112066,15 +112297,15 @@
112066
112297
  minLength,
112067
112298
  notEmpty
112068
112299
  } = constraints;
112069
- if (notEmpty && isEmptyString$1(value)) {
112300
+ if (notEmpty && isEmpty(value)) {
112070
112301
  return translate('Must not be empty.');
112071
112302
  }
112072
- if (maxLength && value.length > maxLength) {
112303
+ if (maxLength && (value || '').length > maxLength) {
112073
112304
  return translate('Must have max length {maxLength}.', {
112074
112305
  maxLength
112075
112306
  });
112076
112307
  }
112077
- if (minLength && value.length < minLength) {
112308
+ if (minLength && (value || '').length < minLength) {
112078
112309
  return translate('Must have min length {minLength}.', {
112079
112310
  minLength
112080
112311
  });
@@ -112096,8 +112327,11 @@
112096
112327
  }
112097
112328
  };
112098
112329
  }
112099
- function isEmptyString$1(string) {
112100
- return !string || !string.trim().length;
112330
+ function isEmpty(value) {
112331
+ if (typeof value === 'string') {
112332
+ return !value.trim().length;
112333
+ }
112334
+ return value === undefined;
112101
112335
  }
112102
112336
  function matchesPattern$1(string, pattern) {
112103
112337
  return new RegExp(pattern).test(string);
@@ -112139,7 +112373,7 @@
112139
112373
  return [{
112140
112374
  id: 'messageRef',
112141
112375
  component: MessageRef,
112142
- isEdited: isEdited$4
112376
+ isEdited: isEdited$3
112143
112377
  }];
112144
112378
  }
112145
112379
  function MessageRef(props) {
@@ -112505,7 +112739,7 @@
112505
112739
  }
112506
112740
 
112507
112741
  /**
112508
- * Remove referenced element when template is unlinked.
112742
+ * Unlink referenced element when template is unlinked.
112509
112743
  */
112510
112744
  _handlePropertiesUpdate(context) {
112511
112745
  const {
@@ -112521,11 +112755,9 @@
112521
112755
  const bo = getBusinessObject$2(element);
112522
112756
  const message = findMessage(bo);
112523
112757
  if (message && getTemplateId$1(message)) {
112524
- const messageEventDefinition = bo.eventDefinitions[0];
112525
- this._modeling.updateModdleProperties(element, messageEventDefinition, {
112526
- 'messageRef': undefined
112758
+ this._modeling.updateModdleProperties(element, message, {
112759
+ [TEMPLATE_ID_ATTR$1]: null
112527
112760
  });
112528
- this._removeRootElement(message);
112529
112761
  }
112530
112762
  }
112531
112763
 
@@ -112752,7 +112984,7 @@
112752
112984
  },
112753
112985
  messageName: element => {
112754
112986
  const translate = useService('translate');
112755
- if (is$6(element, 'bpmn:StartEvent') && !isInEventSubProcess$2(element)) {
112987
+ if (is$6(element, 'bpmn:StartEvent') && !isInEventSubProcess(element)) {
112756
112988
  return o$1("a", {
112757
112989
  href: "https://docs.camunda.io/docs/components/modeler/bpmn/message-events/#messages",
112758
112990
  target: "_blank",
@@ -112844,7 +113076,7 @@
112844
113076
 
112845
113077
  // helper ////////////
112846
113078
 
112847
- function isInEventSubProcess$2(element) {
113079
+ function isInEventSubProcess(element) {
112848
113080
  const bo = getBusinessObject$2(element),
112849
113081
  parent = bo.$parent;
112850
113082
  return is$6(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
@@ -113059,59 +113291,74 @@
113059
113291
  }
113060
113292
 
113061
113293
  function getTimerEventDefinition(element) {
113062
- const bo = getBusinessObject$2(element);
113294
+ const businessObject = getBusinessObject$2(element);
113063
113295
 
113064
- return bo.get('eventDefinitions').find(definition => is$6(definition, 'bpmn:TimerEventDefinition'));
113296
+ return businessObject.get('eventDefinitions').find(eventDefinition => {
113297
+ return is$6(eventDefinition, 'bpmn:TimerEventDefinition');
113298
+ });
113065
113299
  }
113066
113300
 
113067
113301
  /**
113068
- * isTypeSupported - Checks whether a given time property is supported for a given element.
113302
+ * Check whether a given timer expression type is supported for a given element.
113069
113303
  *
113070
- * @param {string} timerDefinitionType
113071
- * @param {ModdleElement} element
113304
+ * @param {string} type
113305
+ * @param {Element|ModdleElement} element
113072
113306
  *
113073
113307
  * @return {boolean}
113074
113308
  */
113075
- function isTypeSupported(timerDefinitionType, element) {
113309
+ function isTimerExpressionTypeSupported(type, element) {
113076
113310
  const businessObject = getBusinessObject$2(element);
113077
113311
 
113078
- switch (timerDefinitionType) {
113312
+ switch (type) {
113079
113313
  case 'timeDate':
113080
- if (is$6(element, 'bpmn:StartEvent')) {
113081
- return true;
113082
- }
113083
- return false;
113314
+ return isAny$1(element, [
113315
+ 'bpmn:BoundaryEvent',
113316
+ 'bpmn:IntermediateCatchEvent',
113317
+ 'bpmn:StartEvent'
113318
+ ]);
113084
113319
 
113085
113320
  case 'timeCycle':
113086
- if (is$6(element, 'bpmn:StartEvent') && !isInterruptingStartEvent(businessObject)) {
113321
+ if (is$6(element, 'bpmn:StartEvent') && (!hasParentEventSubProcess(businessObject)) || !isInterrupting(businessObject)) {
113087
113322
  return true;
113088
113323
  }
113089
113324
 
113090
- if (is$6(element, 'bpmn:BoundaryEvent') && !businessObject.cancelActivity) {
113325
+ if (is$6(element, 'bpmn:BoundaryEvent') && !isInterrupting(businessObject)) {
113091
113326
  return true;
113092
113327
  }
113328
+
113093
113329
  return false;
113094
113330
 
113095
113331
  case 'timeDuration':
113096
- if (is$6(element, 'bpmn:IntermediateCatchEvent')) {
113332
+ if (isAny$1(element, [
113333
+ 'bpmn:BoundaryEvent',
113334
+ 'bpmn:IntermediateCatchEvent'
113335
+ ])) {
113097
113336
  return true;
113098
113337
  }
113099
113338
 
113100
- if (is$6(element, 'bpmn:BoundaryEvent')) {
113339
+ if (is$6(element, 'bpmn:StartEvent') && hasParentEventSubProcess(businessObject)) {
113101
113340
  return true;
113102
113341
  }
113342
+
113343
+ return false;
113344
+
113345
+ default:
113103
113346
  return false;
113104
113347
  }
113105
113348
  }
113106
113349
 
113107
- function isInterruptingStartEvent(bo) {
113108
- return isInEventSubProcess(bo) && bo.get('isInterrupting') !== false;
113350
+ function isInterrupting(businessObject) {
113351
+ if (is$6(businessObject, 'bpmn:BoundaryEvent')) {
113352
+ return businessObject.get('cancelActivity') !== false;
113353
+ }
113354
+
113355
+ return businessObject.get('isInterrupting') !== false;
113109
113356
  }
113110
113357
 
113111
- function isInEventSubProcess(bo) {
113112
- const parent = bo.$parent;
113358
+ function hasParentEventSubProcess(businessObject) {
113359
+ const parent = businessObject.$parent;
113113
113360
 
113114
- return is$6(parent, 'bpmn:SubProcess') && parent.triggeredByEvent;
113361
+ return parent && is$6(parent, 'bpmn:SubProcess') && parent.get('triggeredByEvent');
113115
113362
  }
113116
113363
 
113117
113364
  /**
@@ -113156,7 +113403,7 @@
113156
113403
  'timeDate',
113157
113404
  'timeDuration'
113158
113405
  ].forEach((type) => {
113159
- if (timerEventDefinition.get(type) && !isTypeSupported(type, element)) {
113406
+ if (timerEventDefinition.get(type) && !isTimerExpressionTypeSupported(type, element)) {
113160
113407
  propertiesUpdate[ type ] = undefined;
113161
113408
  }
113162
113409
  });
@@ -113238,11 +113485,7 @@
113238
113485
  return true;
113239
113486
  }
113240
113487
 
113241
- if (!isTypeSupported(propertyName, parent.$parent)) {
113242
- return false;
113243
- }
113244
-
113245
- return true;
113488
+ return isTimerExpressionTypeSupported(propertyName, parent.$parent);
113246
113489
  }
113247
113490
  }
113248
113491
 
@@ -114026,7 +114269,7 @@
114026
114269
  */
114027
114270
  function canAttach(elements, target, source, position) {
114028
114271
  function isBoundaryEvent(element) {
114029
- return !isLabel$7(element) && is$6(element, 'bpmn:BoundaryEvent');
114272
+ return !isLabel$2(element) && is$6(element, 'bpmn:BoundaryEvent');
114030
114273
  }
114031
114274
 
114032
114275
  /**
@@ -114072,7 +114315,7 @@
114072
114315
  const element = elements[0];
114073
114316
 
114074
114317
  // do not attach labels
114075
- if (isLabel$7(element)) {
114318
+ if (isLabel$2(element)) {
114076
114319
  return false;
114077
114320
  }
114078
114321
 
@@ -116802,7 +117045,7 @@
116802
117045
  {
116803
117046
  id: 'exampleJson',
116804
117047
  component: JSONDataProperty,
116805
- isEdited: isEdited$2
117048
+ isEdited: isEdited$1
116806
117049
  }
116807
117050
  ],
116808
117051
  component: Group
@@ -117196,100 +117439,100 @@
117196
117439
  elementTemplateChooserEntryProvider: [ 'type', ElementTemplateChooserEntryProvider ]
117197
117440
  };
117198
117441
 
117199
- var inherits_browser = {exports: {}};
117200
-
117201
- if (typeof Object.create === 'function') {
117202
- // implementation from standard node.js 'util' module
117203
- inherits_browser.exports = function inherits(ctor, superCtor) {
117204
- if (superCtor) {
117205
- ctor.super_ = superCtor;
117206
- ctor.prototype = Object.create(superCtor.prototype, {
117207
- constructor: {
117208
- value: ctor,
117209
- enumerable: false,
117210
- writable: true,
117211
- configurable: true
117212
- }
117213
- });
117214
- }
117215
- };
117216
- } else {
117217
- // old school shim for old browsers
117218
- inherits_browser.exports = function inherits(ctor, superCtor) {
117219
- if (superCtor) {
117220
- ctor.super_ = superCtor;
117221
- var TempCtor = function () {};
117222
- TempCtor.prototype = superCtor.prototype;
117223
- ctor.prototype = new TempCtor();
117224
- ctor.prototype.constructor = ctor;
117225
- }
117226
- };
117227
- }
117228
-
117229
- var inherits_browserExports = inherits_browser.exports;
117230
- var inherits = /*@__PURE__*/getDefaultExportFromCjs(inherits_browserExports);
117442
+ /**
117443
+ * Get icon defined on a moddle element.
117444
+ *
117445
+ * @param { ModdleElement } element
117446
+ * @param { string } iconProperty
117447
+ *
117448
+ * @return { string }
117449
+ */
117450
+ function getModelerTemplateIcon(element, iconProperty) {
117451
+ iconProperty = iconProperty || 'zeebe:modelerTemplateIcon';
117231
117452
 
117232
- function getModelerTemplateIcon(element) {
117233
- var modelerTemplateIcon = getBusinessObject$2(element).get('zeebe:modelerTemplateIcon');
117234
- return modelerTemplateIcon;
117453
+ return getBusinessObject$2(element).get(iconProperty);
117235
117454
  }
117236
117455
 
117237
117456
  var HIGH_PRIORITY = 1250;
117238
117457
 
117239
117458
 
117240
- function IconsRenderer(
117459
+ function ElementTemplateIconRenderer(
117460
+ config,
117241
117461
  bpmnRenderer,
117242
- eventBus
117243
- ) {
117462
+ eventBus) {
117463
+
117244
117464
  this._bpmnRenderer = bpmnRenderer;
117245
117465
 
117466
+ this._iconProperty = config && config.iconProperty;
117467
+
117246
117468
  BaseRenderer.call(this, eventBus, HIGH_PRIORITY);
117247
117469
  }
117248
117470
 
117249
- inherits(IconsRenderer, BaseRenderer);
117471
+ e$7(ElementTemplateIconRenderer, BaseRenderer);
117250
117472
 
117251
- IconsRenderer.prototype.canRender = function(element) {
117473
+ ElementTemplateIconRenderer.prototype.canRender = function(element) {
117252
117474
 
117253
- if (isLabel$7(element)) {
117475
+ if (isLabel$2(element)) {
117254
117476
  return false;
117255
117477
  }
117256
117478
 
117257
- return (
117258
- is$6(element, 'bpmn:Task') &&
117259
- !!getModelerTemplateIcon(element)
117479
+ return !!(
117480
+ isAny$1(element, [ 'bpmn:Task', 'bpmn:Event' ]) && this._getIcon(element)
117260
117481
  );
117261
117482
  };
117262
117483
 
117263
- IconsRenderer.prototype.drawShape = function(parentGfx, element) {
117484
+ ElementTemplateIconRenderer.prototype._getIcon = function(element) {
117485
+ return getModelerTemplateIcon(element, this._iconProperty);
117486
+ };
117487
+
117488
+ ElementTemplateIconRenderer.prototype.drawShape = function(parentGfx, element) {
117264
117489
 
117265
- var renderer = this._bpmnRenderer.handlers['bpmn:Task'];
117490
+ var renderer = this._bpmnRenderer.handlers[
117491
+ [
117492
+ 'bpmn:Task',
117493
+ 'bpmn:StartEvent',
117494
+ 'bpmn:IntermediateEvent',
117495
+ 'bpmn:BoundaryEvent',
117496
+ 'bpmn:EndEvent'
117497
+ ].find(t => is$6(element, t))
117498
+ ];
117266
117499
 
117267
- var gfx = renderer(parentGfx, element);
117500
+ var gfx = renderer(parentGfx, element, { renderIcon: false });
117268
117501
 
117269
- var modelerTemplateIcon = getModelerTemplateIcon(element);
117502
+ var icon = this._getIcon(element);
117270
117503
 
117271
- var icon = create$1('image');
117272
- attr(icon, {
117273
- href: modelerTemplateIcon,
117504
+ var size = 18;
117505
+
117506
+ var padding = is$6(element, 'bpmn:Task') ? {
117274
117507
  x: 5,
117275
- y: 5,
117276
- width: 18,
117277
- height: 18
117508
+ y: 5
117509
+ } : {
117510
+ x: (element.width - size) / 2,
117511
+ y: (element.height - size) / 2
117512
+ };
117513
+
117514
+ var img = create$1('image');
117515
+ attr(img, {
117516
+ href: icon,
117517
+ width: size,
117518
+ height: size,
117519
+ ...padding
117278
117520
  });
117279
117521
 
117280
- append(parentGfx, icon);
117522
+ append(parentGfx, img);
117281
117523
 
117282
117524
  return gfx;
117283
117525
  };
117284
117526
 
117285
- IconsRenderer.$inject = [
117527
+ ElementTemplateIconRenderer.$inject = [
117528
+ 'config.elementTemplateIconRenderer',
117286
117529
  'bpmnRenderer',
117287
117530
  'eventBus'
117288
117531
  ];
117289
117532
 
117290
117533
  var iconRendererModule = {
117291
- __init__: [ 'elementTemplatesIconsRenderer' ],
117292
- elementTemplatesIconsRenderer: [ 'type', IconsRenderer ]
117534
+ __init__: [ 'elementTemplateIconRenderer' ],
117535
+ elementTemplateIconRenderer: [ 'type', ElementTemplateIconRenderer ]
117293
117536
  };
117294
117537
 
117295
117538
  var name = "zeebe";
@@ -117772,9 +118015,11 @@
117772
118015
  /**
117773
118016
  * Flatten array, one level deep.
117774
118017
  *
117775
- * @param {Array<?>} arr
118018
+ * @template T
117776
118019
  *
117777
- * @return {Array<?>}
118020
+ * @param {T[][]} arr
118021
+ *
118022
+ * @return {T[]}
117778
118023
  */
117779
118024
 
117780
118025
  const nativeToString = Object.prototype.toString;
@@ -117796,6 +118041,11 @@
117796
118041
  return nativeToString.call(obj) === '[object Number]';
117797
118042
  }
117798
118043
 
118044
+ /**
118045
+ * @param {any} obj
118046
+ *
118047
+ * @return {boolean}
118048
+ */
117799
118049
  function isFunction(obj) {
117800
118050
  const tag = nativeToString.call(obj);
117801
118051
 
@@ -117820,22 +118070,74 @@
117820
118070
  return nativeHasOwnProperty.call(target, key);
117821
118071
  }
117822
118072
 
118073
+ /**
118074
+ * @template T
118075
+ * @typedef { (
118076
+ * ((e: T) => boolean) |
118077
+ * ((e: T, idx: number) => boolean) |
118078
+ * ((e: T, key: string) => boolean) |
118079
+ * string |
118080
+ * number
118081
+ * ) } Matcher
118082
+ */
118083
+
118084
+ /**
118085
+ * @template T
118086
+ * @template U
118087
+ *
118088
+ * @typedef { (
118089
+ * ((e: T) => U) | string | number
118090
+ * ) } Extractor
118091
+ */
118092
+
118093
+
118094
+ /**
118095
+ * @template T
118096
+ * @typedef { (val: T, key: any) => boolean } MatchFn
118097
+ */
118098
+
118099
+ /**
118100
+ * @template T
118101
+ * @typedef { T[] } ArrayCollection
118102
+ */
118103
+
118104
+ /**
118105
+ * @template T
118106
+ * @typedef { { [key: string]: T } } StringKeyValueCollection
118107
+ */
118108
+
118109
+ /**
118110
+ * @template T
118111
+ * @typedef { { [key: number]: T } } NumberKeyValueCollection
118112
+ */
118113
+
118114
+ /**
118115
+ * @template T
118116
+ * @typedef { StringKeyValueCollection<T> | NumberKeyValueCollection<T> } KeyValueCollection
118117
+ */
118118
+
118119
+ /**
118120
+ * @template T
118121
+ * @typedef { KeyValueCollection<T> | ArrayCollection<T> } Collection
118122
+ */
118123
+
117823
118124
  /**
117824
118125
  * Find element in collection.
117825
118126
  *
117826
- * @param {Array|Object} collection
117827
- * @param {Function|Object} matcher
118127
+ * @template T
118128
+ * @param {Collection<T>} collection
118129
+ * @param {Matcher<T>} matcher
117828
118130
  *
117829
118131
  * @return {Object}
117830
118132
  */
117831
118133
  function find(collection, matcher) {
117832
118134
 
117833
- matcher = toMatcher(matcher);
118135
+ const matchFn = toMatcher(matcher);
117834
118136
 
117835
118137
  let match;
117836
118138
 
117837
118139
  forEach(collection, function(val, key) {
117838
- if (matcher(val, key)) {
118140
+ if (matchFn(val, key)) {
117839
118141
  match = val;
117840
118142
 
117841
118143
  return false;
@@ -117851,10 +118153,11 @@
117851
118153
  * Iterate over collection; returning something
117852
118154
  * (non-undefined) will stop iteration.
117853
118155
  *
117854
- * @param {Array|Object} collection
117855
- * @param {Function} iterator
118156
+ * @template T
118157
+ * @param {Collection<T>} collection
118158
+ * @param { ((item: T, idx: number) => (boolean|void)) | ((item: T, key: string) => (boolean|void)) } iterator
117856
118159
  *
117857
- * @return {Object} return result that stopped the iteration
118160
+ * @return {T} return result that stopped the iteration
117858
118161
  */
117859
118162
  function forEach(collection, iterator) {
117860
118163
 
@@ -117897,6 +118200,12 @@
117897
118200
  }
117898
118201
 
117899
118202
 
118203
+ /**
118204
+ * @template T
118205
+ * @param {Matcher<T>} matcher
118206
+ *
118207
+ * @return {MatchFn<T>}
118208
+ */
117900
118209
  function toMatcher(matcher) {
117901
118210
  return isFunction(matcher) ? matcher : (e) => {
117902
118211
  return e === matcher;
@@ -118728,8 +119037,12 @@
118728
119037
  * To change the icons, modify the SVGs in `./resources`, execute `npx svgo -f resources --datauri enc -o dist`,
118729
119038
  * and then replace respective icons with the optimized data URIs in `./dist`.
118730
119039
  */
118731
- const appendIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2222%22%20height%3D%2222%22%20viewBox%3D%220%200%205.82%205.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E';
118732
- const createIcon = 'data:image/svg+xml,%3Csvg%20width%3D%2246%22%20height%3D%2246%22%20viewBox%3D%22-2%20-2%209.82%209.82%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20d%3D%22M1.3%203.4c.3%200%20.5-.2.5-.5s-.2-.4-.5-.4c-.2%200-.4.1-.4.4%200%20.3.2.5.4.5zM3%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5zM4.6%203.4c.2%200%20.4-.2.4-.5s-.2-.4-.4-.4c-.3%200-.5.1-.5.4%200%20.3.2.5.5.5z%22%2F%3E%0A%3C%2Fsvg%3E';
119040
+ const appendIcon = `<svg width="22" height="22" viewBox="0 0 5.82 5.82" xmlns="http://www.w3.org/2000/svg">
119041
+ <path d="M1.3 3.4c.3 0 .5-.2.5-.5s-.2-.4-.5-.4c-.2 0-.4.1-.4.4 0 .3.2.5.4.5zM3 3.4c.2 0 .4-.2.4-.5s-.2-.4-.4-.4c-.3 0-.5.1-.5.4 0 .3.2.5.5.5zM4.6 3.4c.2 0 .4-.2.4-.5s-.2-.4-.4-.4c-.3 0-.5.1-.5.4 0 .3.2.5.5.5z"/>
119042
+ </svg>`;
119043
+ const createIcon = `<svg width="46" height="46" viewBox="-2 -2 9.82 9.82" xmlns="http://www.w3.org/2000/svg">
119044
+ <path d="M1.3 3.4c.3 0 .5-.2.5-.5s-.2-.4-.5-.4c-.2 0-.4.1-.4.4 0 .3.2.5.4.5zM3 3.4c.2 0 .4-.2.4-.5s-.2-.4-.4-.4c-.3 0-.5.1-.5.4 0 .3.2.5.5.5zM4.6 3.4c.2 0 .4-.2.4-.5s-.2-.4-.4-.4c-.3 0-.5.1-.5.4 0 .3.2.5.5.5z"/>
119045
+ </svg>`;
118733
119046
 
118734
119047
  /**
118735
119048
  * A provider for append context pad button
@@ -118775,7 +119088,7 @@
118775
119088
  return {
118776
119089
  'append': {
118777
119090
  group: 'model',
118778
- imageUrl: appendIcon,
119091
+ html: `<div class="entry">${appendIcon}</div>`,
118779
119092
  title: translate('Append element'),
118780
119093
  action: {
118781
119094
  click: function(event, element) {
@@ -118821,10 +119134,15 @@
118821
119134
 
118822
119135
  function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}));}
118823
119136
 
119137
+ /**
119138
+ * @typedef { import('../model/Types').Element } Element
119139
+ * @typedef { import('../model/Types').ModdleElement } ModdleElement
119140
+ */
119141
+
118824
119142
  /**
118825
119143
  * Is an element of the given BPMN type?
118826
119144
  *
118827
- * @param {djs.model.Base|ModdleElement} element
119145
+ * @param {Element|ModdleElement} element
118828
119146
  * @param {string} type
118829
119147
  *
118830
119148
  * @return {boolean}
@@ -118839,8 +119157,8 @@
118839
119157
  /**
118840
119158
  * Return true if element has any of the given types.
118841
119159
  *
118842
- * @param {djs.model.Base} element
118843
- * @param {Array<string>} types
119160
+ * @param {Element|ModdleElement} element
119161
+ * @param {string[]} types
118844
119162
  *
118845
119163
  * @return {boolean}
118846
119164
  */
@@ -118853,7 +119171,7 @@
118853
119171
  /**
118854
119172
  * Return the business object for a given element.
118855
119173
  *
118856
- * @param {djs.model.Base|ModdleElement} element
119174
+ * @param {Element|ModdleElement} element
118857
119175
  *
118858
119176
  * @return {ModdleElement}
118859
119177
  */
@@ -118864,7 +119182,7 @@
118864
119182
  /**
118865
119183
  * Return the di object for a given element.
118866
119184
  *
118867
- * @param {djs.model.Base} element
119185
+ * @param {Element} element
118868
119186
  *
118869
119187
  * @return {ModdleElement}
118870
119188
  */
@@ -118872,14 +119190,25 @@
118872
119190
  return element && element.di;
118873
119191
  }
118874
119192
 
118875
- function isLabel(element) {
118876
- return element && !!element.labelTarget;
119193
+ /**
119194
+ * Checks whether a value is an instance of Label.
119195
+ *
119196
+ * @param {any} value
119197
+ *
119198
+ * @return {boolean}
119199
+ */
119200
+ function isLabel(value) {
119201
+ return isObject(value) && has(value, 'labelTarget');
118877
119202
  }
118878
119203
 
118879
119204
  /**
119205
+ * @typedef {import('../core/Types').ElementLike} ElementLike
118880
119206
  * @typedef {import('../core/EventBus').default} EventBus
118881
- * @typedef {import(./CommandInterceptor).HandlerFunction} HandlerFunction
118882
- * @typedef {import(./CommandInterceptor).ComposeHandlerFunction} ComposeHandlerFunction
119207
+ * @typedef {import('./CommandStack').CommandContext} CommandContext
119208
+ *
119209
+ * @typedef {string|string[]} Events
119210
+ * @typedef { (context: CommandContext) => ElementLike[] | void } HandlerFunction
119211
+ * @typedef { (context: CommandContext) => void } ComposeHandlerFunction
118883
119212
  */
118884
119213
 
118885
119214
  var DEFAULT_PRIORITY = 1000;
@@ -118891,10 +119220,9 @@
118891
119220
  * @class
118892
119221
  * @constructor
118893
119222
  *
118894
- * @param {EventBus} eventBus
118895
- *
118896
119223
  * @example
118897
119224
  *
119225
+ * ```javascript
118898
119226
  * import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';
118899
119227
  *
118900
119228
  * class CommandLogger extends CommandInterceptor {
@@ -118905,6 +119233,9 @@
118905
119233
  * console.log('commandStack.shape-create.preExecute', event);
118906
119234
  * });
118907
119235
  * }
119236
+ * ```
119237
+ *
119238
+ * @param {EventBus} eventBus
118908
119239
  */
118909
119240
  function CommandInterceptor(eventBus) {
118910
119241
 
@@ -118922,16 +119253,17 @@
118922
119253
  };
118923
119254
  }
118924
119255
 
119256
+
118925
119257
  /**
118926
- * Intercept a command during one of the phases.
118927
- *
118928
- * @param {string|string[]} [events] One or more commands to intercept.
118929
- * @param {string} [hook] Phase during which to intercept command.
118930
- * @param {number} [priority] Priority with which command will be intercepted.
118931
- * @param {ComposeHandlerFunction|HandlerFunction} handlerFn Callback.
118932
- * @param {boolean} [unwrap] Whether the event should be unwrapped.
118933
- * @param {*} [that] `this` value the callback will be called with.
118934
- */
119258
+ * Intercept a command during one of the phases.
119259
+ *
119260
+ * @param {Events} [events] command(s) to intercept
119261
+ * @param {string} [hook] phase to intercept
119262
+ * @param {number} [priority]
119263
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119264
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119265
+ * @param {any} [that]
119266
+ */
118935
119267
  CommandInterceptor.prototype.on = function(events, hook, priority, handlerFn, unwrap, that) {
118936
119268
 
118937
119269
  if (isFunction(hook) || isNumber(hook)) {
@@ -118973,35 +119305,130 @@
118973
119305
  });
118974
119306
  };
118975
119307
 
119308
+ /**
119309
+ * Add a <canExecute> phase of command interceptor.
119310
+ *
119311
+ * @param {Events} [events] command(s) to intercept
119312
+ * @param {number} [priority]
119313
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119314
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119315
+ * @param {any} [that]
119316
+ */
119317
+ CommandInterceptor.prototype.canExecute = createHook('canExecute');
118976
119318
 
118977
- var hooks = [
118978
- 'canExecute',
118979
- 'preExecute',
118980
- 'preExecuted',
118981
- 'execute',
118982
- 'executed',
118983
- 'postExecute',
118984
- 'postExecuted',
118985
- 'revert',
118986
- 'reverted'
118987
- ];
119319
+ /**
119320
+ * Add a <preExecute> phase of command interceptor.
119321
+ *
119322
+ * @param {Events} [events] command(s) to intercept
119323
+ * @param {number} [priority]
119324
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119325
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119326
+ * @param {any} [that]
119327
+ */
119328
+ CommandInterceptor.prototype.preExecute = createHook('preExecute');
119329
+
119330
+ /**
119331
+ * Add a <preExecuted> phase of command interceptor.
119332
+ *
119333
+ * @param {Events} [events] command(s) to intercept
119334
+ * @param {number} [priority]
119335
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119336
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119337
+ * @param {any} [that]
119338
+ */
119339
+ CommandInterceptor.prototype.preExecuted = createHook('preExecuted');
119340
+
119341
+ /**
119342
+ * Add a <execute> phase of command interceptor.
119343
+ *
119344
+ * @param {Events} [events] command(s) to intercept
119345
+ * @param {number} [priority]
119346
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119347
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119348
+ * @param {any} [that]
119349
+ */
119350
+ CommandInterceptor.prototype.execute = createHook('execute');
119351
+
119352
+ /**
119353
+ * Add a <executed> phase of command interceptor.
119354
+ *
119355
+ * @param {Events} [events] command(s) to intercept
119356
+ * @param {number} [priority]
119357
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119358
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119359
+ * @param {any} [that]
119360
+ */
119361
+ CommandInterceptor.prototype.executed = createHook('executed');
119362
+
119363
+ /**
119364
+ * Add a <postExecute> phase of command interceptor.
119365
+ *
119366
+ * @param {Events} [events] command(s) to intercept
119367
+ * @param {number} [priority]
119368
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119369
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119370
+ * @param {any} [that]
119371
+ */
119372
+ CommandInterceptor.prototype.postExecute = createHook('postExecute');
119373
+
119374
+ /**
119375
+ * Add a <postExecuted> phase of command interceptor.
119376
+ *
119377
+ * @param {Events} [events] command(s) to intercept
119378
+ * @param {number} [priority]
119379
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119380
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119381
+ * @param {any} [that]
119382
+ */
119383
+ CommandInterceptor.prototype.postExecuted = createHook('postExecuted');
119384
+
119385
+ /**
119386
+ * Add a <revert> phase of command interceptor.
119387
+ *
119388
+ * @param {Events} [events] command(s) to intercept
119389
+ * @param {number} [priority]
119390
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119391
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119392
+ * @param {any} [that]
119393
+ */
119394
+ CommandInterceptor.prototype.revert = createHook('revert');
119395
+
119396
+ /**
119397
+ * Add a <reverted> phase of command interceptor.
119398
+ *
119399
+ * @param {Events} [events] command(s) to intercept
119400
+ * @param {number} [priority]
119401
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119402
+ * @param {boolean} [unwrap] whether the event should be unwrapped
119403
+ * @param {any} [that]
119404
+ */
119405
+ CommandInterceptor.prototype.reverted = createHook('reverted');
118988
119406
 
118989
119407
  /*
118990
119408
  * Add prototype methods for each phase of command execution (e.g. execute,
118991
119409
  * revert).
119410
+ *
119411
+ * @param {string} hook
119412
+ *
119413
+ * @return { (
119414
+ * events?: Events,
119415
+ * priority?: number,
119416
+ * handlerFn: ComposeHandlerFunction|HandlerFunction,
119417
+ * unwrap?: boolean
119418
+ * ) => any }
118992
119419
  */
118993
- forEach(hooks, function(hook) {
119420
+ function createHook(hook) {
118994
119421
 
118995
119422
  /**
118996
- * Add prototype method for a specific phase of command execution.
119423
+ * @this {CommandInterceptor}
118997
119424
  *
118998
- * @param {string|string[]} [events] One or more commands to intercept.
118999
- * @param {number} [priority] Priority with which command will be intercepted.
119000
- * @param {ComposeHandlerFunction|HandlerFunction} handlerFn Callback.
119001
- * @param {boolean} [unwrap] Whether the event should be unwrapped.
119002
- * @param {*} [that] `this` value the callback will be called with.
119425
+ * @param {Events} [events]
119426
+ * @param {number} [priority]
119427
+ * @param {ComposeHandlerFunction|HandlerFunction} handlerFn
119428
+ * @param {boolean} [unwrap]
119429
+ * @param {any} [that]
119003
119430
  */
119004
- CommandInterceptor.prototype[hook] = function(events, priority, handlerFn, unwrap, that) {
119431
+ const hookFn = function(events, priority, handlerFn, unwrap, that) {
119005
119432
 
119006
119433
  if (isFunction(events) || isNumber(events)) {
119007
119434
  that = unwrap;
@@ -119013,7 +119440,9 @@
119013
119440
 
119014
119441
  this.on(events, hook, priority, handlerFn, unwrap, that);
119015
119442
  };
119016
- });
119443
+
119444
+ return hookFn;
119445
+ }
119017
119446
 
119018
119447
  /**
119019
119448
  * @typedef {import('../../core/EventBus').default} EventBus
@@ -119025,6 +119454,8 @@
119025
119454
  * Extensions should implement the init method to actually add their custom
119026
119455
  * modeling checks. Checks may be added via the #addRule(action, fn) method.
119027
119456
  *
119457
+ * @class
119458
+ *
119028
119459
  * @param {EventBus} eventBus
119029
119460
  */
119030
119461
  function RuleProvider(eventBus) {
@@ -119042,15 +119473,16 @@
119042
119473
  * Adds a modeling rule for the given action, implemented through
119043
119474
  * a callback function.
119044
119475
  *
119045
- * The function will receive the modeling specific action context
119476
+ * The callback receives a modeling specific action context
119046
119477
  * to perform its check. It must return `false` to disallow the
119047
- * action from happening or `true` to allow the action.
119048
- *
119049
- * A rule provider may pass over the evaluation to lower priority
119050
- * rules by returning return nothing (or <code>undefined</code>).
119478
+ * action from happening or `true` to allow the action. Usually returing
119479
+ * `null` denotes that a particular interaction shall be ignored.
119480
+ * By returning nothing or `undefined` you pass evaluation to lower
119481
+ * priority rules.
119051
119482
  *
119052
119483
  * @example
119053
119484
  *
119485
+ * ```javascript
119054
119486
  * ResizableRules.prototype.init = function() {
119055
119487
  *
119056
119488
  * \/**
@@ -119077,10 +119509,11 @@
119077
119509
  * }
119078
119510
  * });
119079
119511
  * };
119512
+ * ```
119080
119513
  *
119081
- * @param {string|Array<string>} actions the identifier for the modeling action to check
119514
+ * @param {string|string[]} actions the identifier for the modeling action to check
119082
119515
  * @param {number} [priority] the priority at which this rule is being applied
119083
- * @param {Function} fn the callback function that performs the actual check
119516
+ * @param {(any) => any} fn the callback function that performs the actual check
119084
119517
  */
119085
119518
  RuleProvider.prototype.addRule = function(actions, priority, fn) {
119086
119519
 
@@ -119373,7 +119806,7 @@
119373
119806
  return {
119374
119807
  'create': {
119375
119808
  group: 'create',
119376
- imageUrl: createIcon,
119809
+ html: `<div class="entry"> ${createIcon}</div>`,
119377
119810
  title: translate('Create element'),
119378
119811
  action: {
119379
119812
  click: function(event) {
@@ -119476,6 +119909,7 @@
119476
119909
 
119477
119910
  /**
119478
119911
  * @param {KeyboardEvent} event
119912
+ * @return {boolean}
119479
119913
  */
119480
119914
  function isCmd(event) {
119481
119915
 
@@ -119491,8 +119925,9 @@
119491
119925
  /**
119492
119926
  * Checks if key pressed is one of provided keys.
119493
119927
  *
119494
- * @param {string|Array<string>} keys
119928
+ * @param {string|string[]} keys
119495
119929
  * @param {KeyboardEvent} event
119930
+ * @return {boolean}
119496
119931
  */
119497
119932
  function isKey(keys, event) {
119498
119933
  keys = isArray(keys) ? keys : [ keys ];
@@ -119507,18 +119942,30 @@
119507
119942
  return event.shiftKey;
119508
119943
  }
119509
119944
 
119945
+ /**
119946
+ * @param {KeyboardEvent} event
119947
+ */
119510
119948
  function isCopy(event) {
119511
119949
  return isCmd(event) && isKey(KEYS_COPY, event);
119512
119950
  }
119513
119951
 
119952
+ /**
119953
+ * @param {KeyboardEvent} event
119954
+ */
119514
119955
  function isPaste(event) {
119515
119956
  return isCmd(event) && isKey(KEYS_PASTE, event);
119516
119957
  }
119517
119958
 
119959
+ /**
119960
+ * @param {KeyboardEvent} event
119961
+ */
119518
119962
  function isUndo(event) {
119519
119963
  return isCmd(event) && !isShift(event) && isKey(KEYS_UNDO, event);
119520
119964
  }
119521
119965
 
119966
+ /**
119967
+ * @param {KeyboardEvent} event
119968
+ */
119522
119969
  function isRedo(event) {
119523
119970
  return isCmd(event) && (
119524
119971
  isKey(KEYS_REDO, event) || (
@@ -120197,6 +120644,17 @@
120197
120644
  elementTemplatesReplaceProvider: [ 'type', ElementTemplatesReplaceProvider ]
120198
120645
  };
120199
120646
 
120647
+ /**
120648
+ * @typedef {import('../model/Types').Element} Element
120649
+ * @typedef {import('../model/Types').ModdleElement} ModdleElement
120650
+ */
120651
+
120652
+ /**
120653
+ * @param {Element} element
120654
+ * @param {ModdleElement} [di]
120655
+ *
120656
+ * @return {boolean}
120657
+ */
120200
120658
  function isExpanded(element, di) {
120201
120659
 
120202
120660
  if (is(element, 'bpmn:CallActivity')) {
@@ -120220,14 +120678,21 @@
120220
120678
  return true;
120221
120679
  }
120222
120680
 
120681
+ /**
120682
+ * @typedef {import('../../../model/Types').Element} Element
120683
+ * @typedef {import('diagram-js/lib/features/popup-menu/PopupMenu').PopupMenuTarget} PopupMenuTarget
120684
+ *
120685
+ * @typedef {(entry: PopupMenuTarget) => boolean} DifferentTypeValidator
120686
+ */
120687
+
120223
120688
  /**
120224
120689
  * Returns true, if an element is from a different type
120225
120690
  * than a target definition. Takes into account the type,
120226
120691
  * event definition type and triggeredByEvent property.
120227
120692
  *
120228
- * @param {djs.model.Base} element
120693
+ * @param {Element} element
120229
120694
  *
120230
- * @return {boolean}
120695
+ * @return {DifferentTypeValidator}
120231
120696
  */
120232
120697
  function isDifferentType(element) {
120233
120698
 
@@ -120258,6 +120723,28 @@
120258
120723
  };
120259
120724
  }
120260
120725
 
120726
+ /**
120727
+ * @typedef { () => string } LabelGetter
120728
+ *
120729
+ * @typedef { {
120730
+ * label: string | LabelGetter;
120731
+ * actionName: string;
120732
+ * className: string;
120733
+ * target?: {
120734
+ * type: string;
120735
+ * isExpanded?: boolean;
120736
+ * isInterrupting?: boolean;
120737
+ * triggeredByEvent?: boolean;
120738
+ * cancelActivity?: boolean;
120739
+ * eventDefinitionType?: string;
120740
+ * eventDefinitionAttrs?: Record<string, any>
120741
+ * };
120742
+ * } } ReplaceOption
120743
+ */
120744
+
120745
+ /**
120746
+ * @type {ReplaceOption[]}
120747
+ */
120261
120748
  var START_EVENT = [
120262
120749
  {
120263
120750
  label: 'Start Event',
@@ -120321,6 +120808,9 @@
120321
120808
  }
120322
120809
  ];
120323
120810
 
120811
+ /**
120812
+ * @type {ReplaceOption[]}
120813
+ */
120324
120814
  var START_EVENT_SUB_PROCESS = [
120325
120815
  {
120326
120816
  label: 'Start Event',
@@ -120348,6 +120838,9 @@
120348
120838
  }
120349
120839
  ];
120350
120840
 
120841
+ /**
120842
+ * @type {ReplaceOption[]}
120843
+ */
120351
120844
  var INTERMEDIATE_EVENT = [
120352
120845
  {
120353
120846
  label: 'Start Event',
@@ -120471,6 +120964,9 @@
120471
120964
  }
120472
120965
  ];
120473
120966
 
120967
+ /**
120968
+ * @type {ReplaceOption[]}
120969
+ */
120474
120970
  var END_EVENT = [
120475
120971
  {
120476
120972
  label: 'Start Event',
@@ -120561,6 +121057,9 @@
120561
121057
  }
120562
121058
  ];
120563
121059
 
121060
+ /**
121061
+ * @type {ReplaceOption[]}
121062
+ */
120564
121063
  var GATEWAY = [
120565
121064
  {
120566
121065
  label: 'Exclusive Gateway',
@@ -120630,6 +121129,9 @@
120630
121129
  // }
120631
121130
  ];
120632
121131
 
121132
+ /**
121133
+ * @type {ReplaceOption[]}
121134
+ */
120633
121135
  var SUBPROCESS_EXPANDED = [
120634
121136
  {
120635
121137
  label: 'Transaction',
@@ -120661,6 +121163,9 @@
120661
121163
  }
120662
121164
  ];
120663
121165
 
121166
+ /**
121167
+ * @type {ReplaceOption[]}
121168
+ */
120664
121169
  var TRANSACTION = [
120665
121170
  {
120666
121171
  label: 'Transaction',
@@ -120692,8 +121197,14 @@
120692
121197
  }
120693
121198
  ];
120694
121199
 
121200
+ /**
121201
+ * @type {ReplaceOption[]}
121202
+ */
120695
121203
  var EVENT_SUB_PROCESS = TRANSACTION;
120696
121204
 
121205
+ /**
121206
+ * @type {ReplaceOption[]}
121207
+ */
120697
121208
  var TASK = [
120698
121209
  {
120699
121210
  label: 'Task',
@@ -120787,6 +121298,9 @@
120787
121298
  }
120788
121299
  ];
120789
121300
 
121301
+ /**
121302
+ * @type {ReplaceOption[]}
121303
+ */
120790
121304
  var DATA_OBJECT_REFERENCE = [
120791
121305
  {
120792
121306
  label: 'Data Store Reference',
@@ -120798,6 +121312,9 @@
120798
121312
  }
120799
121313
  ];
120800
121314
 
121315
+ /**
121316
+ * @type {ReplaceOption[]}
121317
+ */
120801
121318
  var DATA_STORE_REFERENCE = [
120802
121319
  {
120803
121320
  label: 'Data Object Reference',
@@ -120809,6 +121326,9 @@
120809
121326
  }
120810
121327
  ];
120811
121328
 
121329
+ /**
121330
+ * @type {ReplaceOption[]}
121331
+ */
120812
121332
  var BOUNDARY_EVENT = [
120813
121333
  {
120814
121334
  label: 'Message Boundary Event',
@@ -120934,6 +121454,9 @@
120934
121454
  }
120935
121455
  ];
120936
121456
 
121457
+ /**
121458
+ * @type {ReplaceOption[]}
121459
+ */
120937
121460
  var EVENT_SUB_PROCESS_START_EVENT = [
120938
121461
  {
120939
121462
  label: 'Message Start Event',
@@ -121050,6 +121573,9 @@
121050
121573
  }
121051
121574
  ];
121052
121575
 
121576
+ /**
121577
+ * @type {ReplaceOption[]}
121578
+ */
121053
121579
  var SEQUENCE_FLOW = [
121054
121580
  {
121055
121581
  label: 'Sequence Flow',
@@ -121068,6 +121594,9 @@
121068
121594
  }
121069
121595
  ];
121070
121596
 
121597
+ /**
121598
+ * @type {ReplaceOption[]}
121599
+ */
121071
121600
  var PARTICIPANT = [
121072
121601
  {
121073
121602
  label: 'Expanded Pool',