camunda-bpmn-js 0.22.0 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -469,7 +469,7 @@
469
469
  return result;
470
470
  }
471
471
 
472
- var DEFAULT_RENDER_PRIORITY$2 = 1000;
472
+ var DEFAULT_RENDER_PRIORITY$1 = 1000;
473
473
 
474
474
  /**
475
475
  * The base implementation of shape and connection renderers.
@@ -477,10 +477,10 @@
477
477
  * @param {EventBus} eventBus
478
478
  * @param {number} [renderPriority=1000]
479
479
  */
480
- function BaseRenderer$1(eventBus, renderPriority) {
480
+ function BaseRenderer(eventBus, renderPriority) {
481
481
  var self = this;
482
482
 
483
- renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY$2;
483
+ renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY$1;
484
484
 
485
485
  eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {
486
486
  var type = evt.type,
@@ -516,7 +516,7 @@
516
516
  *
517
517
  * @returns {boolean}
518
518
  */
519
- BaseRenderer$1.prototype.canRender = function() {};
519
+ BaseRenderer.prototype.canRender = function() {};
520
520
 
521
521
  /**
522
522
  * Provides the shape's snap svg element to be drawn on the `canvas`.
@@ -526,7 +526,7 @@
526
526
  *
527
527
  * @returns {Snap.svg} [returns a Snap.svg paper element ]
528
528
  */
529
- BaseRenderer$1.prototype.drawShape = function() {};
529
+ BaseRenderer.prototype.drawShape = function() {};
530
530
 
531
531
  /**
532
532
  * Provides the shape's snap svg element to be drawn on the `canvas`.
@@ -536,7 +536,7 @@
536
536
  *
537
537
  * @returns {Snap.svg} [returns a Snap.svg paper element ]
538
538
  */
539
- BaseRenderer$1.prototype.drawConnection = function() {};
539
+ BaseRenderer.prototype.drawConnection = function() {};
540
540
 
541
541
  /**
542
542
  * Gets the SVG path of a shape that represents it's visual bounds.
@@ -545,7 +545,7 @@
545
545
  *
546
546
  * @return {string} svg path
547
547
  */
548
- BaseRenderer$1.prototype.getShapePath = function() {};
548
+ BaseRenderer.prototype.getShapePath = function() {};
549
549
 
550
550
  /**
551
551
  * Gets the SVG path of a connection that represents it's visual bounds.
@@ -554,7 +554,7 @@
554
554
  *
555
555
  * @return {string} svg path
556
556
  */
557
- BaseRenderer$1.prototype.getConnectionPath = function() {};
557
+ BaseRenderer.prototype.getConnectionPath = function() {};
558
558
 
559
559
  /**
560
560
  * Is an element of the given BPMN type?
@@ -682,7 +682,7 @@
682
682
  }
683
683
  }
684
684
 
685
- function ensureImported$1(element, target) {
685
+ function ensureImported$2(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$2(element, target) {
714
+ return target.appendChild(ensureImported$2(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$2(target, node) {
730
+ appendTo$2(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 = 2;
739
739
 
740
- var CSS_PROPERTIES$1 = {
740
+ var CSS_PROPERTIES$2 = {
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$2,
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$2,
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$2(node, name) {
806
+ if (CSS_PROPERTIES$2[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$2(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$2[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$2 && 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$2(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$2(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$3(node, name, value) {
851
851
  if (typeof name === 'string') {
852
852
  if (value !== undefined) {
853
- setAttribute$1(node, name, value);
853
+ setAttribute$2(node, name, value);
854
854
  } else {
855
- return getAttribute$1(node, name);
855
+ return getAttribute$2(node, name);
856
856
  }
857
857
  } else {
858
- setAttributes$1(node, name);
858
+ setAttributes$2(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$1 = Object.prototype.toString;
874
+ const toString$2 = 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$1(el) {
885
- return new ClassList$1(el);
884
+ function classes$2(el) {
885
+ return new ClassList$2(el);
886
886
  }
887
887
 
888
- function ClassList$1(el) {
888
+ function ClassList$2(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$1.prototype.add = function(name) {
904
+ ClassList$2.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$1.prototype.remove = function(name) {
920
- if ('[object RegExp]' == toString$1.call(name)) {
919
+ ClassList$2.prototype.remove = function(name) {
920
+ if ('[object RegExp]' == toString$2.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$1.prototype.removeMatching = function(re) {
936
+ ClassList$2.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$1.prototype.toggle = function(name, force) {
958
+ ClassList$2.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$1.prototype.array = function() {
976
+ ClassList$2.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$1.prototype.has =
989
- ClassList$1.prototype.contains = function(name) {
988
+ ClassList$2.prototype.has =
989
+ ClassList$2.prototype.contains = function(name) {
990
990
  return this.list.contains(name);
991
991
  };
992
992
 
993
- function remove$2(element) {
993
+ function remove$3(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$1(element) {
1013
+ function clear$2(element) {
1014
1014
  var child;
1015
1015
 
1016
1016
  while ((child = element.firstChild)) {
1017
- remove$2(child);
1017
+ remove$3(child);
1018
1018
  }
1019
1019
 
1020
1020
  return element;
1021
1021
  }
1022
1022
 
1023
- var ns$1 = {
1023
+ var ns$2 = {
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$2 = '<svg xmlns="' + ns$2.svg + '"';
1032
1032
 
1033
- function parse$2(svg) {
1033
+ function parse$3(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$2.svg) === -1) {
1040
+ svg = SVG_START$2 + 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$2 + '>' + svg + '</svg>';
1046
1046
  unwrap = true;
1047
1047
  }
1048
1048
 
1049
- var parsed = parseDocument$1(svg);
1049
+ var parsed = parseDocument$2(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$2(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$3(name, attrs) {
1091
1091
  var element;
1092
1092
 
1093
1093
  if (name.charAt(0) === '<') {
1094
- element = parse$2(name).firstChild;
1094
+ element = parse$3(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$2.svg, name);
1098
1098
  }
1099
1099
 
1100
1100
  if (attrs) {
1101
- attr$2(element, attrs);
1101
+ attr$3(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$3('svg');
1117
1117
  }
1118
1118
 
1119
1119
  return node;
@@ -1168,152 +1168,6 @@
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$2(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$1(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
-
1317
1171
  /**
1318
1172
  * transform accessor utility
1319
1173
  */
@@ -1376,18 +1230,18 @@
1376
1230
 
1377
1231
  function createLine(points, attrs) {
1378
1232
 
1379
- var line = create$2('polyline');
1380
- attr$2(line, { points: toSVGPoints(points) });
1233
+ var line = create$3('polyline');
1234
+ attr$3(line, { points: toSVGPoints(points) });
1381
1235
 
1382
1236
  if (attrs) {
1383
- attr$2(line, attrs);
1237
+ attr$3(line, attrs);
1384
1238
  }
1385
1239
 
1386
1240
  return line;
1387
1241
  }
1388
1242
 
1389
1243
  function updateLine(gfx, points) {
1390
- attr$2(gfx, { points: toSVGPoints(points) });
1244
+ attr$3(gfx, { points: toSVGPoints(points) });
1391
1245
 
1392
1246
  return gfx;
1393
1247
  }
@@ -1656,7 +1510,7 @@
1656
1510
  * @param {String} [val]
1657
1511
  * @api public
1658
1512
  */
1659
- function attr$1(el, name, val) {
1513
+ function attr$2(el, name, val) {
1660
1514
 
1661
1515
  // get
1662
1516
  if (arguments.length == 2) {
@@ -1684,7 +1538,7 @@
1684
1538
  * toString reference.
1685
1539
  */
1686
1540
 
1687
- const toString = Object.prototype.toString;
1541
+ const toString$1 = Object.prototype.toString;
1688
1542
 
1689
1543
  /**
1690
1544
  * Wrap `el` in a `ClassList`.
@@ -1694,8 +1548,8 @@
1694
1548
  * @api public
1695
1549
  */
1696
1550
 
1697
- function classes(el) {
1698
- return new ClassList(el);
1551
+ function classes$1(el) {
1552
+ return new ClassList$1(el);
1699
1553
  }
1700
1554
 
1701
1555
  /**
@@ -1705,7 +1559,7 @@
1705
1559
  * @api private
1706
1560
  */
1707
1561
 
1708
- function ClassList(el) {
1562
+ function ClassList$1(el) {
1709
1563
  if (!el || !el.nodeType) {
1710
1564
  throw new Error('A DOM element reference is required');
1711
1565
  }
@@ -1721,7 +1575,7 @@
1721
1575
  * @api public
1722
1576
  */
1723
1577
 
1724
- ClassList.prototype.add = function(name) {
1578
+ ClassList$1.prototype.add = function(name) {
1725
1579
  this.list.add(name);
1726
1580
  return this;
1727
1581
  };
@@ -1736,8 +1590,8 @@
1736
1590
  * @api public
1737
1591
  */
1738
1592
 
1739
- ClassList.prototype.remove = function(name) {
1740
- if ('[object RegExp]' == toString.call(name)) {
1593
+ ClassList$1.prototype.remove = function(name) {
1594
+ if ('[object RegExp]' == toString$1.call(name)) {
1741
1595
  return this.removeMatching(name);
1742
1596
  }
1743
1597
 
@@ -1753,7 +1607,7 @@
1753
1607
  * @api private
1754
1608
  */
1755
1609
 
1756
- ClassList.prototype.removeMatching = function(re) {
1610
+ ClassList$1.prototype.removeMatching = function(re) {
1757
1611
  const arr = this.array();
1758
1612
  for (let i = 0; i < arr.length; i++) {
1759
1613
  if (re.test(arr[i])) {
@@ -1775,7 +1629,7 @@
1775
1629
  * @api public
1776
1630
  */
1777
1631
 
1778
- ClassList.prototype.toggle = function(name, force) {
1632
+ ClassList$1.prototype.toggle = function(name, force) {
1779
1633
  if ('undefined' !== typeof force) {
1780
1634
  if (force !== this.list.toggle(name, force)) {
1781
1635
  this.list.toggle(name); // toggle again to correct
@@ -1793,7 +1647,7 @@
1793
1647
  * @api public
1794
1648
  */
1795
1649
 
1796
- ClassList.prototype.array = function() {
1650
+ ClassList$1.prototype.array = function() {
1797
1651
  return Array.from(this.list);
1798
1652
  };
1799
1653
 
@@ -1805,15 +1659,15 @@
1805
1659
  * @api public
1806
1660
  */
1807
1661
 
1808
- ClassList.prototype.has =
1809
- ClassList.prototype.contains = function(name) {
1662
+ ClassList$1.prototype.has =
1663
+ ClassList$1.prototype.contains = function(name) {
1810
1664
  return this.list.contains(name);
1811
1665
  };
1812
1666
 
1813
1667
  /**
1814
1668
  * Remove all children from the given element.
1815
1669
  */
1816
- function clear(el) {
1670
+ function clear$1(el) {
1817
1671
 
1818
1672
  var c;
1819
1673
 
@@ -1956,139 +1810,707 @@
1956
1810
  return event.unbind(el, type, fn, capture);
1957
1811
  }
1958
1812
 
1959
- var delegate = {
1960
- bind,
1961
- unbind
1962
- };
1813
+ var delegate = {
1814
+ bind,
1815
+ unbind
1816
+ };
1817
+
1818
+ /**
1819
+ * Expose `parse`.
1820
+ */
1821
+
1822
+ var domify = parse$2;
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$2(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$1(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$1(element, target) {
1977
+ return target.appendChild(ensureImported$1(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$1(target, node) {
1993
+ appendTo$1(node, target);
1994
+ return target;
1995
+ }
1996
+
1997
+ /**
1998
+ * attribute accessor utility
1999
+ */
2000
+
2001
+ var LENGTH_ATTR$1 = 2;
2002
+
2003
+ var CSS_PROPERTIES$1 = {
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$1,
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$1,
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$1(node, name) {
2069
+ if (CSS_PROPERTIES$1[name]) {
2070
+ return node.style[name];
2071
+ } else {
2072
+ return node.getAttributeNS(null, name);
2073
+ }
2074
+ }
2075
+
2076
+ function setAttribute$1(node, name, value) {
2077
+ var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
2078
+
2079
+ var type = CSS_PROPERTIES$1[hyphenated];
2080
+
2081
+ if (type) {
2082
+
2083
+ // append pixel unit, unless present
2084
+ if (type === LENGTH_ATTR$1 && 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$1(node, attrs) {
2095
+
2096
+ var names = Object.keys(attrs), i, name;
2097
+
2098
+ for (i = 0, name; (name = names[i]); i++) {
2099
+ setAttribute$1(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$1(node, name, value) {
2114
+ if (typeof name === 'string') {
2115
+ if (value !== undefined) {
2116
+ setAttribute$1(node, name, value);
2117
+ } else {
2118
+ return getAttribute$1(node, name);
2119
+ }
2120
+ } else {
2121
+ setAttributes$1(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$1 = {
2287
+ svg: 'http://www.w3.org/2000/svg'
2288
+ };
2289
+
2290
+ /**
2291
+ * DOM parsing utility
2292
+ */
2293
+
2294
+ var SVG_START$1 = '<svg xmlns="' + ns$1.svg + '"';
2295
+
2296
+ function parse$1(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$1.svg) === -1) {
2303
+ svg = SVG_START$1 + svg.substring(4);
2304
+ }
2305
+ } else {
2306
+
2307
+ // namespace svg
2308
+ svg = SVG_START$1 + '>' + svg + '</svg>';
2309
+ unwrap = true;
2310
+ }
2311
+
2312
+ var parsed = parseDocument$1(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$1(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
2350
+ *
2351
+ * @returns {SVGElement}
2352
+ */
2353
+ function create$2(name, attrs) {
2354
+ var element;
2355
+
2356
+ if (name.charAt(0) === '<') {
2357
+ element = parse$1(name).firstChild;
2358
+ element = document.importNode(element, true);
2359
+ } else {
2360
+ element = document.createElementNS(ns$1.svg, name);
2361
+ }
2362
+
2363
+ if (attrs) {
2364
+ attr$1(element, attrs);
2365
+ }
2366
+
2367
+ return element;
2368
+ }
2369
+
2370
+ /**
2371
+ * Serialization util
2372
+ */
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;
2388
+ }
2389
+
2390
+ return str.replace(pattern, replaceFn);
2391
+ }
2392
+
2393
+ function serialize(node, output) {
2394
+
2395
+ var i, len, attrMap, attrNode, childNodes;
2396
+
2397
+ switch (node.nodeType) {
2398
+
2399
+ // TEXT
2400
+ case 3:
2401
+
2402
+ // replace special XML characters
2403
+ output.push(escape$1(node.textContent, TEXT_ENTITIES));
2404
+ break;
2405
+
2406
+ // ELEMENT
2407
+ case 1:
2408
+ output.push('<', node.tagName);
2409
+
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
+ }
2417
+
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;
1963
2429
 
1964
- /**
1965
- * Expose `parse`.
1966
- */
2430
+ // COMMENT
2431
+ case 8:
2432
+ output.push('<!--', escape$1(node.nodeValue, TEXT_ENTITIES), '-->');
2433
+ break;
1967
2434
 
1968
- var domify = parse$1;
2435
+ // CDATA
2436
+ case 4:
2437
+ output.push('<![CDATA[', node.nodeValue, ']]>');
2438
+ break;
1969
2439
 
1970
- /**
1971
- * Tests for browser support.
1972
- */
2440
+ default:
2441
+ throw new Error('unable to handle node ' + node.nodeType);
2442
+ }
1973
2443
 
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;
2444
+ return output;
1984
2445
  }
1985
2446
 
1986
2447
  /**
1987
- * Wrap map from jquery.
2448
+ * innerHTML like functionality for SVG elements.
2449
+ * based on innerSVG (https://code.google.com/p/innersvg)
1988
2450
  */
1989
2451
 
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
- };
1998
-
1999
- map.td =
2000
- map.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
2001
-
2002
- map.option =
2003
- map.optgroup = [1, '<select multiple="multiple">', '</select>'];
2004
-
2005
- map.thead =
2006
- map.tbody =
2007
- map.colgroup =
2008
- map.caption =
2009
- map.tfoot = [1, '<table>', '</table>'];
2010
2452
 
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>'];
2453
+ function set$1(element, svg) {
2020
2454
 
2021
- /**
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
2030
- */
2455
+ var parsed = parse$1(svg);
2031
2456
 
2032
- function parse$1(html, doc) {
2033
- if ('string' != typeof html) throw new TypeError('String expected');
2457
+ // clear element contents
2458
+ clear(element);
2034
2459
 
2035
- // default to the global `document` object
2036
- if (!doc) doc = document;
2460
+ if (!svg) {
2461
+ return;
2462
+ }
2037
2463
 
2038
- // tag name
2039
- var m = /<([\w:]+)/.exec(html);
2040
- if (!m) return doc.createTextNode(html);
2464
+ if (!isFragment(parsed)) {
2041
2465
 
2042
- html = html.replace(/^\s+|\s+$/g, ''); // Remove leading/trailing whitespace
2466
+ // extract <svg> from parsed document
2467
+ parsed = parsed.documentElement;
2468
+ }
2043
2469
 
2044
- var tag = m[1];
2470
+ var nodes = slice$1(parsed.childNodes);
2045
2471
 
2046
- // body support
2047
- if (tag == 'body') {
2048
- var el = doc.createElement('html');
2049
- el.innerHTML = html;
2050
- return el.removeChild(el.lastChild);
2472
+ // import + append each node
2473
+ for (var i = 0; i < nodes.length; i++) {
2474
+ appendTo$1(nodes[i], element);
2051
2475
  }
2052
2476
 
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;
2477
+ }
2061
2478
 
2062
- // one element
2063
- if (el.firstChild == el.lastChild) {
2064
- return el.removeChild(el.firstChild);
2065
- }
2479
+ function get(element) {
2480
+ var child = element.firstChild,
2481
+ output = [];
2066
2482
 
2067
- // several elements
2068
- var fragment = doc.createDocumentFragment();
2069
- while (el.firstChild) {
2070
- fragment.appendChild(el.removeChild(el.firstChild));
2483
+ while (child) {
2484
+ serialize(child, output);
2485
+ child = child.nextSibling;
2071
2486
  }
2072
2487
 
2073
- return fragment;
2488
+ return output.join('');
2074
2489
  }
2075
2490
 
2076
- var domify$1 = domify;
2491
+ function isFragment(node) {
2492
+ return node.nodeName === '#document-fragment';
2493
+ }
2077
2494
 
2078
- function query(selector, el) {
2079
- el = el || document;
2495
+ function innerSVG(element, svg) {
2080
2496
 
2081
- return el.querySelector(selector);
2082
- }
2497
+ if (svg !== undefined) {
2083
2498
 
2084
- function all(selector, el) {
2085
- el = el || document;
2499
+ try {
2500
+ set$1(element, svg);
2501
+ } catch (e) {
2502
+ throw new Error('error parsing SVG: ' + e.message);
2503
+ }
2086
2504
 
2087
- return el.querySelectorAll(selector);
2505
+ return element;
2506
+ } else {
2507
+ return get(element);
2508
+ }
2088
2509
  }
2089
2510
 
2090
- function remove$1(el) {
2091
- el.parentNode && el.parentNode.removeChild(el);
2511
+
2512
+ function slice$1(arr) {
2513
+ return Array.prototype.slice.call(arr);
2092
2514
  }
2093
2515
 
2094
2516
  /**
@@ -2313,7 +2735,7 @@
2313
2735
  config, eventBus, styles, pathMap,
2314
2736
  canvas, textRenderer, priority) {
2315
2737
 
2316
- BaseRenderer$1.call(this, eventBus, priority);
2738
+ BaseRenderer.call(this, eventBus, priority);
2317
2739
 
2318
2740
  var defaultFillColor = config && config.defaultFillColor,
2319
2741
  defaultStrokeColor = config && config.defaultStrokeColor,
@@ -2345,11 +2767,11 @@
2345
2767
 
2346
2768
  var marker = create$2('marker');
2347
2769
 
2348
- attr$2(options.element, attrs);
2770
+ attr$1(options.element, attrs);
2349
2771
 
2350
2772
  append$1(marker, options.element);
2351
2773
 
2352
- attr$2(marker, {
2774
+ attr$1(marker, {
2353
2775
  id: id,
2354
2776
  viewBox: '0 0 20 20',
2355
2777
  refX: ref.x,
@@ -2392,7 +2814,7 @@
2392
2814
 
2393
2815
  if (type === 'sequenceflow-end') {
2394
2816
  var sequenceflowEnd = create$2('path');
2395
- attr$2(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2817
+ attr$1(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2396
2818
 
2397
2819
  addMarker(id, {
2398
2820
  element: sequenceflowEnd,
@@ -2407,7 +2829,7 @@
2407
2829
 
2408
2830
  if (type === 'messageflow-start') {
2409
2831
  var messageflowStart = create$2('circle');
2410
- attr$2(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2832
+ attr$1(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2411
2833
 
2412
2834
  addMarker(id, {
2413
2835
  element: messageflowStart,
@@ -2421,7 +2843,7 @@
2421
2843
 
2422
2844
  if (type === 'messageflow-end') {
2423
2845
  var messageflowEnd = create$2('path');
2424
- attr$2(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2846
+ attr$1(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2425
2847
 
2426
2848
  addMarker(id, {
2427
2849
  element: messageflowEnd,
@@ -2436,7 +2858,7 @@
2436
2858
 
2437
2859
  if (type === 'association-start') {
2438
2860
  var associationStart = create$2('path');
2439
- attr$2(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2861
+ attr$1(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2440
2862
 
2441
2863
  addMarker(id, {
2442
2864
  element: associationStart,
@@ -2452,7 +2874,7 @@
2452
2874
 
2453
2875
  if (type === 'association-end') {
2454
2876
  var associationEnd = create$2('path');
2455
- attr$2(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2877
+ attr$1(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2456
2878
 
2457
2879
  addMarker(id, {
2458
2880
  element: associationEnd,
@@ -2468,7 +2890,7 @@
2468
2890
 
2469
2891
  if (type === 'conditional-flow-marker') {
2470
2892
  var conditionalflowMarker = create$2('path');
2471
- attr$2(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2893
+ attr$1(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2472
2894
 
2473
2895
  addMarker(id, {
2474
2896
  element: conditionalflowMarker,
@@ -2483,7 +2905,7 @@
2483
2905
 
2484
2906
  if (type === 'conditional-default-flow-marker') {
2485
2907
  var conditionaldefaultflowMarker = create$2('path');
2486
- attr$2(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2908
+ attr$1(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2487
2909
 
2488
2910
  addMarker(id, {
2489
2911
  element: conditionaldefaultflowMarker,
@@ -2519,12 +2941,12 @@
2519
2941
  cy = height / 2;
2520
2942
 
2521
2943
  var circle = create$2('circle');
2522
- attr$2(circle, {
2944
+ attr$1(circle, {
2523
2945
  cx: cx,
2524
2946
  cy: cy,
2525
2947
  r: Math.round((width + height) / 4 - offset)
2526
2948
  });
2527
- attr$2(circle, attrs);
2949
+ attr$1(circle, attrs);
2528
2950
 
2529
2951
  append$1(parentGfx, circle);
2530
2952
 
@@ -2547,7 +2969,7 @@
2547
2969
  });
2548
2970
 
2549
2971
  var rect = create$2('rect');
2550
- attr$2(rect, {
2972
+ attr$1(rect, {
2551
2973
  x: offset,
2552
2974
  y: offset,
2553
2975
  width: width - offset * 2,
@@ -2555,7 +2977,7 @@
2555
2977
  rx: r,
2556
2978
  ry: r
2557
2979
  });
2558
- attr$2(rect, attrs);
2980
+ attr$1(rect, attrs);
2559
2981
 
2560
2982
  append$1(parentGfx, rect);
2561
2983
 
@@ -2580,10 +3002,10 @@
2580
3002
  });
2581
3003
 
2582
3004
  var polygon = create$2('polygon');
2583
- attr$2(polygon, {
3005
+ attr$1(polygon, {
2584
3006
  points: pointsString
2585
3007
  });
2586
- attr$2(polygon, attrs);
3008
+ attr$1(polygon, attrs);
2587
3009
 
2588
3010
  append$1(parentGfx, polygon);
2589
3011
 
@@ -2612,8 +3034,8 @@
2612
3034
  });
2613
3035
 
2614
3036
  var path = create$2('path');
2615
- attr$2(path, { d: d });
2616
- attr$2(path, attrs);
3037
+ attr$1(path, { d: d });
3038
+ attr$1(path, attrs);
2617
3039
 
2618
3040
  append$1(parentGfx, path);
2619
3041
 
@@ -2701,7 +3123,7 @@
2701
3123
 
2702
3124
  var text = textRenderer.createText(label || '', options);
2703
3125
 
2704
- classes$1(text).add('djs-label');
3126
+ classes(text).add('djs-label');
2705
3127
 
2706
3128
  append$1(parentGfx, text);
2707
3129
 
@@ -3313,7 +3735,7 @@
3313
3735
  });
3314
3736
 
3315
3737
  var businessHeaderPath = drawPath(parentGfx, headerPathData);
3316
- attr$2(businessHeaderPath, {
3738
+ attr$1(businessHeaderPath, {
3317
3739
  strokeWidth: 1,
3318
3740
  fill: getFillColor(element, '#aaaaaa'),
3319
3741
  stroke: getStrokeColor(element, defaultStrokeColor)
@@ -3327,7 +3749,7 @@
3327
3749
  });
3328
3750
 
3329
3751
  var businessPath = drawPath(parentGfx, headerData);
3330
- attr$2(businessPath, {
3752
+ attr$1(businessPath, {
3331
3753
  strokeWidth: 1,
3332
3754
  stroke: getStrokeColor(element, defaultStrokeColor)
3333
3755
  });
@@ -3345,7 +3767,7 @@
3345
3767
  var expanded = isExpanded(element);
3346
3768
 
3347
3769
  if (isEventSubProcess(element)) {
3348
- attr$2(rect, {
3770
+ attr$1(rect, {
3349
3771
  strokeDasharray: '1,2'
3350
3772
  });
3351
3773
  }
@@ -3567,7 +3989,7 @@
3567
3989
  });
3568
3990
 
3569
3991
  var parallelPath = drawPath(parentGfx, pathData);
3570
- attr$2(parallelPath, {
3992
+ attr$1(parallelPath, {
3571
3993
  strokeWidth: 1,
3572
3994
  fill: 'none'
3573
3995
  });
@@ -3575,7 +3997,7 @@
3575
3997
 
3576
3998
  if (!instantiate) {
3577
3999
  var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26);
3578
- attr$2(innerCircle, {
4000
+ attr$1(innerCircle, {
3579
4001
  strokeWidth: 1,
3580
4002
  fill: 'none',
3581
4003
  stroke: getStrokeColor(element, defaultStrokeColor)
@@ -3620,7 +4042,7 @@
3620
4042
 
3621
4043
  // conditional flow marker
3622
4044
  if (sequenceFlow.conditionExpression && source.$instanceOf('bpmn:Activity')) {
3623
- attr$2(path, {
4045
+ attr$1(path, {
3624
4046
  markerStart: marker('conditional-flow-marker', fill, stroke)
3625
4047
  });
3626
4048
  }
@@ -3628,7 +4050,7 @@
3628
4050
  // default marker
3629
4051
  if (source.default && (source.$instanceOf('bpmn:Gateway') || source.$instanceOf('bpmn:Activity')) &&
3630
4052
  source.default === sequenceFlow) {
3631
- attr$2(path, {
4053
+ attr$1(path, {
3632
4054
  markerStart: marker('conditional-default-flow-marker', fill, stroke)
3633
4055
  });
3634
4056
  }
@@ -4118,7 +4540,7 @@
4118
4540
  }
4119
4541
 
4120
4542
 
4121
- e(BpmnRenderer, BaseRenderer$1);
4543
+ e(BpmnRenderer, BaseRenderer);
4122
4544
 
4123
4545
  BpmnRenderer.$inject = [
4124
4546
  'config.bpmnRenderer',
@@ -4346,9 +4768,9 @@
4346
4768
  var helperSvg = document.getElementById('helper-svg');
4347
4769
 
4348
4770
  if (!helperSvg) {
4349
- helperSvg = create$2('svg');
4771
+ helperSvg = create$3('svg');
4350
4772
 
4351
- attr$2(helperSvg, {
4773
+ attr$3(helperSvg, {
4352
4774
  id: 'helper-svg'
4353
4775
  });
4354
4776
 
@@ -4442,13 +4864,13 @@
4442
4864
  var maxWidth = box.width - padding.left - padding.right;
4443
4865
 
4444
4866
  // ensure correct rendering by attaching helper text node to invisible SVG
4445
- var helperText = create$2('text');
4446
- attr$2(helperText, { x: 0, y: 0 });
4447
- attr$2(helperText, style);
4867
+ var helperText = create$3('text');
4868
+ attr$3(helperText, { x: 0, y: 0 });
4869
+ attr$3(helperText, style);
4448
4870
 
4449
4871
  var helperSvg = getHelperSvg();
4450
4872
 
4451
- append$1(helperSvg, helperText);
4873
+ append$2(helperSvg, helperText);
4452
4874
 
4453
4875
  while (lines.length) {
4454
4876
  layouted.push(layoutNext(lines, maxWidth, helperText));
@@ -4477,9 +4899,9 @@
4477
4899
  y -= (lineHeight || layouted[0].height) / 4;
4478
4900
 
4479
4901
 
4480
- var textElement = create$2('text');
4902
+ var textElement = create$3('text');
4481
4903
 
4482
- attr$2(textElement, style);
4904
+ attr$3(textElement, style);
4483
4905
 
4484
4906
  // layout each line taking into account that parent
4485
4907
  // shape might resize to fit text size
@@ -4506,15 +4928,15 @@
4506
4928
  - line.width) / 2 + padding.left), 0);
4507
4929
  }
4508
4930
 
4509
- var tspan = create$2('tspan');
4510
- attr$2(tspan, { x: x, y: y });
4931
+ var tspan = create$3('tspan');
4932
+ attr$3(tspan, { x: x, y: y });
4511
4933
 
4512
4934
  tspan.textContent = line.text;
4513
4935
 
4514
- append$1(textElement, tspan);
4936
+ append$2(textElement, tspan);
4515
4937
  });
4516
4938
 
4517
- remove$2(helperText);
4939
+ remove$3(helperText);
4518
4940
 
4519
4941
  var dimensions = {
4520
4942
  width: maxLineWidth,
@@ -6106,13 +6528,13 @@
6106
6528
  throw new Error('invalid hit type <' + type + '>');
6107
6529
  }
6108
6530
 
6109
- attr$2(hit, attrs);
6531
+ attr$3(hit, attrs);
6110
6532
 
6111
6533
  return hit;
6112
6534
  }
6113
6535
 
6114
6536
  function appendHit(gfx, hit) {
6115
- append$1(gfx, hit);
6537
+ append$2(gfx, hit);
6116
6538
  }
6117
6539
 
6118
6540
 
@@ -6126,7 +6548,7 @@
6126
6548
  this.removeHits = function(gfx) {
6127
6549
  var hits = all('.djs-hit', gfx);
6128
6550
 
6129
- forEach$1(hits, remove$2);
6551
+ forEach$1(hits, remove$3);
6130
6552
  };
6131
6553
 
6132
6554
  /**
@@ -6190,11 +6612,11 @@
6190
6612
  y: 0
6191
6613
  }, attrs);
6192
6614
 
6193
- var hit = create$2('rect');
6615
+ var hit = create$3('rect');
6194
6616
 
6195
6617
  applyStyle(hit, type);
6196
6618
 
6197
- attr$2(hit, attrs);
6619
+ attr$3(hit, attrs);
6198
6620
 
6199
6621
  appendHit(gfx, hit);
6200
6622
 
@@ -6220,7 +6642,7 @@
6220
6642
  if (element.waypoints) {
6221
6643
  updateLine(hit, element.waypoints);
6222
6644
  } else {
6223
- attr$2(hit, {
6645
+ attr$3(hit, {
6224
6646
  width: element.width,
6225
6647
  height: element.height
6226
6648
  });
@@ -6428,9 +6850,9 @@
6428
6850
  var self = this;
6429
6851
 
6430
6852
  function createOutline(gfx, bounds) {
6431
- var outline = create$2('rect');
6853
+ var outline = create$3('rect');
6432
6854
 
6433
- attr$2(outline, assign$1({
6855
+ attr$3(outline, assign$1({
6434
6856
  x: 10,
6435
6857
  y: 10,
6436
6858
  rx: 3,
@@ -6438,7 +6860,7 @@
6438
6860
  height: 100
6439
6861
  }, OUTLINE_STYLE));
6440
6862
 
6441
- append$1(gfx, outline);
6863
+ append$2(gfx, outline);
6442
6864
 
6443
6865
  return outline;
6444
6866
  }
@@ -6482,7 +6904,7 @@
6482
6904
  */
6483
6905
  Outline.prototype.updateShapeOutline = function(outline, element) {
6484
6906
 
6485
- attr$2(outline, {
6907
+ attr$3(outline, {
6486
6908
  x: -this.offset,
6487
6909
  y: -this.offset,
6488
6910
  width: element.width + this.offset * 2,
@@ -6503,7 +6925,7 @@
6503
6925
 
6504
6926
  var bbox = getBBox(connection);
6505
6927
 
6506
- attr$2(outline, {
6928
+ attr$3(outline, {
6507
6929
  x: bbox.x - this.offset,
6508
6930
  y: bbox.y - this.offset,
6509
6931
  width: bbox.width + this.offset * 2,
@@ -6707,13 +7129,13 @@
6707
7129
  SelectionVisuals.prototype._updateSelectionOutline = function(selection) {
6708
7130
  var layer = this._canvas.getLayer('selectionOutline');
6709
7131
 
6710
- clear$1(layer);
7132
+ clear$2(layer);
6711
7133
 
6712
7134
  var enabled = selection.length > 1;
6713
7135
 
6714
7136
  var container = this._canvas.getContainer();
6715
7137
 
6716
- classes$1(container)[enabled ? 'add' : 'remove']('djs-multi-select');
7138
+ classes$2(container)[enabled ? 'add' : 'remove']('djs-multi-select');
6717
7139
 
6718
7140
  if (!enabled) {
6719
7141
  return;
@@ -6721,15 +7143,15 @@
6721
7143
 
6722
7144
  var bBox = addSelectionOutlinePadding(getBBox(selection));
6723
7145
 
6724
- var rect = create$2('rect');
7146
+ var rect = create$3('rect');
6725
7147
 
6726
- attr$2(rect, assign$1({
7148
+ attr$3(rect, assign$1({
6727
7149
  rx: 3
6728
7150
  }, bBox));
6729
7151
 
6730
- classes$1(rect).add('djs-selection-outline');
7152
+ classes$2(rect).add('djs-selection-outline');
6731
7153
 
6732
- append$1(layer, rect);
7154
+ append$2(layer, rect);
6733
7155
  };
6734
7156
 
6735
7157
  // helpers //////////
@@ -7138,8 +7560,8 @@
7138
7560
  var container = self._getOverlayContainer(overlay.element, true);
7139
7561
 
7140
7562
  if (overlay) {
7141
- remove$1(overlay.html);
7142
- remove$1(overlay.htmlContainer);
7563
+ remove$2(overlay.html);
7564
+ remove$2(overlay.htmlContainer);
7143
7565
 
7144
7566
  delete overlay.htmlContainer;
7145
7567
  delete overlay.element;
@@ -7172,7 +7594,7 @@
7172
7594
 
7173
7595
  this._overlayContainers = [];
7174
7596
 
7175
- clear(this._overlayRoot);
7597
+ clear$1(this._overlayRoot);
7176
7598
  };
7177
7599
 
7178
7600
  Overlays.prototype._updateOverlayContainer = function(container) {
@@ -7193,7 +7615,7 @@
7193
7615
 
7194
7616
  setPosition(html, x, y);
7195
7617
 
7196
- attr$1(container.html, 'data-container-id', element.id);
7618
+ attr$2(container.html, 'data-container-id', element.id);
7197
7619
  };
7198
7620
 
7199
7621
 
@@ -7320,7 +7742,7 @@
7320
7742
  htmlContainer.appendChild(html);
7321
7743
 
7322
7744
  if (overlay.type) {
7323
- classes(htmlContainer).add('djs-overlay-' + overlay.type);
7745
+ classes$1(htmlContainer).add('djs-overlay-' + overlay.type);
7324
7746
  }
7325
7747
 
7326
7748
  var elementRoot = this._canvas.findRoot(element);
@@ -7449,7 +7871,7 @@
7449
7871
  var container = self._getOverlayContainer(element);
7450
7872
 
7451
7873
  if (container) {
7452
- remove$1(container.html);
7874
+ remove$2(container.html);
7453
7875
  var i = self._overlayContainers.indexOf(container);
7454
7876
  if (i !== -1) {
7455
7877
  self._overlayContainers.splice(i, 1);
@@ -7480,7 +7902,7 @@
7480
7902
  eventBus.on('element.marker.update', function(e) {
7481
7903
  var container = self._getOverlayContainer(e.element, true);
7482
7904
  if (container) {
7483
- classes(container.html)[e.add ? 'add' : 'remove'](e.marker);
7905
+ classes$1(container.html)[e.add ? 'add' : 'remove'](e.marker);
7484
7906
  }
7485
7907
  });
7486
7908
 
@@ -7945,7 +8367,7 @@
7945
8367
  function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays, canvas) {
7946
8368
  var breadcrumbs = domify$1('<ul class="bjs-breadcrumbs"></ul>');
7947
8369
  var container = canvas.getContainer();
7948
- var containerClasses = classes(container);
8370
+ var containerClasses = classes$1(container);
7949
8371
  container.appendChild(breadcrumbs);
7950
8372
 
7951
8373
  var boParents = [];
@@ -8501,7 +8923,7 @@
8501
8923
  }
8502
8924
 
8503
8925
  var hasContent = bo && bo.flowElements && bo.flowElements.length;
8504
- classes(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8926
+ classes$1(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8505
8927
  };
8506
8928
 
8507
8929
  /**
@@ -9027,7 +9449,7 @@
9027
9449
 
9028
9450
  // apply default renderer with lowest possible priority
9029
9451
  // so that it only kicks in if noone else could render
9030
- var DEFAULT_RENDER_PRIORITY$1 = 1;
9452
+ var DEFAULT_RENDER_PRIORITY = 1;
9031
9453
 
9032
9454
  /**
9033
9455
  * The default renderer used for shapes and connections.
@@ -9038,14 +9460,14 @@
9038
9460
  function DefaultRenderer(eventBus, styles) {
9039
9461
 
9040
9462
  //
9041
- BaseRenderer$1.call(this, eventBus, DEFAULT_RENDER_PRIORITY$1);
9463
+ BaseRenderer.call(this, eventBus, DEFAULT_RENDER_PRIORITY);
9042
9464
 
9043
9465
  this.CONNECTION_STYLE = styles.style([ 'no-fill' ], { strokeWidth: 5, stroke: 'fuchsia' });
9044
9466
  this.SHAPE_STYLE = styles.style({ fill: 'white', stroke: 'fuchsia', strokeWidth: 2 });
9045
9467
  this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });
9046
9468
  }
9047
9469
 
9048
- e(DefaultRenderer, BaseRenderer$1);
9470
+ e(DefaultRenderer, BaseRenderer);
9049
9471
 
9050
9472
 
9051
9473
  DefaultRenderer.prototype.canRender = function() {
@@ -9053,9 +9475,9 @@
9053
9475
  };
9054
9476
 
9055
9477
  DefaultRenderer.prototype.drawShape = function drawShape(visuals, element, attrs) {
9056
- var rect = create$2('rect');
9478
+ var rect = create$3('rect');
9057
9479
 
9058
- attr$2(rect, {
9480
+ attr$3(rect, {
9059
9481
  x: 0,
9060
9482
  y: 0,
9061
9483
  width: element.width || 0,
@@ -9063,12 +9485,12 @@
9063
9485
  });
9064
9486
 
9065
9487
  if (isFrameElement(element)) {
9066
- attr$2(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9488
+ attr$3(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9067
9489
  } else {
9068
- attr$2(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9490
+ attr$3(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9069
9491
  }
9070
9492
 
9071
- append$1(visuals, rect);
9493
+ append$2(visuals, rect);
9072
9494
 
9073
9495
  return rect;
9074
9496
  };
@@ -9076,7 +9498,7 @@
9076
9498
  DefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection, attrs) {
9077
9499
 
9078
9500
  var line = createLine(connection.waypoints, assign$1({}, this.CONNECTION_STYLE, attrs || {}));
9079
- append$1(visuals, line);
9501
+ append$2(visuals, line);
9080
9502
 
9081
9503
  return line;
9082
9504
  };
@@ -9314,8 +9736,8 @@
9314
9736
  }
9315
9737
 
9316
9738
  function createGroup(parent, cls, childIndex) {
9317
- const group = create$2('g');
9318
- classes$1(group).add(cls);
9739
+ const group = create$3('g');
9740
+ classes$2(group).add(cls);
9319
9741
 
9320
9742
  const index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;
9321
9743
 
@@ -9393,10 +9815,10 @@
9393
9815
  // html container
9394
9816
  const container = this._container = createContainer(config);
9395
9817
 
9396
- const svg = this._svg = create$2('svg');
9397
- attr$2(svg, { width: '100%', height: '100%' });
9818
+ const svg = this._svg = create$3('svg');
9819
+ attr$3(svg, { width: '100%', height: '100%' });
9398
9820
 
9399
- append$1(container, svg);
9821
+ append$2(container, svg);
9400
9822
 
9401
9823
  const viewport = this._viewport = createGroup(svg, 'viewport');
9402
9824
 
@@ -9634,7 +10056,7 @@
9634
10056
  return group;
9635
10057
  }
9636
10058
 
9637
- remove$2(group);
10059
+ remove$3(group);
9638
10060
 
9639
10061
  layer.visible = false;
9640
10062
 
@@ -9649,7 +10071,7 @@
9649
10071
  if (layer) {
9650
10072
  delete this._layers[name];
9651
10073
 
9652
- remove$2(layer.group);
10074
+ remove$3(layer.group);
9653
10075
  }
9654
10076
  };
9655
10077
 
@@ -9742,9 +10164,9 @@
9742
10164
 
9743
10165
  // invoke either addClass or removeClass based on mode
9744
10166
  if (add) {
9745
- classes$1(gfx).add(marker);
10167
+ classes$2(gfx).add(marker);
9746
10168
  } else {
9747
- classes$1(gfx).remove(marker);
10169
+ classes$2(gfx).remove(marker);
9748
10170
  }
9749
10171
  }
9750
10172
  });
@@ -9810,7 +10232,7 @@
9810
10232
 
9811
10233
  const gfx = this.getGraphics(element);
9812
10234
 
9813
- return classes$1(gfx).has(marker);
10235
+ return classes$2(gfx).has(marker);
9814
10236
  };
9815
10237
 
9816
10238
  /**
@@ -10708,10 +11130,10 @@
10708
11130
  this._validateId(id);
10709
11131
 
10710
11132
  // associate dom node with element
10711
- attr$2(gfx, ELEMENT_ID, id);
11133
+ attr$3(gfx, ELEMENT_ID, id);
10712
11134
 
10713
11135
  if (secondaryGfx) {
10714
- attr$2(secondaryGfx, ELEMENT_ID, id);
11136
+ attr$3(secondaryGfx, ELEMENT_ID, id);
10715
11137
  }
10716
11138
 
10717
11139
  this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };
@@ -10730,10 +11152,10 @@
10730
11152
  if (container) {
10731
11153
 
10732
11154
  // unset element id on gfx
10733
- attr$2(container.gfx, ELEMENT_ID, '');
11155
+ attr$3(container.gfx, ELEMENT_ID, '');
10734
11156
 
10735
11157
  if (container.secondaryGfx) {
10736
- attr$2(container.secondaryGfx, ELEMENT_ID, '');
11158
+ attr$3(container.secondaryGfx, ELEMENT_ID, '');
10737
11159
  }
10738
11160
 
10739
11161
  delete elements[id];
@@ -10788,7 +11210,7 @@
10788
11210
  }
10789
11211
 
10790
11212
  if (gfx) {
10791
- attr$2(gfx, ELEMENT_ID, id);
11213
+ attr$3(gfx, ELEMENT_ID, id);
10792
11214
  }
10793
11215
 
10794
11216
  return gfx;
@@ -10813,7 +11235,7 @@
10813
11235
  if (typeof filter === 'string') {
10814
11236
  id = filter;
10815
11237
  } else {
10816
- id = filter && attr$2(filter, ELEMENT_ID);
11238
+ id = filter && attr$3(filter, ELEMENT_ID);
10817
11239
  }
10818
11240
 
10819
11241
  var container = this._elements[id];
@@ -12096,10 +12518,10 @@
12096
12518
  } else {
12097
12519
  childrenGfx = getChildren(gfx);
12098
12520
  if (!childrenGfx) {
12099
- childrenGfx = create$2('g');
12100
- classes$1(childrenGfx).add('djs-children');
12521
+ childrenGfx = create$3('g');
12522
+ classes$2(childrenGfx).add('djs-children');
12101
12523
 
12102
- append$1(gfx.parentNode, childrenGfx);
12524
+ append$2(gfx.parentNode, childrenGfx);
12103
12525
  }
12104
12526
  }
12105
12527
 
@@ -12113,7 +12535,7 @@
12113
12535
  GraphicsFactory.prototype._clear = function(gfx) {
12114
12536
  var visual = getVisual(gfx);
12115
12537
 
12116
- clear(visual);
12538
+ clear$1(visual);
12117
12539
 
12118
12540
  return visual;
12119
12541
  };
@@ -12148,31 +12570,31 @@
12148
12570
  GraphicsFactory.prototype._createContainer = function(
12149
12571
  type, childrenGfx, parentIndex, isFrame
12150
12572
  ) {
12151
- var outerGfx = create$2('g');
12152
- classes$1(outerGfx).add('djs-group');
12573
+ var outerGfx = create$3('g');
12574
+ classes$2(outerGfx).add('djs-group');
12153
12575
 
12154
12576
  // insert node at position
12155
12577
  if (typeof parentIndex !== 'undefined') {
12156
12578
  prependTo(outerGfx, childrenGfx, childrenGfx.childNodes[parentIndex]);
12157
12579
  } else {
12158
- append$1(childrenGfx, outerGfx);
12580
+ append$2(childrenGfx, outerGfx);
12159
12581
  }
12160
12582
 
12161
- var gfx = create$2('g');
12162
- classes$1(gfx).add('djs-element');
12163
- classes$1(gfx).add('djs-' + type);
12583
+ var gfx = create$3('g');
12584
+ classes$2(gfx).add('djs-element');
12585
+ classes$2(gfx).add('djs-' + type);
12164
12586
 
12165
12587
  if (isFrame) {
12166
- classes$1(gfx).add('djs-frame');
12588
+ classes$2(gfx).add('djs-frame');
12167
12589
  }
12168
12590
 
12169
- append$1(outerGfx, gfx);
12591
+ append$2(outerGfx, gfx);
12170
12592
 
12171
12593
  // create visual
12172
- var visual = create$2('g');
12173
- classes$1(visual).add('djs-visual');
12594
+ var visual = create$3('g');
12595
+ classes$2(visual).add('djs-visual');
12174
12596
 
12175
- append$1(gfx, visual);
12597
+ append$2(gfx, visual);
12176
12598
 
12177
12599
  return gfx;
12178
12600
  };
@@ -12264,9 +12686,9 @@
12264
12686
  }
12265
12687
 
12266
12688
  if (element.hidden) {
12267
- attr$2(gfx, 'display', 'none');
12689
+ attr$3(gfx, 'display', 'none');
12268
12690
  } else {
12269
- attr$2(gfx, 'display', 'block');
12691
+ attr$3(gfx, 'display', 'block');
12270
12692
  }
12271
12693
  };
12272
12694
 
@@ -12274,7 +12696,7 @@
12274
12696
  var gfx = this._elementRegistry.getGraphics(element);
12275
12697
 
12276
12698
  // remove
12277
- remove$2(gfx.parentNode);
12699
+ remove$3(gfx.parentNode);
12278
12700
  };
12279
12701
 
12280
12702
 
@@ -21291,7 +21713,7 @@
21291
21713
  Diagram.prototype.destroy.call(this);
21292
21714
 
21293
21715
  // dom detach
21294
- remove$1(this._container);
21716
+ remove$2(this._container);
21295
21717
  };
21296
21718
 
21297
21719
  /**
@@ -22140,12 +22562,12 @@
22140
22562
 
22141
22563
 
22142
22564
  function set(mode) {
22143
- var classes$1 = classes(document.body);
22565
+ var classes = classes$1(document.body);
22144
22566
 
22145
- classes$1.removeMatching(CURSOR_CLS_PATTERN);
22567
+ classes.removeMatching(CURSOR_CLS_PATTERN);
22146
22568
 
22147
22569
  if (mode) {
22148
- classes$1.add('djs-cursor-' + mode);
22570
+ classes.add('djs-cursor-' + mode);
22149
22571
  }
22150
22572
  }
22151
22573
 
@@ -22578,93 +23000,6 @@
22578
23000
  NavigatedViewer$1.prototype._navigationModules
22579
23001
  );
22580
23002
 
22581
- var DEFAULT_RENDER_PRIORITY = 1000;
22582
-
22583
- /**
22584
- * The base implementation of shape and connection renderers.
22585
- *
22586
- * @param {EventBus} eventBus
22587
- * @param {number} [renderPriority=1000]
22588
- */
22589
- function BaseRenderer(eventBus, renderPriority) {
22590
- var self = this;
22591
-
22592
- renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY;
22593
-
22594
- eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {
22595
- var type = evt.type,
22596
- element = context.element,
22597
- visuals = context.gfx,
22598
- attrs = context.attrs;
22599
-
22600
- if (self.canRender(element)) {
22601
- if (type === 'render.shape') {
22602
- return self.drawShape(visuals, element, attrs);
22603
- } else {
22604
- return self.drawConnection(visuals, element, attrs);
22605
- }
22606
- }
22607
- });
22608
-
22609
- eventBus.on([ 'render.getShapePath', 'render.getConnectionPath' ], renderPriority, function(evt, element) {
22610
- if (self.canRender(element)) {
22611
- if (evt.type === 'render.getShapePath') {
22612
- return self.getShapePath(element);
22613
- } else {
22614
- return self.getConnectionPath(element);
22615
- }
22616
- }
22617
- });
22618
- }
22619
-
22620
- /**
22621
- * Should check whether *this* renderer can render
22622
- * the element/connection.
22623
- *
22624
- * @param {element} element
22625
- *
22626
- * @returns {boolean}
22627
- */
22628
- BaseRenderer.prototype.canRender = function() {};
22629
-
22630
- /**
22631
- * Provides the shape's snap svg element to be drawn on the `canvas`.
22632
- *
22633
- * @param {djs.Graphics} visuals
22634
- * @param {Shape} shape
22635
- *
22636
- * @returns {Snap.svg} [returns a Snap.svg paper element ]
22637
- */
22638
- BaseRenderer.prototype.drawShape = function() {};
22639
-
22640
- /**
22641
- * Provides the shape's snap svg element to be drawn on the `canvas`.
22642
- *
22643
- * @param {djs.Graphics} visuals
22644
- * @param {Connection} connection
22645
- *
22646
- * @returns {Snap.svg} [returns a Snap.svg paper element ]
22647
- */
22648
- BaseRenderer.prototype.drawConnection = function() {};
22649
-
22650
- /**
22651
- * Gets the SVG path of a shape that represents it's visual bounds.
22652
- *
22653
- * @param {Shape} shape
22654
- *
22655
- * @return {string} svg path
22656
- */
22657
- BaseRenderer.prototype.getShapePath = function() {};
22658
-
22659
- /**
22660
- * Gets the SVG path of a connection that represents it's visual bounds.
22661
- *
22662
- * @param {Connection} connection
22663
- *
22664
- * @return {string} svg path
22665
- */
22666
- BaseRenderer.prototype.getConnectionPath = function() {};
22667
-
22668
23003
  function ensureImported(element, target) {
22669
23004
 
22670
23005
  if (element.ownerDocument !== target.ownerDocument) {
@@ -23320,6 +23655,11 @@
23320
23655
  name: "candidateGroups",
23321
23656
  type: "String",
23322
23657
  isAttr: true
23658
+ },
23659
+ {
23660
+ name: "candidateUsers",
23661
+ type: "String",
23662
+ isAttr: true
23323
23663
  }
23324
23664
  ]
23325
23665
  },