camunda-bpmn-js 0.23.1 → 0.24.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.
@@ -682,7 +682,7 @@
682
682
  }
683
683
  }
684
684
 
685
- function ensureImported$1(element, target) {
685
+ function ensureImported(element, target) {
686
686
 
687
687
  if (element.ownerDocument !== target.ownerDocument) {
688
688
  try {
@@ -710,8 +710,8 @@
710
710
  *
711
711
  * @return {SVGElement} the appended node
712
712
  */
713
- function appendTo$1(element, target) {
714
- return target.appendChild(ensureImported$1(element, target));
713
+ function appendTo(element, target) {
714
+ return target.appendChild(ensureImported(element, target));
715
715
  }
716
716
 
717
717
  /**
@@ -726,8 +726,8 @@
726
726
  *
727
727
  * @return {SVGElement} the element
728
728
  */
729
- function append$1(target, node) {
730
- appendTo$1(node, target);
729
+ function append(target, node) {
730
+ appendTo(node, target);
731
731
  return target;
732
732
  }
733
733
 
@@ -735,9 +735,9 @@
735
735
  * attribute accessor utility
736
736
  */
737
737
 
738
- var LENGTH_ATTR$1 = 2;
738
+ var LENGTH_ATTR = 2;
739
739
 
740
- var CSS_PROPERTIES$1 = {
740
+ var CSS_PROPERTIES = {
741
741
  'alignment-baseline': 1,
742
742
  'baseline-shift': 1,
743
743
  'clip': 1,
@@ -761,7 +761,7 @@
761
761
  'flood-opacity': 1,
762
762
  'font': 1,
763
763
  'font-family': 1,
764
- 'font-size': LENGTH_ATTR$1,
764
+ 'font-size': LENGTH_ATTR,
765
765
  'font-size-adjust': 1,
766
766
  'font-stretch': 1,
767
767
  'font-style': 1,
@@ -791,7 +791,7 @@
791
791
  'stroke-linejoin': 1,
792
792
  'stroke-miterlimit': 1,
793
793
  'stroke-opacity': 1,
794
- 'stroke-width': LENGTH_ATTR$1,
794
+ 'stroke-width': LENGTH_ATTR,
795
795
  'text-anchor': 1,
796
796
  'text-decoration': 1,
797
797
  'text-rendering': 1,
@@ -802,23 +802,23 @@
802
802
  };
803
803
 
804
804
 
805
- function getAttribute$1(node, name) {
806
- if (CSS_PROPERTIES$1[name]) {
805
+ function getAttribute(node, name) {
806
+ if (CSS_PROPERTIES[name]) {
807
807
  return node.style[name];
808
808
  } else {
809
809
  return node.getAttributeNS(null, name);
810
810
  }
811
811
  }
812
812
 
813
- function setAttribute$1(node, name, value) {
813
+ function setAttribute(node, name, value) {
814
814
  var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
815
815
 
816
- var type = CSS_PROPERTIES$1[hyphenated];
816
+ var type = CSS_PROPERTIES[hyphenated];
817
817
 
818
818
  if (type) {
819
819
 
820
820
  // append pixel unit, unless present
821
- if (type === LENGTH_ATTR$1 && typeof value === 'number') {
821
+ if (type === LENGTH_ATTR && typeof value === 'number') {
822
822
  value = String(value) + 'px';
823
823
  }
824
824
 
@@ -828,12 +828,12 @@
828
828
  }
829
829
  }
830
830
 
831
- function setAttributes$1(node, attrs) {
831
+ function setAttributes(node, attrs) {
832
832
 
833
833
  var names = Object.keys(attrs), i, name;
834
834
 
835
835
  for (i = 0, name; (name = names[i]); i++) {
836
- setAttribute$1(node, name, attrs[name]);
836
+ setAttribute(node, name, attrs[name]);
837
837
  }
838
838
  }
839
839
 
@@ -847,15 +847,15 @@
847
847
  *
848
848
  * @return {String}
849
849
  */
850
- function attr$2(node, name, value) {
850
+ function attr$1(node, name, value) {
851
851
  if (typeof name === 'string') {
852
852
  if (value !== undefined) {
853
- setAttribute$1(node, name, value);
853
+ setAttribute(node, name, value);
854
854
  } else {
855
- return getAttribute$1(node, name);
855
+ return getAttribute(node, name);
856
856
  }
857
857
  } else {
858
- setAttributes$1(node, name);
858
+ setAttributes(node, name);
859
859
  }
860
860
 
861
861
  return node;
@@ -871,7 +871,7 @@
871
871
  * toString reference.
872
872
  */
873
873
 
874
- const toString$2 = Object.prototype.toString;
874
+ const toString$1 = Object.prototype.toString;
875
875
 
876
876
  /**
877
877
  * Wrap `el` in a `ClassList`.
@@ -881,11 +881,11 @@
881
881
  * @api public
882
882
  */
883
883
 
884
- function classes$2(el) {
885
- return new ClassList$2(el);
884
+ function classes$1(el) {
885
+ return new ClassList$1(el);
886
886
  }
887
887
 
888
- function ClassList$2(el) {
888
+ function ClassList$1(el) {
889
889
  if (!el || !el.nodeType) {
890
890
  throw new Error('A DOM element reference is required');
891
891
  }
@@ -901,7 +901,7 @@
901
901
  * @api public
902
902
  */
903
903
 
904
- ClassList$2.prototype.add = function(name) {
904
+ ClassList$1.prototype.add = function(name) {
905
905
  this.list.add(name);
906
906
  return this;
907
907
  };
@@ -916,8 +916,8 @@
916
916
  * @api public
917
917
  */
918
918
 
919
- ClassList$2.prototype.remove = function(name) {
920
- if ('[object RegExp]' == toString$2.call(name)) {
919
+ ClassList$1.prototype.remove = function(name) {
920
+ if ('[object RegExp]' == toString$1.call(name)) {
921
921
  return this.removeMatching(name);
922
922
  }
923
923
 
@@ -933,7 +933,7 @@
933
933
  * @api private
934
934
  */
935
935
 
936
- ClassList$2.prototype.removeMatching = function(re) {
936
+ ClassList$1.prototype.removeMatching = function(re) {
937
937
  const arr = this.array();
938
938
  for (let i = 0; i < arr.length; i++) {
939
939
  if (re.test(arr[i])) {
@@ -955,7 +955,7 @@
955
955
  * @api public
956
956
  */
957
957
 
958
- ClassList$2.prototype.toggle = function(name, force) {
958
+ ClassList$1.prototype.toggle = function(name, force) {
959
959
  if ('undefined' !== typeof force) {
960
960
  if (force !== this.list.toggle(name, force)) {
961
961
  this.list.toggle(name); // toggle again to correct
@@ -973,7 +973,7 @@
973
973
  * @api public
974
974
  */
975
975
 
976
- ClassList$2.prototype.array = function() {
976
+ ClassList$1.prototype.array = function() {
977
977
  return Array.from(this.list);
978
978
  };
979
979
 
@@ -985,12 +985,12 @@
985
985
  * @api public
986
986
  */
987
987
 
988
- ClassList$2.prototype.has =
989
- ClassList$2.prototype.contains = function(name) {
988
+ ClassList$1.prototype.has =
989
+ ClassList$1.prototype.contains = function(name) {
990
990
  return this.list.contains(name);
991
991
  };
992
992
 
993
- function remove$3(element) {
993
+ function remove$2(element) {
994
994
  var parent = element.parentNode;
995
995
 
996
996
  if (parent) {
@@ -1010,17 +1010,17 @@
1010
1010
  * @param {DOMElement} element
1011
1011
  * @return {DOMElement} the element (for chaining)
1012
1012
  */
1013
- function clear$2(element) {
1013
+ function clear$1(element) {
1014
1014
  var child;
1015
1015
 
1016
1016
  while ((child = element.firstChild)) {
1017
- remove$3(child);
1017
+ remove$2(child);
1018
1018
  }
1019
1019
 
1020
1020
  return element;
1021
1021
  }
1022
1022
 
1023
- var ns$1 = {
1023
+ var ns = {
1024
1024
  svg: 'http://www.w3.org/2000/svg'
1025
1025
  };
1026
1026
 
@@ -1028,25 +1028,25 @@
1028
1028
  * DOM parsing utility
1029
1029
  */
1030
1030
 
1031
- var SVG_START$1 = '<svg xmlns="' + ns$1.svg + '"';
1031
+ var SVG_START = '<svg xmlns="' + ns.svg + '"';
1032
1032
 
1033
- function parse$2(svg) {
1033
+ function parse$1(svg) {
1034
1034
 
1035
1035
  var unwrap = false;
1036
1036
 
1037
1037
  // ensure we import a valid svg document
1038
1038
  if (svg.substring(0, 4) === '<svg') {
1039
- if (svg.indexOf(ns$1.svg) === -1) {
1040
- svg = SVG_START$1 + svg.substring(4);
1039
+ if (svg.indexOf(ns.svg) === -1) {
1040
+ svg = SVG_START + svg.substring(4);
1041
1041
  }
1042
1042
  } else {
1043
1043
 
1044
1044
  // namespace svg
1045
- svg = SVG_START$1 + '>' + svg + '</svg>';
1045
+ svg = SVG_START + '>' + svg + '</svg>';
1046
1046
  unwrap = true;
1047
1047
  }
1048
1048
 
1049
- var parsed = parseDocument$1(svg);
1049
+ var parsed = parseDocument(svg);
1050
1050
 
1051
1051
  if (!unwrap) {
1052
1052
  return parsed;
@@ -1063,7 +1063,7 @@
1063
1063
  return fragment;
1064
1064
  }
1065
1065
 
1066
- function parseDocument$1(svg) {
1066
+ function parseDocument(svg) {
1067
1067
 
1068
1068
  var parser;
1069
1069
 
@@ -1087,18 +1087,18 @@
1087
1087
  *
1088
1088
  * @returns {SVGElement}
1089
1089
  */
1090
- function create$2(name, attrs) {
1090
+ function create$1(name, attrs) {
1091
1091
  var element;
1092
1092
 
1093
1093
  if (name.charAt(0) === '<') {
1094
- element = parse$2(name).firstChild;
1094
+ element = parse$1(name).firstChild;
1095
1095
  element = document.importNode(element, true);
1096
1096
  } else {
1097
- element = document.createElementNS(ns$1.svg, name);
1097
+ element = document.createElementNS(ns.svg, name);
1098
1098
  }
1099
1099
 
1100
1100
  if (attrs) {
1101
- attr$2(element, attrs);
1101
+ attr$1(element, attrs);
1102
1102
  }
1103
1103
 
1104
1104
  return element;
@@ -1113,7 +1113,7 @@
1113
1113
 
1114
1114
  function getNode() {
1115
1115
  if (node === null) {
1116
- node = create$2('svg');
1116
+ node = create$1('svg');
1117
1117
  }
1118
1118
 
1119
1119
  return node;
@@ -1168,6 +1168,152 @@
1168
1168
  }
1169
1169
  }
1170
1170
 
1171
+ /**
1172
+ * Serialization util
1173
+ */
1174
+
1175
+ var TEXT_ENTITIES = /([&<>]{1})/g;
1176
+ var ATTR_ENTITIES = /([\n\r"]{1})/g;
1177
+
1178
+ var ENTITY_REPLACEMENT = {
1179
+ '&': '&amp;',
1180
+ '<': '&lt;',
1181
+ '>': '&gt;',
1182
+ '"': '\''
1183
+ };
1184
+
1185
+ function escape$1(str, pattern) {
1186
+
1187
+ function replaceFn(match, entity) {
1188
+ return ENTITY_REPLACEMENT[entity] || entity;
1189
+ }
1190
+
1191
+ return str.replace(pattern, replaceFn);
1192
+ }
1193
+
1194
+ function serialize(node, output) {
1195
+
1196
+ var i, len, attrMap, attrNode, childNodes;
1197
+
1198
+ switch (node.nodeType) {
1199
+
1200
+ // TEXT
1201
+ case 3:
1202
+
1203
+ // replace special XML characters
1204
+ output.push(escape$1(node.textContent, TEXT_ENTITIES));
1205
+ break;
1206
+
1207
+ // ELEMENT
1208
+ case 1:
1209
+ output.push('<', node.tagName);
1210
+
1211
+ if (node.hasAttributes()) {
1212
+ attrMap = node.attributes;
1213
+ for (i = 0, len = attrMap.length; i < len; ++i) {
1214
+ attrNode = attrMap.item(i);
1215
+ output.push(' ', attrNode.name, '="', escape$1(attrNode.value, ATTR_ENTITIES), '"');
1216
+ }
1217
+ }
1218
+
1219
+ if (node.hasChildNodes()) {
1220
+ output.push('>');
1221
+ childNodes = node.childNodes;
1222
+ for (i = 0, len = childNodes.length; i < len; ++i) {
1223
+ serialize(childNodes.item(i), output);
1224
+ }
1225
+ output.push('</', node.tagName, '>');
1226
+ } else {
1227
+ output.push('/>');
1228
+ }
1229
+ break;
1230
+
1231
+ // COMMENT
1232
+ case 8:
1233
+ output.push('<!--', escape$1(node.nodeValue, TEXT_ENTITIES), '-->');
1234
+ break;
1235
+
1236
+ // CDATA
1237
+ case 4:
1238
+ output.push('<![CDATA[', node.nodeValue, ']]>');
1239
+ break;
1240
+
1241
+ default:
1242
+ throw new Error('unable to handle node ' + node.nodeType);
1243
+ }
1244
+
1245
+ return output;
1246
+ }
1247
+
1248
+ /**
1249
+ * innerHTML like functionality for SVG elements.
1250
+ * based on innerSVG (https://code.google.com/p/innersvg)
1251
+ */
1252
+
1253
+
1254
+ function set$1(element, svg) {
1255
+
1256
+ var parsed = parse$1(svg);
1257
+
1258
+ // clear element contents
1259
+ clear$1(element);
1260
+
1261
+ if (!svg) {
1262
+ return;
1263
+ }
1264
+
1265
+ if (!isFragment(parsed)) {
1266
+
1267
+ // extract <svg> from parsed document
1268
+ parsed = parsed.documentElement;
1269
+ }
1270
+
1271
+ var nodes = slice$1(parsed.childNodes);
1272
+
1273
+ // import + append each node
1274
+ for (var i = 0; i < nodes.length; i++) {
1275
+ appendTo(nodes[i], element);
1276
+ }
1277
+
1278
+ }
1279
+
1280
+ function get(element) {
1281
+ var child = element.firstChild,
1282
+ output = [];
1283
+
1284
+ while (child) {
1285
+ serialize(child, output);
1286
+ child = child.nextSibling;
1287
+ }
1288
+
1289
+ return output.join('');
1290
+ }
1291
+
1292
+ function isFragment(node) {
1293
+ return node.nodeName === '#document-fragment';
1294
+ }
1295
+
1296
+ function innerSVG(element, svg) {
1297
+
1298
+ if (svg !== undefined) {
1299
+
1300
+ try {
1301
+ set$1(element, svg);
1302
+ } catch (e) {
1303
+ throw new Error('error parsing SVG: ' + e.message);
1304
+ }
1305
+
1306
+ return element;
1307
+ } else {
1308
+ return get(element);
1309
+ }
1310
+ }
1311
+
1312
+
1313
+ function slice$1(arr) {
1314
+ return Array.prototype.slice.call(arr);
1315
+ }
1316
+
1171
1317
  /**
1172
1318
  * transform accessor utility
1173
1319
  */
@@ -1230,18 +1376,18 @@
1230
1376
 
1231
1377
  function createLine(points, attrs) {
1232
1378
 
1233
- var line = create$2('polyline');
1234
- attr$2(line, { points: toSVGPoints(points) });
1379
+ var line = create$1('polyline');
1380
+ attr$1(line, { points: toSVGPoints(points) });
1235
1381
 
1236
1382
  if (attrs) {
1237
- attr$2(line, attrs);
1383
+ attr$1(line, attrs);
1238
1384
  }
1239
1385
 
1240
1386
  return line;
1241
1387
  }
1242
1388
 
1243
1389
  function updateLine(gfx, points) {
1244
- attr$2(gfx, { points: toSVGPoints(points) });
1390
+ attr$1(gfx, { points: toSVGPoints(points) });
1245
1391
 
1246
1392
  return gfx;
1247
1393
  }
@@ -1510,7 +1656,7 @@
1510
1656
  * @param {String} [val]
1511
1657
  * @api public
1512
1658
  */
1513
- function attr$1(el, name, val) {
1659
+ function attr(el, name, val) {
1514
1660
 
1515
1661
  // get
1516
1662
  if (arguments.length == 2) {
@@ -1538,7 +1684,7 @@
1538
1684
  * toString reference.
1539
1685
  */
1540
1686
 
1541
- const toString$1 = Object.prototype.toString;
1687
+ const toString = Object.prototype.toString;
1542
1688
 
1543
1689
  /**
1544
1690
  * Wrap `el` in a `ClassList`.
@@ -1548,8 +1694,8 @@
1548
1694
  * @api public
1549
1695
  */
1550
1696
 
1551
- function classes$1(el) {
1552
- return new ClassList$1(el);
1697
+ function classes(el) {
1698
+ return new ClassList(el);
1553
1699
  }
1554
1700
 
1555
1701
  /**
@@ -1559,7 +1705,7 @@
1559
1705
  * @api private
1560
1706
  */
1561
1707
 
1562
- function ClassList$1(el) {
1708
+ function ClassList(el) {
1563
1709
  if (!el || !el.nodeType) {
1564
1710
  throw new Error('A DOM element reference is required');
1565
1711
  }
@@ -1575,7 +1721,7 @@
1575
1721
  * @api public
1576
1722
  */
1577
1723
 
1578
- ClassList$1.prototype.add = function(name) {
1724
+ ClassList.prototype.add = function(name) {
1579
1725
  this.list.add(name);
1580
1726
  return this;
1581
1727
  };
@@ -1590,8 +1736,8 @@
1590
1736
  * @api public
1591
1737
  */
1592
1738
 
1593
- ClassList$1.prototype.remove = function(name) {
1594
- if ('[object RegExp]' == toString$1.call(name)) {
1739
+ ClassList.prototype.remove = function(name) {
1740
+ if ('[object RegExp]' == toString.call(name)) {
1595
1741
  return this.removeMatching(name);
1596
1742
  }
1597
1743
 
@@ -1607,7 +1753,7 @@
1607
1753
  * @api private
1608
1754
  */
1609
1755
 
1610
- ClassList$1.prototype.removeMatching = function(re) {
1756
+ ClassList.prototype.removeMatching = function(re) {
1611
1757
  const arr = this.array();
1612
1758
  for (let i = 0; i < arr.length; i++) {
1613
1759
  if (re.test(arr[i])) {
@@ -1629,7 +1775,7 @@
1629
1775
  * @api public
1630
1776
  */
1631
1777
 
1632
- ClassList$1.prototype.toggle = function(name, force) {
1778
+ ClassList.prototype.toggle = function(name, force) {
1633
1779
  if ('undefined' !== typeof force) {
1634
1780
  if (force !== this.list.toggle(name, force)) {
1635
1781
  this.list.toggle(name); // toggle again to correct
@@ -1647,7 +1793,7 @@
1647
1793
  * @api public
1648
1794
  */
1649
1795
 
1650
- ClassList$1.prototype.array = function() {
1796
+ ClassList.prototype.array = function() {
1651
1797
  return Array.from(this.list);
1652
1798
  };
1653
1799
 
@@ -1659,15 +1805,15 @@
1659
1805
  * @api public
1660
1806
  */
1661
1807
 
1662
- ClassList$1.prototype.has =
1663
- ClassList$1.prototype.contains = function(name) {
1808
+ ClassList.prototype.has =
1809
+ ClassList.prototype.contains = function(name) {
1664
1810
  return this.list.contains(name);
1665
1811
  };
1666
1812
 
1667
1813
  /**
1668
1814
  * Remove all children from the given element.
1669
1815
  */
1670
- function clear$1(el) {
1816
+ function clear(el) {
1671
1817
 
1672
1818
  var c;
1673
1819
 
@@ -1762,755 +1908,187 @@
1762
1908
  */
1763
1909
 
1764
1910
  /**
1765
- * Delegate event `type` to `selector`
1766
- * and invoke `fn(e)`. A callback function
1767
- * is returned which may be passed to `.unbind()`.
1768
- *
1769
- * @param {Element} el
1770
- * @param {String} selector
1771
- * @param {String} type
1772
- * @param {Function} fn
1773
- * @param {Boolean} capture
1774
- * @return {Function}
1775
- * @api public
1776
- */
1777
-
1778
- // Some events don't bubble, so we want to bind to the capture phase instead
1779
- // when delegating.
1780
- var forceCaptureEvents = [ 'focus', 'blur' ];
1781
-
1782
- function bind(el, selector, type, fn, capture) {
1783
- if (forceCaptureEvents.indexOf(type) !== -1) {
1784
- capture = true;
1785
- }
1786
-
1787
- return event.bind(el, type, function(e) {
1788
- var target = e.target || e.srcElement;
1789
- e.delegateTarget = closest(target, selector, true);
1790
- if (e.delegateTarget) {
1791
- fn.call(el, e);
1792
- }
1793
- }, capture);
1794
- }
1795
-
1796
- /**
1797
- * Unbind event `type`'s callback `fn`.
1798
- *
1799
- * @param {Element} el
1800
- * @param {String} type
1801
- * @param {Function} fn
1802
- * @param {Boolean} capture
1803
- * @api public
1804
- */
1805
- function unbind(el, type, fn, capture) {
1806
- if (forceCaptureEvents.indexOf(type) !== -1) {
1807
- capture = true;
1808
- }
1809
-
1810
- return event.unbind(el, type, fn, capture);
1811
- }
1812
-
1813
- var delegate = {
1814
- bind,
1815
- unbind
1816
- };
1817
-
1818
- /**
1819
- * Expose `parse`.
1820
- */
1821
-
1822
- var domify = parse$1;
1823
-
1824
- /**
1825
- * Tests for browser support.
1826
- */
1827
-
1828
- var innerHTMLBug = false;
1829
- var bugTestDiv;
1830
- if (typeof document !== 'undefined') {
1831
- bugTestDiv = document.createElement('div');
1832
- // Setup
1833
- bugTestDiv.innerHTML = ' <link/><table></table><a href="/a">a</a><input type="checkbox"/>';
1834
- // Make sure that link elements get serialized correctly by innerHTML
1835
- // This requires a wrapper element in IE
1836
- innerHTMLBug = !bugTestDiv.getElementsByTagName('link').length;
1837
- bugTestDiv = undefined;
1838
- }
1839
-
1840
- /**
1841
- * Wrap map from jquery.
1842
- */
1843
-
1844
- var map = {
1845
- legend: [1, '<fieldset>', '</fieldset>'],
1846
- tr: [2, '<table><tbody>', '</tbody></table>'],
1847
- col: [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
1848
- // for script/link/style tags to work in IE6-8, you have to wrap
1849
- // in a div with a non-whitespace character in front, ha!
1850
- _default: innerHTMLBug ? [1, 'X<div>', '</div>'] : [0, '', '']
1851
- };
1852
-
1853
- map.td =
1854
- map.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
1855
-
1856
- map.option =
1857
- map.optgroup = [1, '<select multiple="multiple">', '</select>'];
1858
-
1859
- map.thead =
1860
- map.tbody =
1861
- map.colgroup =
1862
- map.caption =
1863
- map.tfoot = [1, '<table>', '</table>'];
1864
-
1865
- map.polyline =
1866
- map.ellipse =
1867
- map.polygon =
1868
- map.circle =
1869
- map.text =
1870
- map.line =
1871
- map.path =
1872
- map.rect =
1873
- map.g = [1, '<svg xmlns="http://www.w3.org/2000/svg" version="1.1">','</svg>'];
1874
-
1875
- /**
1876
- * Parse `html` and return a DOM Node instance, which could be a TextNode,
1877
- * HTML DOM Node of some kind (<div> for example), or a DocumentFragment
1878
- * instance, depending on the contents of the `html` string.
1879
- *
1880
- * @param {String} html - HTML string to "domify"
1881
- * @param {Document} doc - The `document` instance to create the Node for
1882
- * @return {DOMNode} the TextNode, DOM Node, or DocumentFragment instance
1883
- * @api private
1884
- */
1885
-
1886
- function parse$1(html, doc) {
1887
- if ('string' != typeof html) throw new TypeError('String expected');
1888
-
1889
- // default to the global `document` object
1890
- if (!doc) doc = document;
1891
-
1892
- // tag name
1893
- var m = /<([\w:]+)/.exec(html);
1894
- if (!m) return doc.createTextNode(html);
1895
-
1896
- html = html.replace(/^\s+|\s+$/g, ''); // Remove leading/trailing whitespace
1897
-
1898
- var tag = m[1];
1899
-
1900
- // body support
1901
- if (tag == 'body') {
1902
- var el = doc.createElement('html');
1903
- el.innerHTML = html;
1904
- return el.removeChild(el.lastChild);
1905
- }
1906
-
1907
- // wrap map
1908
- var wrap = Object.prototype.hasOwnProperty.call(map, tag) ? map[tag] : map._default;
1909
- var depth = wrap[0];
1910
- var prefix = wrap[1];
1911
- var suffix = wrap[2];
1912
- var el = doc.createElement('div');
1913
- el.innerHTML = prefix + html + suffix;
1914
- while (depth--) el = el.lastChild;
1915
-
1916
- // one element
1917
- if (el.firstChild == el.lastChild) {
1918
- return el.removeChild(el.firstChild);
1919
- }
1920
-
1921
- // several elements
1922
- var fragment = doc.createDocumentFragment();
1923
- while (el.firstChild) {
1924
- fragment.appendChild(el.removeChild(el.firstChild));
1925
- }
1926
-
1927
- return fragment;
1928
- }
1929
-
1930
- var domify$1 = domify;
1931
-
1932
- function query(selector, el) {
1933
- el = el || document;
1934
-
1935
- return el.querySelector(selector);
1936
- }
1937
-
1938
- function all(selector, el) {
1939
- el = el || document;
1940
-
1941
- return el.querySelectorAll(selector);
1942
- }
1943
-
1944
- function remove$2(el) {
1945
- el.parentNode && el.parentNode.removeChild(el);
1946
- }
1947
-
1948
- function ensureImported(element, target) {
1949
-
1950
- if (element.ownerDocument !== target.ownerDocument) {
1951
- try {
1952
-
1953
- // may fail on webkit
1954
- return target.ownerDocument.importNode(element, true);
1955
- } catch (e) {
1956
-
1957
- // ignore
1958
- }
1959
- }
1960
-
1961
- return element;
1962
- }
1963
-
1964
- /**
1965
- * appendTo utility
1966
- */
1967
-
1968
- /**
1969
- * Append a node to a target element and return the appended node.
1970
- *
1971
- * @param {SVGElement} element
1972
- * @param {SVGElement} target
1973
- *
1974
- * @return {SVGElement} the appended node
1975
- */
1976
- function appendTo(element, target) {
1977
- return target.appendChild(ensureImported(element, target));
1978
- }
1979
-
1980
- /**
1981
- * append utility
1982
- */
1983
-
1984
- /**
1985
- * Append a node to an element
1986
- *
1987
- * @param {SVGElement} element
1988
- * @param {SVGElement} node
1989
- *
1990
- * @return {SVGElement} the element
1991
- */
1992
- function append(target, node) {
1993
- appendTo(node, target);
1994
- return target;
1995
- }
1996
-
1997
- /**
1998
- * attribute accessor utility
1999
- */
2000
-
2001
- var LENGTH_ATTR = 2;
2002
-
2003
- var CSS_PROPERTIES = {
2004
- 'alignment-baseline': 1,
2005
- 'baseline-shift': 1,
2006
- 'clip': 1,
2007
- 'clip-path': 1,
2008
- 'clip-rule': 1,
2009
- 'color': 1,
2010
- 'color-interpolation': 1,
2011
- 'color-interpolation-filters': 1,
2012
- 'color-profile': 1,
2013
- 'color-rendering': 1,
2014
- 'cursor': 1,
2015
- 'direction': 1,
2016
- 'display': 1,
2017
- 'dominant-baseline': 1,
2018
- 'enable-background': 1,
2019
- 'fill': 1,
2020
- 'fill-opacity': 1,
2021
- 'fill-rule': 1,
2022
- 'filter': 1,
2023
- 'flood-color': 1,
2024
- 'flood-opacity': 1,
2025
- 'font': 1,
2026
- 'font-family': 1,
2027
- 'font-size': LENGTH_ATTR,
2028
- 'font-size-adjust': 1,
2029
- 'font-stretch': 1,
2030
- 'font-style': 1,
2031
- 'font-variant': 1,
2032
- 'font-weight': 1,
2033
- 'glyph-orientation-horizontal': 1,
2034
- 'glyph-orientation-vertical': 1,
2035
- 'image-rendering': 1,
2036
- 'kerning': 1,
2037
- 'letter-spacing': 1,
2038
- 'lighting-color': 1,
2039
- 'marker': 1,
2040
- 'marker-end': 1,
2041
- 'marker-mid': 1,
2042
- 'marker-start': 1,
2043
- 'mask': 1,
2044
- 'opacity': 1,
2045
- 'overflow': 1,
2046
- 'pointer-events': 1,
2047
- 'shape-rendering': 1,
2048
- 'stop-color': 1,
2049
- 'stop-opacity': 1,
2050
- 'stroke': 1,
2051
- 'stroke-dasharray': 1,
2052
- 'stroke-dashoffset': 1,
2053
- 'stroke-linecap': 1,
2054
- 'stroke-linejoin': 1,
2055
- 'stroke-miterlimit': 1,
2056
- 'stroke-opacity': 1,
2057
- 'stroke-width': LENGTH_ATTR,
2058
- 'text-anchor': 1,
2059
- 'text-decoration': 1,
2060
- 'text-rendering': 1,
2061
- 'unicode-bidi': 1,
2062
- 'visibility': 1,
2063
- 'word-spacing': 1,
2064
- 'writing-mode': 1
2065
- };
2066
-
2067
-
2068
- function getAttribute(node, name) {
2069
- if (CSS_PROPERTIES[name]) {
2070
- return node.style[name];
2071
- } else {
2072
- return node.getAttributeNS(null, name);
2073
- }
2074
- }
2075
-
2076
- function setAttribute(node, name, value) {
2077
- var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
2078
-
2079
- var type = CSS_PROPERTIES[hyphenated];
2080
-
2081
- if (type) {
2082
-
2083
- // append pixel unit, unless present
2084
- if (type === LENGTH_ATTR && typeof value === 'number') {
2085
- value = String(value) + 'px';
2086
- }
2087
-
2088
- node.style[hyphenated] = value;
2089
- } else {
2090
- node.setAttributeNS(null, name, value);
2091
- }
2092
- }
2093
-
2094
- function setAttributes(node, attrs) {
2095
-
2096
- var names = Object.keys(attrs), i, name;
2097
-
2098
- for (i = 0, name; (name = names[i]); i++) {
2099
- setAttribute(node, name, attrs[name]);
2100
- }
2101
- }
2102
-
2103
- /**
2104
- * Gets or sets raw attributes on a node.
2105
- *
2106
- * @param {SVGElement} node
2107
- * @param {Object} [attrs]
2108
- * @param {String} [name]
2109
- * @param {String} [value]
2110
- *
2111
- * @return {String}
2112
- */
2113
- function attr(node, name, value) {
2114
- if (typeof name === 'string') {
2115
- if (value !== undefined) {
2116
- setAttribute(node, name, value);
2117
- } else {
2118
- return getAttribute(node, name);
2119
- }
2120
- } else {
2121
- setAttributes(node, name);
2122
- }
2123
-
2124
- return node;
2125
- }
2126
-
2127
- /**
2128
- * Taken from https://github.com/component/classes
2129
- *
2130
- * Without the component bits.
2131
- */
2132
-
2133
- /**
2134
- * toString reference.
2135
- */
2136
-
2137
- const toString = Object.prototype.toString;
2138
-
2139
- /**
2140
- * Wrap `el` in a `ClassList`.
2141
- *
2142
- * @param {Element} el
2143
- * @return {ClassList}
2144
- * @api public
2145
- */
2146
-
2147
- function classes(el) {
2148
- return new ClassList(el);
2149
- }
2150
-
2151
- function ClassList(el) {
2152
- if (!el || !el.nodeType) {
2153
- throw new Error('A DOM element reference is required');
2154
- }
2155
- this.el = el;
2156
- this.list = el.classList;
2157
- }
2158
-
2159
- /**
2160
- * Add class `name` if not already present.
2161
- *
2162
- * @param {String} name
2163
- * @return {ClassList}
2164
- * @api public
2165
- */
2166
-
2167
- ClassList.prototype.add = function(name) {
2168
- this.list.add(name);
2169
- return this;
2170
- };
2171
-
2172
- /**
2173
- * Remove class `name` when present, or
2174
- * pass a regular expression to remove
2175
- * any which match.
2176
- *
2177
- * @param {String|RegExp} name
2178
- * @return {ClassList}
2179
- * @api public
2180
- */
2181
-
2182
- ClassList.prototype.remove = function(name) {
2183
- if ('[object RegExp]' == toString.call(name)) {
2184
- return this.removeMatching(name);
2185
- }
2186
-
2187
- this.list.remove(name);
2188
- return this;
2189
- };
2190
-
2191
- /**
2192
- * Remove all classes matching `re`.
2193
- *
2194
- * @param {RegExp} re
2195
- * @return {ClassList}
2196
- * @api private
2197
- */
2198
-
2199
- ClassList.prototype.removeMatching = function(re) {
2200
- const arr = this.array();
2201
- for (let i = 0; i < arr.length; i++) {
2202
- if (re.test(arr[i])) {
2203
- this.remove(arr[i]);
2204
- }
2205
- }
2206
- return this;
2207
- };
2208
-
2209
- /**
2210
- * Toggle class `name`, can force state via `force`.
2211
- *
2212
- * For browsers that support classList, but do not support `force` yet,
2213
- * the mistake will be detected and corrected.
2214
- *
2215
- * @param {String} name
2216
- * @param {Boolean} force
2217
- * @return {ClassList}
2218
- * @api public
2219
- */
2220
-
2221
- ClassList.prototype.toggle = function(name, force) {
2222
- if ('undefined' !== typeof force) {
2223
- if (force !== this.list.toggle(name, force)) {
2224
- this.list.toggle(name); // toggle again to correct
2225
- }
2226
- } else {
2227
- this.list.toggle(name);
2228
- }
2229
- return this;
2230
- };
2231
-
2232
- /**
2233
- * Return an array of classes.
2234
- *
2235
- * @return {Array}
2236
- * @api public
2237
- */
2238
-
2239
- ClassList.prototype.array = function() {
2240
- return Array.from(this.list);
2241
- };
2242
-
2243
- /**
2244
- * Check if class `name` is present.
2245
- *
2246
- * @param {String} name
2247
- * @return {ClassList}
2248
- * @api public
2249
- */
2250
-
2251
- ClassList.prototype.has =
2252
- ClassList.prototype.contains = function(name) {
2253
- return this.list.contains(name);
2254
- };
2255
-
2256
- function remove$1(element) {
2257
- var parent = element.parentNode;
2258
-
2259
- if (parent) {
2260
- parent.removeChild(element);
2261
- }
2262
-
2263
- return element;
2264
- }
2265
-
2266
- /**
2267
- * Clear utility
2268
- */
2269
-
2270
- /**
2271
- * Removes all children from the given element
2272
- *
2273
- * @param {DOMElement} element
2274
- * @return {DOMElement} the element (for chaining)
2275
- */
2276
- function clear(element) {
2277
- var child;
2278
-
2279
- while ((child = element.firstChild)) {
2280
- remove$1(child);
2281
- }
2282
-
2283
- return element;
2284
- }
2285
-
2286
- var ns = {
2287
- svg: 'http://www.w3.org/2000/svg'
2288
- };
2289
-
2290
- /**
2291
- * DOM parsing utility
2292
- */
2293
-
2294
- var SVG_START = '<svg xmlns="' + ns.svg + '"';
2295
-
2296
- function parse(svg) {
2297
-
2298
- var unwrap = false;
2299
-
2300
- // ensure we import a valid svg document
2301
- if (svg.substring(0, 4) === '<svg') {
2302
- if (svg.indexOf(ns.svg) === -1) {
2303
- svg = SVG_START + svg.substring(4);
2304
- }
2305
- } else {
2306
-
2307
- // namespace svg
2308
- svg = SVG_START + '>' + svg + '</svg>';
2309
- unwrap = true;
2310
- }
2311
-
2312
- var parsed = parseDocument(svg);
2313
-
2314
- if (!unwrap) {
2315
- return parsed;
2316
- }
2317
-
2318
- var fragment = document.createDocumentFragment();
2319
-
2320
- var parent = parsed.firstChild;
2321
-
2322
- while (parent.firstChild) {
2323
- fragment.appendChild(parent.firstChild);
2324
- }
2325
-
2326
- return fragment;
2327
- }
2328
-
2329
- function parseDocument(svg) {
2330
-
2331
- var parser;
2332
-
2333
- // parse
2334
- parser = new DOMParser();
2335
- parser.async = false;
2336
-
2337
- return parser.parseFromString(svg, 'text/xml');
2338
- }
2339
-
2340
- /**
2341
- * Create utility for SVG elements
2342
- */
2343
-
2344
-
2345
- /**
2346
- * Create a specific type from name or SVG markup.
2347
- *
2348
- * @param {String} name the name or markup of the element
2349
- * @param {Object} [attrs] attributes to set on the element
1911
+ * Delegate event `type` to `selector`
1912
+ * and invoke `fn(e)`. A callback function
1913
+ * is returned which may be passed to `.unbind()`.
2350
1914
  *
2351
- * @returns {SVGElement}
1915
+ * @param {Element} el
1916
+ * @param {String} selector
1917
+ * @param {String} type
1918
+ * @param {Function} fn
1919
+ * @param {Boolean} capture
1920
+ * @return {Function}
1921
+ * @api public
2352
1922
  */
2353
- function create$1(name, attrs) {
2354
- var element;
2355
1923
 
2356
- if (name.charAt(0) === '<') {
2357
- element = parse(name).firstChild;
2358
- element = document.importNode(element, true);
2359
- } else {
2360
- element = document.createElementNS(ns.svg, name);
2361
- }
1924
+ // Some events don't bubble, so we want to bind to the capture phase instead
1925
+ // when delegating.
1926
+ var forceCaptureEvents = [ 'focus', 'blur' ];
2362
1927
 
2363
- if (attrs) {
2364
- attr(element, attrs);
1928
+ function bind(el, selector, type, fn, capture) {
1929
+ if (forceCaptureEvents.indexOf(type) !== -1) {
1930
+ capture = true;
2365
1931
  }
2366
1932
 
2367
- return element;
1933
+ return event.bind(el, type, function(e) {
1934
+ var target = e.target || e.srcElement;
1935
+ e.delegateTarget = closest(target, selector, true);
1936
+ if (e.delegateTarget) {
1937
+ fn.call(el, e);
1938
+ }
1939
+ }, capture);
2368
1940
  }
2369
1941
 
2370
1942
  /**
2371
- * Serialization util
1943
+ * Unbind event `type`'s callback `fn`.
1944
+ *
1945
+ * @param {Element} el
1946
+ * @param {String} type
1947
+ * @param {Function} fn
1948
+ * @param {Boolean} capture
1949
+ * @api public
2372
1950
  */
2373
-
2374
- var TEXT_ENTITIES = /([&<>]{1})/g;
2375
- var ATTR_ENTITIES = /([\n\r"]{1})/g;
2376
-
2377
- var ENTITY_REPLACEMENT = {
2378
- '&': '&amp;',
2379
- '<': '&lt;',
2380
- '>': '&gt;',
2381
- '"': '\''
2382
- };
2383
-
2384
- function escape$1(str, pattern) {
2385
-
2386
- function replaceFn(match, entity) {
2387
- return ENTITY_REPLACEMENT[entity] || entity;
1951
+ function unbind(el, type, fn, capture) {
1952
+ if (forceCaptureEvents.indexOf(type) !== -1) {
1953
+ capture = true;
2388
1954
  }
2389
1955
 
2390
- return str.replace(pattern, replaceFn);
1956
+ return event.unbind(el, type, fn, capture);
2391
1957
  }
2392
1958
 
2393
- function serialize(node, output) {
2394
-
2395
- var i, len, attrMap, attrNode, childNodes;
1959
+ var delegate = {
1960
+ bind,
1961
+ unbind
1962
+ };
2396
1963
 
2397
- switch (node.nodeType) {
1964
+ /**
1965
+ * Expose `parse`.
1966
+ */
2398
1967
 
2399
- // TEXT
2400
- case 3:
1968
+ var domify = parse;
2401
1969
 
2402
- // replace special XML characters
2403
- output.push(escape$1(node.textContent, TEXT_ENTITIES));
2404
- break;
1970
+ /**
1971
+ * Tests for browser support.
1972
+ */
2405
1973
 
2406
- // ELEMENT
2407
- case 1:
2408
- output.push('<', node.tagName);
1974
+ var innerHTMLBug = false;
1975
+ var bugTestDiv;
1976
+ if (typeof document !== 'undefined') {
1977
+ bugTestDiv = document.createElement('div');
1978
+ // Setup
1979
+ bugTestDiv.innerHTML = ' <link/><table></table><a href="/a">a</a><input type="checkbox"/>';
1980
+ // Make sure that link elements get serialized correctly by innerHTML
1981
+ // This requires a wrapper element in IE
1982
+ innerHTMLBug = !bugTestDiv.getElementsByTagName('link').length;
1983
+ bugTestDiv = undefined;
1984
+ }
2409
1985
 
2410
- if (node.hasAttributes()) {
2411
- attrMap = node.attributes;
2412
- for (i = 0, len = attrMap.length; i < len; ++i) {
2413
- attrNode = attrMap.item(i);
2414
- output.push(' ', attrNode.name, '="', escape$1(attrNode.value, ATTR_ENTITIES), '"');
2415
- }
2416
- }
1986
+ /**
1987
+ * Wrap map from jquery.
1988
+ */
2417
1989
 
2418
- if (node.hasChildNodes()) {
2419
- output.push('>');
2420
- childNodes = node.childNodes;
2421
- for (i = 0, len = childNodes.length; i < len; ++i) {
2422
- serialize(childNodes.item(i), output);
2423
- }
2424
- output.push('</', node.tagName, '>');
2425
- } else {
2426
- output.push('/>');
2427
- }
2428
- break;
1990
+ var map = {
1991
+ legend: [1, '<fieldset>', '</fieldset>'],
1992
+ tr: [2, '<table><tbody>', '</tbody></table>'],
1993
+ col: [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
1994
+ // for script/link/style tags to work in IE6-8, you have to wrap
1995
+ // in a div with a non-whitespace character in front, ha!
1996
+ _default: innerHTMLBug ? [1, 'X<div>', '</div>'] : [0, '', '']
1997
+ };
2429
1998
 
2430
- // COMMENT
2431
- case 8:
2432
- output.push('<!--', escape$1(node.nodeValue, TEXT_ENTITIES), '-->');
2433
- break;
1999
+ map.td =
2000
+ map.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
2434
2001
 
2435
- // CDATA
2436
- case 4:
2437
- output.push('<![CDATA[', node.nodeValue, ']]>');
2438
- break;
2002
+ map.option =
2003
+ map.optgroup = [1, '<select multiple="multiple">', '</select>'];
2439
2004
 
2440
- default:
2441
- throw new Error('unable to handle node ' + node.nodeType);
2442
- }
2005
+ map.thead =
2006
+ map.tbody =
2007
+ map.colgroup =
2008
+ map.caption =
2009
+ map.tfoot = [1, '<table>', '</table>'];
2443
2010
 
2444
- return output;
2445
- }
2011
+ map.polyline =
2012
+ map.ellipse =
2013
+ map.polygon =
2014
+ map.circle =
2015
+ map.text =
2016
+ map.line =
2017
+ map.path =
2018
+ map.rect =
2019
+ map.g = [1, '<svg xmlns="http://www.w3.org/2000/svg" version="1.1">','</svg>'];
2446
2020
 
2447
2021
  /**
2448
- * innerHTML like functionality for SVG elements.
2449
- * based on innerSVG (https://code.google.com/p/innersvg)
2022
+ * Parse `html` and return a DOM Node instance, which could be a TextNode,
2023
+ * HTML DOM Node of some kind (<div> for example), or a DocumentFragment
2024
+ * instance, depending on the contents of the `html` string.
2025
+ *
2026
+ * @param {String} html - HTML string to "domify"
2027
+ * @param {Document} doc - The `document` instance to create the Node for
2028
+ * @return {DOMNode} the TextNode, DOM Node, or DocumentFragment instance
2029
+ * @api private
2450
2030
  */
2451
2031
 
2032
+ function parse(html, doc) {
2033
+ if ('string' != typeof html) throw new TypeError('String expected');
2452
2034
 
2453
- function set$1(element, svg) {
2454
-
2455
- var parsed = parse(svg);
2035
+ // default to the global `document` object
2036
+ if (!doc) doc = document;
2456
2037
 
2457
- // clear element contents
2458
- clear(element);
2038
+ // tag name
2039
+ var m = /<([\w:]+)/.exec(html);
2040
+ if (!m) return doc.createTextNode(html);
2459
2041
 
2460
- if (!svg) {
2461
- return;
2462
- }
2042
+ html = html.replace(/^\s+|\s+$/g, ''); // Remove leading/trailing whitespace
2463
2043
 
2464
- if (!isFragment(parsed)) {
2044
+ var tag = m[1];
2465
2045
 
2466
- // extract <svg> from parsed document
2467
- parsed = parsed.documentElement;
2046
+ // body support
2047
+ if (tag == 'body') {
2048
+ var el = doc.createElement('html');
2049
+ el.innerHTML = html;
2050
+ return el.removeChild(el.lastChild);
2468
2051
  }
2469
2052
 
2470
- var nodes = slice$1(parsed.childNodes);
2053
+ // wrap map
2054
+ var wrap = Object.prototype.hasOwnProperty.call(map, tag) ? map[tag] : map._default;
2055
+ var depth = wrap[0];
2056
+ var prefix = wrap[1];
2057
+ var suffix = wrap[2];
2058
+ var el = doc.createElement('div');
2059
+ el.innerHTML = prefix + html + suffix;
2060
+ while (depth--) el = el.lastChild;
2471
2061
 
2472
- // import + append each node
2473
- for (var i = 0; i < nodes.length; i++) {
2474
- appendTo(nodes[i], element);
2062
+ // one element
2063
+ if (el.firstChild == el.lastChild) {
2064
+ return el.removeChild(el.firstChild);
2475
2065
  }
2476
2066
 
2477
- }
2478
-
2479
- function get(element) {
2480
- var child = element.firstChild,
2481
- output = [];
2482
-
2483
- while (child) {
2484
- serialize(child, output);
2485
- child = child.nextSibling;
2067
+ // several elements
2068
+ var fragment = doc.createDocumentFragment();
2069
+ while (el.firstChild) {
2070
+ fragment.appendChild(el.removeChild(el.firstChild));
2486
2071
  }
2487
2072
 
2488
- return output.join('');
2073
+ return fragment;
2489
2074
  }
2490
2075
 
2491
- function isFragment(node) {
2492
- return node.nodeName === '#document-fragment';
2493
- }
2076
+ var domify$1 = domify;
2494
2077
 
2495
- function innerSVG(element, svg) {
2078
+ function query(selector, el) {
2079
+ el = el || document;
2496
2080
 
2497
- if (svg !== undefined) {
2081
+ return el.querySelector(selector);
2082
+ }
2498
2083
 
2499
- try {
2500
- set$1(element, svg);
2501
- } catch (e) {
2502
- throw new Error('error parsing SVG: ' + e.message);
2503
- }
2084
+ function all(selector, el) {
2085
+ el = el || document;
2504
2086
 
2505
- return element;
2506
- } else {
2507
- return get(element);
2508
- }
2087
+ return el.querySelectorAll(selector);
2509
2088
  }
2510
2089
 
2511
-
2512
- function slice$1(arr) {
2513
- return Array.prototype.slice.call(arr);
2090
+ function remove$1(el) {
2091
+ el.parentNode && el.parentNode.removeChild(el);
2514
2092
  }
2515
2093
 
2516
2094
  /**
@@ -2767,11 +2345,11 @@
2767
2345
 
2768
2346
  var marker = create$1('marker');
2769
2347
 
2770
- attr(options.element, attrs);
2348
+ attr$1(options.element, attrs);
2771
2349
 
2772
2350
  append(marker, options.element);
2773
2351
 
2774
- attr(marker, {
2352
+ attr$1(marker, {
2775
2353
  id: id,
2776
2354
  viewBox: '0 0 20 20',
2777
2355
  refX: ref.x,
@@ -2814,7 +2392,7 @@
2814
2392
 
2815
2393
  if (type === 'sequenceflow-end') {
2816
2394
  var sequenceflowEnd = create$1('path');
2817
- attr(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2395
+ attr$1(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2818
2396
 
2819
2397
  addMarker(id, {
2820
2398
  element: sequenceflowEnd,
@@ -2829,7 +2407,7 @@
2829
2407
 
2830
2408
  if (type === 'messageflow-start') {
2831
2409
  var messageflowStart = create$1('circle');
2832
- attr(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2410
+ attr$1(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2833
2411
 
2834
2412
  addMarker(id, {
2835
2413
  element: messageflowStart,
@@ -2843,7 +2421,7 @@
2843
2421
 
2844
2422
  if (type === 'messageflow-end') {
2845
2423
  var messageflowEnd = create$1('path');
2846
- attr(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2424
+ attr$1(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2847
2425
 
2848
2426
  addMarker(id, {
2849
2427
  element: messageflowEnd,
@@ -2858,7 +2436,7 @@
2858
2436
 
2859
2437
  if (type === 'association-start') {
2860
2438
  var associationStart = create$1('path');
2861
- attr(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2439
+ attr$1(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2862
2440
 
2863
2441
  addMarker(id, {
2864
2442
  element: associationStart,
@@ -2874,7 +2452,7 @@
2874
2452
 
2875
2453
  if (type === 'association-end') {
2876
2454
  var associationEnd = create$1('path');
2877
- attr(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2455
+ attr$1(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2878
2456
 
2879
2457
  addMarker(id, {
2880
2458
  element: associationEnd,
@@ -2890,7 +2468,7 @@
2890
2468
 
2891
2469
  if (type === 'conditional-flow-marker') {
2892
2470
  var conditionalflowMarker = create$1('path');
2893
- attr(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2471
+ attr$1(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2894
2472
 
2895
2473
  addMarker(id, {
2896
2474
  element: conditionalflowMarker,
@@ -2905,7 +2483,7 @@
2905
2483
 
2906
2484
  if (type === 'conditional-default-flow-marker') {
2907
2485
  var conditionaldefaultflowMarker = create$1('path');
2908
- attr(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2486
+ attr$1(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2909
2487
 
2910
2488
  addMarker(id, {
2911
2489
  element: conditionaldefaultflowMarker,
@@ -2941,12 +2519,12 @@
2941
2519
  cy = height / 2;
2942
2520
 
2943
2521
  var circle = create$1('circle');
2944
- attr(circle, {
2522
+ attr$1(circle, {
2945
2523
  cx: cx,
2946
2524
  cy: cy,
2947
2525
  r: Math.round((width + height) / 4 - offset)
2948
2526
  });
2949
- attr(circle, attrs);
2527
+ attr$1(circle, attrs);
2950
2528
 
2951
2529
  append(parentGfx, circle);
2952
2530
 
@@ -2969,7 +2547,7 @@
2969
2547
  });
2970
2548
 
2971
2549
  var rect = create$1('rect');
2972
- attr(rect, {
2550
+ attr$1(rect, {
2973
2551
  x: offset,
2974
2552
  y: offset,
2975
2553
  width: width - offset * 2,
@@ -2977,7 +2555,7 @@
2977
2555
  rx: r,
2978
2556
  ry: r
2979
2557
  });
2980
- attr(rect, attrs);
2558
+ attr$1(rect, attrs);
2981
2559
 
2982
2560
  append(parentGfx, rect);
2983
2561
 
@@ -3002,10 +2580,10 @@
3002
2580
  });
3003
2581
 
3004
2582
  var polygon = create$1('polygon');
3005
- attr(polygon, {
2583
+ attr$1(polygon, {
3006
2584
  points: pointsString
3007
2585
  });
3008
- attr(polygon, attrs);
2586
+ attr$1(polygon, attrs);
3009
2587
 
3010
2588
  append(parentGfx, polygon);
3011
2589
 
@@ -3034,8 +2612,8 @@
3034
2612
  });
3035
2613
 
3036
2614
  var path = create$1('path');
3037
- attr(path, { d: d });
3038
- attr(path, attrs);
2615
+ attr$1(path, { d: d });
2616
+ attr$1(path, attrs);
3039
2617
 
3040
2618
  append(parentGfx, path);
3041
2619
 
@@ -3123,7 +2701,7 @@
3123
2701
 
3124
2702
  var text = textRenderer.createText(label || '', options);
3125
2703
 
3126
- classes(text).add('djs-label');
2704
+ classes$1(text).add('djs-label');
3127
2705
 
3128
2706
  append(parentGfx, text);
3129
2707
 
@@ -3735,7 +3313,7 @@
3735
3313
  });
3736
3314
 
3737
3315
  var businessHeaderPath = drawPath(parentGfx, headerPathData);
3738
- attr(businessHeaderPath, {
3316
+ attr$1(businessHeaderPath, {
3739
3317
  strokeWidth: 1,
3740
3318
  fill: getFillColor(element, '#aaaaaa'),
3741
3319
  stroke: getStrokeColor(element, defaultStrokeColor)
@@ -3749,7 +3327,7 @@
3749
3327
  });
3750
3328
 
3751
3329
  var businessPath = drawPath(parentGfx, headerData);
3752
- attr(businessPath, {
3330
+ attr$1(businessPath, {
3753
3331
  strokeWidth: 1,
3754
3332
  stroke: getStrokeColor(element, defaultStrokeColor)
3755
3333
  });
@@ -3767,7 +3345,7 @@
3767
3345
  var expanded = isExpanded(element);
3768
3346
 
3769
3347
  if (isEventSubProcess(element)) {
3770
- attr(rect, {
3348
+ attr$1(rect, {
3771
3349
  strokeDasharray: '1,2'
3772
3350
  });
3773
3351
  }
@@ -3989,7 +3567,7 @@
3989
3567
  });
3990
3568
 
3991
3569
  var parallelPath = drawPath(parentGfx, pathData);
3992
- attr(parallelPath, {
3570
+ attr$1(parallelPath, {
3993
3571
  strokeWidth: 1,
3994
3572
  fill: 'none'
3995
3573
  });
@@ -3997,7 +3575,7 @@
3997
3575
 
3998
3576
  if (!instantiate) {
3999
3577
  var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26);
4000
- attr(innerCircle, {
3578
+ attr$1(innerCircle, {
4001
3579
  strokeWidth: 1,
4002
3580
  fill: 'none',
4003
3581
  stroke: getStrokeColor(element, defaultStrokeColor)
@@ -4042,7 +3620,7 @@
4042
3620
 
4043
3621
  // conditional flow marker
4044
3622
  if (sequenceFlow.conditionExpression && source.$instanceOf('bpmn:Activity')) {
4045
- attr(path, {
3623
+ attr$1(path, {
4046
3624
  markerStart: marker('conditional-flow-marker', fill, stroke)
4047
3625
  });
4048
3626
  }
@@ -4050,7 +3628,7 @@
4050
3628
  // default marker
4051
3629
  if (source.default && (source.$instanceOf('bpmn:Gateway') || source.$instanceOf('bpmn:Activity')) &&
4052
3630
  source.default === sequenceFlow) {
4053
- attr(path, {
3631
+ attr$1(path, {
4054
3632
  markerStart: marker('conditional-default-flow-marker', fill, stroke)
4055
3633
  });
4056
3634
  }
@@ -4768,9 +4346,9 @@
4768
4346
  var helperSvg = document.getElementById('helper-svg');
4769
4347
 
4770
4348
  if (!helperSvg) {
4771
- helperSvg = create$2('svg');
4349
+ helperSvg = create$1('svg');
4772
4350
 
4773
- attr$2(helperSvg, {
4351
+ attr$1(helperSvg, {
4774
4352
  id: 'helper-svg'
4775
4353
  });
4776
4354
 
@@ -4864,13 +4442,13 @@
4864
4442
  var maxWidth = box.width - padding.left - padding.right;
4865
4443
 
4866
4444
  // ensure correct rendering by attaching helper text node to invisible SVG
4867
- var helperText = create$2('text');
4868
- attr$2(helperText, { x: 0, y: 0 });
4869
- attr$2(helperText, style);
4445
+ var helperText = create$1('text');
4446
+ attr$1(helperText, { x: 0, y: 0 });
4447
+ attr$1(helperText, style);
4870
4448
 
4871
4449
  var helperSvg = getHelperSvg();
4872
4450
 
4873
- append$1(helperSvg, helperText);
4451
+ append(helperSvg, helperText);
4874
4452
 
4875
4453
  while (lines.length) {
4876
4454
  layouted.push(layoutNext(lines, maxWidth, helperText));
@@ -4899,9 +4477,9 @@
4899
4477
  y -= (lineHeight || layouted[0].height) / 4;
4900
4478
 
4901
4479
 
4902
- var textElement = create$2('text');
4480
+ var textElement = create$1('text');
4903
4481
 
4904
- attr$2(textElement, style);
4482
+ attr$1(textElement, style);
4905
4483
 
4906
4484
  // layout each line taking into account that parent
4907
4485
  // shape might resize to fit text size
@@ -4928,15 +4506,15 @@
4928
4506
  - line.width) / 2 + padding.left), 0);
4929
4507
  }
4930
4508
 
4931
- var tspan = create$2('tspan');
4932
- attr$2(tspan, { x: x, y: y });
4509
+ var tspan = create$1('tspan');
4510
+ attr$1(tspan, { x: x, y: y });
4933
4511
 
4934
4512
  tspan.textContent = line.text;
4935
4513
 
4936
- append$1(textElement, tspan);
4514
+ append(textElement, tspan);
4937
4515
  });
4938
4516
 
4939
- remove$3(helperText);
4517
+ remove$2(helperText);
4940
4518
 
4941
4519
  var dimensions = {
4942
4520
  width: maxLineWidth,
@@ -6524,13 +6102,13 @@
6524
6102
  throw new Error('invalid hit type <' + type + '>');
6525
6103
  }
6526
6104
 
6527
- attr$2(hit, attrs);
6105
+ attr$1(hit, attrs);
6528
6106
 
6529
6107
  return hit;
6530
6108
  }
6531
6109
 
6532
6110
  function appendHit(gfx, hit) {
6533
- append$1(gfx, hit);
6111
+ append(gfx, hit);
6534
6112
  }
6535
6113
 
6536
6114
 
@@ -6544,7 +6122,7 @@
6544
6122
  this.removeHits = function(gfx) {
6545
6123
  var hits = all('.djs-hit', gfx);
6546
6124
 
6547
- forEach$1(hits, remove$3);
6125
+ forEach$1(hits, remove$2);
6548
6126
  };
6549
6127
 
6550
6128
  /**
@@ -6608,11 +6186,11 @@
6608
6186
  y: 0
6609
6187
  }, attrs);
6610
6188
 
6611
- var hit = create$2('rect');
6189
+ var hit = create$1('rect');
6612
6190
 
6613
6191
  applyStyle(hit, type);
6614
6192
 
6615
- attr$2(hit, attrs);
6193
+ attr$1(hit, attrs);
6616
6194
 
6617
6195
  appendHit(gfx, hit);
6618
6196
 
@@ -6638,7 +6216,7 @@
6638
6216
  if (element.waypoints) {
6639
6217
  updateLine(hit, element.waypoints);
6640
6218
  } else {
6641
- attr$2(hit, {
6219
+ attr$1(hit, {
6642
6220
  width: element.width,
6643
6221
  height: element.height
6644
6222
  });
@@ -6846,9 +6424,9 @@
6846
6424
  var self = this;
6847
6425
 
6848
6426
  function createOutline(gfx, bounds) {
6849
- var outline = create$2('rect');
6427
+ var outline = create$1('rect');
6850
6428
 
6851
- attr$2(outline, assign$1({
6429
+ attr$1(outline, assign$1({
6852
6430
  x: 10,
6853
6431
  y: 10,
6854
6432
  rx: 3,
@@ -6856,7 +6434,7 @@
6856
6434
  height: 100
6857
6435
  }, OUTLINE_STYLE));
6858
6436
 
6859
- append$1(gfx, outline);
6437
+ append(gfx, outline);
6860
6438
 
6861
6439
  return outline;
6862
6440
  }
@@ -6900,7 +6478,7 @@
6900
6478
  */
6901
6479
  Outline.prototype.updateShapeOutline = function(outline, element) {
6902
6480
 
6903
- attr$2(outline, {
6481
+ attr$1(outline, {
6904
6482
  x: -this.offset,
6905
6483
  y: -this.offset,
6906
6484
  width: element.width + this.offset * 2,
@@ -6921,7 +6499,7 @@
6921
6499
 
6922
6500
  var bbox = getBBox(connection);
6923
6501
 
6924
- attr$2(outline, {
6502
+ attr$1(outline, {
6925
6503
  x: bbox.x - this.offset,
6926
6504
  y: bbox.y - this.offset,
6927
6505
  width: bbox.width + this.offset * 2,
@@ -7125,13 +6703,13 @@
7125
6703
  SelectionVisuals.prototype._updateSelectionOutline = function(selection) {
7126
6704
  var layer = this._canvas.getLayer('selectionOutline');
7127
6705
 
7128
- clear$2(layer);
6706
+ clear$1(layer);
7129
6707
 
7130
6708
  var enabled = selection.length > 1;
7131
6709
 
7132
6710
  var container = this._canvas.getContainer();
7133
6711
 
7134
- classes$2(container)[enabled ? 'add' : 'remove']('djs-multi-select');
6712
+ classes$1(container)[enabled ? 'add' : 'remove']('djs-multi-select');
7135
6713
 
7136
6714
  if (!enabled) {
7137
6715
  return;
@@ -7139,15 +6717,15 @@
7139
6717
 
7140
6718
  var bBox = addSelectionOutlinePadding(getBBox(selection));
7141
6719
 
7142
- var rect = create$2('rect');
6720
+ var rect = create$1('rect');
7143
6721
 
7144
- attr$2(rect, assign$1({
6722
+ attr$1(rect, assign$1({
7145
6723
  rx: 3
7146
6724
  }, bBox));
7147
6725
 
7148
- classes$2(rect).add('djs-selection-outline');
6726
+ classes$1(rect).add('djs-selection-outline');
7149
6727
 
7150
- append$1(layer, rect);
6728
+ append(layer, rect);
7151
6729
  };
7152
6730
 
7153
6731
  // helpers //////////
@@ -7556,8 +7134,8 @@
7556
7134
  var container = self._getOverlayContainer(overlay.element, true);
7557
7135
 
7558
7136
  if (overlay) {
7559
- remove$2(overlay.html);
7560
- remove$2(overlay.htmlContainer);
7137
+ remove$1(overlay.html);
7138
+ remove$1(overlay.htmlContainer);
7561
7139
 
7562
7140
  delete overlay.htmlContainer;
7563
7141
  delete overlay.element;
@@ -7590,7 +7168,7 @@
7590
7168
 
7591
7169
  this._overlayContainers = [];
7592
7170
 
7593
- clear$1(this._overlayRoot);
7171
+ clear(this._overlayRoot);
7594
7172
  };
7595
7173
 
7596
7174
  Overlays.prototype._updateOverlayContainer = function(container) {
@@ -7611,7 +7189,7 @@
7611
7189
 
7612
7190
  setPosition(html, x, y);
7613
7191
 
7614
- attr$1(container.html, 'data-container-id', element.id);
7192
+ attr(container.html, 'data-container-id', element.id);
7615
7193
  };
7616
7194
 
7617
7195
 
@@ -7738,7 +7316,7 @@
7738
7316
  htmlContainer.appendChild(html);
7739
7317
 
7740
7318
  if (overlay.type) {
7741
- classes$1(htmlContainer).add('djs-overlay-' + overlay.type);
7319
+ classes(htmlContainer).add('djs-overlay-' + overlay.type);
7742
7320
  }
7743
7321
 
7744
7322
  var elementRoot = this._canvas.findRoot(element);
@@ -7867,7 +7445,7 @@
7867
7445
  var container = self._getOverlayContainer(element);
7868
7446
 
7869
7447
  if (container) {
7870
- remove$2(container.html);
7448
+ remove$1(container.html);
7871
7449
  var i = self._overlayContainers.indexOf(container);
7872
7450
  if (i !== -1) {
7873
7451
  self._overlayContainers.splice(i, 1);
@@ -7898,7 +7476,7 @@
7898
7476
  eventBus.on('element.marker.update', function(e) {
7899
7477
  var container = self._getOverlayContainer(e.element, true);
7900
7478
  if (container) {
7901
- classes$1(container.html)[e.add ? 'add' : 'remove'](e.marker);
7479
+ classes(container.html)[e.add ? 'add' : 'remove'](e.marker);
7902
7480
  }
7903
7481
  });
7904
7482
 
@@ -8363,7 +7941,7 @@
8363
7941
  function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays, canvas) {
8364
7942
  var breadcrumbs = domify$1('<ul class="bjs-breadcrumbs"></ul>');
8365
7943
  var container = canvas.getContainer();
8366
- var containerClasses = classes$1(container);
7944
+ var containerClasses = classes(container);
8367
7945
  container.appendChild(breadcrumbs);
8368
7946
 
8369
7947
  var boParents = [];
@@ -8919,7 +8497,7 @@
8919
8497
  }
8920
8498
 
8921
8499
  var hasContent = bo && bo.flowElements && bo.flowElements.length;
8922
- classes$1(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8500
+ classes(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8923
8501
  };
8924
8502
 
8925
8503
  /**
@@ -9471,9 +9049,9 @@
9471
9049
  };
9472
9050
 
9473
9051
  DefaultRenderer.prototype.drawShape = function drawShape(visuals, element, attrs) {
9474
- var rect = create$2('rect');
9052
+ var rect = create$1('rect');
9475
9053
 
9476
- attr$2(rect, {
9054
+ attr$1(rect, {
9477
9055
  x: 0,
9478
9056
  y: 0,
9479
9057
  width: element.width || 0,
@@ -9481,12 +9059,12 @@
9481
9059
  });
9482
9060
 
9483
9061
  if (isFrameElement(element)) {
9484
- attr$2(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9062
+ attr$1(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9485
9063
  } else {
9486
- attr$2(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9064
+ attr$1(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9487
9065
  }
9488
9066
 
9489
- append$1(visuals, rect);
9067
+ append(visuals, rect);
9490
9068
 
9491
9069
  return rect;
9492
9070
  };
@@ -9494,7 +9072,7 @@
9494
9072
  DefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection, attrs) {
9495
9073
 
9496
9074
  var line = createLine(connection.waypoints, assign$1({}, this.CONNECTION_STYLE, attrs || {}));
9497
- append$1(visuals, line);
9075
+ append(visuals, line);
9498
9076
 
9499
9077
  return line;
9500
9078
  };
@@ -9717,7 +9295,7 @@
9717
9295
  // this way we can always get the correct container size
9718
9296
  // (this is impossible for <svg> elements at the moment)
9719
9297
  const parent = document.createElement('div');
9720
- parent.setAttribute('class', 'djs-container');
9298
+ parent.setAttribute('class', 'djs-container djs-parent');
9721
9299
 
9722
9300
  assign(parent, {
9723
9301
  position: 'relative',
@@ -9732,8 +9310,8 @@
9732
9310
  }
9733
9311
 
9734
9312
  function createGroup(parent, cls, childIndex) {
9735
- const group = create$2('g');
9736
- classes$2(group).add(cls);
9313
+ const group = create$1('g');
9314
+ classes$1(group).add(cls);
9737
9315
 
9738
9316
  const index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;
9739
9317
 
@@ -9811,10 +9389,10 @@
9811
9389
  // html container
9812
9390
  const container = this._container = createContainer(config);
9813
9391
 
9814
- const svg = this._svg = create$2('svg');
9815
- attr$2(svg, { width: '100%', height: '100%' });
9392
+ const svg = this._svg = create$1('svg');
9393
+ attr$1(svg, { width: '100%', height: '100%' });
9816
9394
 
9817
- append$1(container, svg);
9395
+ append(container, svg);
9818
9396
 
9819
9397
  const viewport = this._viewport = createGroup(svg, 'viewport');
9820
9398
 
@@ -10052,7 +9630,7 @@
10052
9630
  return group;
10053
9631
  }
10054
9632
 
10055
- remove$3(group);
9633
+ remove$2(group);
10056
9634
 
10057
9635
  layer.visible = false;
10058
9636
 
@@ -10067,7 +9645,7 @@
10067
9645
  if (layer) {
10068
9646
  delete this._layers[name];
10069
9647
 
10070
- remove$3(layer.group);
9648
+ remove$2(layer.group);
10071
9649
  }
10072
9650
  };
10073
9651
 
@@ -10160,9 +9738,9 @@
10160
9738
 
10161
9739
  // invoke either addClass or removeClass based on mode
10162
9740
  if (add) {
10163
- classes$2(gfx).add(marker);
9741
+ classes$1(gfx).add(marker);
10164
9742
  } else {
10165
- classes$2(gfx).remove(marker);
9743
+ classes$1(gfx).remove(marker);
10166
9744
  }
10167
9745
  }
10168
9746
  });
@@ -10228,7 +9806,7 @@
10228
9806
 
10229
9807
  const gfx = this.getGraphics(element);
10230
9808
 
10231
- return classes$2(gfx).has(marker);
9809
+ return classes$1(gfx).has(marker);
10232
9810
  };
10233
9811
 
10234
9812
  /**
@@ -11126,10 +10704,10 @@
11126
10704
  this._validateId(id);
11127
10705
 
11128
10706
  // associate dom node with element
11129
- attr$2(gfx, ELEMENT_ID, id);
10707
+ attr$1(gfx, ELEMENT_ID, id);
11130
10708
 
11131
10709
  if (secondaryGfx) {
11132
- attr$2(secondaryGfx, ELEMENT_ID, id);
10710
+ attr$1(secondaryGfx, ELEMENT_ID, id);
11133
10711
  }
11134
10712
 
11135
10713
  this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };
@@ -11138,7 +10716,7 @@
11138
10716
  /**
11139
10717
  * Removes an element from the registry.
11140
10718
  *
11141
- * @param {djs.model.Base} element
10719
+ * @param {string|djs.model.Base} element
11142
10720
  */
11143
10721
  ElementRegistry.prototype.remove = function(element) {
11144
10722
  var elements = this._elements,
@@ -11148,10 +10726,10 @@
11148
10726
  if (container) {
11149
10727
 
11150
10728
  // unset element id on gfx
11151
- attr$2(container.gfx, ELEMENT_ID, '');
10729
+ attr$1(container.gfx, ELEMENT_ID, '');
11152
10730
 
11153
10731
  if (container.secondaryGfx) {
11154
- attr$2(container.secondaryGfx, ELEMENT_ID, '');
10732
+ attr$1(container.secondaryGfx, ELEMENT_ID, '');
11155
10733
  }
11156
10734
 
11157
10735
  delete elements[id];
@@ -11161,7 +10739,7 @@
11161
10739
  /**
11162
10740
  * Update the id of an element
11163
10741
  *
11164
- * @param {djs.model.Base} element
10742
+ * @param {string|djs.model.Base} element
11165
10743
  * @param {string} newId
11166
10744
  */
11167
10745
  ElementRegistry.prototype.updateId = function(element, newId) {
@@ -11190,7 +10768,7 @@
11190
10768
  /**
11191
10769
  * Update the graphics of an element
11192
10770
  *
11193
- * @param {djs.model.Base} element
10771
+ * @param {string|djs.model.Base} element
11194
10772
  * @param {SVGElement} gfx
11195
10773
  * @param {boolean} [secondary=false] whether to update the secondary connected element
11196
10774
  */
@@ -11206,7 +10784,7 @@
11206
10784
  }
11207
10785
 
11208
10786
  if (gfx) {
11209
- attr$2(gfx, ELEMENT_ID, id);
10787
+ attr$1(gfx, ELEMENT_ID, id);
11210
10788
  }
11211
10789
 
11212
10790
  return gfx;
@@ -11231,7 +10809,7 @@
11231
10809
  if (typeof filter === 'string') {
11232
10810
  id = filter;
11233
10811
  } else {
11234
- id = filter && attr$2(filter, ELEMENT_ID);
10812
+ id = filter && attr$1(filter, ELEMENT_ID);
11235
10813
  }
11236
10814
 
11237
10815
  var container = this._elements[id];
@@ -12514,10 +12092,10 @@
12514
12092
  } else {
12515
12093
  childrenGfx = getChildren(gfx);
12516
12094
  if (!childrenGfx) {
12517
- childrenGfx = create$2('g');
12518
- classes$2(childrenGfx).add('djs-children');
12095
+ childrenGfx = create$1('g');
12096
+ classes$1(childrenGfx).add('djs-children');
12519
12097
 
12520
- append$1(gfx.parentNode, childrenGfx);
12098
+ append(gfx.parentNode, childrenGfx);
12521
12099
  }
12522
12100
  }
12523
12101
 
@@ -12531,7 +12109,7 @@
12531
12109
  GraphicsFactory.prototype._clear = function(gfx) {
12532
12110
  var visual = getVisual(gfx);
12533
12111
 
12534
- clear$1(visual);
12112
+ clear(visual);
12535
12113
 
12536
12114
  return visual;
12537
12115
  };
@@ -12566,31 +12144,31 @@
12566
12144
  GraphicsFactory.prototype._createContainer = function(
12567
12145
  type, childrenGfx, parentIndex, isFrame
12568
12146
  ) {
12569
- var outerGfx = create$2('g');
12570
- classes$2(outerGfx).add('djs-group');
12147
+ var outerGfx = create$1('g');
12148
+ classes$1(outerGfx).add('djs-group');
12571
12149
 
12572
12150
  // insert node at position
12573
12151
  if (typeof parentIndex !== 'undefined') {
12574
12152
  prependTo(outerGfx, childrenGfx, childrenGfx.childNodes[parentIndex]);
12575
12153
  } else {
12576
- append$1(childrenGfx, outerGfx);
12154
+ append(childrenGfx, outerGfx);
12577
12155
  }
12578
12156
 
12579
- var gfx = create$2('g');
12580
- classes$2(gfx).add('djs-element');
12581
- classes$2(gfx).add('djs-' + type);
12157
+ var gfx = create$1('g');
12158
+ classes$1(gfx).add('djs-element');
12159
+ classes$1(gfx).add('djs-' + type);
12582
12160
 
12583
12161
  if (isFrame) {
12584
- classes$2(gfx).add('djs-frame');
12162
+ classes$1(gfx).add('djs-frame');
12585
12163
  }
12586
12164
 
12587
- append$1(outerGfx, gfx);
12165
+ append(outerGfx, gfx);
12588
12166
 
12589
12167
  // create visual
12590
- var visual = create$2('g');
12591
- classes$2(visual).add('djs-visual');
12168
+ var visual = create$1('g');
12169
+ classes$1(visual).add('djs-visual');
12592
12170
 
12593
- append$1(gfx, visual);
12171
+ append(gfx, visual);
12594
12172
 
12595
12173
  return gfx;
12596
12174
  };
@@ -12682,9 +12260,9 @@
12682
12260
  }
12683
12261
 
12684
12262
  if (element.hidden) {
12685
- attr$2(gfx, 'display', 'none');
12263
+ attr$1(gfx, 'display', 'none');
12686
12264
  } else {
12687
- attr$2(gfx, 'display', 'block');
12265
+ attr$1(gfx, 'display', 'block');
12688
12266
  }
12689
12267
  };
12690
12268
 
@@ -12692,7 +12270,7 @@
12692
12270
  var gfx = this._elementRegistry.getGraphics(element);
12693
12271
 
12694
12272
  // remove
12695
- remove$3(gfx.parentNode);
12273
+ remove$2(gfx.parentNode);
12696
12274
  };
12697
12275
 
12698
12276
 
@@ -21709,7 +21287,7 @@
21709
21287
  Diagram.prototype.destroy.call(this);
21710
21288
 
21711
21289
  // dom detach
21712
- remove$2(this._container);
21290
+ remove$1(this._container);
21713
21291
  };
21714
21292
 
21715
21293
  /**
@@ -22002,15 +21580,10 @@
22002
21580
  // default moddle extensions the viewer is composed of
22003
21581
  Viewer.prototype._moddleExtensions = {};
22004
21582
 
22005
- var KEYCODE_C = 67;
22006
- var KEYCODE_V = 86;
22007
- var KEYCODE_Y = 89;
22008
- var KEYCODE_Z = 90;
22009
-
22010
- var KEYS_COPY = [ 'c', 'C', KEYCODE_C ];
22011
- var KEYS_PASTE = [ 'v', 'V', KEYCODE_V ];
22012
- var KEYS_REDO = [ 'y', 'Y', KEYCODE_Y ];
22013
- var KEYS_UNDO = [ 'z', 'Z', KEYCODE_Z ];
21583
+ var KEYS_COPY = [ 'c', 'C', 'KeyC' ];
21584
+ var KEYS_PASTE = [ 'v', 'V', 'KeyV' ];
21585
+ var KEYS_REDO = [ 'y', 'Y', 'KeyY' ];
21586
+ var KEYS_UNDO = [ 'z', 'Z', 'KeyZ' ];
22014
21587
 
22015
21588
  /**
22016
21589
  * Returns true if event was triggered with any modifier
@@ -22043,7 +21616,7 @@
22043
21616
  function isKey(keys, event) {
22044
21617
  keys = isArray$2(keys) ? keys : [ keys ];
22045
21618
 
22046
- return keys.indexOf(event.key) !== -1 || keys.indexOf(event.keyCode) !== -1;
21619
+ return keys.indexOf(event.key) !== -1 || keys.indexOf(event.code) !== -1;
22047
21620
  }
22048
21621
 
22049
21622
  /**
@@ -22082,7 +21655,7 @@
22082
21655
 
22083
21656
  /**
22084
21657
  * A keyboard abstraction that may be activated and
22085
- * deactivated by users at will, consuming key events
21658
+ * deactivated by users at will, consuming global key events
22086
21659
  * and triggering diagram actions.
22087
21660
  *
22088
21661
  * For keys pressed down, keyboard fires `keyboard.keydown` event.
@@ -22167,6 +21740,10 @@
22167
21740
  };
22168
21741
 
22169
21742
  Keyboard.prototype._isEventIgnored = function(event) {
21743
+ if (event.defaultPrevented) {
21744
+ return true;
21745
+ }
21746
+
22170
21747
  return isInput(event.target) && this._isModifiedKeyIgnored(event);
22171
21748
  };
22172
21749
 
@@ -22197,8 +21774,8 @@
22197
21774
  this._node = node;
22198
21775
 
22199
21776
  // bind key events
22200
- event.bind(node, 'keydown', this._keydownHandler, true);
22201
- event.bind(node, 'keyup', this._keyupHandler, true);
21777
+ event.bind(node, 'keydown', this._keydownHandler);
21778
+ event.bind(node, 'keyup', this._keyupHandler);
22202
21779
 
22203
21780
  this._fire('bind');
22204
21781
  };
@@ -22214,8 +21791,8 @@
22214
21791
  this._fire('unbind');
22215
21792
 
22216
21793
  // unbind key events
22217
- event.unbind(node, 'keydown', this._keydownHandler, true);
22218
- event.unbind(node, 'keyup', this._keyupHandler, true);
21794
+ event.unbind(node, 'keydown', this._keydownHandler);
21795
+ event.unbind(node, 'keyup', this._keyupHandler);
22219
21796
  }
22220
21797
 
22221
21798
  this._node = null;
@@ -22558,12 +22135,12 @@
22558
22135
 
22559
22136
 
22560
22137
  function set(mode) {
22561
- var classes = classes$1(document.body);
22138
+ var classes$1 = classes(document.body);
22562
22139
 
22563
- classes.removeMatching(CURSOR_CLS_PATTERN);
22140
+ classes$1.removeMatching(CURSOR_CLS_PATTERN);
22564
22141
 
22565
22142
  if (mode) {
22566
- classes.add('djs-cursor-' + mode);
22143
+ classes$1.add('djs-cursor-' + mode);
22567
22144
  }
22568
22145
  }
22569
22146