camunda-bpmn-js 0.21.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/base-modeler.development.js +10035 -10541
  2. package/dist/base-modeler.production.min.js +4 -4
  3. package/dist/base-navigated-viewer.development.js +322 -744
  4. package/dist/base-navigated-viewer.production.min.js +2 -2
  5. package/dist/base-viewer.development.js +319 -741
  6. package/dist/base-viewer.production.min.js +2 -2
  7. package/dist/camunda-cloud-modeler.development.js +5184 -4595
  8. package/dist/camunda-cloud-modeler.production.min.js +4 -4
  9. package/dist/camunda-cloud-navigated-viewer.development.js +528 -868
  10. package/dist/camunda-cloud-navigated-viewer.production.min.js +2 -2
  11. package/dist/camunda-cloud-viewer.development.js +525 -865
  12. package/dist/camunda-cloud-viewer.production.min.js +2 -2
  13. package/dist/camunda-platform-modeler.development.js +2896 -2158
  14. package/dist/camunda-platform-modeler.production.min.js +4 -4
  15. package/dist/camunda-platform-navigated-viewer.development.js +322 -744
  16. package/dist/camunda-platform-navigated-viewer.production.min.js +2 -2
  17. package/dist/camunda-platform-viewer.development.js +319 -741
  18. package/dist/camunda-platform-viewer.production.min.js +2 -2
  19. package/lib/camunda-cloud/Modeler.js +0 -12
  20. package/lib/camunda-cloud/util/commonModules.js +0 -3
  21. package/package.json +8 -9
  22. package/lib/camunda-cloud/features/context-pad/ContextPadOptions.js +0 -16
  23. package/lib/camunda-cloud/features/context-pad/ContextPadProvider.js +0 -45
  24. package/lib/camunda-cloud/features/context-pad/index.js +0 -6
  25. package/lib/camunda-cloud/features/drilldown/index.js +0 -3
  26. package/lib/camunda-cloud/features/palette/PaletteOptions.js +0 -15
  27. package/lib/camunda-cloud/features/palette/PaletteProvider.js +0 -31
  28. package/lib/camunda-cloud/features/palette/index.js +0 -6
  29. package/lib/camunda-cloud/features/popup-menu/ReplaceMenuProvider.js +0 -72
  30. package/lib/camunda-cloud/features/popup-menu/ReplaceOptions.js +0 -49
  31. package/lib/camunda-cloud/features/popup-menu/index.js +0 -6
@@ -469,7 +469,7 @@
469
469
  return result;
470
470
  }
471
471
 
472
- var DEFAULT_RENDER_PRIORITY$1 = 1000;
472
+ var DEFAULT_RENDER_PRIORITY$2 = 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(eventBus, renderPriority) {
480
+ function BaseRenderer$1(eventBus, renderPriority) {
481
481
  var self = this;
482
482
 
483
- renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY$1;
483
+ renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY$2;
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.prototype.canRender = function() {};
519
+ BaseRenderer$1.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.prototype.drawShape = function() {};
529
+ BaseRenderer$1.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.prototype.drawConnection = function() {};
539
+ BaseRenderer$1.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.prototype.getShapePath = function() {};
548
+ BaseRenderer$1.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.prototype.getConnectionPath = function() {};
557
+ BaseRenderer$1.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$2(element, target) {
685
+ function ensureImported$1(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$2(element, target) {
714
- return target.appendChild(ensureImported$2(element, target));
713
+ function appendTo$1(element, target) {
714
+ return target.appendChild(ensureImported$1(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$2(target, node) {
730
- appendTo$2(node, target);
729
+ function append$1(target, node) {
730
+ appendTo$1(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$2 = 2;
738
+ var LENGTH_ATTR$1 = 2;
739
739
 
740
- var CSS_PROPERTIES$2 = {
740
+ var CSS_PROPERTIES$1 = {
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$2,
764
+ 'font-size': LENGTH_ATTR$1,
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$2,
794
+ 'stroke-width': LENGTH_ATTR$1,
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$2(node, name) {
806
- if (CSS_PROPERTIES$2[name]) {
805
+ function getAttribute$1(node, name) {
806
+ if (CSS_PROPERTIES$1[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$2(node, name, value) {
813
+ function setAttribute$1(node, name, value) {
814
814
  var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
815
815
 
816
- var type = CSS_PROPERTIES$2[hyphenated];
816
+ var type = CSS_PROPERTIES$1[hyphenated];
817
817
 
818
818
  if (type) {
819
819
 
820
820
  // append pixel unit, unless present
821
- if (type === LENGTH_ATTR$2 && typeof value === 'number') {
821
+ if (type === LENGTH_ATTR$1 && 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$2(node, attrs) {
831
+ function setAttributes$1(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$2(node, name, attrs[name]);
836
+ setAttribute$1(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$3(node, name, value) {
850
+ function attr$2(node, name, value) {
851
851
  if (typeof name === 'string') {
852
852
  if (value !== undefined) {
853
- setAttribute$2(node, name, value);
853
+ setAttribute$1(node, name, value);
854
854
  } else {
855
- return getAttribute$2(node, name);
855
+ return getAttribute$1(node, name);
856
856
  }
857
857
  } else {
858
- setAttributes$2(node, name);
858
+ setAttributes$1(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$2 = {
1023
+ var ns$1 = {
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$2 = '<svg xmlns="' + ns$2.svg + '"';
1031
+ var SVG_START$1 = '<svg xmlns="' + ns$1.svg + '"';
1032
1032
 
1033
- function parse$3(svg) {
1033
+ function parse$2(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$2.svg) === -1) {
1040
- svg = SVG_START$2 + svg.substring(4);
1039
+ if (svg.indexOf(ns$1.svg) === -1) {
1040
+ svg = SVG_START$1 + svg.substring(4);
1041
1041
  }
1042
1042
  } else {
1043
1043
 
1044
1044
  // namespace svg
1045
- svg = SVG_START$2 + '>' + svg + '</svg>';
1045
+ svg = SVG_START$1 + '>' + svg + '</svg>';
1046
1046
  unwrap = true;
1047
1047
  }
1048
1048
 
1049
- var parsed = parseDocument$2(svg);
1049
+ var parsed = parseDocument$1(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$2(svg) {
1066
+ function parseDocument$1(svg) {
1067
1067
 
1068
1068
  var parser;
1069
1069
 
@@ -1087,18 +1087,18 @@
1087
1087
  *
1088
1088
  * @returns {SVGElement}
1089
1089
  */
1090
- function create$3(name, attrs) {
1090
+ function create$2(name, attrs) {
1091
1091
  var element;
1092
1092
 
1093
1093
  if (name.charAt(0) === '<') {
1094
- element = parse$3(name).firstChild;
1094
+ element = parse$2(name).firstChild;
1095
1095
  element = document.importNode(element, true);
1096
1096
  } else {
1097
- element = document.createElementNS(ns$2.svg, name);
1097
+ element = document.createElementNS(ns$1.svg, name);
1098
1098
  }
1099
1099
 
1100
1100
  if (attrs) {
1101
- attr$3(element, attrs);
1101
+ attr$2(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$3('svg');
1116
+ node = create$2('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(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(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$3('polyline');
1234
- attr$3(line, { points: toSVGPoints(points) });
1379
+ var line = create$2('polyline');
1380
+ attr$2(line, { points: toSVGPoints(points) });
1235
1381
 
1236
1382
  if (attrs) {
1237
- attr$3(line, attrs);
1383
+ attr$2(line, attrs);
1238
1384
  }
1239
1385
 
1240
1386
  return line;
1241
1387
  }
1242
1388
 
1243
1389
  function updateLine(gfx, points) {
1244
- attr$3(gfx, { points: toSVGPoints(points) });
1390
+ attr$2(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$2(el, name, val) {
1659
+ function attr$1(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
 
@@ -1802,715 +1948,147 @@
1802
1948
  * @param {Boolean} capture
1803
1949
  * @api public
1804
1950
  */
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$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
- }
1951
+ function unbind(el, type, fn, capture) {
1952
+ if (forceCaptureEvents.indexOf(type) !== -1) {
1953
+ capture = true;
1954
+ }
2417
1955
 
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;
1956
+ return event.unbind(el, type, fn, capture);
1957
+ }
2429
1958
 
2430
- // COMMENT
2431
- case 8:
2432
- output.push('<!--', escape$1(node.nodeValue, TEXT_ENTITIES), '-->');
2433
- break;
1959
+ var delegate = {
1960
+ bind,
1961
+ unbind
1962
+ };
2434
1963
 
2435
- // CDATA
2436
- case 4:
2437
- output.push('<![CDATA[', node.nodeValue, ']]>');
2438
- break;
1964
+ /**
1965
+ * Expose `parse`.
1966
+ */
2439
1967
 
2440
- default:
2441
- throw new Error('unable to handle node ' + node.nodeType);
2442
- }
1968
+ var domify = parse$1;
2443
1969
 
2444
- return output;
1970
+ /**
1971
+ * Tests for browser support.
1972
+ */
1973
+
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;
2445
1984
  }
2446
1985
 
2447
1986
  /**
2448
- * innerHTML like functionality for SVG elements.
2449
- * based on innerSVG (https://code.google.com/p/innersvg)
1987
+ * Wrap map from jquery.
2450
1988
  */
2451
1989
 
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
+ };
2452
1998
 
2453
- function set(element, svg) {
1999
+ map.td =
2000
+ map.th = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
2454
2001
 
2455
- var parsed = parse$1(svg);
2002
+ map.option =
2003
+ map.optgroup = [1, '<select multiple="multiple">', '</select>'];
2456
2004
 
2457
- // clear element contents
2458
- clear(element);
2005
+ map.thead =
2006
+ map.tbody =
2007
+ map.colgroup =
2008
+ map.caption =
2009
+ map.tfoot = [1, '<table>', '</table>'];
2459
2010
 
2460
- if (!svg) {
2461
- return;
2462
- }
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>'];
2463
2020
 
2464
- if (!isFragment(parsed)) {
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
+ */
2465
2031
 
2466
- // extract <svg> from parsed document
2467
- parsed = parsed.documentElement;
2468
- }
2032
+ function parse$1(html, doc) {
2033
+ if ('string' != typeof html) throw new TypeError('String expected');
2469
2034
 
2470
- var nodes = slice$1(parsed.childNodes);
2035
+ // default to the global `document` object
2036
+ if (!doc) doc = document;
2471
2037
 
2472
- // import + append each node
2473
- for (var i = 0; i < nodes.length; i++) {
2474
- appendTo$1(nodes[i], element);
2038
+ // tag name
2039
+ var m = /<([\w:]+)/.exec(html);
2040
+ if (!m) return doc.createTextNode(html);
2041
+
2042
+ html = html.replace(/^\s+|\s+$/g, ''); // Remove leading/trailing whitespace
2043
+
2044
+ var tag = m[1];
2045
+
2046
+ // body support
2047
+ if (tag == 'body') {
2048
+ var el = doc.createElement('html');
2049
+ el.innerHTML = html;
2050
+ return el.removeChild(el.lastChild);
2475
2051
  }
2476
2052
 
2477
- }
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;
2478
2061
 
2479
- function get(element) {
2480
- var child = element.firstChild,
2481
- output = [];
2062
+ // one element
2063
+ if (el.firstChild == el.lastChild) {
2064
+ return el.removeChild(el.firstChild);
2065
+ }
2482
2066
 
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(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
  /**
@@ -2735,7 +2313,7 @@
2735
2313
  config, eventBus, styles, pathMap,
2736
2314
  canvas, textRenderer, priority) {
2737
2315
 
2738
- BaseRenderer.call(this, eventBus, priority);
2316
+ BaseRenderer$1.call(this, eventBus, priority);
2739
2317
 
2740
2318
  var defaultFillColor = config && config.defaultFillColor,
2741
2319
  defaultStrokeColor = config && config.defaultStrokeColor,
@@ -2767,11 +2345,11 @@
2767
2345
 
2768
2346
  var marker = create$2('marker');
2769
2347
 
2770
- attr$1(options.element, attrs);
2348
+ attr$2(options.element, attrs);
2771
2349
 
2772
2350
  append$1(marker, options.element);
2773
2351
 
2774
- attr$1(marker, {
2352
+ attr$2(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$2('path');
2817
- attr$1(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2395
+ attr$2(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$2('circle');
2832
- attr$1(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2410
+ attr$2(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$2('path');
2846
- attr$1(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2424
+ attr$2(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$2('path');
2861
- attr$1(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2439
+ attr$2(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$2('path');
2877
- attr$1(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2455
+ attr$2(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$2('path');
2893
- attr$1(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2471
+ attr$2(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$2('path');
2908
- attr$1(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2486
+ attr$2(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$2('circle');
2944
- attr$1(circle, {
2522
+ attr$2(circle, {
2945
2523
  cx: cx,
2946
2524
  cy: cy,
2947
2525
  r: Math.round((width + height) / 4 - offset)
2948
2526
  });
2949
- attr$1(circle, attrs);
2527
+ attr$2(circle, attrs);
2950
2528
 
2951
2529
  append$1(parentGfx, circle);
2952
2530
 
@@ -2969,7 +2547,7 @@
2969
2547
  });
2970
2548
 
2971
2549
  var rect = create$2('rect');
2972
- attr$1(rect, {
2550
+ attr$2(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$1(rect, attrs);
2558
+ attr$2(rect, attrs);
2981
2559
 
2982
2560
  append$1(parentGfx, rect);
2983
2561
 
@@ -3002,10 +2580,10 @@
3002
2580
  });
3003
2581
 
3004
2582
  var polygon = create$2('polygon');
3005
- attr$1(polygon, {
2583
+ attr$2(polygon, {
3006
2584
  points: pointsString
3007
2585
  });
3008
- attr$1(polygon, attrs);
2586
+ attr$2(polygon, attrs);
3009
2587
 
3010
2588
  append$1(parentGfx, polygon);
3011
2589
 
@@ -3034,8 +2612,8 @@
3034
2612
  });
3035
2613
 
3036
2614
  var path = create$2('path');
3037
- attr$1(path, { d: d });
3038
- attr$1(path, attrs);
2615
+ attr$2(path, { d: d });
2616
+ attr$2(path, attrs);
3039
2617
 
3040
2618
  append$1(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$1(parentGfx, text);
3129
2707
 
@@ -3735,7 +3313,7 @@
3735
3313
  });
3736
3314
 
3737
3315
  var businessHeaderPath = drawPath(parentGfx, headerPathData);
3738
- attr$1(businessHeaderPath, {
3316
+ attr$2(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$1(businessPath, {
3330
+ attr$2(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$1(rect, {
3348
+ attr$2(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$1(parallelPath, {
3570
+ attr$2(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$1(innerCircle, {
3578
+ attr$2(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$1(path, {
3623
+ attr$2(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$1(path, {
3631
+ attr$2(path, {
4054
3632
  markerStart: marker('conditional-default-flow-marker', fill, stroke)
4055
3633
  });
4056
3634
  }
@@ -4540,7 +4118,7 @@
4540
4118
  }
4541
4119
 
4542
4120
 
4543
- e(BpmnRenderer, BaseRenderer);
4121
+ e(BpmnRenderer, BaseRenderer$1);
4544
4122
 
4545
4123
  BpmnRenderer.$inject = [
4546
4124
  'config.bpmnRenderer',
@@ -4768,9 +4346,9 @@
4768
4346
  var helperSvg = document.getElementById('helper-svg');
4769
4347
 
4770
4348
  if (!helperSvg) {
4771
- helperSvg = create$3('svg');
4349
+ helperSvg = create$2('svg');
4772
4350
 
4773
- attr$3(helperSvg, {
4351
+ attr$2(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$3('text');
4868
- attr$3(helperText, { x: 0, y: 0 });
4869
- attr$3(helperText, style);
4445
+ var helperText = create$2('text');
4446
+ attr$2(helperText, { x: 0, y: 0 });
4447
+ attr$2(helperText, style);
4870
4448
 
4871
4449
  var helperSvg = getHelperSvg();
4872
4450
 
4873
- append$2(helperSvg, helperText);
4451
+ append$1(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$3('text');
4480
+ var textElement = create$2('text');
4903
4481
 
4904
- attr$3(textElement, style);
4482
+ attr$2(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$3('tspan');
4932
- attr$3(tspan, { x: x, y: y });
4509
+ var tspan = create$2('tspan');
4510
+ attr$2(tspan, { x: x, y: y });
4933
4511
 
4934
4512
  tspan.textContent = line.text;
4935
4513
 
4936
- append$2(textElement, tspan);
4514
+ append$1(textElement, tspan);
4937
4515
  });
4938
4516
 
4939
- remove$3(helperText);
4517
+ remove$2(helperText);
4940
4518
 
4941
4519
  var dimensions = {
4942
4520
  width: maxLineWidth,
@@ -6511,13 +6089,13 @@
6511
6089
  throw new Error('invalid hit type <' + type + '>');
6512
6090
  }
6513
6091
 
6514
- attr$3(hit, attrs);
6092
+ attr$2(hit, attrs);
6515
6093
 
6516
6094
  return hit;
6517
6095
  }
6518
6096
 
6519
6097
  function appendHit(gfx, hit) {
6520
- append$2(gfx, hit);
6098
+ append$1(gfx, hit);
6521
6099
  }
6522
6100
 
6523
6101
 
@@ -6531,7 +6109,7 @@
6531
6109
  this.removeHits = function(gfx) {
6532
6110
  var hits = all('.djs-hit', gfx);
6533
6111
 
6534
- forEach$1(hits, remove$3);
6112
+ forEach$1(hits, remove$2);
6535
6113
  };
6536
6114
 
6537
6115
  /**
@@ -6595,11 +6173,11 @@
6595
6173
  y: 0
6596
6174
  }, attrs);
6597
6175
 
6598
- var hit = create$3('rect');
6176
+ var hit = create$2('rect');
6599
6177
 
6600
6178
  applyStyle(hit, type);
6601
6179
 
6602
- attr$3(hit, attrs);
6180
+ attr$2(hit, attrs);
6603
6181
 
6604
6182
  appendHit(gfx, hit);
6605
6183
 
@@ -6625,7 +6203,7 @@
6625
6203
  if (element.waypoints) {
6626
6204
  updateLine(hit, element.waypoints);
6627
6205
  } else {
6628
- attr$3(hit, {
6206
+ attr$2(hit, {
6629
6207
  width: element.width,
6630
6208
  height: element.height
6631
6209
  });
@@ -6833,9 +6411,9 @@
6833
6411
  var self = this;
6834
6412
 
6835
6413
  function createOutline(gfx, bounds) {
6836
- var outline = create$3('rect');
6414
+ var outline = create$2('rect');
6837
6415
 
6838
- attr$3(outline, assign$1({
6416
+ attr$2(outline, assign$1({
6839
6417
  x: 10,
6840
6418
  y: 10,
6841
6419
  rx: 3,
@@ -6843,7 +6421,7 @@
6843
6421
  height: 100
6844
6422
  }, OUTLINE_STYLE));
6845
6423
 
6846
- append$2(gfx, outline);
6424
+ append$1(gfx, outline);
6847
6425
 
6848
6426
  return outline;
6849
6427
  }
@@ -6887,7 +6465,7 @@
6887
6465
  */
6888
6466
  Outline.prototype.updateShapeOutline = function(outline, element) {
6889
6467
 
6890
- attr$3(outline, {
6468
+ attr$2(outline, {
6891
6469
  x: -this.offset,
6892
6470
  y: -this.offset,
6893
6471
  width: element.width + this.offset * 2,
@@ -6908,7 +6486,7 @@
6908
6486
 
6909
6487
  var bbox = getBBox(connection);
6910
6488
 
6911
- attr$3(outline, {
6489
+ attr$2(outline, {
6912
6490
  x: bbox.x - this.offset,
6913
6491
  y: bbox.y - this.offset,
6914
6492
  width: bbox.width + this.offset * 2,
@@ -7112,13 +6690,13 @@
7112
6690
  SelectionVisuals.prototype._updateSelectionOutline = function(selection) {
7113
6691
  var layer = this._canvas.getLayer('selectionOutline');
7114
6692
 
7115
- clear$2(layer);
6693
+ clear$1(layer);
7116
6694
 
7117
6695
  var enabled = selection.length > 1;
7118
6696
 
7119
6697
  var container = this._canvas.getContainer();
7120
6698
 
7121
- classes$2(container)[enabled ? 'add' : 'remove']('djs-multi-select');
6699
+ classes$1(container)[enabled ? 'add' : 'remove']('djs-multi-select');
7122
6700
 
7123
6701
  if (!enabled) {
7124
6702
  return;
@@ -7126,15 +6704,15 @@
7126
6704
 
7127
6705
  var bBox = addSelectionOutlinePadding(getBBox(selection));
7128
6706
 
7129
- var rect = create$3('rect');
6707
+ var rect = create$2('rect');
7130
6708
 
7131
- attr$3(rect, assign$1({
6709
+ attr$2(rect, assign$1({
7132
6710
  rx: 3
7133
6711
  }, bBox));
7134
6712
 
7135
- classes$2(rect).add('djs-selection-outline');
6713
+ classes$1(rect).add('djs-selection-outline');
7136
6714
 
7137
- append$2(layer, rect);
6715
+ append$1(layer, rect);
7138
6716
  };
7139
6717
 
7140
6718
  // helpers //////////
@@ -7543,8 +7121,8 @@
7543
7121
  var container = self._getOverlayContainer(overlay.element, true);
7544
7122
 
7545
7123
  if (overlay) {
7546
- remove$2(overlay.html);
7547
- remove$2(overlay.htmlContainer);
7124
+ remove$1(overlay.html);
7125
+ remove$1(overlay.htmlContainer);
7548
7126
 
7549
7127
  delete overlay.htmlContainer;
7550
7128
  delete overlay.element;
@@ -7577,7 +7155,7 @@
7577
7155
 
7578
7156
  this._overlayContainers = [];
7579
7157
 
7580
- clear$1(this._overlayRoot);
7158
+ clear(this._overlayRoot);
7581
7159
  };
7582
7160
 
7583
7161
  Overlays.prototype._updateOverlayContainer = function(container) {
@@ -7598,7 +7176,7 @@
7598
7176
 
7599
7177
  setPosition(html, x, y);
7600
7178
 
7601
- attr$2(container.html, 'data-container-id', element.id);
7179
+ attr$1(container.html, 'data-container-id', element.id);
7602
7180
  };
7603
7181
 
7604
7182
 
@@ -7725,7 +7303,7 @@
7725
7303
  htmlContainer.appendChild(html);
7726
7304
 
7727
7305
  if (overlay.type) {
7728
- classes$1(htmlContainer).add('djs-overlay-' + overlay.type);
7306
+ classes(htmlContainer).add('djs-overlay-' + overlay.type);
7729
7307
  }
7730
7308
 
7731
7309
  var elementRoot = this._canvas.findRoot(element);
@@ -7854,7 +7432,7 @@
7854
7432
  var container = self._getOverlayContainer(element);
7855
7433
 
7856
7434
  if (container) {
7857
- remove$2(container.html);
7435
+ remove$1(container.html);
7858
7436
  var i = self._overlayContainers.indexOf(container);
7859
7437
  if (i !== -1) {
7860
7438
  self._overlayContainers.splice(i, 1);
@@ -7885,7 +7463,7 @@
7885
7463
  eventBus.on('element.marker.update', function(e) {
7886
7464
  var container = self._getOverlayContainer(e.element, true);
7887
7465
  if (container) {
7888
- classes$1(container.html)[e.add ? 'add' : 'remove'](e.marker);
7466
+ classes(container.html)[e.add ? 'add' : 'remove'](e.marker);
7889
7467
  }
7890
7468
  });
7891
7469
 
@@ -8350,7 +7928,7 @@
8350
7928
  function DrilldownBreadcrumbs(eventBus, elementRegistry, overlays, canvas) {
8351
7929
  var breadcrumbs = domify$1('<ul class="bjs-breadcrumbs"></ul>');
8352
7930
  var container = canvas.getContainer();
8353
- var containerClasses = classes$1(container);
7931
+ var containerClasses = classes(container);
8354
7932
  container.appendChild(breadcrumbs);
8355
7933
 
8356
7934
  var boParents = [];
@@ -8906,7 +8484,7 @@
8906
8484
  }
8907
8485
 
8908
8486
  var hasContent = bo && bo.flowElements && bo.flowElements.length;
8909
- classes$1(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8487
+ classes(overlay.html).toggle(EMPTY_MARKER, !hasContent);
8910
8488
  };
8911
8489
 
8912
8490
  /**
@@ -9432,7 +9010,7 @@
9432
9010
 
9433
9011
  // apply default renderer with lowest possible priority
9434
9012
  // so that it only kicks in if noone else could render
9435
- var DEFAULT_RENDER_PRIORITY = 1;
9013
+ var DEFAULT_RENDER_PRIORITY$1 = 1;
9436
9014
 
9437
9015
  /**
9438
9016
  * The default renderer used for shapes and connections.
@@ -9443,14 +9021,14 @@
9443
9021
  function DefaultRenderer(eventBus, styles) {
9444
9022
 
9445
9023
  //
9446
- BaseRenderer.call(this, eventBus, DEFAULT_RENDER_PRIORITY);
9024
+ BaseRenderer$1.call(this, eventBus, DEFAULT_RENDER_PRIORITY$1);
9447
9025
 
9448
9026
  this.CONNECTION_STYLE = styles.style([ 'no-fill' ], { strokeWidth: 5, stroke: 'fuchsia' });
9449
9027
  this.SHAPE_STYLE = styles.style({ fill: 'white', stroke: 'fuchsia', strokeWidth: 2 });
9450
9028
  this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });
9451
9029
  }
9452
9030
 
9453
- e(DefaultRenderer, BaseRenderer);
9031
+ e(DefaultRenderer, BaseRenderer$1);
9454
9032
 
9455
9033
 
9456
9034
  DefaultRenderer.prototype.canRender = function() {
@@ -9458,9 +9036,9 @@
9458
9036
  };
9459
9037
 
9460
9038
  DefaultRenderer.prototype.drawShape = function drawShape(visuals, element, attrs) {
9461
- var rect = create$3('rect');
9039
+ var rect = create$2('rect');
9462
9040
 
9463
- attr$3(rect, {
9041
+ attr$2(rect, {
9464
9042
  x: 0,
9465
9043
  y: 0,
9466
9044
  width: element.width || 0,
@@ -9468,12 +9046,12 @@
9468
9046
  });
9469
9047
 
9470
9048
  if (isFrameElement(element)) {
9471
- attr$3(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9049
+ attr$2(rect, assign$1({}, this.FRAME_STYLE, attrs || {}));
9472
9050
  } else {
9473
- attr$3(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9051
+ attr$2(rect, assign$1({}, this.SHAPE_STYLE, attrs || {}));
9474
9052
  }
9475
9053
 
9476
- append$2(visuals, rect);
9054
+ append$1(visuals, rect);
9477
9055
 
9478
9056
  return rect;
9479
9057
  };
@@ -9481,7 +9059,7 @@
9481
9059
  DefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection, attrs) {
9482
9060
 
9483
9061
  var line = createLine(connection.waypoints, assign$1({}, this.CONNECTION_STYLE, attrs || {}));
9484
- append$2(visuals, line);
9062
+ append$1(visuals, line);
9485
9063
 
9486
9064
  return line;
9487
9065
  };
@@ -9719,8 +9297,8 @@
9719
9297
  }
9720
9298
 
9721
9299
  function createGroup(parent, cls, childIndex) {
9722
- const group = create$3('g');
9723
- classes$2(group).add(cls);
9300
+ const group = create$2('g');
9301
+ classes$1(group).add(cls);
9724
9302
 
9725
9303
  const index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;
9726
9304
 
@@ -9798,10 +9376,10 @@
9798
9376
  // html container
9799
9377
  const container = this._container = createContainer(config);
9800
9378
 
9801
- const svg = this._svg = create$3('svg');
9802
- attr$3(svg, { width: '100%', height: '100%' });
9379
+ const svg = this._svg = create$2('svg');
9380
+ attr$2(svg, { width: '100%', height: '100%' });
9803
9381
 
9804
- append$2(container, svg);
9382
+ append$1(container, svg);
9805
9383
 
9806
9384
  const viewport = this._viewport = createGroup(svg, 'viewport');
9807
9385
 
@@ -10039,7 +9617,7 @@
10039
9617
  return group;
10040
9618
  }
10041
9619
 
10042
- remove$3(group);
9620
+ remove$2(group);
10043
9621
 
10044
9622
  layer.visible = false;
10045
9623
 
@@ -10054,7 +9632,7 @@
10054
9632
  if (layer) {
10055
9633
  delete this._layers[name];
10056
9634
 
10057
- remove$3(layer.group);
9635
+ remove$2(layer.group);
10058
9636
  }
10059
9637
  };
10060
9638
 
@@ -10147,9 +9725,9 @@
10147
9725
 
10148
9726
  // invoke either addClass or removeClass based on mode
10149
9727
  if (add) {
10150
- classes$2(gfx).add(marker);
9728
+ classes$1(gfx).add(marker);
10151
9729
  } else {
10152
- classes$2(gfx).remove(marker);
9730
+ classes$1(gfx).remove(marker);
10153
9731
  }
10154
9732
  }
10155
9733
  });
@@ -10215,7 +9793,7 @@
10215
9793
 
10216
9794
  const gfx = this.getGraphics(element);
10217
9795
 
10218
- return classes$2(gfx).has(marker);
9796
+ return classes$1(gfx).has(marker);
10219
9797
  };
10220
9798
 
10221
9799
  /**
@@ -11113,10 +10691,10 @@
11113
10691
  this._validateId(id);
11114
10692
 
11115
10693
  // associate dom node with element
11116
- attr$3(gfx, ELEMENT_ID, id);
10694
+ attr$2(gfx, ELEMENT_ID, id);
11117
10695
 
11118
10696
  if (secondaryGfx) {
11119
- attr$3(secondaryGfx, ELEMENT_ID, id);
10697
+ attr$2(secondaryGfx, ELEMENT_ID, id);
11120
10698
  }
11121
10699
 
11122
10700
  this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };
@@ -11135,10 +10713,10 @@
11135
10713
  if (container) {
11136
10714
 
11137
10715
  // unset element id on gfx
11138
- attr$3(container.gfx, ELEMENT_ID, '');
10716
+ attr$2(container.gfx, ELEMENT_ID, '');
11139
10717
 
11140
10718
  if (container.secondaryGfx) {
11141
- attr$3(container.secondaryGfx, ELEMENT_ID, '');
10719
+ attr$2(container.secondaryGfx, ELEMENT_ID, '');
11142
10720
  }
11143
10721
 
11144
10722
  delete elements[id];
@@ -11193,7 +10771,7 @@
11193
10771
  }
11194
10772
 
11195
10773
  if (gfx) {
11196
- attr$3(gfx, ELEMENT_ID, id);
10774
+ attr$2(gfx, ELEMENT_ID, id);
11197
10775
  }
11198
10776
 
11199
10777
  return gfx;
@@ -11218,7 +10796,7 @@
11218
10796
  if (typeof filter === 'string') {
11219
10797
  id = filter;
11220
10798
  } else {
11221
- id = filter && attr$3(filter, ELEMENT_ID);
10799
+ id = filter && attr$2(filter, ELEMENT_ID);
11222
10800
  }
11223
10801
 
11224
10802
  var container = this._elements[id];
@@ -12501,10 +12079,10 @@
12501
12079
  } else {
12502
12080
  childrenGfx = getChildren(gfx);
12503
12081
  if (!childrenGfx) {
12504
- childrenGfx = create$3('g');
12505
- classes$2(childrenGfx).add('djs-children');
12082
+ childrenGfx = create$2('g');
12083
+ classes$1(childrenGfx).add('djs-children');
12506
12084
 
12507
- append$2(gfx.parentNode, childrenGfx);
12085
+ append$1(gfx.parentNode, childrenGfx);
12508
12086
  }
12509
12087
  }
12510
12088
 
@@ -12518,7 +12096,7 @@
12518
12096
  GraphicsFactory.prototype._clear = function(gfx) {
12519
12097
  var visual = getVisual(gfx);
12520
12098
 
12521
- clear$1(visual);
12099
+ clear(visual);
12522
12100
 
12523
12101
  return visual;
12524
12102
  };
@@ -12553,31 +12131,31 @@
12553
12131
  GraphicsFactory.prototype._createContainer = function(
12554
12132
  type, childrenGfx, parentIndex, isFrame
12555
12133
  ) {
12556
- var outerGfx = create$3('g');
12557
- classes$2(outerGfx).add('djs-group');
12134
+ var outerGfx = create$2('g');
12135
+ classes$1(outerGfx).add('djs-group');
12558
12136
 
12559
12137
  // insert node at position
12560
12138
  if (typeof parentIndex !== 'undefined') {
12561
12139
  prependTo(outerGfx, childrenGfx, childrenGfx.childNodes[parentIndex]);
12562
12140
  } else {
12563
- append$2(childrenGfx, outerGfx);
12141
+ append$1(childrenGfx, outerGfx);
12564
12142
  }
12565
12143
 
12566
- var gfx = create$3('g');
12567
- classes$2(gfx).add('djs-element');
12568
- classes$2(gfx).add('djs-' + type);
12144
+ var gfx = create$2('g');
12145
+ classes$1(gfx).add('djs-element');
12146
+ classes$1(gfx).add('djs-' + type);
12569
12147
 
12570
12148
  if (isFrame) {
12571
- classes$2(gfx).add('djs-frame');
12149
+ classes$1(gfx).add('djs-frame');
12572
12150
  }
12573
12151
 
12574
- append$2(outerGfx, gfx);
12152
+ append$1(outerGfx, gfx);
12575
12153
 
12576
12154
  // create visual
12577
- var visual = create$3('g');
12578
- classes$2(visual).add('djs-visual');
12155
+ var visual = create$2('g');
12156
+ classes$1(visual).add('djs-visual');
12579
12157
 
12580
- append$2(gfx, visual);
12158
+ append$1(gfx, visual);
12581
12159
 
12582
12160
  return gfx;
12583
12161
  };
@@ -12669,9 +12247,9 @@
12669
12247
  }
12670
12248
 
12671
12249
  if (element.hidden) {
12672
- attr$3(gfx, 'display', 'none');
12250
+ attr$2(gfx, 'display', 'none');
12673
12251
  } else {
12674
- attr$3(gfx, 'display', 'block');
12252
+ attr$2(gfx, 'display', 'block');
12675
12253
  }
12676
12254
  };
12677
12255
 
@@ -12679,7 +12257,7 @@
12679
12257
  var gfx = this._elementRegistry.getGraphics(element);
12680
12258
 
12681
12259
  // remove
12682
- remove$3(gfx.parentNode);
12260
+ remove$2(gfx.parentNode);
12683
12261
  };
12684
12262
 
12685
12263
 
@@ -21696,7 +21274,7 @@
21696
21274
  Diagram.prototype.destroy.call(this);
21697
21275
 
21698
21276
  // dom detach
21699
- remove$2(this._container);
21277
+ remove$1(this._container);
21700
21278
  };
21701
21279
 
21702
21280
  /**
@@ -21989,6 +21567,93 @@
21989
21567
  // default moddle extensions the viewer is composed of
21990
21568
  Viewer$1.prototype._moddleExtensions = {};
21991
21569
 
21570
+ var DEFAULT_RENDER_PRIORITY = 1000;
21571
+
21572
+ /**
21573
+ * The base implementation of shape and connection renderers.
21574
+ *
21575
+ * @param {EventBus} eventBus
21576
+ * @param {number} [renderPriority=1000]
21577
+ */
21578
+ function BaseRenderer(eventBus, renderPriority) {
21579
+ var self = this;
21580
+
21581
+ renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY;
21582
+
21583
+ eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {
21584
+ var type = evt.type,
21585
+ element = context.element,
21586
+ visuals = context.gfx,
21587
+ attrs = context.attrs;
21588
+
21589
+ if (self.canRender(element)) {
21590
+ if (type === 'render.shape') {
21591
+ return self.drawShape(visuals, element, attrs);
21592
+ } else {
21593
+ return self.drawConnection(visuals, element, attrs);
21594
+ }
21595
+ }
21596
+ });
21597
+
21598
+ eventBus.on([ 'render.getShapePath', 'render.getConnectionPath' ], renderPriority, function(evt, element) {
21599
+ if (self.canRender(element)) {
21600
+ if (evt.type === 'render.getShapePath') {
21601
+ return self.getShapePath(element);
21602
+ } else {
21603
+ return self.getConnectionPath(element);
21604
+ }
21605
+ }
21606
+ });
21607
+ }
21608
+
21609
+ /**
21610
+ * Should check whether *this* renderer can render
21611
+ * the element/connection.
21612
+ *
21613
+ * @param {element} element
21614
+ *
21615
+ * @returns {boolean}
21616
+ */
21617
+ BaseRenderer.prototype.canRender = function() {};
21618
+
21619
+ /**
21620
+ * Provides the shape's snap svg element to be drawn on the `canvas`.
21621
+ *
21622
+ * @param {djs.Graphics} visuals
21623
+ * @param {Shape} shape
21624
+ *
21625
+ * @returns {Snap.svg} [returns a Snap.svg paper element ]
21626
+ */
21627
+ BaseRenderer.prototype.drawShape = function() {};
21628
+
21629
+ /**
21630
+ * Provides the shape's snap svg element to be drawn on the `canvas`.
21631
+ *
21632
+ * @param {djs.Graphics} visuals
21633
+ * @param {Connection} connection
21634
+ *
21635
+ * @returns {Snap.svg} [returns a Snap.svg paper element ]
21636
+ */
21637
+ BaseRenderer.prototype.drawConnection = function() {};
21638
+
21639
+ /**
21640
+ * Gets the SVG path of a shape that represents it's visual bounds.
21641
+ *
21642
+ * @param {Shape} shape
21643
+ *
21644
+ * @return {string} svg path
21645
+ */
21646
+ BaseRenderer.prototype.getShapePath = function() {};
21647
+
21648
+ /**
21649
+ * Gets the SVG path of a connection that represents it's visual bounds.
21650
+ *
21651
+ * @param {Connection} connection
21652
+ *
21653
+ * @return {string} svg path
21654
+ */
21655
+ BaseRenderer.prototype.getConnectionPath = function() {};
21656
+
21992
21657
  function ensureImported(element, target) {
21993
21658
 
21994
21659
  if (element.ownerDocument !== target.ownerDocument) {
@@ -22315,10 +21980,6 @@
22315
21980
  elementTemplatesIconsRenderer: [ 'type', IconsRenderer ]
22316
21981
  };
22317
21982
 
22318
- var drilldownModule = {
22319
- drilldownOverlayBehavior: [ 'value', null ],
22320
- };
22321
-
22322
21983
  var name = "zeebe";
22323
21984
  var prefix = "zeebe";
22324
21985
  var uri = "http://camunda.org/schema/zeebe/1.0";
@@ -22733,7 +22394,6 @@
22733
22394
  };
22734
22395
 
22735
22396
  const commonModules = [
22736
- drilldownModule,
22737
22397
  iconRendererModule
22738
22398
  ];
22739
22399