camunda-bpmn-js 0.14.0 → 0.15.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 (60) hide show
  1. package/CHANGELOG.md +276 -270
  2. package/LICENSE +20 -20
  3. package/README.md +84 -84
  4. package/dist/assets/base-modeler.css +4 -4
  5. package/dist/assets/base-navigated-viewer.css +1 -1
  6. package/dist/assets/base-viewer.css +1 -1
  7. package/dist/assets/bpmn-js.css +33 -4
  8. package/dist/assets/camunda-cloud-modeler.css +1 -1
  9. package/dist/assets/camunda-platform-modeler.css +1 -1
  10. package/dist/assets/diagram-js.css +55 -51
  11. package/dist/assets/element-templates.css +4 -0
  12. package/dist/assets/properties-panel.css +929 -900
  13. package/dist/base-modeler.development.js +7372 -5941
  14. package/dist/base-modeler.production.min.js +4 -4
  15. package/dist/base-navigated-viewer.development.js +21592 -21248
  16. package/dist/base-navigated-viewer.production.min.js +3 -2
  17. package/dist/base-viewer.development.js +20793 -20449
  18. package/dist/base-viewer.production.min.js +3 -2
  19. package/dist/camunda-cloud-modeler.development.js +9568 -7851
  20. package/dist/camunda-cloud-modeler.production.min.js +4 -4
  21. package/dist/camunda-cloud-navigated-viewer.development.js +647 -273
  22. package/dist/camunda-cloud-navigated-viewer.production.min.js +2 -2
  23. package/dist/camunda-cloud-viewer.development.js +646 -272
  24. package/dist/camunda-cloud-viewer.production.min.js +2 -2
  25. package/dist/camunda-platform-modeler.development.js +7557 -6077
  26. package/dist/camunda-platform-modeler.production.min.js +4 -4
  27. package/dist/camunda-platform-navigated-viewer.development.js +631 -257
  28. package/dist/camunda-platform-navigated-viewer.production.min.js +2 -2
  29. package/dist/camunda-platform-viewer.development.js +630 -256
  30. package/dist/camunda-platform-viewer.production.min.js +2 -2
  31. package/lib/base/Modeler.js +46 -46
  32. package/lib/base/NavigatedViewer.js +2 -2
  33. package/lib/base/Viewer.js +2 -2
  34. package/lib/camunda-cloud/Modeler.js +68 -68
  35. package/lib/camunda-cloud/NavigatedViewer.js +34 -34
  36. package/lib/camunda-cloud/Viewer.js +34 -34
  37. package/lib/camunda-cloud/features/context-pad/ContextPadOptions.js +15 -15
  38. package/lib/camunda-cloud/features/context-pad/index.js +6 -6
  39. package/lib/camunda-cloud/features/drilldown/index.js +3 -3
  40. package/lib/camunda-cloud/features/palette/PaletteOptions.js +14 -14
  41. package/lib/camunda-cloud/features/palette/PaletteProvider.js +31 -31
  42. package/lib/camunda-cloud/features/palette/index.js +6 -6
  43. package/lib/camunda-cloud/features/popup-menu/ReplaceMenuProvider.js +71 -71
  44. package/lib/camunda-cloud/features/popup-menu/ReplaceOptions.js +46 -46
  45. package/lib/camunda-cloud/features/popup-menu/index.js +6 -6
  46. package/lib/camunda-cloud/features/rules/BpmnRules.js +137 -137
  47. package/lib/camunda-cloud/features/rules/index.js +5 -5
  48. package/lib/camunda-cloud/util/commonModules.js +13 -13
  49. package/lib/camunda-platform/Modeler.js +46 -46
  50. package/lib/camunda-platform/NavigatedViewer.js +25 -25
  51. package/lib/camunda-platform/Viewer.js +24 -24
  52. package/lib/camunda-platform/util/commonModules.js +6 -6
  53. package/lib/util/ExtensionElementsUtil.js +59 -59
  54. package/package.json +110 -110
  55. package/styles/base-modeler.css +4 -4
  56. package/styles/base-navigated-viewer.css +1 -1
  57. package/styles/base-viewer.css +1 -1
  58. package/styles/camunda-cloud-modeler.css +1 -1
  59. package/styles/camunda-platform-modeler.css +1 -1
  60. package/util/index.js +39 -39
@@ -41,6 +41,8 @@
41
41
  }
42
42
  });
43
43
 
44
+ function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}));}
45
+
44
46
  /**
45
47
  * Flatten array, one level deep.
46
48
  *
@@ -1389,6 +1391,8 @@
1389
1391
  return gfx;
1390
1392
  }
1391
1393
 
1394
+ var black = 'hsl(225, 10%, 15%)';
1395
+
1392
1396
  // element utils //////////////////////
1393
1397
 
1394
1398
  /**
@@ -1439,7 +1443,7 @@
1439
1443
  function getStrokeColor(element, defaultColor) {
1440
1444
  var di = getDi(element);
1441
1445
 
1442
- return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || 'black';
1446
+ return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black;
1443
1447
  }
1444
1448
 
1445
1449
  function getLabelColor(element, defaultColor, defaultStrokeColor) {
@@ -1529,6 +1533,101 @@
1529
1533
  return componentsToPath(rectPath);
1530
1534
  }
1531
1535
 
1536
+ /**
1537
+ * Flatten array, one level deep.
1538
+ *
1539
+ * @param {Array<?>} arr
1540
+ *
1541
+ * @return {Array<?>}
1542
+ */
1543
+
1544
+ var nativeToString$1 = Object.prototype.toString;
1545
+ var nativeHasOwnProperty$1 = Object.prototype.hasOwnProperty;
1546
+ function isUndefined$1(obj) {
1547
+ return obj === undefined;
1548
+ }
1549
+ function isArray$1(obj) {
1550
+ return nativeToString$1.call(obj) === '[object Array]';
1551
+ }
1552
+ /**
1553
+ * Return true, if target owns a property with the given key.
1554
+ *
1555
+ * @param {Object} target
1556
+ * @param {String} key
1557
+ *
1558
+ * @return {Boolean}
1559
+ */
1560
+
1561
+ function has$1(target, key) {
1562
+ return nativeHasOwnProperty$1.call(target, key);
1563
+ }
1564
+ /**
1565
+ * Iterate over collection; returning something
1566
+ * (non-undefined) will stop iteration.
1567
+ *
1568
+ * @param {Array|Object} collection
1569
+ * @param {Function} iterator
1570
+ *
1571
+ * @return {Object} return result that stopped the iteration
1572
+ */
1573
+
1574
+ function forEach$1(collection, iterator) {
1575
+ var val, result;
1576
+
1577
+ if (isUndefined$1(collection)) {
1578
+ return;
1579
+ }
1580
+
1581
+ var convertKey = isArray$1(collection) ? toNum$1 : identity$1;
1582
+
1583
+ for (var key in collection) {
1584
+ if (has$1(collection, key)) {
1585
+ val = collection[key];
1586
+ result = iterator(val, convertKey(key));
1587
+
1588
+ if (result === false) {
1589
+ return val;
1590
+ }
1591
+ }
1592
+ }
1593
+ }
1594
+
1595
+ function identity$1(arg) {
1596
+ return arg;
1597
+ }
1598
+
1599
+ function toNum$1(arg) {
1600
+ return Number(arg);
1601
+ }
1602
+
1603
+ /**
1604
+ * Assigns style attributes in a style-src compliant way.
1605
+ *
1606
+ * @param {Element} element
1607
+ * @param {...Object} styleSources
1608
+ *
1609
+ * @return {Element} the element
1610
+ */
1611
+ function assign$1(element) {
1612
+ var target = element.style;
1613
+
1614
+ for (var _len = arguments.length, styleSources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1615
+ styleSources[_key - 1] = arguments[_key];
1616
+ }
1617
+
1618
+ forEach$1(styleSources, function (style) {
1619
+ if (!style) {
1620
+ return;
1621
+ }
1622
+
1623
+ forEach$1(style, function (value, key) {
1624
+ target[key] = value;
1625
+ });
1626
+ });
1627
+
1628
+ return element;
1629
+ }
1630
+
1532
1631
  /**
1533
1632
  * Set attribute `name` to `val`, or get attr `name`.
1534
1633
  *
@@ -1878,7 +1977,7 @@
1878
1977
  // when delegating.
1879
1978
  var forceCaptureEvents = ['focus', 'blur'];
1880
1979
 
1881
- function bind$1$1(el, selector, type, fn, capture) {
1980
+ function bind$2(el, selector, type, fn, capture) {
1882
1981
  if (forceCaptureEvents.indexOf(type) !== -1) {
1883
1982
  capture = true;
1884
1983
  }
@@ -1910,7 +2009,7 @@
1910
2009
  }
1911
2010
 
1912
2011
  var delegate = {
1913
- bind: bind$1$1,
2012
+ bind: bind$2,
1914
2013
  unbind: unbind$1
1915
2014
  };
1916
2015
 
@@ -2278,7 +2377,7 @@
2278
2377
 
2279
2378
  function addMarker(id, options) {
2280
2379
  var attrs = assign({
2281
- fill: 'black',
2380
+ fill: black,
2282
2381
  strokeWidth: 1,
2283
2382
  strokeLinecap: 'round',
2284
2383
  strokeDasharray: 'none'
@@ -2457,7 +2556,7 @@
2457
2556
  offset = offset || 0;
2458
2557
 
2459
2558
  attrs = computeStyle(attrs, {
2460
- stroke: 'black',
2559
+ stroke: black,
2461
2560
  strokeWidth: 2,
2462
2561
  fill: 'white'
2463
2562
  });
@@ -2492,7 +2591,7 @@
2492
2591
  offset = offset || 0;
2493
2592
 
2494
2593
  attrs = computeStyle(attrs, {
2495
- stroke: 'black',
2594
+ stroke: black,
2496
2595
  strokeWidth: 2,
2497
2596
  fill: 'white'
2498
2597
  });
@@ -2525,7 +2624,7 @@
2525
2624
  }).join(' ');
2526
2625
 
2527
2626
  attrs = computeStyle(attrs, {
2528
- stroke: 'black',
2627
+ stroke: black,
2529
2628
  strokeWidth: 2,
2530
2629
  fill: 'white'
2531
2630
  });
@@ -2543,7 +2642,7 @@
2543
2642
 
2544
2643
  function drawLine(parentGfx, waypoints, attrs) {
2545
2644
  attrs = computeStyle(attrs, [ 'no-fill' ], {
2546
- stroke: 'black',
2645
+ stroke: black,
2547
2646
  strokeWidth: 2,
2548
2647
  fill: 'none'
2549
2648
  });
@@ -2559,7 +2658,7 @@
2559
2658
 
2560
2659
  attrs = computeStyle(attrs, [ 'no-fill' ], {
2561
2660
  strokeWidth: 2,
2562
- stroke: 'black'
2661
+ stroke: black
2563
2662
  });
2564
2663
 
2565
2664
  var path = create('path');
@@ -3664,7 +3763,7 @@
3664
3763
 
3665
3764
  if (di.messageVisibleKind === 'initiating') {
3666
3765
  messageAttrs.fill = 'white';
3667
- messageAttrs.stroke = 'black';
3766
+ messageAttrs.stroke = black;
3668
3767
  } else {
3669
3768
  messageAttrs.fill = '#888';
3670
3769
  messageAttrs.stroke = 'white';
@@ -3739,7 +3838,7 @@
3739
3838
 
3740
3839
  /* output arrow path */ drawPath(parentGfx, arrowPathData, {
3741
3840
  strokeWidth: 1,
3742
- fill: 'black'
3841
+ fill: black
3743
3842
  });
3744
3843
 
3745
3844
  return elementObject;
@@ -4069,7 +4168,7 @@
4069
4168
  }
4070
4169
 
4071
4170
 
4072
- inherits_browser(BpmnRenderer, BaseRenderer);
4171
+ e(BpmnRenderer, BaseRenderer);
4073
4172
 
4074
4173
  BpmnRenderer.$inject = [
4075
4174
  'config.bpmnRenderer',
@@ -4303,7 +4402,8 @@
4303
4402
  id: 'helper-svg',
4304
4403
  width: 0,
4305
4404
  height: 0,
4306
- style: 'visibility: hidden; position: fixed'
4405
+ visibility: 'hidden',
4406
+ position: 'fixed'
4307
4407
  });
4308
4408
 
4309
4409
  document.body.appendChild(helperSvg);
@@ -5294,13 +5394,98 @@
5294
5394
  *
5295
5395
  * @return {Point}
5296
5396
  */
5297
- function getMid(bounds) {
5397
+ function getBoundsMid(bounds) {
5298
5398
  return roundPoint({
5299
5399
  x: bounds.x + (bounds.width || 0) / 2,
5300
5400
  y: bounds.y + (bounds.height || 0) / 2
5301
5401
  });
5302
5402
  }
5303
5403
 
5404
+
5405
+ /**
5406
+ * Get the mid of the given Connection.
5407
+ *
5408
+ * @param {djs.Base.Connection} connection
5409
+ *
5410
+ * @return {Point}
5411
+ */
5412
+ function getConnectionMid(connection) {
5413
+ var waypoints = connection.waypoints;
5414
+
5415
+ // calculate total length and length of each segment
5416
+ var parts = waypoints.reduce(function(parts, point, index) {
5417
+
5418
+ var lastPoint = waypoints[index - 1];
5419
+
5420
+ if (lastPoint) {
5421
+ var lastPart = parts[parts.length - 1];
5422
+
5423
+ var startLength = lastPart && lastPart.endLength || 0;
5424
+ var length = distance(lastPoint, point);
5425
+
5426
+ parts.push({
5427
+ start: lastPoint,
5428
+ end: point,
5429
+ startLength: startLength,
5430
+ endLength: startLength + length,
5431
+ length: length
5432
+ });
5433
+ }
5434
+
5435
+ return parts;
5436
+ }, []);
5437
+
5438
+ var totalLength = parts.reduce(function(length, part) {
5439
+ return length + part.length;
5440
+ }, 0);
5441
+
5442
+ // find which segement contains middle point
5443
+ var midLength = totalLength / 2;
5444
+
5445
+ var i = 0;
5446
+ var midSegment = parts[i];
5447
+
5448
+ while (midSegment.endLength < midLength) {
5449
+ midSegment = parts[++i];
5450
+ }
5451
+
5452
+ // calculate relative position on mid segment
5453
+ var segmentProgress = (midLength - midSegment.startLength) / midSegment.length;
5454
+
5455
+ var midPoint = {
5456
+ x: midSegment.start.x + (midSegment.end.x - midSegment.start.x) * segmentProgress,
5457
+ y: midSegment.start.y + (midSegment.end.y - midSegment.start.y) * segmentProgress
5458
+ };
5459
+
5460
+ return midPoint;
5461
+ }
5462
+
5463
+
5464
+ /**
5465
+ * Get the mid of the given Element.
5466
+ *
5467
+ * @param {djs.Base.Connection} connection
5468
+ *
5469
+ * @return {Point}
5470
+ */
5471
+ function getMid(element) {
5472
+ if (isConnection(element)) {
5473
+ return getConnectionMid(element);
5474
+ }
5475
+
5476
+ return getBoundsMid(element);
5477
+ }
5478
+
5479
+ // helpers //////////////////////
5480
+
5481
+ function distance(a, b) {
5482
+ return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));
5483
+ }
5484
+
5485
+ function isConnection(element) {
5486
+ return !!element.waypoints;
5487
+ }
5488
+
5304
5489
  function elementToString(e) {
5305
5490
  if (!e) {
5306
5491
  return '<null>';
@@ -5926,10 +6111,13 @@
5926
6111
 
5927
6112
  var ALL_HIT_STYLE = createHitStyle('djs-hit djs-hit-all');
5928
6113
 
6114
+ var NO_MOVE_HIT_STYLE = createHitStyle('djs-hit djs-hit-no-move');
6115
+
5929
6116
  var HIT_TYPES = {
5930
6117
  'all': ALL_HIT_STYLE,
5931
6118
  'click-stroke': CLICK_STROKE_HIT_STYLE,
5932
- 'stroke': STROKE_HIT_STYLE
6119
+ 'stroke': STROKE_HIT_STYLE,
6120
+ 'no-move': NO_MOVE_HIT_STYLE
5933
6121
  };
5934
6122
 
5935
6123
  function createHitStyle(classNames, attrs) {
@@ -6182,7 +6370,9 @@
6182
6370
  * the array or the element primitive.
6183
6371
  *
6184
6372
  * @param {Array<djs.model.Shape>|djs.model.Shape} elements
6185
- * @param {boolean} stopRecursion
6373
+ * @param {boolean} [stopRecursion=false]
6374
+ *
6375
+ * @return {Bounds}
6186
6376
  */
6187
6377
  function getBBox(elements, stopRecursion) {
6188
6378
 
@@ -6278,6 +6468,7 @@
6278
6468
  attr(outline, assign({
6279
6469
  x: 10,
6280
6470
  y: 10,
6471
+ rx: 3,
6281
6472
  width: 100,
6282
6473
  height: 100
6283
6474
  }, OUTLINE_STYLE));
@@ -6469,6 +6660,8 @@
6469
6660
  var MARKER_HOVER = 'hover',
6470
6661
  MARKER_SELECTED = 'selected';
6471
6662
 
6663
+ var SELECTION_OUTLINE_PADDING = 6;
6664
+
6472
6665
 
6473
6666
  /**
6474
6667
  * A plugin that adds a visible selection UI to shapes and connections
@@ -6478,11 +6671,13 @@
6478
6671
  *
6479
6672
  * Makes elements selectable, too.
6480
6673
  *
6481
- * @param {EventBus} events
6482
- * @param {SelectionService} selection
6483
6674
  * @param {Canvas} canvas
6675
+ * @param {EventBus} eventBus
6484
6676
  */
6485
- function SelectionVisuals(events, canvas, selection, styles) {
6677
+ function SelectionVisuals(canvas, eventBus, selection) {
6678
+ this._canvas = canvas;
6679
+
6680
+ var self = this;
6486
6681
 
6487
6682
  this._multiSelectionBox = null;
6488
6683
 
@@ -6494,15 +6689,15 @@
6494
6689
  canvas.removeMarker(e, cls);
6495
6690
  }
6496
6691
 
6497
- events.on('element.hover', function(event) {
6692
+ eventBus.on('element.hover', function(event) {
6498
6693
  addMarker(event.element, MARKER_HOVER);
6499
6694
  });
6500
6695
 
6501
- events.on('element.out', function(event) {
6696
+ eventBus.on('element.out', function(event) {
6502
6697
  removeMarker(event.element, MARKER_HOVER);
6503
6698
  });
6504
6699
 
6505
- events.on('selection.changed', function(event) {
6700
+ eventBus.on('selection.changed', function(event) {
6506
6701
 
6507
6702
  function deselect(s) {
6508
6703
  removeMarker(s, MARKER_SELECTED);
@@ -6526,16 +6721,63 @@
6526
6721
  select(e);
6527
6722
  }
6528
6723
  });
6724
+
6725
+ self._updateSelectionOutline(newSelection);
6726
+ });
6727
+
6728
+
6729
+ eventBus.on('element.changed', function(event) {
6730
+ if (selection.isSelected(event.element)) {
6731
+ self._updateSelectionOutline(selection.get());
6732
+ }
6529
6733
  });
6530
6734
  }
6531
6735
 
6532
6736
  SelectionVisuals.$inject = [
6533
- 'eventBus',
6534
6737
  'canvas',
6535
- 'selection',
6536
- 'styles'
6738
+ 'eventBus',
6739
+ 'selection'
6537
6740
  ];
6538
6741
 
6742
+ SelectionVisuals.prototype._updateSelectionOutline = function(selection) {
6743
+ var layer = this._canvas.getLayer('selectionOutline');
6744
+
6745
+ clear(layer);
6746
+
6747
+ var enabled = selection.length > 1;
6748
+
6749
+ var container = this._canvas.getContainer();
6750
+
6751
+ classes(container)[enabled ? 'add' : 'remove']('djs-multi-select');
6752
+
6753
+ if (!enabled) {
6754
+ return;
6755
+ }
6756
+
6757
+ var bBox = addSelectionOutlinePadding(getBBox(selection));
6758
+
6759
+ var rect = create('rect');
6760
+
6761
+ attr(rect, assign({
6762
+ rx: 3
6763
+ }, bBox));
6764
+
6765
+ classes(rect).add('djs-selection-outline');
6766
+
6767
+ append(layer, rect);
6768
+ };
6769
+
6770
+ // helpers //////////
6771
+
6772
+ function addSelectionOutlinePadding(bBox) {
6773
+ return {
6774
+ x: bBox.x - SELECTION_OUTLINE_PADDING,
6775
+ y: bBox.y - SELECTION_OUTLINE_PADDING,
6776
+ width: bBox.width + SELECTION_OUTLINE_PADDING * 2,
6777
+ height: bBox.height + SELECTION_OUTLINE_PADDING * 2
6778
+ };
6779
+ }
6780
+
6539
6781
  function SelectionBehavior(eventBus, selection, canvas, elementRegistry) {
6540
6782
 
6541
6783
  // Select elements on create
@@ -6566,11 +6808,10 @@
6566
6808
  // Select connection targets on connect
6567
6809
  eventBus.on('connect.end', 500, function(event) {
6568
6810
  var context = event.context,
6569
- canExecute = context.canExecute,
6570
- hover = context.hover;
6811
+ connection = context.connection;
6571
6812
 
6572
- if (canExecute && hover) {
6573
- selection.select(hover);
6813
+ if (connection) {
6814
+ selection.select(connection);
6574
6815
  }
6575
6816
  });
6576
6817
 
@@ -7036,7 +7277,8 @@
7036
7277
 
7037
7278
 
7038
7279
  Overlays.prototype._createOverlayContainer = function(element) {
7039
- var html = domify('<div class="djs-overlays" style="position: absolute" />');
7280
+ var html = domify('<div class="djs-overlays" />');
7281
+ assign$1(html, { position: 'absolute' });
7040
7282
 
7041
7283
  this._overlayRoot.appendChild(html);
7042
7284
 
@@ -7107,7 +7349,8 @@
7107
7349
 
7108
7350
  overlayContainer = this._getOverlayContainer(element);
7109
7351
 
7110
- htmlContainer = domify('<div class="djs-overlay" data-overlay-id="' + id + '" style="position: absolute">');
7352
+ htmlContainer = domify('<div class="djs-overlay" data-overlay-id="' + id + '">');
7353
+ assign$1(htmlContainer, { position: 'absolute' });
7111
7354
 
7112
7355
  htmlContainer.appendChild(html);
7113
7356
 
@@ -7292,18 +7535,30 @@
7292
7535
 
7293
7536
  function createRoot(parentNode) {
7294
7537
  var root = domify(
7295
- '<div class="djs-overlay-container" style="position: absolute; width: 0; height: 0;" />'
7538
+ '<div class="djs-overlay-container" />'
7296
7539
  );
7297
7540
 
7541
+ assign$1(root, {
7542
+ position: 'absolute',
7543
+ width: 0,
7544
+ height: 0
7545
+ });
7546
+
7298
7547
  parentNode.insertBefore(root, parentNode.firstChild);
7299
7548
 
7300
7549
  return root;
7301
7550
  }
7302
7551
 
7303
7552
  function setPosition(el, x, y) {
7304
- assign(el.style, { left: x + 'px', top: y + 'px' });
7553
+ assign$1(el, { left: x + 'px', top: y + 'px' });
7305
7554
  }
7306
7555
 
7556
+ /**
7557
+ * Set element visible
7558
+ *
7559
+ * @param {DOMElement} el
7560
+ * @param {boolean} [visible=true]
7561
+ */
7307
7562
  function setVisible(el, visible) {
7308
7563
  el.style.display = visible === false ? 'none' : '';
7309
7564
  }
@@ -7401,7 +7656,7 @@
7401
7656
  *
7402
7657
  * @example
7403
7658
  *
7404
- * import inherits from 'inherits';
7659
+ * import inherits from 'inherits-browser';
7405
7660
  *
7406
7661
  * import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';
7407
7662
  *
@@ -7557,7 +7812,7 @@
7557
7812
  });
7558
7813
  }
7559
7814
 
7560
- inherits_browser(RootElementsBehavior, CommandInterceptor);
7815
+ e(RootElementsBehavior, CommandInterceptor);
7561
7816
 
7562
7817
  RootElementsBehavior.$inject = [ 'canvas', 'injector' ];
7563
7818
 
@@ -8240,7 +8495,7 @@
8240
8495
 
8241
8496
  }
8242
8497
 
8243
- inherits_browser(DrilldownOverlayBehavior, CommandInterceptor);
8498
+ e(DrilldownOverlayBehavior, CommandInterceptor);
8244
8499
 
8245
8500
  DrilldownOverlayBehavior.prototype.updateDrilldownOverlay = function(shape) {
8246
8501
  var canvas = this._canvas;
@@ -8341,22 +8596,50 @@
8341
8596
 
8342
8597
  var CLASS_PATTERN = /^class /;
8343
8598
 
8599
+
8600
+ /**
8601
+ * @param {function} fn
8602
+ *
8603
+ * @return {boolean}
8604
+ */
8344
8605
  function isClass(fn) {
8345
8606
  return CLASS_PATTERN.test(fn.toString());
8346
8607
  }
8347
8608
 
8348
- function isArray$1(obj) {
8609
+ /**
8610
+ * @param {any} obj
8611
+ *
8612
+ * @return {boolean}
8613
+ */
8614
+ function isArray$2(obj) {
8349
8615
  return Object.prototype.toString.call(obj) === '[object Array]';
8350
8616
  }
8351
8617
 
8618
+ /**
8619
+ * @param {any} obj
8620
+ * @param {string} prop
8621
+ *
8622
+ * @return {boolean}
8623
+ */
8352
8624
  function hasOwnProp(obj, prop) {
8353
8625
  return Object.prototype.hasOwnProperty.call(obj, prop);
8354
8626
  }
8355
8627
 
8628
+ /**
8629
+ * @typedef {import('./index').InjectAnnotated } InjectAnnotated
8630
+ */
8631
+
8632
+ /**
8633
+ * @template T
8634
+ *
8635
+ * @params {[...string[], T] | ...string[], T} args
8636
+ *
8637
+ * @return {T & InjectAnnotated}
8638
+ */
8356
8639
  function annotate() {
8357
8640
  var args = Array.prototype.slice.call(arguments);
8358
8641
 
8359
- if (args.length === 1 && isArray$1(args[0])) {
8642
+ if (args.length === 1 && isArray$2(args[0])) {
8360
8643
  args = args[0];
8361
8644
  }
8362
8645
 
@@ -8382,9 +8665,14 @@
8382
8665
  // of a nested class, too.
8383
8666
 
8384
8667
  var CONSTRUCTOR_ARGS = /constructor\s*[^(]*\(\s*([^)]*)\)/m;
8385
- var FN_ARGS = /^(?:async )?(?:function\s*)?[^(]*\(\s*([^)]*)\)/m;
8668
+ var FN_ARGS = /^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m;
8386
8669
  var FN_ARG = /\/\*([^*]*)\*\//m;
8387
8670
 
8671
+ /**
8672
+ * @param {unknown} fn
8673
+ *
8674
+ * @return {string[]}
8675
+ */
8388
8676
  function parseAnnotations(fn) {
8389
8677
 
8390
8678
  if (typeof fn !== 'function') {
@@ -8398,36 +8686,26 @@
8398
8686
  return [];
8399
8687
  }
8400
8688
 
8401
- return match[1] && match[1].split(',').map(function(arg) {
8402
- match = arg.match(FN_ARG);
8403
- return match ? match[1].trim() : arg.trim();
8689
+ var args = match[1] || match[2];
8690
+
8691
+ return args && args.split(',').map(function(arg) {
8692
+ var argMatch = arg.match(FN_ARG);
8693
+ return (argMatch && argMatch[1] || arg).trim();
8404
8694
  }) || [];
8405
8695
  }
8406
8696
 
8407
- function Module() {
8408
- var providers = [];
8409
-
8410
- this.factory = function(name, factory) {
8411
- providers.push([name, 'factory', factory]);
8412
- return this;
8413
- };
8414
-
8415
- this.value = function(name, value) {
8416
- providers.push([name, 'value', value]);
8417
- return this;
8418
- };
8419
-
8420
- this.type = function(name, type) {
8421
- providers.push([name, 'type', type]);
8422
- return this;
8423
- };
8424
-
8425
- this.forEach = function(iterator) {
8426
- providers.forEach(iterator);
8427
- };
8428
-
8429
- }
8697
+ /**
8698
+ * @typedef { import('./index').ModuleDeclaration } ModuleDeclaration
8699
+ * @typedef { import('./index').ModuleDefinition } ModuleDefinition
8700
+ * @typedef { import('./index').InjectorContext } InjectorContext
8701
+ */
8430
8702
 
8703
+ /**
8704
+ * Create a new injector with the given modules.
8705
+ *
8706
+ * @param {ModuleDefinition[]} modules
8707
+ * @param {InjectorContext} [parent]
8708
+ */
8431
8709
  function Injector(modules, parent) {
8432
8710
  parent = parent || {
8433
8711
  get: function(name, strict) {
@@ -8456,12 +8734,12 @@
8456
8734
  /**
8457
8735
  * Return a named service.
8458
8736
  *
8459
- * @param {String} name
8460
- * @param {Boolean} [strict=true] if false, resolve missing services to null
8737
+ * @param {string} name
8738
+ * @param {boolean} [strict=true] if false, resolve missing services to null
8461
8739
  *
8462
- * @return {Object}
8740
+ * @return {any}
8463
8741
  */
8464
- var get = function(name, strict) {
8742
+ function get(name, strict) {
8465
8743
  if (!providers[name] && name.indexOf('.') !== -1) {
8466
8744
  var parts = name.split('.');
8467
8745
  var pivot = get(parts.shift());
@@ -8491,16 +8769,16 @@
8491
8769
  }
8492
8770
 
8493
8771
  return parent.get(name, strict);
8494
- };
8772
+ }
8495
8773
 
8496
- var fnDef = function(fn, locals) {
8774
+ function fnDef(fn, locals) {
8497
8775
 
8498
8776
  if (typeof locals === 'undefined') {
8499
8777
  locals = {};
8500
8778
  }
8501
8779
 
8502
8780
  if (typeof fn !== 'function') {
8503
- if (isArray$1(fn)) {
8781
+ if (isArray$2(fn)) {
8504
8782
  fn = annotate(fn.slice());
8505
8783
  } else {
8506
8784
  throw new Error('Cannot invoke "' + fn + '". Expected a function!');
@@ -8520,9 +8798,9 @@
8520
8798
  fn: fn,
8521
8799
  dependencies: dependencies
8522
8800
  };
8523
- };
8801
+ }
8524
8802
 
8525
- var instantiate = function(Type) {
8803
+ function instantiate(Type) {
8526
8804
  var def = fnDef(Type);
8527
8805
 
8528
8806
  var fn = def.fn,
@@ -8532,25 +8810,35 @@
8532
8810
  var Constructor = Function.prototype.bind.apply(fn, [ null ].concat(dependencies));
8533
8811
 
8534
8812
  return new Constructor();
8535
- };
8813
+ }
8536
8814
 
8537
- var invoke = function(func, context, locals) {
8815
+ function invoke(func, context, locals) {
8538
8816
  var def = fnDef(func, locals);
8539
8817
 
8540
8818
  var fn = def.fn,
8541
8819
  dependencies = def.dependencies;
8542
8820
 
8543
8821
  return fn.apply(context, dependencies);
8544
- };
8545
-
8822
+ }
8546
8823
 
8547
- var createPrivateInjectorFactory = function(privateChildInjector) {
8824
+ /**
8825
+ * @param {Injector} childInjector
8826
+ *
8827
+ * @return {Function}
8828
+ */
8829
+ function createPrivateInjectorFactory(childInjector) {
8548
8830
  return annotate(function(key) {
8549
- return privateChildInjector.get(key);
8831
+ return childInjector.get(key);
8550
8832
  });
8551
- };
8833
+ }
8552
8834
 
8553
- var createChild = function(modules, forceNewInstances) {
8835
+ /**
8836
+ * @param {ModuleDefinition[]} modules
8837
+ * @param {string[]} [forceNewInstances]
8838
+ *
8839
+ * @return {Injector}
8840
+ */
8841
+ function createChild(modules, forceNewInstances) {
8554
8842
  if (forceNewInstances && forceNewInstances.length) {
8555
8843
  var fromParentModule = Object.create(null);
8556
8844
  var matchedScopes = Object.create(null);
@@ -8575,12 +8863,12 @@
8575
8863
  privateInjectorsCache.push(provider[3]);
8576
8864
  privateChildInjectors.push(privateChildInjector);
8577
8865
  privateChildFactories.push(privateChildInjectorFactory);
8578
- fromParentModule[name] = [privateChildInjectorFactory, name, 'private', privateChildInjector];
8866
+ fromParentModule[name] = [ privateChildInjectorFactory, name, 'private', privateChildInjector ];
8579
8867
  } else {
8580
- fromParentModule[name] = [privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx]];
8868
+ fromParentModule[name] = [ privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx] ];
8581
8869
  }
8582
8870
  } else {
8583
- fromParentModule[name] = [provider[2], provider[1]];
8871
+ fromParentModule[name] = [ provider[2], provider[1] ];
8584
8872
  }
8585
8873
  matchedScopes[name] = true;
8586
8874
  }
@@ -8589,7 +8877,7 @@
8589
8877
  /* jshint -W083 */
8590
8878
  forceNewInstances.forEach(function(scope) {
8591
8879
  if (provider[1].$scope.indexOf(scope) !== -1) {
8592
- fromParentModule[name] = [provider[2], provider[1]];
8880
+ fromParentModule[name] = [ provider[2], provider[1] ];
8593
8881
  matchedScopes[scope] = true;
8594
8882
  }
8595
8883
  });
@@ -8606,7 +8894,7 @@
8606
8894
  }
8607
8895
 
8608
8896
  return new Injector(modules, self);
8609
- };
8897
+ }
8610
8898
 
8611
8899
  var factoryMap = {
8612
8900
  factory: invoke,
@@ -8616,62 +8904,169 @@
8616
8904
  }
8617
8905
  };
8618
8906
 
8619
- modules.forEach(function(module) {
8907
+ /**
8908
+ * @param {ModuleDefinition} moduleDefinition
8909
+ * @param {Injector} injector
8910
+ */
8911
+ function createInitializer(moduleDefinition, injector) {
8620
8912
 
8621
- function arrayUnwrap(type, value) {
8622
- if (type !== 'value' && isArray$1(value)) {
8623
- value = annotate(value.slice());
8624
- }
8913
+ var initializers = moduleDefinition.__init__ || [];
8625
8914
 
8626
- return value;
8627
- }
8915
+ return function() {
8916
+ initializers.forEach(function(initializer) {
8628
8917
 
8629
- // TODO(vojta): handle wrong inputs (modules)
8630
- if (module instanceof Module) {
8631
- module.forEach(function(provider) {
8632
- var name = provider[0];
8633
- var type = provider[1];
8634
- var value = provider[2];
8918
+ try {
8635
8919
 
8636
- providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];
8637
- });
8638
- } else if (typeof module === 'object') {
8639
- if (module.__exports__) {
8640
- var clonedModule = Object.keys(module).reduce(function(m, key) {
8641
- if (key.substring(0, 2) !== '__') {
8642
- m[key] = module[key];
8920
+ // eagerly resolve component (fn or string)
8921
+ if (typeof initializer === 'string') {
8922
+ injector.get(initializer);
8923
+ } else {
8924
+ injector.invoke(initializer);
8643
8925
  }
8644
- return m;
8645
- }, Object.create(null));
8646
-
8647
- var privateInjector = new Injector((module.__modules__ || []).concat([clonedModule]), self);
8648
- var getFromPrivateInjector = annotate(function(key) {
8649
- return privateInjector.get(key);
8650
- });
8651
- module.__exports__.forEach(function(key) {
8652
- providers[key] = [getFromPrivateInjector, key, 'private', privateInjector];
8653
- });
8654
- } else {
8655
- Object.keys(module).forEach(function(name) {
8656
- if (module[name][2] === 'private') {
8657
- providers[name] = module[name];
8658
- return;
8926
+ } catch (error) {
8927
+ if (typeof AggregateError !== 'undefined') {
8928
+ throw new AggregateError([ error ], 'Failed to initialize!');
8659
8929
  }
8660
8930
 
8661
- var type = module[name][0];
8662
- var value = module[name][1];
8931
+ throw new Error('Failed to initialize! ' + error.message);
8932
+ }
8933
+ });
8934
+ };
8935
+ }
8663
8936
 
8664
- providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];
8665
- });
8937
+ /**
8938
+ * @param {ModuleDefinition} moduleDefinition
8939
+ */
8940
+ function loadModule(moduleDefinition) {
8941
+
8942
+ var moduleExports = moduleDefinition.__exports__;
8943
+
8944
+ // private module
8945
+ if (moduleExports) {
8946
+ var nestedModules = moduleDefinition.__modules__;
8947
+
8948
+ var clonedModule = Object.keys(moduleDefinition).reduce(function(clonedModule, key) {
8949
+
8950
+ if (key !== '__exports__' && key !== '__modules__' && key !== '__init__' && key !== '__depends__') {
8951
+ clonedModule[key] = moduleDefinition[key];
8952
+ }
8953
+
8954
+ return clonedModule;
8955
+ }, Object.create(null));
8956
+
8957
+ var childModules = (nestedModules || []).concat(clonedModule);
8958
+
8959
+ var privateInjector = createChild(childModules);
8960
+ var getFromPrivateInjector = annotate(function(key) {
8961
+ return privateInjector.get(key);
8962
+ });
8963
+
8964
+ moduleExports.forEach(function(key) {
8965
+ providers[key] = [ getFromPrivateInjector, key, 'private', privateInjector ];
8966
+ });
8967
+
8968
+ // ensure child injector initializes
8969
+ var initializers = (moduleDefinition.__init__ || []).slice();
8970
+
8971
+ initializers.unshift(function() {
8972
+ privateInjector.init();
8973
+ });
8974
+
8975
+ moduleDefinition = Object.assign({}, moduleDefinition, {
8976
+ __init__: initializers
8977
+ });
8978
+
8979
+ return createInitializer(moduleDefinition, privateInjector);
8980
+ }
8981
+
8982
+ // normal module
8983
+ Object.keys(moduleDefinition).forEach(function(key) {
8984
+
8985
+ if (key === '__init__' || key === '__depends__') {
8986
+ return;
8987
+ }
8988
+
8989
+ if (moduleDefinition[key][2] === 'private') {
8990
+ providers[key] = moduleDefinition[key];
8991
+ return;
8666
8992
  }
8993
+
8994
+ var type = moduleDefinition[key][0];
8995
+ var value = moduleDefinition[key][1];
8996
+
8997
+ providers[key] = [ factoryMap[type], arrayUnwrap(type, value), type ];
8998
+ });
8999
+
9000
+ return createInitializer(moduleDefinition, self);
9001
+ }
9002
+
9003
+ /**
9004
+ * @param {ModuleDefinition[]} moduleDefinitions
9005
+ * @param {ModuleDefinition} moduleDefinition
9006
+ *
9007
+ * @return {ModuleDefinition[]}
9008
+ */
9009
+ function resolveDependencies(moduleDefinitions, moduleDefinition) {
9010
+
9011
+ if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {
9012
+ return moduleDefinitions;
8667
9013
  }
8668
- });
9014
+
9015
+ moduleDefinitions = (moduleDefinition.__depends__ || []).reduce(resolveDependencies, moduleDefinitions);
9016
+
9017
+ if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {
9018
+ return moduleDefinitions;
9019
+ }
9020
+
9021
+ return moduleDefinitions.concat(moduleDefinition);
9022
+ }
9023
+
9024
+ /**
9025
+ * @param {ModuleDefinition[]} moduleDefinitions
9026
+ *
9027
+ * @return { () => void } initializerFn
9028
+ */
9029
+ function bootstrap(moduleDefinitions) {
9030
+
9031
+ var initializers = moduleDefinitions
9032
+ .reduce(resolveDependencies, [])
9033
+ .map(loadModule);
9034
+
9035
+ var initialized = false;
9036
+
9037
+ return function() {
9038
+
9039
+ if (initialized) {
9040
+ return;
9041
+ }
9042
+
9043
+ initialized = true;
9044
+
9045
+ initializers.forEach(function(initializer) {
9046
+ return initializer();
9047
+ });
9048
+ };
9049
+ }
8669
9050
 
8670
9051
  // public API
8671
9052
  this.get = get;
8672
9053
  this.invoke = invoke;
8673
9054
  this.instantiate = instantiate;
8674
9055
  this.createChild = createChild;
9056
+
9057
+ // setup
9058
+ this.init = bootstrap(modules);
9059
+ }
9060
+
9061
+
9062
+ // helpers ///////////////
9063
+
9064
+ function arrayUnwrap(type, value) {
9065
+ if (type !== 'value' && isArray$2(value)) {
9066
+ value = annotate(value.slice());
9067
+ }
9068
+
9069
+ return value;
8675
9070
  }
8676
9071
 
8677
9072
  // apply default renderer with lowest possible priority
@@ -8694,7 +9089,7 @@
8694
9089
  this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });
8695
9090
  }
8696
9091
 
8697
- inherits_browser(DefaultRenderer, BaseRenderer);
9092
+ e(DefaultRenderer, BaseRenderer);
8698
9093
 
8699
9094
 
8700
9095
  DefaultRenderer.prototype.canRender = function() {
@@ -8950,7 +9345,7 @@
8950
9345
  var parent = document.createElement('div');
8951
9346
  parent.setAttribute('class', 'djs-container');
8952
9347
 
8953
- assign(parent.style, {
9348
+ assign$1(parent, {
8954
9349
  position: 'relative',
8955
9350
  overflow: 'hidden',
8956
9351
  width: ensurePx(options.width),
@@ -11029,7 +11424,7 @@
11029
11424
  attacherRefs.bind(this, 'attachers');
11030
11425
  }
11031
11426
 
11032
- inherits_browser(Shape, Base);
11427
+ e(Shape, Base);
11033
11428
 
11034
11429
 
11035
11430
  /**
@@ -11044,7 +11439,7 @@
11044
11439
  Shape.call(this);
11045
11440
  }
11046
11441
 
11047
- inherits_browser(Root, Shape);
11442
+ e(Root, Shape);
11048
11443
 
11049
11444
 
11050
11445
  /**
@@ -11067,7 +11462,7 @@
11067
11462
  labelRefs.bind(this, 'labelTarget');
11068
11463
  }
11069
11464
 
11070
- inherits_browser(Label, Shape);
11465
+ e(Label, Shape);
11071
11466
 
11072
11467
 
11073
11468
  /**
@@ -11098,7 +11493,7 @@
11098
11493
  incomingRefs.bind(this, 'target');
11099
11494
  }
11100
11495
 
11101
- inherits_browser(Connection, Base);
11496
+ e(Connection, Base);
11102
11497
 
11103
11498
 
11104
11499
  var types = {
@@ -11949,62 +12344,21 @@
11949
12344
  graphicsFactory: [ 'type', GraphicsFactory ]
11950
12345
  };
11951
12346
 
12347
+ /**
12348
+ * @typedef { import('didi').ModuleDeclaration } Module
12349
+ */
12350
+
11952
12351
  /**
11953
12352
  * Bootstrap an injector from a list of modules, instantiating a number of default components
11954
12353
  *
11955
- * @ignore
11956
- * @param {Array<didi.Module>} bootstrapModules
12354
+ * @param {Array<Module>} modules
11957
12355
  *
11958
- * @return {didi.Injector} a injector to use to access the components
12356
+ * @return {Injector} a injector to use to access the components
11959
12357
  */
11960
- function bootstrap(bootstrapModules) {
11961
-
11962
- var modules = [],
11963
- components = [];
11964
-
11965
- function hasModule(m) {
11966
- return modules.indexOf(m) >= 0;
11967
- }
11968
-
11969
- function addModule(m) {
11970
- modules.push(m);
11971
- }
11972
-
11973
- function visit(m) {
11974
- if (hasModule(m)) {
11975
- return;
11976
- }
11977
-
11978
- (m.__depends__ || []).forEach(visit);
11979
-
11980
- if (hasModule(m)) {
11981
- return;
11982
- }
11983
-
11984
- addModule(m);
11985
-
11986
- (m.__init__ || []).forEach(function(c) {
11987
- components.push(c);
11988
- });
11989
- }
11990
-
11991
- bootstrapModules.forEach(visit);
11992
-
12358
+ function bootstrap(modules) {
11993
12359
  var injector = new Injector(modules);
11994
12360
 
11995
- components.forEach(function(c) {
11996
-
11997
- try {
11998
-
11999
- // eagerly resolve component (fn or string)
12000
- injector[typeof c === 'string' ? 'get' : 'invoke'](c);
12001
- } catch (e) {
12002
- console.error('Failed to instantiate component');
12003
- console.error(e.stack);
12004
-
12005
- throw e;
12006
- }
12007
- });
12361
+ injector.init();
12008
12362
 
12009
12363
  return injector;
12010
12364
  }
@@ -12012,9 +12366,8 @@
12012
12366
  /**
12013
12367
  * Creates an injector from passed options.
12014
12368
  *
12015
- * @ignore
12016
- * @param {Object} options
12017
- * @return {didi.Injector}
12369
+ * @param {Object} options
12370
+ * @return {Injector}
12018
12371
  */
12019
12372
  function createInjector(options) {
12020
12373
 
@@ -12034,7 +12387,7 @@
12034
12387
  * The main diagram-js entry point that bootstraps the diagram with the given
12035
12388
  * configuration.
12036
12389
  *
12037
- * To register extensions with the diagram, pass them as Array<didi.Module> to the constructor.
12390
+ * To register extensions with the diagram, pass them as Array<Module> to the constructor.
12038
12391
  *
12039
12392
  * @class djs.Diagram
12040
12393
  * @memberOf djs
@@ -12076,8 +12429,8 @@
12076
12429
  * // 'shape ... was added to the diagram' logged to console
12077
12430
  *
12078
12431
  * @param {Object} options
12079
- * @param {Array<didi.Module>} [options.modules] external modules to instantiate with the diagram
12080
- * @param {didi.Injector} [injector] an (optional) injector to bootstrap the diagram with
12432
+ * @param {Array<Module>} [options.modules] external modules to instantiate with the diagram
12433
+ * @param {Injector} [injector] an (optional) injector to bootstrap the diagram with
12081
12434
  */
12082
12435
  function Diagram(options, injector) {
12083
12436
 
@@ -12742,7 +13095,7 @@
12742
13095
 
12743
13096
  var propertyName = property && property.name;
12744
13097
 
12745
- if (isUndefined$1(value)) {
13098
+ if (isUndefined$2(value)) {
12746
13099
  // unset the property, if the specified value is undefined;
12747
13100
  // delete from $attrs (for extensions) or the target itself
12748
13101
  if (property) {
@@ -12833,7 +13186,7 @@
12833
13186
  };
12834
13187
 
12835
13188
 
12836
- function isUndefined$1(val) {
13189
+ function isUndefined$2(val) {
12837
13190
  return typeof val === 'undefined';
12838
13191
  }
12839
13192
 
@@ -20388,53 +20741,53 @@
20388
20741
 
20389
20742
 
20390
20743
  // inlined ../../resources/logo.svg
20391
- var BPMNIO_LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.02 5.57" width="53" height="21" style="vertical-align:middle"><path fill="currentColor" d="M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z"/><path fill="currentColor" d="M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z"/></svg>';
20744
+ var BPMNIO_LOGO_SVG = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.02 5.57" width="53" height="21"><path fill="currentColor" d="M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z"/><path fill="currentColor" d="M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z"/></svg>';
20392
20745
 
20393
20746
  var BPMNIO_IMG = BPMNIO_LOGO_SVG;
20394
20747
 
20395
- function css(attrs) {
20396
- return attrs.join(';');
20397
- }
20398
-
20399
- var LINK_STYLES = css([
20400
- 'color: #404040'
20401
- ]);
20402
-
20403
- var LIGHTBOX_STYLES = css([
20404
- 'z-index: 1001',
20405
- 'position: fixed',
20406
- 'top: 0',
20407
- 'left: 0',
20408
- 'right: 0',
20409
- 'bottom: 0'
20410
- ]);
20411
-
20412
- var BACKDROP_STYLES = css([
20413
- 'width: 100%',
20414
- 'height: 100%',
20415
- 'background: rgba(40,40,40,0.2)'
20416
- ]);
20417
-
20418
- var NOTICE_STYLES = css([
20419
- 'position: absolute',
20420
- 'left: 50%',
20421
- 'top: 40%',
20422
- 'transform: translate(-50%)',
20423
- 'width: 260px',
20424
- 'padding: 10px',
20425
- 'background: white',
20426
- 'box-shadow: 0 1px 4px rgba(0,0,0,0.3)',
20427
- 'font-family: Helvetica, Arial, sans-serif',
20428
- 'font-size: 14px',
20429
- 'display: flex',
20430
- 'line-height: 1.3'
20431
- ]);
20748
+ var LOGO_STYLES = {
20749
+ verticalAlign: 'middle'
20750
+ };
20751
+
20752
+ var LINK_STYLES = {
20753
+ 'color': '#404040'
20754
+ };
20755
+
20756
+ var LIGHTBOX_STYLES = {
20757
+ 'zIndex': '1001',
20758
+ 'position': 'fixed',
20759
+ 'top': '0',
20760
+ 'left': '0',
20761
+ 'right': '0',
20762
+ 'bottom': '0'
20763
+ };
20764
+
20765
+ var BACKDROP_STYLES = {
20766
+ 'width': '100%',
20767
+ 'height': '100%',
20768
+ 'background': 'rgba(40,40,40,0.2)'
20769
+ };
20770
+
20771
+ var NOTICE_STYLES = {
20772
+ 'position': 'absolute',
20773
+ 'left': '50%',
20774
+ 'top': '40%',
20775
+ 'transform': 'translate(-50%)',
20776
+ 'width': '260px',
20777
+ 'padding': '10px',
20778
+ 'background': 'white',
20779
+ 'boxShadow': '0 1px 4px rgba(0,0,0,0.3)',
20780
+ 'fontFamily': 'Helvetica, Arial, sans-serif',
20781
+ 'fontSize': '14px',
20782
+ 'display': 'flex',
20783
+ 'lineHeight': '1.3'
20784
+ };
20432
20785
 
20433
20786
  var LIGHTBOX_MARKUP =
20434
- '<div class="bjs-powered-by-lightbox" style="' + LIGHTBOX_STYLES + '">' +
20435
- '<div class="backdrop" style="' + BACKDROP_STYLES + '"></div>' +
20436
- '<div class="notice" style="' + NOTICE_STYLES + '">' +
20437
- '<a href="https://bpmn.io" target="_blank" rel="noopener" style="margin: 15px 20px 15px 10px; align-self: center;' + LINK_STYLES + '">' +
20787
+ '<div class="bjs-powered-by-lightbox">' +
20788
+ '<div class="backdrop"></div>' +
20789
+ '<div class="notice">' +
20790
+ '<a href="https://bpmn.io" target="_blank" rel="noopener" class="link">' +
20438
20791
  BPMNIO_IMG +
20439
20792
  '</a>' +
20440
20793
  '<span>' +
@@ -20447,10 +20800,23 @@
20447
20800
 
20448
20801
  var lightbox;
20449
20802
 
20803
+ function createLightbox() {
20804
+ lightbox = domify(LIGHTBOX_MARKUP);
20805
+
20806
+ assign$1(lightbox, LIGHTBOX_STYLES);
20807
+ assign$1(query('svg', lightbox), LOGO_STYLES);
20808
+ assign$1(query('.backdrop', lightbox), BACKDROP_STYLES);
20809
+ assign$1(query('.notice', lightbox), NOTICE_STYLES);
20810
+ assign$1(query('.link', lightbox), LINK_STYLES, {
20811
+ 'margin': '15px 20px 15px 10px',
20812
+ 'alignSelf': 'center'
20813
+ });
20814
+ }
20815
+
20450
20816
  function open() {
20451
20817
 
20452
20818
  if (!lightbox) {
20453
- lightbox = domify(LIGHTBOX_MARKUP);
20819
+ createLightbox();
20454
20820
 
20455
20821
  delegate.bind(lightbox, '.backdrop', 'click', function(event) {
20456
20822
  document.body.removeChild(lightbox);
@@ -20498,7 +20864,7 @@
20498
20864
  this._init(this._container, this._moddle, options);
20499
20865
  }
20500
20866
 
20501
- inherits_browser(BaseViewer, Diagram);
20867
+ e(BaseViewer, Diagram);
20502
20868
 
20503
20869
  /**
20504
20870
  * The importXML result.
@@ -21086,7 +21452,7 @@
21086
21452
 
21087
21453
  var container = domify('<div class="bjs-container"></div>');
21088
21454
 
21089
- assign(container.style, {
21455
+ assign$1(container, {
21090
21456
  width: ensureUnit(options.width),
21091
21457
  height: ensureUnit(options.height),
21092
21458
  position: options.position
@@ -21176,12 +21542,20 @@
21176
21542
  'target="_blank" ' +
21177
21543
  'class="bjs-powered-by" ' +
21178
21544
  'title="Powered by bpmn.io" ' +
21179
- 'style="position: absolute; bottom: 15px; right: 15px; z-index: 100; ' + LINK_STYLES + '">' +
21545
+ '>' +
21180
21546
  img +
21181
21547
  '</a>';
21182
21548
 
21183
21549
  var linkElement = domify(linkMarkup);
21184
21550
 
21551
+ assign$1(query('svg', linkElement), LOGO_STYLES);
21552
+ assign$1(linkElement, LINK_STYLES, {
21553
+ position: 'absolute',
21554
+ bottom: '15px',
21555
+ right: '15px',
21556
+ zIndex: '100'
21557
+ });
21558
+
21185
21559
  container.appendChild(linkElement);
21186
21560
 
21187
21561
  componentEvent.bind(linkElement, 'click', function(event) {
@@ -21244,7 +21618,7 @@
21244
21618
  BaseViewer.call(this, options);
21245
21619
  }
21246
21620
 
21247
- inherits_browser(Viewer, BaseViewer);
21621
+ e(Viewer, BaseViewer);
21248
21622
 
21249
21623
  // modules the viewer is composed of
21250
21624
  Viewer.prototype._modules = [
@@ -21587,8 +21961,8 @@
21587
21961
  elementTemplatesIconsRenderer: [ 'type', IconsRenderer ]
21588
21962
  };
21589
21963
 
21590
- var drilldownModule = {
21591
- drilldownOverlayBehavior: [ 'value', null ],
21964
+ var drilldownModule = {
21965
+ drilldownOverlayBehavior: [ 'value', null ],
21592
21966
  };
21593
21967
 
21594
21968
  var name$6 = "zeebe";
@@ -21955,41 +22329,41 @@
21955
22329
  types: types$6
21956
22330
  };
21957
22331
 
21958
- const commonModules = [
21959
- drilldownModule,
21960
- iconRendererModule
21961
- ];
21962
-
21963
- const commonModdleExtensions = {
21964
- zeebe: zeebeModdle
22332
+ const commonModules = [
22333
+ drilldownModule,
22334
+ iconRendererModule
22335
+ ];
22336
+
22337
+ const commonModdleExtensions = {
22338
+ zeebe: zeebeModdle
21965
22339
  };
21966
22340
 
21967
- /**
21968
- *
21969
- * @param {Object} options
21970
- */
21971
- function Viewer$1(options = {}) {
21972
-
21973
- options = {
21974
- ...options,
21975
- moddleExtensions: {
21976
- ...commonModdleExtensions,
21977
- ...options.moddleExtensions
21978
- }
21979
- };
21980
-
21981
- Viewer.call(this, options);
21982
- }
21983
-
21984
- inherits_browser(Viewer$1, Viewer);
21985
-
21986
- Viewer$1.prototype._camundaCloudModules = [
21987
- ...commonModules
21988
- ];
21989
-
21990
- Viewer$1.prototype._modules = [].concat(
21991
- Viewer.prototype._modules,
21992
- Viewer$1.prototype._camundaCloudModules
22341
+ /**
22342
+ *
22343
+ * @param {Object} options
22344
+ */
22345
+ function Viewer$1(options = {}) {
22346
+
22347
+ options = {
22348
+ ...options,
22349
+ moddleExtensions: {
22350
+ ...commonModdleExtensions,
22351
+ ...options.moddleExtensions
22352
+ }
22353
+ };
22354
+
22355
+ Viewer.call(this, options);
22356
+ }
22357
+
22358
+ inherits_browser(Viewer$1, Viewer);
22359
+
22360
+ Viewer$1.prototype._camundaCloudModules = [
22361
+ ...commonModules
22362
+ ];
22363
+
22364
+ Viewer$1.prototype._modules = [].concat(
22365
+ Viewer.prototype._modules,
22366
+ Viewer$1.prototype._camundaCloudModules
21993
22367
  );
21994
22368
 
21995
22369
  return Viewer$1;