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);
@@ -5290,13 +5390,98 @@
5290
5390
  *
5291
5391
  * @return {Point}
5292
5392
  */
5293
- function getMid(bounds) {
5393
+ function getBoundsMid(bounds) {
5294
5394
  return roundPoint({
5295
5395
  x: bounds.x + (bounds.width || 0) / 2,
5296
5396
  y: bounds.y + (bounds.height || 0) / 2
5297
5397
  });
5298
5398
  }
5299
5399
 
5400
+
5401
+ /**
5402
+ * Get the mid of the given Connection.
5403
+ *
5404
+ * @param {djs.Base.Connection} connection
5405
+ *
5406
+ * @return {Point}
5407
+ */
5408
+ function getConnectionMid(connection) {
5409
+ var waypoints = connection.waypoints;
5410
+
5411
+ // calculate total length and length of each segment
5412
+ var parts = waypoints.reduce(function(parts, point, index) {
5413
+
5414
+ var lastPoint = waypoints[index - 1];
5415
+
5416
+ if (lastPoint) {
5417
+ var lastPart = parts[parts.length - 1];
5418
+
5419
+ var startLength = lastPart && lastPart.endLength || 0;
5420
+ var length = distance(lastPoint, point);
5421
+
5422
+ parts.push({
5423
+ start: lastPoint,
5424
+ end: point,
5425
+ startLength: startLength,
5426
+ endLength: startLength + length,
5427
+ length: length
5428
+ });
5429
+ }
5430
+
5431
+ return parts;
5432
+ }, []);
5433
+
5434
+ var totalLength = parts.reduce(function(length, part) {
5435
+ return length + part.length;
5436
+ }, 0);
5437
+
5438
+ // find which segement contains middle point
5439
+ var midLength = totalLength / 2;
5440
+
5441
+ var i = 0;
5442
+ var midSegment = parts[i];
5443
+
5444
+ while (midSegment.endLength < midLength) {
5445
+ midSegment = parts[++i];
5446
+ }
5447
+
5448
+ // calculate relative position on mid segment
5449
+ var segmentProgress = (midLength - midSegment.startLength) / midSegment.length;
5450
+
5451
+ var midPoint = {
5452
+ x: midSegment.start.x + (midSegment.end.x - midSegment.start.x) * segmentProgress,
5453
+ y: midSegment.start.y + (midSegment.end.y - midSegment.start.y) * segmentProgress
5454
+ };
5455
+
5456
+ return midPoint;
5457
+ }
5458
+
5459
+
5460
+ /**
5461
+ * Get the mid of the given Element.
5462
+ *
5463
+ * @param {djs.Base.Connection} connection
5464
+ *
5465
+ * @return {Point}
5466
+ */
5467
+ function getMid(element) {
5468
+ if (isConnection(element)) {
5469
+ return getConnectionMid(element);
5470
+ }
5471
+
5472
+ return getBoundsMid(element);
5473
+ }
5474
+
5475
+ // helpers //////////////////////
5476
+
5477
+ function distance(a, b) {
5478
+ return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));
5479
+ }
5480
+
5481
+ function isConnection(element) {
5482
+ return !!element.waypoints;
5483
+ }
5484
+
5300
5485
  function elementToString(e) {
5301
5486
  if (!e) {
5302
5487
  return '<null>';
@@ -5922,10 +6107,13 @@
5922
6107
 
5923
6108
  var ALL_HIT_STYLE = createHitStyle('djs-hit djs-hit-all');
5924
6109
 
6110
+ var NO_MOVE_HIT_STYLE = createHitStyle('djs-hit djs-hit-no-move');
6111
+
5925
6112
  var HIT_TYPES = {
5926
6113
  'all': ALL_HIT_STYLE,
5927
6114
  'click-stroke': CLICK_STROKE_HIT_STYLE,
5928
- 'stroke': STROKE_HIT_STYLE
6115
+ 'stroke': STROKE_HIT_STYLE,
6116
+ 'no-move': NO_MOVE_HIT_STYLE
5929
6117
  };
5930
6118
 
5931
6119
  function createHitStyle(classNames, attrs) {
@@ -6178,7 +6366,9 @@
6178
6366
  * the array or the element primitive.
6179
6367
  *
6180
6368
  * @param {Array<djs.model.Shape>|djs.model.Shape} elements
6181
- * @param {boolean} stopRecursion
6369
+ * @param {boolean} [stopRecursion=false]
6370
+ *
6371
+ * @return {Bounds}
6182
6372
  */
6183
6373
  function getBBox(elements, stopRecursion) {
6184
6374
 
@@ -6274,6 +6464,7 @@
6274
6464
  attr(outline, assign({
6275
6465
  x: 10,
6276
6466
  y: 10,
6467
+ rx: 3,
6277
6468
  width: 100,
6278
6469
  height: 100
6279
6470
  }, OUTLINE_STYLE));
@@ -6465,6 +6656,8 @@
6465
6656
  var MARKER_HOVER = 'hover',
6466
6657
  MARKER_SELECTED = 'selected';
6467
6658
 
6659
+ var SELECTION_OUTLINE_PADDING = 6;
6660
+
6468
6661
 
6469
6662
  /**
6470
6663
  * A plugin that adds a visible selection UI to shapes and connections
@@ -6474,11 +6667,13 @@
6474
6667
  *
6475
6668
  * Makes elements selectable, too.
6476
6669
  *
6477
- * @param {EventBus} events
6478
- * @param {SelectionService} selection
6479
6670
  * @param {Canvas} canvas
6671
+ * @param {EventBus} eventBus
6480
6672
  */
6481
- function SelectionVisuals(events, canvas, selection, styles) {
6673
+ function SelectionVisuals(canvas, eventBus, selection) {
6674
+ this._canvas = canvas;
6675
+
6676
+ var self = this;
6482
6677
 
6483
6678
  this._multiSelectionBox = null;
6484
6679
 
@@ -6490,15 +6685,15 @@
6490
6685
  canvas.removeMarker(e, cls);
6491
6686
  }
6492
6687
 
6493
- events.on('element.hover', function(event) {
6688
+ eventBus.on('element.hover', function(event) {
6494
6689
  addMarker(event.element, MARKER_HOVER);
6495
6690
  });
6496
6691
 
6497
- events.on('element.out', function(event) {
6692
+ eventBus.on('element.out', function(event) {
6498
6693
  removeMarker(event.element, MARKER_HOVER);
6499
6694
  });
6500
6695
 
6501
- events.on('selection.changed', function(event) {
6696
+ eventBus.on('selection.changed', function(event) {
6502
6697
 
6503
6698
  function deselect(s) {
6504
6699
  removeMarker(s, MARKER_SELECTED);
@@ -6522,16 +6717,63 @@
6522
6717
  select(e);
6523
6718
  }
6524
6719
  });
6720
+
6721
+ self._updateSelectionOutline(newSelection);
6722
+ });
6723
+
6724
+
6725
+ eventBus.on('element.changed', function(event) {
6726
+ if (selection.isSelected(event.element)) {
6727
+ self._updateSelectionOutline(selection.get());
6728
+ }
6525
6729
  });
6526
6730
  }
6527
6731
 
6528
6732
  SelectionVisuals.$inject = [
6529
- 'eventBus',
6530
6733
  'canvas',
6531
- 'selection',
6532
- 'styles'
6734
+ 'eventBus',
6735
+ 'selection'
6533
6736
  ];
6534
6737
 
6738
+ SelectionVisuals.prototype._updateSelectionOutline = function(selection) {
6739
+ var layer = this._canvas.getLayer('selectionOutline');
6740
+
6741
+ clear(layer);
6742
+
6743
+ var enabled = selection.length > 1;
6744
+
6745
+ var container = this._canvas.getContainer();
6746
+
6747
+ classes(container)[enabled ? 'add' : 'remove']('djs-multi-select');
6748
+
6749
+ if (!enabled) {
6750
+ return;
6751
+ }
6752
+
6753
+ var bBox = addSelectionOutlinePadding(getBBox(selection));
6754
+
6755
+ var rect = create('rect');
6756
+
6757
+ attr(rect, assign({
6758
+ rx: 3
6759
+ }, bBox));
6760
+
6761
+ classes(rect).add('djs-selection-outline');
6762
+
6763
+ append(layer, rect);
6764
+ };
6765
+
6766
+ // helpers //////////
6767
+
6768
+ function addSelectionOutlinePadding(bBox) {
6769
+ return {
6770
+ x: bBox.x - SELECTION_OUTLINE_PADDING,
6771
+ y: bBox.y - SELECTION_OUTLINE_PADDING,
6772
+ width: bBox.width + SELECTION_OUTLINE_PADDING * 2,
6773
+ height: bBox.height + SELECTION_OUTLINE_PADDING * 2
6774
+ };
6775
+ }
6776
+
6535
6777
  function SelectionBehavior(eventBus, selection, canvas, elementRegistry) {
6536
6778
 
6537
6779
  // Select elements on create
@@ -6562,11 +6804,10 @@
6562
6804
  // Select connection targets on connect
6563
6805
  eventBus.on('connect.end', 500, function(event) {
6564
6806
  var context = event.context,
6565
- canExecute = context.canExecute,
6566
- hover = context.hover;
6807
+ connection = context.connection;
6567
6808
 
6568
- if (canExecute && hover) {
6569
- selection.select(hover);
6809
+ if (connection) {
6810
+ selection.select(connection);
6570
6811
  }
6571
6812
  });
6572
6813
 
@@ -7032,7 +7273,8 @@
7032
7273
 
7033
7274
 
7034
7275
  Overlays.prototype._createOverlayContainer = function(element) {
7035
- var html = domify('<div class="djs-overlays" style="position: absolute" />');
7276
+ var html = domify('<div class="djs-overlays" />');
7277
+ assign$1(html, { position: 'absolute' });
7036
7278
 
7037
7279
  this._overlayRoot.appendChild(html);
7038
7280
 
@@ -7103,7 +7345,8 @@
7103
7345
 
7104
7346
  overlayContainer = this._getOverlayContainer(element);
7105
7347
 
7106
- htmlContainer = domify('<div class="djs-overlay" data-overlay-id="' + id + '" style="position: absolute">');
7348
+ htmlContainer = domify('<div class="djs-overlay" data-overlay-id="' + id + '">');
7349
+ assign$1(htmlContainer, { position: 'absolute' });
7107
7350
 
7108
7351
  htmlContainer.appendChild(html);
7109
7352
 
@@ -7288,18 +7531,30 @@
7288
7531
 
7289
7532
  function createRoot(parentNode) {
7290
7533
  var root = domify(
7291
- '<div class="djs-overlay-container" style="position: absolute; width: 0; height: 0;" />'
7534
+ '<div class="djs-overlay-container" />'
7292
7535
  );
7293
7536
 
7537
+ assign$1(root, {
7538
+ position: 'absolute',
7539
+ width: 0,
7540
+ height: 0
7541
+ });
7542
+
7294
7543
  parentNode.insertBefore(root, parentNode.firstChild);
7295
7544
 
7296
7545
  return root;
7297
7546
  }
7298
7547
 
7299
7548
  function setPosition(el, x, y) {
7300
- assign(el.style, { left: x + 'px', top: y + 'px' });
7549
+ assign$1(el, { left: x + 'px', top: y + 'px' });
7301
7550
  }
7302
7551
 
7552
+ /**
7553
+ * Set element visible
7554
+ *
7555
+ * @param {DOMElement} el
7556
+ * @param {boolean} [visible=true]
7557
+ */
7303
7558
  function setVisible(el, visible) {
7304
7559
  el.style.display = visible === false ? 'none' : '';
7305
7560
  }
@@ -7397,7 +7652,7 @@
7397
7652
  *
7398
7653
  * @example
7399
7654
  *
7400
- * import inherits from 'inherits';
7655
+ * import inherits from 'inherits-browser';
7401
7656
  *
7402
7657
  * import CommandInterceptor from 'diagram-js/lib/command/CommandInterceptor';
7403
7658
  *
@@ -7553,7 +7808,7 @@
7553
7808
  });
7554
7809
  }
7555
7810
 
7556
- inherits_browser(RootElementsBehavior, CommandInterceptor);
7811
+ e(RootElementsBehavior, CommandInterceptor);
7557
7812
 
7558
7813
  RootElementsBehavior.$inject = [ 'canvas', 'injector' ];
7559
7814
 
@@ -8236,7 +8491,7 @@
8236
8491
 
8237
8492
  }
8238
8493
 
8239
- inherits_browser(DrilldownOverlayBehavior, CommandInterceptor);
8494
+ e(DrilldownOverlayBehavior, CommandInterceptor);
8240
8495
 
8241
8496
  DrilldownOverlayBehavior.prototype.updateDrilldownOverlay = function(shape) {
8242
8497
  var canvas = this._canvas;
@@ -8337,22 +8592,50 @@
8337
8592
 
8338
8593
  var CLASS_PATTERN = /^class /;
8339
8594
 
8595
+
8596
+ /**
8597
+ * @param {function} fn
8598
+ *
8599
+ * @return {boolean}
8600
+ */
8340
8601
  function isClass(fn) {
8341
8602
  return CLASS_PATTERN.test(fn.toString());
8342
8603
  }
8343
8604
 
8344
- function isArray$1(obj) {
8605
+ /**
8606
+ * @param {any} obj
8607
+ *
8608
+ * @return {boolean}
8609
+ */
8610
+ function isArray$2(obj) {
8345
8611
  return Object.prototype.toString.call(obj) === '[object Array]';
8346
8612
  }
8347
8613
 
8614
+ /**
8615
+ * @param {any} obj
8616
+ * @param {string} prop
8617
+ *
8618
+ * @return {boolean}
8619
+ */
8348
8620
  function hasOwnProp(obj, prop) {
8349
8621
  return Object.prototype.hasOwnProperty.call(obj, prop);
8350
8622
  }
8351
8623
 
8624
+ /**
8625
+ * @typedef {import('./index').InjectAnnotated } InjectAnnotated
8626
+ */
8627
+
8628
+ /**
8629
+ * @template T
8630
+ *
8631
+ * @params {[...string[], T] | ...string[], T} args
8632
+ *
8633
+ * @return {T & InjectAnnotated}
8634
+ */
8352
8635
  function annotate() {
8353
8636
  var args = Array.prototype.slice.call(arguments);
8354
8637
 
8355
- if (args.length === 1 && isArray$1(args[0])) {
8638
+ if (args.length === 1 && isArray$2(args[0])) {
8356
8639
  args = args[0];
8357
8640
  }
8358
8641
 
@@ -8378,9 +8661,14 @@
8378
8661
  // of a nested class, too.
8379
8662
 
8380
8663
  var CONSTRUCTOR_ARGS = /constructor\s*[^(]*\(\s*([^)]*)\)/m;
8381
- var FN_ARGS = /^(?:async )?(?:function\s*)?[^(]*\(\s*([^)]*)\)/m;
8664
+ var FN_ARGS = /^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m;
8382
8665
  var FN_ARG = /\/\*([^*]*)\*\//m;
8383
8666
 
8667
+ /**
8668
+ * @param {unknown} fn
8669
+ *
8670
+ * @return {string[]}
8671
+ */
8384
8672
  function parseAnnotations(fn) {
8385
8673
 
8386
8674
  if (typeof fn !== 'function') {
@@ -8394,36 +8682,26 @@
8394
8682
  return [];
8395
8683
  }
8396
8684
 
8397
- return match[1] && match[1].split(',').map(function(arg) {
8398
- match = arg.match(FN_ARG);
8399
- return match ? match[1].trim() : arg.trim();
8685
+ var args = match[1] || match[2];
8686
+
8687
+ return args && args.split(',').map(function(arg) {
8688
+ var argMatch = arg.match(FN_ARG);
8689
+ return (argMatch && argMatch[1] || arg).trim();
8400
8690
  }) || [];
8401
8691
  }
8402
8692
 
8403
- function Module() {
8404
- var providers = [];
8405
-
8406
- this.factory = function(name, factory) {
8407
- providers.push([name, 'factory', factory]);
8408
- return this;
8409
- };
8410
-
8411
- this.value = function(name, value) {
8412
- providers.push([name, 'value', value]);
8413
- return this;
8414
- };
8415
-
8416
- this.type = function(name, type) {
8417
- providers.push([name, 'type', type]);
8418
- return this;
8419
- };
8420
-
8421
- this.forEach = function(iterator) {
8422
- providers.forEach(iterator);
8423
- };
8424
-
8425
- }
8693
+ /**
8694
+ * @typedef { import('./index').ModuleDeclaration } ModuleDeclaration
8695
+ * @typedef { import('./index').ModuleDefinition } ModuleDefinition
8696
+ * @typedef { import('./index').InjectorContext } InjectorContext
8697
+ */
8426
8698
 
8699
+ /**
8700
+ * Create a new injector with the given modules.
8701
+ *
8702
+ * @param {ModuleDefinition[]} modules
8703
+ * @param {InjectorContext} [parent]
8704
+ */
8427
8705
  function Injector(modules, parent) {
8428
8706
  parent = parent || {
8429
8707
  get: function(name, strict) {
@@ -8452,12 +8730,12 @@
8452
8730
  /**
8453
8731
  * Return a named service.
8454
8732
  *
8455
- * @param {String} name
8456
- * @param {Boolean} [strict=true] if false, resolve missing services to null
8733
+ * @param {string} name
8734
+ * @param {boolean} [strict=true] if false, resolve missing services to null
8457
8735
  *
8458
- * @return {Object}
8736
+ * @return {any}
8459
8737
  */
8460
- var get = function(name, strict) {
8738
+ function get(name, strict) {
8461
8739
  if (!providers[name] && name.indexOf('.') !== -1) {
8462
8740
  var parts = name.split('.');
8463
8741
  var pivot = get(parts.shift());
@@ -8487,16 +8765,16 @@
8487
8765
  }
8488
8766
 
8489
8767
  return parent.get(name, strict);
8490
- };
8768
+ }
8491
8769
 
8492
- var fnDef = function(fn, locals) {
8770
+ function fnDef(fn, locals) {
8493
8771
 
8494
8772
  if (typeof locals === 'undefined') {
8495
8773
  locals = {};
8496
8774
  }
8497
8775
 
8498
8776
  if (typeof fn !== 'function') {
8499
- if (isArray$1(fn)) {
8777
+ if (isArray$2(fn)) {
8500
8778
  fn = annotate(fn.slice());
8501
8779
  } else {
8502
8780
  throw new Error('Cannot invoke "' + fn + '". Expected a function!');
@@ -8516,9 +8794,9 @@
8516
8794
  fn: fn,
8517
8795
  dependencies: dependencies
8518
8796
  };
8519
- };
8797
+ }
8520
8798
 
8521
- var instantiate = function(Type) {
8799
+ function instantiate(Type) {
8522
8800
  var def = fnDef(Type);
8523
8801
 
8524
8802
  var fn = def.fn,
@@ -8528,25 +8806,35 @@
8528
8806
  var Constructor = Function.prototype.bind.apply(fn, [ null ].concat(dependencies));
8529
8807
 
8530
8808
  return new Constructor();
8531
- };
8809
+ }
8532
8810
 
8533
- var invoke = function(func, context, locals) {
8811
+ function invoke(func, context, locals) {
8534
8812
  var def = fnDef(func, locals);
8535
8813
 
8536
8814
  var fn = def.fn,
8537
8815
  dependencies = def.dependencies;
8538
8816
 
8539
8817
  return fn.apply(context, dependencies);
8540
- };
8541
-
8818
+ }
8542
8819
 
8543
- var createPrivateInjectorFactory = function(privateChildInjector) {
8820
+ /**
8821
+ * @param {Injector} childInjector
8822
+ *
8823
+ * @return {Function}
8824
+ */
8825
+ function createPrivateInjectorFactory(childInjector) {
8544
8826
  return annotate(function(key) {
8545
- return privateChildInjector.get(key);
8827
+ return childInjector.get(key);
8546
8828
  });
8547
- };
8829
+ }
8548
8830
 
8549
- var createChild = function(modules, forceNewInstances) {
8831
+ /**
8832
+ * @param {ModuleDefinition[]} modules
8833
+ * @param {string[]} [forceNewInstances]
8834
+ *
8835
+ * @return {Injector}
8836
+ */
8837
+ function createChild(modules, forceNewInstances) {
8550
8838
  if (forceNewInstances && forceNewInstances.length) {
8551
8839
  var fromParentModule = Object.create(null);
8552
8840
  var matchedScopes = Object.create(null);
@@ -8571,12 +8859,12 @@
8571
8859
  privateInjectorsCache.push(provider[3]);
8572
8860
  privateChildInjectors.push(privateChildInjector);
8573
8861
  privateChildFactories.push(privateChildInjectorFactory);
8574
- fromParentModule[name] = [privateChildInjectorFactory, name, 'private', privateChildInjector];
8862
+ fromParentModule[name] = [ privateChildInjectorFactory, name, 'private', privateChildInjector ];
8575
8863
  } else {
8576
- fromParentModule[name] = [privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx]];
8864
+ fromParentModule[name] = [ privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx] ];
8577
8865
  }
8578
8866
  } else {
8579
- fromParentModule[name] = [provider[2], provider[1]];
8867
+ fromParentModule[name] = [ provider[2], provider[1] ];
8580
8868
  }
8581
8869
  matchedScopes[name] = true;
8582
8870
  }
@@ -8585,7 +8873,7 @@
8585
8873
  /* jshint -W083 */
8586
8874
  forceNewInstances.forEach(function(scope) {
8587
8875
  if (provider[1].$scope.indexOf(scope) !== -1) {
8588
- fromParentModule[name] = [provider[2], provider[1]];
8876
+ fromParentModule[name] = [ provider[2], provider[1] ];
8589
8877
  matchedScopes[scope] = true;
8590
8878
  }
8591
8879
  });
@@ -8602,7 +8890,7 @@
8602
8890
  }
8603
8891
 
8604
8892
  return new Injector(modules, self);
8605
- };
8893
+ }
8606
8894
 
8607
8895
  var factoryMap = {
8608
8896
  factory: invoke,
@@ -8612,62 +8900,169 @@
8612
8900
  }
8613
8901
  };
8614
8902
 
8615
- modules.forEach(function(module) {
8903
+ /**
8904
+ * @param {ModuleDefinition} moduleDefinition
8905
+ * @param {Injector} injector
8906
+ */
8907
+ function createInitializer(moduleDefinition, injector) {
8616
8908
 
8617
- function arrayUnwrap(type, value) {
8618
- if (type !== 'value' && isArray$1(value)) {
8619
- value = annotate(value.slice());
8620
- }
8909
+ var initializers = moduleDefinition.__init__ || [];
8621
8910
 
8622
- return value;
8623
- }
8911
+ return function() {
8912
+ initializers.forEach(function(initializer) {
8624
8913
 
8625
- // TODO(vojta): handle wrong inputs (modules)
8626
- if (module instanceof Module) {
8627
- module.forEach(function(provider) {
8628
- var name = provider[0];
8629
- var type = provider[1];
8630
- var value = provider[2];
8914
+ try {
8631
8915
 
8632
- providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];
8633
- });
8634
- } else if (typeof module === 'object') {
8635
- if (module.__exports__) {
8636
- var clonedModule = Object.keys(module).reduce(function(m, key) {
8637
- if (key.substring(0, 2) !== '__') {
8638
- m[key] = module[key];
8916
+ // eagerly resolve component (fn or string)
8917
+ if (typeof initializer === 'string') {
8918
+ injector.get(initializer);
8919
+ } else {
8920
+ injector.invoke(initializer);
8639
8921
  }
8640
- return m;
8641
- }, Object.create(null));
8642
-
8643
- var privateInjector = new Injector((module.__modules__ || []).concat([clonedModule]), self);
8644
- var getFromPrivateInjector = annotate(function(key) {
8645
- return privateInjector.get(key);
8646
- });
8647
- module.__exports__.forEach(function(key) {
8648
- providers[key] = [getFromPrivateInjector, key, 'private', privateInjector];
8649
- });
8650
- } else {
8651
- Object.keys(module).forEach(function(name) {
8652
- if (module[name][2] === 'private') {
8653
- providers[name] = module[name];
8654
- return;
8922
+ } catch (error) {
8923
+ if (typeof AggregateError !== 'undefined') {
8924
+ throw new AggregateError([ error ], 'Failed to initialize!');
8655
8925
  }
8656
8926
 
8657
- var type = module[name][0];
8658
- var value = module[name][1];
8927
+ throw new Error('Failed to initialize! ' + error.message);
8928
+ }
8929
+ });
8930
+ };
8931
+ }
8659
8932
 
8660
- providers[name] = [factoryMap[type], arrayUnwrap(type, value), type];
8661
- });
8933
+ /**
8934
+ * @param {ModuleDefinition} moduleDefinition
8935
+ */
8936
+ function loadModule(moduleDefinition) {
8937
+
8938
+ var moduleExports = moduleDefinition.__exports__;
8939
+
8940
+ // private module
8941
+ if (moduleExports) {
8942
+ var nestedModules = moduleDefinition.__modules__;
8943
+
8944
+ var clonedModule = Object.keys(moduleDefinition).reduce(function(clonedModule, key) {
8945
+
8946
+ if (key !== '__exports__' && key !== '__modules__' && key !== '__init__' && key !== '__depends__') {
8947
+ clonedModule[key] = moduleDefinition[key];
8948
+ }
8949
+
8950
+ return clonedModule;
8951
+ }, Object.create(null));
8952
+
8953
+ var childModules = (nestedModules || []).concat(clonedModule);
8954
+
8955
+ var privateInjector = createChild(childModules);
8956
+ var getFromPrivateInjector = annotate(function(key) {
8957
+ return privateInjector.get(key);
8958
+ });
8959
+
8960
+ moduleExports.forEach(function(key) {
8961
+ providers[key] = [ getFromPrivateInjector, key, 'private', privateInjector ];
8962
+ });
8963
+
8964
+ // ensure child injector initializes
8965
+ var initializers = (moduleDefinition.__init__ || []).slice();
8966
+
8967
+ initializers.unshift(function() {
8968
+ privateInjector.init();
8969
+ });
8970
+
8971
+ moduleDefinition = Object.assign({}, moduleDefinition, {
8972
+ __init__: initializers
8973
+ });
8974
+
8975
+ return createInitializer(moduleDefinition, privateInjector);
8976
+ }
8977
+
8978
+ // normal module
8979
+ Object.keys(moduleDefinition).forEach(function(key) {
8980
+
8981
+ if (key === '__init__' || key === '__depends__') {
8982
+ return;
8662
8983
  }
8984
+
8985
+ if (moduleDefinition[key][2] === 'private') {
8986
+ providers[key] = moduleDefinition[key];
8987
+ return;
8988
+ }
8989
+
8990
+ var type = moduleDefinition[key][0];
8991
+ var value = moduleDefinition[key][1];
8992
+
8993
+ providers[key] = [ factoryMap[type], arrayUnwrap(type, value), type ];
8994
+ });
8995
+
8996
+ return createInitializer(moduleDefinition, self);
8997
+ }
8998
+
8999
+ /**
9000
+ * @param {ModuleDefinition[]} moduleDefinitions
9001
+ * @param {ModuleDefinition} moduleDefinition
9002
+ *
9003
+ * @return {ModuleDefinition[]}
9004
+ */
9005
+ function resolveDependencies(moduleDefinitions, moduleDefinition) {
9006
+
9007
+ if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {
9008
+ return moduleDefinitions;
8663
9009
  }
8664
- });
9010
+
9011
+ moduleDefinitions = (moduleDefinition.__depends__ || []).reduce(resolveDependencies, moduleDefinitions);
9012
+
9013
+ if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {
9014
+ return moduleDefinitions;
9015
+ }
9016
+
9017
+ return moduleDefinitions.concat(moduleDefinition);
9018
+ }
9019
+
9020
+ /**
9021
+ * @param {ModuleDefinition[]} moduleDefinitions
9022
+ *
9023
+ * @return { () => void } initializerFn
9024
+ */
9025
+ function bootstrap(moduleDefinitions) {
9026
+
9027
+ var initializers = moduleDefinitions
9028
+ .reduce(resolveDependencies, [])
9029
+ .map(loadModule);
9030
+
9031
+ var initialized = false;
9032
+
9033
+ return function() {
9034
+
9035
+ if (initialized) {
9036
+ return;
9037
+ }
9038
+
9039
+ initialized = true;
9040
+
9041
+ initializers.forEach(function(initializer) {
9042
+ return initializer();
9043
+ });
9044
+ };
9045
+ }
8665
9046
 
8666
9047
  // public API
8667
9048
  this.get = get;
8668
9049
  this.invoke = invoke;
8669
9050
  this.instantiate = instantiate;
8670
9051
  this.createChild = createChild;
9052
+
9053
+ // setup
9054
+ this.init = bootstrap(modules);
9055
+ }
9056
+
9057
+
9058
+ // helpers ///////////////
9059
+
9060
+ function arrayUnwrap(type, value) {
9061
+ if (type !== 'value' && isArray$2(value)) {
9062
+ value = annotate(value.slice());
9063
+ }
9064
+
9065
+ return value;
8671
9066
  }
8672
9067
 
8673
9068
  // apply default renderer with lowest possible priority
@@ -8690,7 +9085,7 @@
8690
9085
  this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });
8691
9086
  }
8692
9087
 
8693
- inherits_browser(DefaultRenderer, BaseRenderer);
9088
+ e(DefaultRenderer, BaseRenderer);
8694
9089
 
8695
9090
 
8696
9091
  DefaultRenderer.prototype.canRender = function() {
@@ -8946,7 +9341,7 @@
8946
9341
  var parent = document.createElement('div');
8947
9342
  parent.setAttribute('class', 'djs-container');
8948
9343
 
8949
- assign(parent.style, {
9344
+ assign$1(parent, {
8950
9345
  position: 'relative',
8951
9346
  overflow: 'hidden',
8952
9347
  width: ensurePx(options.width),
@@ -11025,7 +11420,7 @@
11025
11420
  attacherRefs.bind(this, 'attachers');
11026
11421
  }
11027
11422
 
11028
- inherits_browser(Shape, Base);
11423
+ e(Shape, Base);
11029
11424
 
11030
11425
 
11031
11426
  /**
@@ -11040,7 +11435,7 @@
11040
11435
  Shape.call(this);
11041
11436
  }
11042
11437
 
11043
- inherits_browser(Root, Shape);
11438
+ e(Root, Shape);
11044
11439
 
11045
11440
 
11046
11441
  /**
@@ -11063,7 +11458,7 @@
11063
11458
  labelRefs.bind(this, 'labelTarget');
11064
11459
  }
11065
11460
 
11066
- inherits_browser(Label, Shape);
11461
+ e(Label, Shape);
11067
11462
 
11068
11463
 
11069
11464
  /**
@@ -11094,7 +11489,7 @@
11094
11489
  incomingRefs.bind(this, 'target');
11095
11490
  }
11096
11491
 
11097
- inherits_browser(Connection, Base);
11492
+ e(Connection, Base);
11098
11493
 
11099
11494
 
11100
11495
  var types = {
@@ -11945,62 +12340,21 @@
11945
12340
  graphicsFactory: [ 'type', GraphicsFactory ]
11946
12341
  };
11947
12342
 
12343
+ /**
12344
+ * @typedef { import('didi').ModuleDeclaration } Module
12345
+ */
12346
+
11948
12347
  /**
11949
12348
  * Bootstrap an injector from a list of modules, instantiating a number of default components
11950
12349
  *
11951
- * @ignore
11952
- * @param {Array<didi.Module>} bootstrapModules
12350
+ * @param {Array<Module>} modules
11953
12351
  *
11954
- * @return {didi.Injector} a injector to use to access the components
12352
+ * @return {Injector} a injector to use to access the components
11955
12353
  */
11956
- function bootstrap(bootstrapModules) {
11957
-
11958
- var modules = [],
11959
- components = [];
11960
-
11961
- function hasModule(m) {
11962
- return modules.indexOf(m) >= 0;
11963
- }
11964
-
11965
- function addModule(m) {
11966
- modules.push(m);
11967
- }
11968
-
11969
- function visit(m) {
11970
- if (hasModule(m)) {
11971
- return;
11972
- }
11973
-
11974
- (m.__depends__ || []).forEach(visit);
11975
-
11976
- if (hasModule(m)) {
11977
- return;
11978
- }
11979
-
11980
- addModule(m);
11981
-
11982
- (m.__init__ || []).forEach(function(c) {
11983
- components.push(c);
11984
- });
11985
- }
11986
-
11987
- bootstrapModules.forEach(visit);
11988
-
12354
+ function bootstrap(modules) {
11989
12355
  var injector = new Injector(modules);
11990
12356
 
11991
- components.forEach(function(c) {
11992
-
11993
- try {
11994
-
11995
- // eagerly resolve component (fn or string)
11996
- injector[typeof c === 'string' ? 'get' : 'invoke'](c);
11997
- } catch (e) {
11998
- console.error('Failed to instantiate component');
11999
- console.error(e.stack);
12000
-
12001
- throw e;
12002
- }
12003
- });
12357
+ injector.init();
12004
12358
 
12005
12359
  return injector;
12006
12360
  }
@@ -12008,9 +12362,8 @@
12008
12362
  /**
12009
12363
  * Creates an injector from passed options.
12010
12364
  *
12011
- * @ignore
12012
- * @param {Object} options
12013
- * @return {didi.Injector}
12365
+ * @param {Object} options
12366
+ * @return {Injector}
12014
12367
  */
12015
12368
  function createInjector(options) {
12016
12369
 
@@ -12030,7 +12383,7 @@
12030
12383
  * The main diagram-js entry point that bootstraps the diagram with the given
12031
12384
  * configuration.
12032
12385
  *
12033
- * To register extensions with the diagram, pass them as Array<didi.Module> to the constructor.
12386
+ * To register extensions with the diagram, pass them as Array<Module> to the constructor.
12034
12387
  *
12035
12388
  * @class djs.Diagram
12036
12389
  * @memberOf djs
@@ -12072,8 +12425,8 @@
12072
12425
  * // 'shape ... was added to the diagram' logged to console
12073
12426
  *
12074
12427
  * @param {Object} options
12075
- * @param {Array<didi.Module>} [options.modules] external modules to instantiate with the diagram
12076
- * @param {didi.Injector} [injector] an (optional) injector to bootstrap the diagram with
12428
+ * @param {Array<Module>} [options.modules] external modules to instantiate with the diagram
12429
+ * @param {Injector} [injector] an (optional) injector to bootstrap the diagram with
12077
12430
  */
12078
12431
  function Diagram(options, injector) {
12079
12432
 
@@ -12738,7 +13091,7 @@
12738
13091
 
12739
13092
  var propertyName = property && property.name;
12740
13093
 
12741
- if (isUndefined$1(value)) {
13094
+ if (isUndefined$2(value)) {
12742
13095
  // unset the property, if the specified value is undefined;
12743
13096
  // delete from $attrs (for extensions) or the target itself
12744
13097
  if (property) {
@@ -12829,7 +13182,7 @@
12829
13182
  };
12830
13183
 
12831
13184
 
12832
- function isUndefined$1(val) {
13185
+ function isUndefined$2(val) {
12833
13186
  return typeof val === 'undefined';
12834
13187
  }
12835
13188
 
@@ -20384,53 +20737,53 @@
20384
20737
 
20385
20738
 
20386
20739
  // inlined ../../resources/logo.svg
20387
- 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>';
20740
+ 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>';
20388
20741
 
20389
20742
  var BPMNIO_IMG = BPMNIO_LOGO_SVG;
20390
20743
 
20391
- function css(attrs) {
20392
- return attrs.join(';');
20393
- }
20394
-
20395
- var LINK_STYLES = css([
20396
- 'color: #404040'
20397
- ]);
20398
-
20399
- var LIGHTBOX_STYLES = css([
20400
- 'z-index: 1001',
20401
- 'position: fixed',
20402
- 'top: 0',
20403
- 'left: 0',
20404
- 'right: 0',
20405
- 'bottom: 0'
20406
- ]);
20407
-
20408
- var BACKDROP_STYLES = css([
20409
- 'width: 100%',
20410
- 'height: 100%',
20411
- 'background: rgba(40,40,40,0.2)'
20412
- ]);
20413
-
20414
- var NOTICE_STYLES = css([
20415
- 'position: absolute',
20416
- 'left: 50%',
20417
- 'top: 40%',
20418
- 'transform: translate(-50%)',
20419
- 'width: 260px',
20420
- 'padding: 10px',
20421
- 'background: white',
20422
- 'box-shadow: 0 1px 4px rgba(0,0,0,0.3)',
20423
- 'font-family: Helvetica, Arial, sans-serif',
20424
- 'font-size: 14px',
20425
- 'display: flex',
20426
- 'line-height: 1.3'
20427
- ]);
20744
+ var LOGO_STYLES = {
20745
+ verticalAlign: 'middle'
20746
+ };
20747
+
20748
+ var LINK_STYLES = {
20749
+ 'color': '#404040'
20750
+ };
20751
+
20752
+ var LIGHTBOX_STYLES = {
20753
+ 'zIndex': '1001',
20754
+ 'position': 'fixed',
20755
+ 'top': '0',
20756
+ 'left': '0',
20757
+ 'right': '0',
20758
+ 'bottom': '0'
20759
+ };
20760
+
20761
+ var BACKDROP_STYLES = {
20762
+ 'width': '100%',
20763
+ 'height': '100%',
20764
+ 'background': 'rgba(40,40,40,0.2)'
20765
+ };
20766
+
20767
+ var NOTICE_STYLES = {
20768
+ 'position': 'absolute',
20769
+ 'left': '50%',
20770
+ 'top': '40%',
20771
+ 'transform': 'translate(-50%)',
20772
+ 'width': '260px',
20773
+ 'padding': '10px',
20774
+ 'background': 'white',
20775
+ 'boxShadow': '0 1px 4px rgba(0,0,0,0.3)',
20776
+ 'fontFamily': 'Helvetica, Arial, sans-serif',
20777
+ 'fontSize': '14px',
20778
+ 'display': 'flex',
20779
+ 'lineHeight': '1.3'
20780
+ };
20428
20781
 
20429
20782
  var LIGHTBOX_MARKUP =
20430
- '<div class="bjs-powered-by-lightbox" style="' + LIGHTBOX_STYLES + '">' +
20431
- '<div class="backdrop" style="' + BACKDROP_STYLES + '"></div>' +
20432
- '<div class="notice" style="' + NOTICE_STYLES + '">' +
20433
- '<a href="https://bpmn.io" target="_blank" rel="noopener" style="margin: 15px 20px 15px 10px; align-self: center;' + LINK_STYLES + '">' +
20783
+ '<div class="bjs-powered-by-lightbox">' +
20784
+ '<div class="backdrop"></div>' +
20785
+ '<div class="notice">' +
20786
+ '<a href="https://bpmn.io" target="_blank" rel="noopener" class="link">' +
20434
20787
  BPMNIO_IMG +
20435
20788
  '</a>' +
20436
20789
  '<span>' +
@@ -20443,10 +20796,23 @@
20443
20796
 
20444
20797
  var lightbox;
20445
20798
 
20799
+ function createLightbox() {
20800
+ lightbox = domify(LIGHTBOX_MARKUP);
20801
+
20802
+ assign$1(lightbox, LIGHTBOX_STYLES);
20803
+ assign$1(query('svg', lightbox), LOGO_STYLES);
20804
+ assign$1(query('.backdrop', lightbox), BACKDROP_STYLES);
20805
+ assign$1(query('.notice', lightbox), NOTICE_STYLES);
20806
+ assign$1(query('.link', lightbox), LINK_STYLES, {
20807
+ 'margin': '15px 20px 15px 10px',
20808
+ 'alignSelf': 'center'
20809
+ });
20810
+ }
20811
+
20446
20812
  function open() {
20447
20813
 
20448
20814
  if (!lightbox) {
20449
- lightbox = domify(LIGHTBOX_MARKUP);
20815
+ createLightbox();
20450
20816
 
20451
20817
  delegate.bind(lightbox, '.backdrop', 'click', function(event) {
20452
20818
  document.body.removeChild(lightbox);
@@ -20494,7 +20860,7 @@
20494
20860
  this._init(this._container, this._moddle, options);
20495
20861
  }
20496
20862
 
20497
- inherits_browser(BaseViewer, Diagram);
20863
+ e(BaseViewer, Diagram);
20498
20864
 
20499
20865
  /**
20500
20866
  * The importXML result.
@@ -21082,7 +21448,7 @@
21082
21448
 
21083
21449
  var container = domify('<div class="bjs-container"></div>');
21084
21450
 
21085
- assign(container.style, {
21451
+ assign$1(container, {
21086
21452
  width: ensureUnit(options.width),
21087
21453
  height: ensureUnit(options.height),
21088
21454
  position: options.position
@@ -21172,12 +21538,20 @@
21172
21538
  'target="_blank" ' +
21173
21539
  'class="bjs-powered-by" ' +
21174
21540
  'title="Powered by bpmn.io" ' +
21175
- 'style="position: absolute; bottom: 15px; right: 15px; z-index: 100; ' + LINK_STYLES + '">' +
21541
+ '>' +
21176
21542
  img +
21177
21543
  '</a>';
21178
21544
 
21179
21545
  var linkElement = domify(linkMarkup);
21180
21546
 
21547
+ assign$1(query('svg', linkElement), LOGO_STYLES);
21548
+ assign$1(linkElement, LINK_STYLES, {
21549
+ position: 'absolute',
21550
+ bottom: '15px',
21551
+ right: '15px',
21552
+ zIndex: '100'
21553
+ });
21554
+
21181
21555
  container.appendChild(linkElement);
21182
21556
 
21183
21557
  componentEvent.bind(linkElement, 'click', function(event) {
@@ -21240,7 +21614,7 @@
21240
21614
  BaseViewer.call(this, options);
21241
21615
  }
21242
21616
 
21243
- inherits_browser(Viewer, BaseViewer);
21617
+ e(Viewer, BaseViewer);
21244
21618
 
21245
21619
  // modules the viewer is composed of
21246
21620
  Viewer.prototype._modules = [
@@ -22426,27 +22800,27 @@
22426
22800
  emumerations: emumerations
22427
22801
  };
22428
22802
 
22429
- const commonModdleExtensions = {
22430
- camunda: camundaModdle
22803
+ const commonModdleExtensions = {
22804
+ camunda: camundaModdle
22431
22805
  };
22432
22806
 
22433
- /**
22434
- *
22435
- * @param {Object} options
22436
- */
22437
- function Viewer$1(options = {}) {
22438
-
22439
- options = {
22440
- ...options,
22441
- moddleExtensions: {
22442
- ...commonModdleExtensions,
22443
- ...options.moddleExtensions
22444
- }
22445
- };
22446
-
22447
- Viewer.call(this, options);
22448
- }
22449
-
22807
+ /**
22808
+ *
22809
+ * @param {Object} options
22810
+ */
22811
+ function Viewer$1(options = {}) {
22812
+
22813
+ options = {
22814
+ ...options,
22815
+ moddleExtensions: {
22816
+ ...commonModdleExtensions,
22817
+ ...options.moddleExtensions
22818
+ }
22819
+ };
22820
+
22821
+ Viewer.call(this, options);
22822
+ }
22823
+
22450
22824
  inherits_browser(Viewer$1, Viewer);
22451
22825
 
22452
22826
  return Viewer$1;