bpmn-js 9.3.2 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +18 -2
  2. package/dist/bpmn-modeler.development.js +3416 -3170
  3. package/dist/bpmn-modeler.production.min.js +8 -8
  4. package/dist/bpmn-navigated-viewer.development.js +350 -279
  5. package/dist/bpmn-navigated-viewer.production.min.js +6 -6
  6. package/dist/bpmn-viewer.development.js +316 -265
  7. package/dist/bpmn-viewer.production.min.js +6 -6
  8. package/lib/draw/BpmnRenderUtil.js +25 -25
  9. package/lib/draw/BpmnRenderer.js +4 -4
  10. package/lib/draw/PathMap.js +42 -42
  11. package/lib/features/align-elements/index.js +1 -1
  12. package/lib/features/copy-paste/BpmnCopyPaste.js +75 -69
  13. package/lib/features/copy-paste/ModdleCopy.js +26 -13
  14. package/lib/features/drilldown/DrilldownOverlayBehavior.js +2 -2
  15. package/lib/features/drilldown/SubprocessCompatibility.js +1 -1
  16. package/lib/features/drilldown/index.js +1 -1
  17. package/lib/features/grid-snapping/behavior/{AutoPlaceBehavior.js → GridSnappingAutoPlaceBehavior.js} +2 -2
  18. package/lib/features/grid-snapping/behavior/{LayoutConnectionBehavior.js → GridSnappingLayoutConnectionBehavior.js} +4 -4
  19. package/lib/features/grid-snapping/behavior/{CreateParticipantBehavior.js → GridSnappingParticipantBehavior.js} +2 -2
  20. package/lib/features/grid-snapping/behavior/index.js +7 -7
  21. package/lib/features/keyboard/BpmnKeyboardBindings.js +7 -7
  22. package/lib/features/label-editing/LabelEditingProvider.js +1 -23
  23. package/lib/features/modeling/ElementFactory.js +18 -8
  24. package/lib/features/modeling/behavior/BoundaryEventBehavior.js +1 -16
  25. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +1 -1
  26. package/lib/features/modeling/behavior/GroupBehavior.js +205 -93
  27. package/lib/features/modeling/behavior/ResizeBehavior.js +2 -0
  28. package/lib/features/modeling/behavior/RootElementReferenceBehavior.js +7 -8
  29. package/lib/features/modeling/behavior/SpaceToolBehavior.js +5 -0
  30. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +9 -0
  31. package/lib/features/modeling/behavior/index.js +1 -1
  32. package/lib/features/modeling/behavior/util/CategoryUtil.js +66 -13
  33. package/lib/features/modeling/behavior/util/LayoutUtil.js +6 -6
  34. package/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js +4 -1
  35. package/lib/features/ordering/BpmnOrderingProvider.js +3 -1
  36. package/lib/features/replace/BpmnReplace.js +12 -0
  37. package/lib/features/search/index.js +1 -1
  38. package/lib/import/BpmnImporter.js +0 -5
  39. package/lib/util/CompatibilityUtil.js +1 -0
  40. package/package.json +21 -24
  41. package/test/helper/index.js +1 -1
  42. package/.babelrc +0 -3
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * bpmn-js - bpmn-navigated-viewer v9.3.2
2
+ * bpmn-js - bpmn-navigated-viewer v9.4.0
3
3
  *
4
4
  * Copyright (c) 2014-present, camunda Services GmbH
5
5
  *
@@ -8,13 +8,13 @@
8
8
  *
9
9
  * Source Code: https://github.com/bpmn-io/bpmn-js
10
10
  *
11
- * Date: 2022-08-04
11
+ * Date: 2022-08-22
12
12
  */
13
13
  (function (global, factory) {
14
14
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
15
15
  typeof define === 'function' && define.amd ? define(factory) :
16
16
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BpmnJS = factory());
17
- }(this, (function () { 'use strict';
17
+ })(this, (function () { 'use strict';
18
18
 
19
19
  function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}));}
20
20
 
@@ -83,6 +83,26 @@
83
83
  });
84
84
  return match;
85
85
  }
86
+ /**
87
+ * Find element index in collection.
88
+ *
89
+ * @param {Array|Object} collection
90
+ * @param {Function} matcher
91
+ *
92
+ * @return {Object}
93
+ */
94
+
95
+ function findIndex(collection, matcher) {
96
+ matcher = toMatcher(matcher);
97
+ var idx = isArray$2(collection) ? -1 : undefined;
98
+ forEach$1(collection, function (val, key) {
99
+ if (matcher(val, key)) {
100
+ idx = key;
101
+ return false;
102
+ }
103
+ });
104
+ return idx;
105
+ }
86
106
  /**
87
107
  * Find element in collection.
88
108
  *
@@ -1094,7 +1114,15 @@
1094
1114
  */
1095
1115
 
1096
1116
  // fake node used to instantiate svg geometry elements
1097
- var node = create$1('svg');
1117
+ var node = null;
1118
+
1119
+ function getNode() {
1120
+ if (node === null) {
1121
+ node = create$1('svg');
1122
+ }
1123
+
1124
+ return node;
1125
+ }
1098
1126
 
1099
1127
  function extend$1(object, props) {
1100
1128
  var i, k, keys = Object.keys(props);
@@ -1118,7 +1146,7 @@
1118
1146
  * @return {SVGMatrix}
1119
1147
  */
1120
1148
  function createMatrix(a, b, c, d, e, f) {
1121
- var matrix = node.createSVGMatrix();
1149
+ var matrix = getNode().createSVGMatrix();
1122
1150
 
1123
1151
  switch (arguments.length) {
1124
1152
  case 0:
@@ -1139,9 +1167,9 @@
1139
1167
 
1140
1168
  function createTransform(matrix) {
1141
1169
  if (matrix) {
1142
- return node.createSVGTransformFromMatrix(matrix);
1170
+ return getNode().createSVGTransformFromMatrix(matrix);
1143
1171
  } else {
1144
- return node.createSVGTransform();
1172
+ return getNode().createSVGTransform();
1145
1173
  }
1146
1174
  }
1147
1175
 
@@ -1438,11 +1466,11 @@
1438
1466
  radius = shape.width / 2;
1439
1467
 
1440
1468
  var circlePath = [
1441
- ['M', cx, cy],
1442
- ['m', 0, -radius],
1443
- ['a', radius, radius, 0, 1, 1, 0, 2 * radius],
1444
- ['a', radius, radius, 0, 1, 1, 0, -2 * radius],
1445
- ['z']
1469
+ [ 'M', cx, cy ],
1470
+ [ 'm', 0, -radius ],
1471
+ [ 'a', radius, radius, 0, 1, 1, 0, 2 * radius ],
1472
+ [ 'a', radius, radius, 0, 1, 1, 0, -2 * radius ],
1473
+ [ 'z' ]
1446
1474
  ];
1447
1475
 
1448
1476
  return componentsToPath(circlePath);
@@ -1456,16 +1484,16 @@
1456
1484
  height = shape.height;
1457
1485
 
1458
1486
  var roundRectPath = [
1459
- ['M', x + borderRadius, y],
1460
- ['l', width - borderRadius * 2, 0],
1461
- ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius],
1462
- ['l', 0, height - borderRadius * 2],
1463
- ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius],
1464
- ['l', borderRadius * 2 - width, 0],
1465
- ['a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius],
1466
- ['l', 0, borderRadius * 2 - height],
1467
- ['a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius],
1468
- ['z']
1487
+ [ 'M', x + borderRadius, y ],
1488
+ [ 'l', width - borderRadius * 2, 0 ],
1489
+ [ 'a', borderRadius, borderRadius, 0, 0, 1, borderRadius, borderRadius ],
1490
+ [ 'l', 0, height - borderRadius * 2 ],
1491
+ [ 'a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, borderRadius ],
1492
+ [ 'l', borderRadius * 2 - width, 0 ],
1493
+ [ 'a', borderRadius, borderRadius, 0, 0, 1, -borderRadius, -borderRadius ],
1494
+ [ 'l', 0, borderRadius * 2 - height ],
1495
+ [ 'a', borderRadius, borderRadius, 0, 0, 1, borderRadius, -borderRadius ],
1496
+ [ 'z' ]
1469
1497
  ];
1470
1498
 
1471
1499
  return componentsToPath(roundRectPath);
@@ -1481,11 +1509,11 @@
1481
1509
  halfHeight = height / 2;
1482
1510
 
1483
1511
  var diamondPath = [
1484
- ['M', x + halfWidth, y],
1485
- ['l', halfWidth, halfHeight],
1486
- ['l', -halfWidth, halfHeight],
1487
- ['l', -halfWidth, -halfHeight],
1488
- ['z']
1512
+ [ 'M', x + halfWidth, y ],
1513
+ [ 'l', halfWidth, halfHeight ],
1514
+ [ 'l', -halfWidth, halfHeight ],
1515
+ [ 'l', -halfWidth, -halfHeight ],
1516
+ [ 'z' ]
1489
1517
  ];
1490
1518
 
1491
1519
  return componentsToPath(diamondPath);
@@ -1498,11 +1526,11 @@
1498
1526
  height = shape.height;
1499
1527
 
1500
1528
  var rectPath = [
1501
- ['M', x, y],
1502
- ['l', width, 0],
1503
- ['l', 0, height],
1504
- ['l', -width, 0],
1505
- ['z']
1529
+ [ 'M', x, y ],
1530
+ [ 'l', width, 0 ],
1531
+ [ 'l', 0, height ],
1532
+ [ 'l', -width, 0 ],
1533
+ [ 'z' ]
1506
1534
  ];
1507
1535
 
1508
1536
  return componentsToPath(rectPath);
@@ -2365,7 +2393,7 @@
2365
2393
  // fix for safari / chrome / firefox bug not correctly
2366
2394
  // resetting stroke dash array
2367
2395
  if (attrs.strokeDasharray === 'none') {
2368
- attrs.strokeDasharray = [10000, 1];
2396
+ attrs.strokeDasharray = [ 10000, 1 ];
2369
2397
  }
2370
2398
 
2371
2399
  var marker = create$1('marker');
@@ -2592,7 +2620,7 @@
2592
2620
  var x_2 = width / 2;
2593
2621
  var y_2 = height / 2;
2594
2622
 
2595
- var points = [{ x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 }];
2623
+ var points = [ { x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 } ];
2596
2624
 
2597
2625
  var pointsString = points.map(function(point) {
2598
2626
  return point.x + ',' + point.y;
@@ -2664,7 +2692,7 @@
2664
2692
  var event = getSemantic(element);
2665
2693
  var isThrowing = isThrowEvent(event);
2666
2694
 
2667
- if (event.eventDefinitions && event.eventDefinitions.length>1) {
2695
+ if (event.eventDefinitions && event.eventDefinitions.length > 1) {
2668
2696
  if (event.parallelMultiple) {
2669
2697
  return renderer('bpmn:ParallelMultipleEventDefinition')(parentGfx, element, isThrowing);
2670
2698
  }
@@ -3380,7 +3408,7 @@
3380
3408
  if (expanded) {
3381
3409
  attachTaskMarkers(parentGfx, element);
3382
3410
  } else {
3383
- attachTaskMarkers(parentGfx, element, ['SubProcessMarker']);
3411
+ attachTaskMarkers(parentGfx, element, [ 'SubProcessMarker' ]);
3384
3412
  }
3385
3413
 
3386
3414
  return rect;
@@ -4714,22 +4742,22 @@
4714
4742
  d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',
4715
4743
  height: 36,
4716
4744
  width: 36,
4717
- heightElements: [6, 14],
4718
- widthElements: [10.5, 21]
4745
+ heightElements: [ 6, 14 ],
4746
+ widthElements: [ 10.5, 21 ]
4719
4747
  },
4720
4748
  'EVENT_SIGNAL': {
4721
4749
  d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z',
4722
4750
  height: 36,
4723
4751
  width: 36,
4724
- heightElements: [18],
4725
- widthElements: [10, 20]
4752
+ heightElements: [ 18 ],
4753
+ widthElements: [ 10, 20 ]
4726
4754
  },
4727
4755
  'EVENT_ESCALATION': {
4728
4756
  d: 'M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z',
4729
4757
  height: 36,
4730
4758
  width: 36,
4731
- heightElements: [20, 7],
4732
- widthElements: [8]
4759
+ heightElements: [ 20, 7 ],
4760
+ widthElements: [ 8 ]
4733
4761
  },
4734
4762
  'EVENT_CONDITIONAL': {
4735
4763
  d: 'M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z ' +
@@ -4741,67 +4769,67 @@
4741
4769
  'M {e.x2},{e.y8} l {e.x0},0 ',
4742
4770
  height: 36,
4743
4771
  width: 36,
4744
- heightElements: [8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5],
4745
- widthElements: [10.5, 14.5, 12.5]
4772
+ heightElements: [ 8.5, 14.5, 18, 11.5, 14.5, 17.5, 20.5, 23.5, 26.5 ],
4773
+ widthElements: [ 10.5, 14.5, 12.5 ]
4746
4774
  },
4747
4775
  'EVENT_LINK': {
4748
4776
  d: 'm {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z',
4749
4777
  height: 36,
4750
4778
  width: 36,
4751
- heightElements: [4.4375, 6.75, 7.8125],
4752
- widthElements: [9.84375, 13.5]
4779
+ heightElements: [ 4.4375, 6.75, 7.8125 ],
4780
+ widthElements: [ 9.84375, 13.5 ]
4753
4781
  },
4754
4782
  'EVENT_ERROR': {
4755
4783
  d: 'm {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z',
4756
4784
  height: 36,
4757
4785
  width: 36,
4758
- heightElements: [0.023, 8.737, 8.151, 16.564, 10.591, 8.714],
4759
- widthElements: [0.085, 6.672, 6.97, 4.273, 5.337, 6.636]
4786
+ heightElements: [ 0.023, 8.737, 8.151, 16.564, 10.591, 8.714 ],
4787
+ widthElements: [ 0.085, 6.672, 6.97, 4.273, 5.337, 6.636 ]
4760
4788
  },
4761
4789
  'EVENT_CANCEL_45': {
4762
4790
  d: 'm {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 ' +
4763
4791
  '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',
4764
4792
  height: 36,
4765
4793
  width: 36,
4766
- heightElements: [4.75, 8.5],
4767
- widthElements: [4.75, 8.5]
4794
+ heightElements: [ 4.75, 8.5 ],
4795
+ widthElements: [ 4.75, 8.5 ]
4768
4796
  },
4769
4797
  'EVENT_COMPENSATION': {
4770
4798
  d: 'm {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z',
4771
4799
  height: 36,
4772
4800
  width: 36,
4773
- heightElements: [6.5, 13, 0.4, 6.1],
4774
- widthElements: [9, 9.3, 8.7]
4801
+ heightElements: [ 6.5, 13, 0.4, 6.1 ],
4802
+ widthElements: [ 9, 9.3, 8.7 ]
4775
4803
  },
4776
4804
  'EVENT_TIMER_WH': {
4777
4805
  d: 'M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ',
4778
4806
  height: 36,
4779
4807
  width: 36,
4780
- heightElements: [10, 2],
4781
- widthElements: [3, 7]
4808
+ heightElements: [ 10, 2 ],
4809
+ widthElements: [ 3, 7 ]
4782
4810
  },
4783
4811
  'EVENT_TIMER_LINE': {
4784
4812
  d: 'M {mx},{my} ' +
4785
4813
  'm {e.x0},{e.y0} l -{e.x1},{e.y1} ',
4786
4814
  height: 36,
4787
4815
  width: 36,
4788
- heightElements: [10, 3],
4789
- widthElements: [0, 0]
4816
+ heightElements: [ 10, 3 ],
4817
+ widthElements: [ 0, 0 ]
4790
4818
  },
4791
4819
  'EVENT_MULTIPLE': {
4792
4820
  d:'m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z',
4793
4821
  height: 36,
4794
4822
  width: 36,
4795
- heightElements: [6.28099, 12.56199],
4796
- widthElements: [3.1405, 9.42149, 12.56198]
4823
+ heightElements: [ 6.28099, 12.56199 ],
4824
+ widthElements: [ 3.1405, 9.42149, 12.56198 ]
4797
4825
  },
4798
4826
  'EVENT_PARALLEL_MULTIPLE': {
4799
4827
  d:'m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} ' +
4800
4828
  '-{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z',
4801
4829
  height: 36,
4802
4830
  width: 36,
4803
- heightElements: [2.56228, 7.68683],
4804
- widthElements: [2.56228, 7.68683]
4831
+ heightElements: [ 2.56228, 7.68683 ],
4832
+ widthElements: [ 2.56228, 7.68683 ]
4805
4833
  },
4806
4834
  'GATEWAY_EXCLUSIVE': {
4807
4835
  d:'m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} ' +
@@ -4809,23 +4837,23 @@
4809
4837
  '{e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z',
4810
4838
  height: 17.5,
4811
4839
  width: 17.5,
4812
- heightElements: [8.5, 6.5312, -6.5312, -8.5],
4813
- widthElements: [6.5, -6.5, 3, -3, 5, -5]
4840
+ heightElements: [ 8.5, 6.5312, -6.5312, -8.5 ],
4841
+ widthElements: [ 6.5, -6.5, 3, -3, 5, -5 ]
4814
4842
  },
4815
4843
  'GATEWAY_PARALLEL': {
4816
4844
  d:'m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 ' +
4817
4845
  '0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z',
4818
4846
  height: 30,
4819
4847
  width: 30,
4820
- heightElements: [5, 12.5],
4821
- widthElements: [5, 12.5]
4848
+ heightElements: [ 5, 12.5 ],
4849
+ widthElements: [ 5, 12.5 ]
4822
4850
  },
4823
4851
  'GATEWAY_EVENT_BASED': {
4824
4852
  d:'m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z',
4825
4853
  height: 11,
4826
4854
  width: 11,
4827
- heightElements: [-6, 6, 12, -12],
4828
- widthElements: [9, -3, -12]
4855
+ heightElements: [ -6, 6, 12, -12 ],
4856
+ widthElements: [ 9, -3, -12 ]
4829
4857
  },
4830
4858
  'GATEWAY_COMPLEX': {
4831
4859
  d:'m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} ' +
@@ -4834,15 +4862,15 @@
4834
4862
  '-{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z',
4835
4863
  height: 17.125,
4836
4864
  width: 17.125,
4837
- heightElements: [4.875, 3.4375, 2.125, 3],
4838
- widthElements: [3.4375, 2.125, 4.875, 3]
4865
+ heightElements: [ 4.875, 3.4375, 2.125, 3 ],
4866
+ widthElements: [ 3.4375, 2.125, 4.875, 3 ]
4839
4867
  },
4840
4868
  'DATA_OBJECT_PATH': {
4841
4869
  d:'m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0',
4842
4870
  height: 61,
4843
4871
  width: 51,
4844
- heightElements: [10, 50, 60],
4845
- widthElements: [10, 40, 50, 60]
4872
+ heightElements: [ 10, 50, 60 ],
4873
+ widthElements: [ 10, 40, 50, 60 ]
4846
4874
  },
4847
4875
  'DATA_OBJECT_COLLECTION_PATH': {
4848
4876
  d: 'm{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10',
@@ -4871,15 +4899,15 @@
4871
4899
  'c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0',
4872
4900
  height: 61,
4873
4901
  width: 61,
4874
- heightElements: [7, 10, 45],
4875
- widthElements: [2, 58, 60]
4902
+ heightElements: [ 7, 10, 45 ],
4903
+ widthElements: [ 2, 58, 60 ]
4876
4904
  },
4877
4905
  'TEXT_ANNOTATION': {
4878
4906
  d: 'm {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0',
4879
4907
  height: 30,
4880
4908
  width: 10,
4881
- heightElements: [30],
4882
- widthElements: [10]
4909
+ heightElements: [ 30 ],
4910
+ widthElements: [ 10 ]
4883
4911
  },
4884
4912
  'MARKER_SUB_PROCESS': {
4885
4913
  d: 'm{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0',
@@ -4934,8 +4962,8 @@
4934
4962
  d: 'm {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}',
4935
4963
  height: 14,
4936
4964
  width: 21,
4937
- heightElements: [6, 14],
4938
- widthElements: [10.5, 21]
4965
+ heightElements: [ 6, 14 ],
4966
+ widthElements: [ 10.5, 21 ]
4939
4967
  },
4940
4968
  'TASK_TYPE_SCRIPT': {
4941
4969
  d: 'm {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 ' +
@@ -4946,8 +4974,8 @@
4946
4974
  'm -4,3 l 5,0',
4947
4975
  height: 15,
4948
4976
  width: 12.6,
4949
- heightElements: [6, 14],
4950
- widthElements: [10.5, 21]
4977
+ heightElements: [ 6, 14 ],
4978
+ widthElements: [ 10.5, 21 ]
4951
4979
  },
4952
4980
  'TASK_TYPE_USER_1': {
4953
4981
  d: 'm {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 ' +
@@ -5320,6 +5348,10 @@
5320
5348
 
5321
5349
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
5322
5350
 
5351
+ function getDefaultExportFromCjs (x) {
5352
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
5353
+ }
5354
+
5323
5355
  function roundPoint(point) {
5324
5356
 
5325
5357
  return {
@@ -5630,11 +5662,6 @@
5630
5662
  parentElement = this._canvas.findRoot(parentElement);
5631
5663
  }
5632
5664
 
5633
- // insert sequence flows behind other flow nodes (cf. #727)
5634
- if (is$1(semantic, 'bpmn:SequenceFlow')) {
5635
- parentIndex = 0;
5636
- }
5637
-
5638
5665
  this._canvas.addConnection(element, parentElement, parentIndex);
5639
5666
  } else {
5640
5667
  throw new Error(translate('unknown di {di} for element {semantic}', {
@@ -7820,105 +7847,105 @@
7820
7847
 
7821
7848
  (function (module, exports) {
7822
7849
  (function(root, factory) {
7823
- // https://github.com/umdjs/umd/blob/master/returnExports.js
7824
- {
7825
- // For Node.js.
7826
- module.exports = factory(root);
7827
- }
7828
- }(typeof commonjsGlobal != 'undefined' ? commonjsGlobal : commonjsGlobal, function(root) {
7829
-
7830
- if (root.CSS && root.CSS.escape) {
7831
- return root.CSS.escape;
7832
- }
7850
+ // https://github.com/umdjs/umd/blob/master/returnExports.js
7851
+ {
7852
+ // For Node.js.
7853
+ module.exports = factory(root);
7854
+ }
7855
+ }(typeof commonjsGlobal != 'undefined' ? commonjsGlobal : commonjsGlobal, function(root) {
7833
7856
 
7834
- // https://drafts.csswg.org/cssom/#serialize-an-identifier
7835
- var cssEscape = function(value) {
7836
- if (arguments.length == 0) {
7837
- throw new TypeError('`CSS.escape` requires an argument.');
7857
+ if (root.CSS && root.CSS.escape) {
7858
+ return root.CSS.escape;
7838
7859
  }
7839
- var string = String(value);
7840
- var length = string.length;
7841
- var index = -1;
7842
- var codeUnit;
7843
- var result = '';
7844
- var firstCodeUnit = string.charCodeAt(0);
7845
- while (++index < length) {
7846
- codeUnit = string.charCodeAt(index);
7847
- // Note: there’s no need to special-case astral symbols, surrogate
7848
- // pairs, or lone surrogates.
7849
-
7850
- // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
7851
- // (U+FFFD).
7852
- if (codeUnit == 0x0000) {
7853
- result += '\uFFFD';
7854
- continue;
7855
- }
7856
7860
 
7857
- if (
7858
- // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
7859
- // U+007F, […]
7860
- (codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
7861
- // If the character is the first character and is in the range [0-9]
7862
- // (U+0030 to U+0039), […]
7863
- (index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
7864
- // If the character is the second character and is in the range [0-9]
7865
- // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
7866
- (
7867
- index == 1 &&
7868
- codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
7869
- firstCodeUnit == 0x002D
7870
- )
7871
- ) {
7872
- // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
7873
- result += '\\' + codeUnit.toString(16) + ' ';
7874
- continue;
7861
+ // https://drafts.csswg.org/cssom/#serialize-an-identifier
7862
+ var cssEscape = function(value) {
7863
+ if (arguments.length == 0) {
7864
+ throw new TypeError('`CSS.escape` requires an argument.');
7875
7865
  }
7866
+ var string = String(value);
7867
+ var length = string.length;
7868
+ var index = -1;
7869
+ var codeUnit;
7870
+ var result = '';
7871
+ var firstCodeUnit = string.charCodeAt(0);
7872
+ while (++index < length) {
7873
+ codeUnit = string.charCodeAt(index);
7874
+ // Note: there’s no need to special-case astral symbols, surrogate
7875
+ // pairs, or lone surrogates.
7876
+
7877
+ // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
7878
+ // (U+FFFD).
7879
+ if (codeUnit == 0x0000) {
7880
+ result += '\uFFFD';
7881
+ continue;
7882
+ }
7883
+
7884
+ if (
7885
+ // If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
7886
+ // U+007F, […]
7887
+ (codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||
7888
+ // If the character is the first character and is in the range [0-9]
7889
+ // (U+0030 to U+0039), […]
7890
+ (index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||
7891
+ // If the character is the second character and is in the range [0-9]
7892
+ // (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
7893
+ (
7894
+ index == 1 &&
7895
+ codeUnit >= 0x0030 && codeUnit <= 0x0039 &&
7896
+ firstCodeUnit == 0x002D
7897
+ )
7898
+ ) {
7899
+ // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
7900
+ result += '\\' + codeUnit.toString(16) + ' ';
7901
+ continue;
7902
+ }
7903
+
7904
+ if (
7905
+ // If the character is the first character and is a `-` (U+002D), and
7906
+ // there is no second character, […]
7907
+ index == 0 &&
7908
+ length == 1 &&
7909
+ codeUnit == 0x002D
7910
+ ) {
7911
+ result += '\\' + string.charAt(index);
7912
+ continue;
7913
+ }
7914
+
7915
+ // If the character is not handled by one of the above rules and is
7916
+ // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
7917
+ // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
7918
+ // U+005A), or [a-z] (U+0061 to U+007A), […]
7919
+ if (
7920
+ codeUnit >= 0x0080 ||
7921
+ codeUnit == 0x002D ||
7922
+ codeUnit == 0x005F ||
7923
+ codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
7924
+ codeUnit >= 0x0041 && codeUnit <= 0x005A ||
7925
+ codeUnit >= 0x0061 && codeUnit <= 0x007A
7926
+ ) {
7927
+ // the character itself
7928
+ result += string.charAt(index);
7929
+ continue;
7930
+ }
7876
7931
 
7877
- if (
7878
- // If the character is the first character and is a `-` (U+002D), and
7879
- // there is no second character, […]
7880
- index == 0 &&
7881
- length == 1 &&
7882
- codeUnit == 0x002D
7883
- ) {
7932
+ // Otherwise, the escaped character.
7933
+ // https://drafts.csswg.org/cssom/#escape-a-character
7884
7934
  result += '\\' + string.charAt(index);
7885
- continue;
7886
- }
7887
7935
 
7888
- // If the character is not handled by one of the above rules and is
7889
- // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
7890
- // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
7891
- // U+005A), or [a-z] (U+0061 to U+007A), […]
7892
- if (
7893
- codeUnit >= 0x0080 ||
7894
- codeUnit == 0x002D ||
7895
- codeUnit == 0x005F ||
7896
- codeUnit >= 0x0030 && codeUnit <= 0x0039 ||
7897
- codeUnit >= 0x0041 && codeUnit <= 0x005A ||
7898
- codeUnit >= 0x0061 && codeUnit <= 0x007A
7899
- ) {
7900
- // the character itself
7901
- result += string.charAt(index);
7902
- continue;
7903
7936
  }
7937
+ return result;
7938
+ };
7904
7939
 
7905
- // Otherwise, the escaped character.
7906
- // https://drafts.csswg.org/cssom/#escape-a-character
7907
- result += '\\' + string.charAt(index);
7908
-
7940
+ if (!root.CSS) {
7941
+ root.CSS = {};
7909
7942
  }
7910
- return result;
7911
- };
7912
-
7913
- if (!root.CSS) {
7914
- root.CSS = {};
7915
- }
7916
7943
 
7917
- root.CSS.escape = cssEscape;
7918
- return cssEscape;
7944
+ root.CSS.escape = cssEscape;
7945
+ return cssEscape;
7919
7946
 
7920
- }));
7921
- }(css_escape));
7947
+ }));
7948
+ } (css_escape));
7922
7949
 
7923
7950
  var HTML_ESCAPE_MAP = {
7924
7951
  '&': '&amp;',
@@ -8398,7 +8425,7 @@
8398
8425
 
8399
8426
  // dataAssociations are children of the subprocess but rendered on process level
8400
8427
  // cf. https://github.com/bpmn-io/bpmn-js/issues/1619
8401
- if (isAny(bo, ['bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation'])) {
8428
+ if (isAny(bo, [ 'bpmn:DataInputAssociation', 'bpmn:DataOutputAssociation' ])) {
8402
8429
  return false;
8403
8430
  }
8404
8431
 
@@ -8446,7 +8473,7 @@
8446
8473
  }, true);
8447
8474
 
8448
8475
 
8449
- this.executed(['shape.create', 'shape.move', 'shape.delete'], LOW_PRIORITY$1,
8476
+ this.executed([ 'shape.create', 'shape.move', 'shape.delete' ], LOW_PRIORITY$1,
8450
8477
  function(context) {
8451
8478
  var oldParent = context.oldParent,
8452
8479
  newParent = context.newParent || context.parent,
@@ -8463,7 +8490,7 @@
8463
8490
  }, true);
8464
8491
 
8465
8492
 
8466
- this.reverted(['shape.create', 'shape.move', 'shape.delete'], LOW_PRIORITY$1,
8493
+ this.reverted([ 'shape.create', 'shape.move', 'shape.delete' ], LOW_PRIORITY$1,
8467
8494
  function(context) {
8468
8495
  var oldParent = context.oldParent,
8469
8496
  newParent = context.newParent || context.parent,
@@ -8582,7 +8609,7 @@
8582
8609
 
8583
8610
  var DrilldownModdule = {
8584
8611
  __depends__: [ OverlaysModule, ChangeSupportModule, RootElementsModule ],
8585
- __init__: [ 'drilldownBreadcrumbs', 'drilldownOverlayBehavior', 'drilldownCentering', 'subprocessCompatibility'],
8612
+ __init__: [ 'drilldownBreadcrumbs', 'drilldownOverlayBehavior', 'drilldownCentering', 'subprocessCompatibility' ],
8586
8613
  drilldownBreadcrumbs: [ 'type', DrilldownBreadcrumbs ],
8587
8614
  drilldownCentering: [ 'type', DrilldownCentering ],
8588
8615
  drilldownOverlayBehavior: [ 'type', DrilldownOverlayBehavior ],
@@ -8910,20 +8937,11 @@
8910
8937
  return function() {
8911
8938
  initializers.forEach(function(initializer) {
8912
8939
 
8913
- try {
8914
-
8915
- // eagerly resolve component (fn or string)
8916
- if (typeof initializer === 'string') {
8917
- injector.get(initializer);
8918
- } else {
8919
- injector.invoke(initializer);
8920
- }
8921
- } catch (error) {
8922
- if (typeof AggregateError !== 'undefined') {
8923
- throw new AggregateError([ error ], 'Failed to initialize!');
8924
- }
8925
-
8926
- throw new Error('Failed to initialize! ' + error.message);
8940
+ // eagerly resolve component (fn or string)
8941
+ if (typeof initializer === 'string') {
8942
+ injector.get(initializer);
8943
+ } else {
8944
+ injector.invoke(initializer);
8927
8945
  }
8928
8946
  });
8929
8947
  };
@@ -11285,11 +11303,13 @@
11285
11303
 
11286
11304
  var refs = Refs$1;
11287
11305
 
11288
- objectRefs.exports = refs;
11306
+ (function (module) {
11307
+ module.exports = refs;
11289
11308
 
11290
- objectRefs.exports.Collection = collection;
11309
+ module.exports.Collection = collection;
11310
+ } (objectRefs));
11291
11311
 
11292
- var Refs = objectRefs.exports;
11312
+ var Refs = /*@__PURE__*/getDefaultExportFromCjs(objectRefs.exports);
11293
11313
 
11294
11314
  var parentRefs = new Refs({ name: 'children', enumerable: true, collection: true }, { name: 'parent' }),
11295
11315
  labelRefs = new Refs({ name: 'labels', enumerable: true, collection: true }, { name: 'labelTarget' }),
@@ -13150,6 +13170,20 @@
13150
13170
  * @param {Object} options
13151
13171
  */
13152
13172
  Properties.prototype.define = function(target, name, options) {
13173
+
13174
+ if (!options.writable) {
13175
+
13176
+ var value = options.value;
13177
+
13178
+ // use getters for read-only variables to support ES6 proxies
13179
+ // cf. https://github.com/bpmn-io/internal-docs/issues/386
13180
+ options = assign({}, options, {
13181
+ get: function() { return value; }
13182
+ });
13183
+
13184
+ delete options.value;
13185
+ }
13186
+
13153
13187
  Object.defineProperty(target, name, options);
13154
13188
  };
13155
13189
 
@@ -16072,7 +16106,23 @@
16072
16106
  value = escapeAttr(value);
16073
16107
  }
16074
16108
 
16075
- attrs.push({ name: name, value: value });
16109
+ // de-duplicate attributes
16110
+ // https://github.com/bpmn-io/moddle-xml/issues/66
16111
+ var idx = findIndex(attrs, function(element) {
16112
+ return (
16113
+ element.name.localName === name.localName &&
16114
+ element.name.uri === name.uri &&
16115
+ element.name.prefix === name.prefix
16116
+ );
16117
+ });
16118
+
16119
+ var attr = { name: name, value: value };
16120
+
16121
+ if (idx !== -1) {
16122
+ attrs.splice(idx, 1, attr);
16123
+ } else {
16124
+ attrs.push(attr);
16125
+ }
16076
16126
  };
16077
16127
 
16078
16128
  ElementSerializer.prototype.serializeAttributes = function(writer) {
@@ -16332,12 +16382,12 @@
16332
16382
  });
16333
16383
  };
16334
16384
 
16335
- var name = "BPMN20";
16336
- var uri = "http://www.omg.org/spec/BPMN/20100524/MODEL";
16337
- var prefix = "bpmn";
16338
- var associations = [
16385
+ var name$5 = "BPMN20";
16386
+ var uri$5 = "http://www.omg.org/spec/BPMN/20100524/MODEL";
16387
+ var prefix$5 = "bpmn";
16388
+ var associations$5 = [
16339
16389
  ];
16340
- var types = [
16390
+ var types$5 = [
16341
16391
  {
16342
16392
  name: "Interface",
16343
16393
  superClass: [
@@ -19155,7 +19205,7 @@
19155
19205
  ]
19156
19206
  }
19157
19207
  ];
19158
- var enumerations = [
19208
+ var enumerations$3 = [
19159
19209
  {
19160
19210
  name: "ProcessType",
19161
19211
  literalValues: [
@@ -19286,24 +19336,24 @@
19286
19336
  ]
19287
19337
  }
19288
19338
  ];
19289
- var xml = {
19339
+ var xml$1 = {
19290
19340
  tagAlias: "lowerCase",
19291
19341
  typePrefix: "t"
19292
19342
  };
19293
19343
  var BpmnPackage = {
19294
- name: name,
19295
- uri: uri,
19296
- prefix: prefix,
19297
- associations: associations,
19298
- types: types,
19299
- enumerations: enumerations,
19300
- xml: xml
19344
+ name: name$5,
19345
+ uri: uri$5,
19346
+ prefix: prefix$5,
19347
+ associations: associations$5,
19348
+ types: types$5,
19349
+ enumerations: enumerations$3,
19350
+ xml: xml$1
19301
19351
  };
19302
19352
 
19303
- var name$1 = "BPMNDI";
19304
- var uri$1 = "http://www.omg.org/spec/BPMN/20100524/DI";
19305
- var prefix$1 = "bpmndi";
19306
- var types$1 = [
19353
+ var name$4 = "BPMNDI";
19354
+ var uri$4 = "http://www.omg.org/spec/BPMN/20100524/DI";
19355
+ var prefix$4 = "bpmndi";
19356
+ var types$4 = [
19307
19357
  {
19308
19358
  name: "BPMNDiagram",
19309
19359
  properties: [
@@ -19454,7 +19504,7 @@
19454
19504
  ]
19455
19505
  }
19456
19506
  ];
19457
- var enumerations$1 = [
19507
+ var enumerations$2 = [
19458
19508
  {
19459
19509
  name: "ParticipantBandKind",
19460
19510
  literalValues: [
@@ -19490,21 +19540,21 @@
19490
19540
  ]
19491
19541
  }
19492
19542
  ];
19493
- var associations$1 = [
19543
+ var associations$4 = [
19494
19544
  ];
19495
19545
  var BpmnDiPackage = {
19496
- name: name$1,
19497
- uri: uri$1,
19498
- prefix: prefix$1,
19499
- types: types$1,
19500
- enumerations: enumerations$1,
19501
- associations: associations$1
19546
+ name: name$4,
19547
+ uri: uri$4,
19548
+ prefix: prefix$4,
19549
+ types: types$4,
19550
+ enumerations: enumerations$2,
19551
+ associations: associations$4
19502
19552
  };
19503
19553
 
19504
- var name$2 = "DC";
19505
- var uri$2 = "http://www.omg.org/spec/DD/20100524/DC";
19506
- var prefix$2 = "dc";
19507
- var types$2 = [
19554
+ var name$3 = "DC";
19555
+ var uri$3 = "http://www.omg.org/spec/DD/20100524/DC";
19556
+ var prefix$3 = "dc";
19557
+ var types$3 = [
19508
19558
  {
19509
19559
  name: "Boolean"
19510
19560
  },
@@ -19597,20 +19647,20 @@
19597
19647
  ]
19598
19648
  }
19599
19649
  ];
19600
- var associations$2 = [
19650
+ var associations$3 = [
19601
19651
  ];
19602
19652
  var DcPackage = {
19603
- name: name$2,
19604
- uri: uri$2,
19605
- prefix: prefix$2,
19606
- types: types$2,
19607
- associations: associations$2
19653
+ name: name$3,
19654
+ uri: uri$3,
19655
+ prefix: prefix$3,
19656
+ types: types$3,
19657
+ associations: associations$3
19608
19658
  };
19609
19659
 
19610
- var name$3 = "DI";
19611
- var uri$3 = "http://www.omg.org/spec/DD/20100524/DI";
19612
- var prefix$3 = "di";
19613
- var types$3 = [
19660
+ var name$2 = "DI";
19661
+ var uri$2 = "http://www.omg.org/spec/DD/20100524/DI";
19662
+ var prefix$2 = "di";
19663
+ var types$2 = [
19614
19664
  {
19615
19665
  name: "DiagramElement",
19616
19666
  isAbstract: true,
@@ -19839,24 +19889,24 @@
19839
19889
  ]
19840
19890
  }
19841
19891
  ];
19842
- var associations$3 = [
19892
+ var associations$2 = [
19843
19893
  ];
19844
- var xml$1 = {
19894
+ var xml = {
19845
19895
  tagAlias: "lowerCase"
19846
19896
  };
19847
19897
  var DiPackage = {
19848
- name: name$3,
19849
- uri: uri$3,
19850
- prefix: prefix$3,
19851
- types: types$3,
19852
- associations: associations$3,
19853
- xml: xml$1
19898
+ name: name$2,
19899
+ uri: uri$2,
19900
+ prefix: prefix$2,
19901
+ types: types$2,
19902
+ associations: associations$2,
19903
+ xml: xml
19854
19904
  };
19855
19905
 
19856
- var name$4 = "bpmn.io colors for BPMN";
19857
- var uri$4 = "http://bpmn.io/schema/bpmn/biocolor/1.0";
19858
- var prefix$4 = "bioc";
19859
- var types$4 = [
19906
+ var name$1 = "bpmn.io colors for BPMN";
19907
+ var uri$1 = "http://bpmn.io/schema/bpmn/biocolor/1.0";
19908
+ var prefix$1 = "bioc";
19909
+ var types$1 = [
19860
19910
  {
19861
19911
  name: "ColoredShape",
19862
19912
  "extends": [
@@ -19894,23 +19944,23 @@
19894
19944
  ]
19895
19945
  }
19896
19946
  ];
19897
- var enumerations$2 = [
19947
+ var enumerations$1 = [
19898
19948
  ];
19899
- var associations$4 = [
19949
+ var associations$1 = [
19900
19950
  ];
19901
19951
  var BiocPackage = {
19902
- name: name$4,
19903
- uri: uri$4,
19904
- prefix: prefix$4,
19905
- types: types$4,
19906
- enumerations: enumerations$2,
19907
- associations: associations$4
19952
+ name: name$1,
19953
+ uri: uri$1,
19954
+ prefix: prefix$1,
19955
+ types: types$1,
19956
+ enumerations: enumerations$1,
19957
+ associations: associations$1
19908
19958
  };
19909
19959
 
19910
- var name$5 = "BPMN in Color";
19911
- var uri$5 = "http://www.omg.org/spec/BPMN/non-normative/color/1.0";
19912
- var prefix$5 = "color";
19913
- var types$5 = [
19960
+ var name = "BPMN in Color";
19961
+ var uri = "http://www.omg.org/spec/BPMN/non-normative/color/1.0";
19962
+ var prefix = "color";
19963
+ var types = [
19914
19964
  {
19915
19965
  name: "ColoredLabel",
19916
19966
  "extends": [
@@ -19956,17 +20006,17 @@
19956
20006
  ]
19957
20007
  }
19958
20008
  ];
19959
- var enumerations$3 = [
20009
+ var enumerations = [
19960
20010
  ];
19961
- var associations$5 = [
20011
+ var associations = [
19962
20012
  ];
19963
20013
  var BpmnInColorPackage = {
19964
- name: name$5,
19965
- uri: uri$5,
19966
- prefix: prefix$5,
19967
- types: types$5,
19968
- enumerations: enumerations$3,
19969
- associations: associations$5
20014
+ name: name,
20015
+ uri: uri,
20016
+ prefix: prefix,
20017
+ types: types,
20018
+ enumerations: enumerations,
20019
+ associations: associations
19970
20020
  };
19971
20021
 
19972
20022
  var packages = {
@@ -20046,6 +20096,7 @@
20046
20096
  // bpmnElement can have multiple independent DIs
20047
20097
  if (!has$1(businessObject, 'di')) {
20048
20098
  Object.defineProperty(businessObject, 'di', {
20099
+ enumerable: false,
20049
20100
  get: function() {
20050
20101
  throw new Error(DI_ERROR_MESSAGE);
20051
20102
  }
@@ -21615,6 +21666,16 @@
21615
21666
  // default moddle extensions the viewer is composed of
21616
21667
  Viewer.prototype._moddleExtensions = {};
21617
21668
 
21669
+ var KEYCODE_C = 67;
21670
+ var KEYCODE_V = 86;
21671
+ var KEYCODE_Y = 89;
21672
+ var KEYCODE_Z = 90;
21673
+
21674
+ var KEYS_COPY = [ 'c', 'C', KEYCODE_C ];
21675
+ var KEYS_PASTE = [ 'v', 'V', KEYCODE_V ];
21676
+ var KEYS_REDO = [ 'y', 'Y', KEYCODE_Y ];
21677
+ var KEYS_UNDO = [ 'z', 'Z', KEYCODE_Z ];
21678
+
21618
21679
  /**
21619
21680
  * Returns true if event was triggered with any modifier
21620
21681
  * @param {KeyboardEvent} event
@@ -21654,6 +21715,26 @@
21654
21715
  */
21655
21716
  function isShift(event) {
21656
21717
  return event.shiftKey;
21718
+ }
21719
+
21720
+ function isCopy(event) {
21721
+ return isCmd(event) && isKey(KEYS_COPY, event);
21722
+ }
21723
+
21724
+ function isPaste(event) {
21725
+ return isCmd(event) && isKey(KEYS_PASTE, event);
21726
+ }
21727
+
21728
+ function isUndo(event) {
21729
+ return isCmd(event) && !isShift(event) && isKey(KEYS_UNDO, event);
21730
+ }
21731
+
21732
+ function isRedo(event) {
21733
+ return isCmd(event) && (
21734
+ isKey(KEYS_REDO, event) || (
21735
+ isKey(KEYS_UNDO, event) && isShift(event)
21736
+ )
21737
+ );
21657
21738
  }
21658
21739
 
21659
21740
  var KEYDOWN_EVENT = 'keyboard.keydown',
@@ -21846,16 +21927,6 @@
21846
21927
 
21847
21928
  var LOW_PRIORITY = 500;
21848
21929
 
21849
- var KEYCODE_C = 67;
21850
- var KEYCODE_V = 86;
21851
- var KEYCODE_Y = 89;
21852
- var KEYCODE_Z = 90;
21853
-
21854
- var KEYS_COPY = [ 'c', 'C', KEYCODE_C ];
21855
- var KEYS_PASTE = [ 'v', 'V', KEYCODE_V ];
21856
- var KEYS_REDO = [ 'y', 'Y', KEYCODE_Y ];
21857
- var KEYS_UNDO = [ 'z', 'Z', KEYCODE_Z ];
21858
-
21859
21930
 
21860
21931
  /**
21861
21932
  * Adds default keyboard bindings.
@@ -21913,7 +21984,7 @@
21913
21984
 
21914
21985
  var event = context.keyEvent;
21915
21986
 
21916
- if (isCmd(event) && !isShift(event) && isKey(KEYS_UNDO, event)) {
21987
+ if (isUndo(event)) {
21917
21988
  editorActions.trigger('undo');
21918
21989
 
21919
21990
  return true;
@@ -21927,7 +21998,7 @@
21927
21998
 
21928
21999
  var event = context.keyEvent;
21929
22000
 
21930
- if (isCmd(event) && (isKey(KEYS_REDO, event) || (isKey(KEYS_UNDO, event) && isShift(event)))) {
22001
+ if (isRedo(event)) {
21931
22002
  editorActions.trigger('redo');
21932
22003
 
21933
22004
  return true;
@@ -21940,7 +22011,7 @@
21940
22011
 
21941
22012
  var event = context.keyEvent;
21942
22013
 
21943
- if (isCmd(event) && isKey(KEYS_COPY, event)) {
22014
+ if (isCopy(event)) {
21944
22015
  editorActions.trigger('copy');
21945
22016
 
21946
22017
  return true;
@@ -21953,7 +22024,7 @@
21953
22024
 
21954
22025
  var event = context.keyEvent;
21955
22026
 
21956
- if (isCmd(event) && isKey(KEYS_PASTE, event)) {
22027
+ if (isPaste(event)) {
21957
22028
  editorActions.trigger('paste');
21958
22029
 
21959
22030
  return true;
@@ -22591,4 +22662,4 @@
22591
22662
 
22592
22663
  return NavigatedViewer;
22593
22664
 
22594
- })));
22665
+ }));