bpmn-js 11.1.0 → 11.2.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 (44) hide show
  1. package/README.md +0 -8
  2. package/dist/assets/bpmn-font/css/bpmn-codes.css +6 -6
  3. package/dist/assets/bpmn-font/css/bpmn-embedded.css +18 -13
  4. package/dist/assets/bpmn-font/css/bpmn.css +14 -15
  5. package/dist/assets/bpmn-font/font/bpmn.eot +0 -0
  6. package/dist/assets/bpmn-font/font/bpmn.svg +12 -12
  7. package/dist/assets/bpmn-font/font/bpmn.ttf +0 -0
  8. package/dist/assets/bpmn-font/font/bpmn.woff +0 -0
  9. package/dist/assets/bpmn-font/font/bpmn.woff2 +0 -0
  10. package/dist/assets/diagram-js.css +7 -6
  11. package/dist/bpmn-modeler.development.js +2560 -1187
  12. package/dist/bpmn-modeler.production.min.js +44 -42
  13. package/dist/bpmn-navigated-viewer.development.js +310 -219
  14. package/dist/bpmn-navigated-viewer.production.min.js +6 -6
  15. package/dist/bpmn-viewer.development.js +310 -219
  16. package/dist/bpmn-viewer.production.min.js +6 -6
  17. package/lib/Modeler.js +2 -0
  18. package/lib/draw/BpmnRenderer.js +185 -196
  19. package/lib/features/align-elements/dist/align-bottom-tool.svg +1 -0
  20. package/lib/features/align-elements/dist/align-horizontal-center-tool.svg +1 -0
  21. package/lib/features/align-elements/dist/align-left-tool.svg +1 -0
  22. package/lib/features/align-elements/dist/align-right-tool.svg +1 -0
  23. package/lib/features/align-elements/dist/align-tool.svg +1 -0
  24. package/lib/features/align-elements/dist/align-top-tool.svg +1 -0
  25. package/lib/features/align-elements/dist/align-vertical-center-tool.svg +1 -0
  26. package/lib/features/context-pad/ContextPadProvider.js +0 -1
  27. package/lib/features/create-append-anything/AppendContextPadProvider.js +77 -0
  28. package/lib/features/create-append-anything/AppendMenuProvider.js +175 -0
  29. package/lib/features/create-append-anything/AppendRules.js +83 -0
  30. package/lib/features/create-append-anything/CreateAppendEditorActions.js +51 -0
  31. package/lib/features/create-append-anything/CreateAppendKeyboardBindings.js +97 -0
  32. package/lib/features/create-append-anything/CreateMenuProvider.js +112 -0
  33. package/lib/features/create-append-anything/CreatePaletteProvider.js +77 -0
  34. package/lib/features/create-append-anything/index.js +37 -0
  35. package/lib/features/create-append-anything/util/OptionsUtil.js +612 -0
  36. package/lib/features/editor-actions/BpmnEditorActions.js +0 -1
  37. package/lib/features/modeling/ElementFactory.js +11 -0
  38. package/lib/features/palette/dist/create.svg +1 -0
  39. package/lib/features/popup-menu/ReplaceMenuProvider.js +7 -2
  40. package/lib/features/popup-menu/index.js +6 -3
  41. package/lib/icons/Icons.js +11 -0
  42. package/lib/icons/resources/append.svg +3 -0
  43. package/lib/icons/resources/create.svg +3 -0
  44. package/package.json +20 -7
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * bpmn-js - bpmn-viewer v11.1.0
2
+ * bpmn-js - bpmn-viewer v11.2.0
3
3
  *
4
4
  * Copyright (c) 2014-present, camunda Services GmbH
5
5
  *
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Source Code: https://github.com/bpmn-io/bpmn-js
10
10
  *
11
- * Date: 2022-12-12
11
+ * Date: 2023-02-03
12
12
  */
13
13
  (function (global, factory) {
14
14
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -1336,34 +1336,128 @@
1336
1336
  return transformList.consolidate();
1337
1337
  }
1338
1338
 
1339
+ /**
1340
+ * @param { [ string, ...any[] ][] } elements
1341
+ *
1342
+ * @return { string }
1343
+ */
1339
1344
  function componentsToPath(elements) {
1340
- return elements.join(',').replace(/,?([A-z]),?/g, '$1');
1345
+ return elements.flat().join(',').replace(/,?([A-z]),?/g, '$1');
1346
+ }
1347
+
1348
+ function move(point) {
1349
+ return [ 'M', point.x, point.y ];
1350
+ }
1351
+
1352
+ function lineTo(point) {
1353
+ return [ 'L', point.x, point.y ];
1341
1354
  }
1342
1355
 
1343
- function toSVGPoints(points) {
1344
- var result = '';
1356
+ function curveTo(p1, p2, p3) {
1357
+ return [ 'C', p1.x, p1.y, p2.x, p2.y, p3.x, p3.y ];
1358
+ }
1359
+
1360
+ function drawPath(waypoints, cornerRadius) {
1361
+ const pointCount = waypoints.length;
1362
+
1363
+ const path = [ move(waypoints[0]) ];
1364
+
1365
+ for (let i = 1; i < pointCount; i++) {
1345
1366
 
1346
- for (var i = 0, p; (p = points[i]); i++) {
1347
- result += p.x + ',' + p.y + ' ';
1367
+ const pointBefore = waypoints[i - 1];
1368
+ const point = waypoints[i];
1369
+ const pointAfter = waypoints[i + 1];
1370
+
1371
+ if (!pointAfter || !cornerRadius) {
1372
+ path.push(lineTo(point));
1373
+
1374
+ continue;
1375
+ }
1376
+
1377
+ const effectiveRadius = Math.min(
1378
+ cornerRadius,
1379
+ vectorLength(point.x - pointBefore.x, point.y - pointBefore.y),
1380
+ vectorLength(pointAfter.x - point.x, pointAfter.y - point.y)
1381
+ );
1382
+
1383
+ if (!effectiveRadius) {
1384
+ path.push(lineTo(point));
1385
+
1386
+ continue;
1387
+ }
1388
+
1389
+ const beforePoint = getPointAtLength(point, pointBefore, effectiveRadius);
1390
+ const beforePoint2 = getPointAtLength(point, pointBefore, effectiveRadius * .5);
1391
+
1392
+ const afterPoint = getPointAtLength(point, pointAfter, effectiveRadius);
1393
+ const afterPoint2 = getPointAtLength(point, pointAfter, effectiveRadius * .5);
1394
+
1395
+ path.push(lineTo(beforePoint));
1396
+ path.push(curveTo(beforePoint2, afterPoint2, afterPoint));
1348
1397
  }
1349
1398
 
1350
- return result;
1399
+ return path;
1351
1400
  }
1352
1401
 
1353
- function createLine(points, attrs) {
1402
+ function getPointAtLength(start, end, length) {
1354
1403
 
1355
- var line = create$1('polyline');
1356
- attr$1(line, { points: toSVGPoints(points) });
1404
+ const deltaX = end.x - start.x;
1405
+ const deltaY = end.y - start.y;
1357
1406
 
1358
- if (attrs) {
1359
- attr$1(line, attrs);
1407
+ const totalLength = vectorLength(deltaX, deltaY);
1408
+
1409
+ const percent = length / totalLength;
1410
+
1411
+ return {
1412
+ x: start.x + deltaX * percent,
1413
+ y: start.y + deltaY * percent
1414
+ };
1415
+ }
1416
+
1417
+ function vectorLength(x, y) {
1418
+ return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
1419
+ }
1420
+
1421
+ /**
1422
+ * @param { { x: number, y: number }[] } points
1423
+ * @param { any } [attrs]
1424
+ * @param { number } [radius]
1425
+ *
1426
+ * @return {SVGElement}
1427
+ */
1428
+ function createLine(points, attrs, radius) {
1429
+
1430
+ if (isNumber(attrs)) {
1431
+ radius = attrs;
1432
+ attrs = null;
1360
1433
  }
1361
1434
 
1362
- return line;
1435
+ if (!attrs) {
1436
+ attrs = {};
1437
+ }
1438
+
1439
+ const line = create$1('path', attrs);
1440
+
1441
+ if (isNumber(radius)) {
1442
+ line.dataset.cornerRadius = String(radius);
1443
+ }
1444
+
1445
+ return updateLine(line, points);
1363
1446
  }
1364
1447
 
1448
+ /**
1449
+ * @param { SVGElement } gfx
1450
+ * @param { { x: number, y: number }[]} points
1451
+ *
1452
+ * @return {SVGElement}
1453
+ */
1365
1454
  function updateLine(gfx, points) {
1366
- attr$1(gfx, { points: toSVGPoints(points) });
1455
+
1456
+ const cornerRadius = parseInt(gfx.dataset.cornerRadius, 10) || 0;
1457
+
1458
+ attr$1(gfx, {
1459
+ d: componentsToPath(drawPath(points, cornerRadius))
1460
+ });
1367
1461
 
1368
1462
  return gfx;
1369
1463
  }
@@ -1533,14 +1627,17 @@
1533
1627
  * @return {Array<?>}
1534
1628
  */
1535
1629
 
1536
- var nativeToString = Object.prototype.toString;
1537
- var nativeHasOwnProperty = Object.prototype.hasOwnProperty;
1630
+ const nativeToString = Object.prototype.toString;
1631
+ const nativeHasOwnProperty = Object.prototype.hasOwnProperty;
1632
+
1538
1633
  function isUndefined$1(obj) {
1539
1634
  return obj === undefined;
1540
1635
  }
1636
+
1541
1637
  function isArray$1(obj) {
1542
1638
  return nativeToString.call(obj) === '[object Array]';
1543
1639
  }
1640
+
1544
1641
  /**
1545
1642
  * Return true, if target owns a property with the given key.
1546
1643
  *
@@ -1549,10 +1646,11 @@
1549
1646
  *
1550
1647
  * @return {Boolean}
1551
1648
  */
1552
-
1553
1649
  function has(target, key) {
1554
1650
  return nativeHasOwnProperty.call(target, key);
1555
1651
  }
1652
+
1653
+
1556
1654
  /**
1557
1655
  * Iterate over collection; returning something
1558
1656
  * (non-undefined) will stop iteration.
@@ -1562,19 +1660,22 @@
1562
1660
  *
1563
1661
  * @return {Object} return result that stopped the iteration
1564
1662
  */
1565
-
1566
1663
  function forEach(collection, iterator) {
1567
- var val, result;
1664
+
1665
+ let val,
1666
+ result;
1568
1667
 
1569
1668
  if (isUndefined$1(collection)) {
1570
1669
  return;
1571
1670
  }
1572
1671
 
1573
- var convertKey = isArray$1(collection) ? toNum : identity;
1672
+ const convertKey = isArray$1(collection) ? toNum : identity;
1673
+
1674
+ for (let key in collection) {
1574
1675
 
1575
- for (var key in collection) {
1576
1676
  if (has(collection, key)) {
1577
1677
  val = collection[key];
1678
+
1578
1679
  result = iterator(val, convertKey(key));
1579
1680
 
1580
1681
  if (result === false) {
@@ -1584,6 +1685,7 @@
1584
1685
  }
1585
1686
  }
1586
1687
 
1688
+
1587
1689
  function identity(arg) {
1588
1690
  return arg;
1589
1691
  }
@@ -2291,33 +2393,33 @@
2291
2393
 
2292
2394
  var markers = {};
2293
2395
 
2294
- var computeStyle = styles.computeStyle;
2295
-
2296
- function addMarker(id, options) {
2297
- var attrs = assign$1({
2298
- fill: black,
2299
- strokeWidth: 1,
2396
+ function shapeStyle(attrs) {
2397
+ return styles.computeStyle(attrs, {
2300
2398
  strokeLinecap: 'round',
2301
- strokeDasharray: 'none'
2302
- }, options.attrs);
2303
-
2304
- var ref = options.ref || { x: 0, y: 0 };
2305
-
2306
- var scale = options.scale || 1;
2307
-
2308
- // fix for safari / chrome / firefox bug not correctly
2309
- // resetting stroke dash array
2310
- if (attrs.strokeDasharray === 'none') {
2311
- attrs.strokeDasharray = [ 10000, 1 ];
2312
- }
2313
-
2314
- var marker = create$1('marker');
2399
+ strokeLinejoin: 'round',
2400
+ stroke: black,
2401
+ strokeWidth: 2,
2402
+ fill: 'white'
2403
+ });
2404
+ }
2315
2405
 
2316
- attr$1(options.element, attrs);
2406
+ function lineStyle(attrs) {
2407
+ return styles.computeStyle(attrs, [ 'no-fill' ], {
2408
+ strokeLinecap: 'round',
2409
+ strokeLinejoin: 'round',
2410
+ stroke: black,
2411
+ strokeWidth: 2
2412
+ });
2413
+ }
2317
2414
 
2318
- append(marker, options.element);
2415
+ function addMarker(id, options) {
2416
+ var {
2417
+ ref = { x: 0, y: 0 },
2418
+ scale = 1,
2419
+ element
2420
+ } = options;
2319
2421
 
2320
- attr$1(marker, {
2422
+ var marker = create$1('marker', {
2321
2423
  id: id,
2322
2424
  viewBox: '0 0 20 20',
2323
2425
  refX: ref.x,
@@ -2327,6 +2429,8 @@
2327
2429
  orient: 'auto'
2328
2430
  });
2329
2431
 
2432
+ append(marker, element);
2433
+
2330
2434
  var defs = query('defs', canvas._svg);
2331
2435
 
2332
2436
  if (!defs) {
@@ -2359,105 +2463,116 @@
2359
2463
  function createMarker(id, type, fill, stroke) {
2360
2464
 
2361
2465
  if (type === 'sequenceflow-end') {
2362
- var sequenceflowEnd = create$1('path');
2363
- attr$1(sequenceflowEnd, { d: 'M 1 5 L 11 10 L 1 15 Z' });
2466
+ var sequenceflowEnd = create$1('path', {
2467
+ d: 'M 1 5 L 11 10 L 1 15 Z',
2468
+ ...shapeStyle({
2469
+ fill: stroke,
2470
+ stroke: stroke,
2471
+ strokeWidth: 1
2472
+ })
2473
+ });
2364
2474
 
2365
2475
  addMarker(id, {
2366
2476
  element: sequenceflowEnd,
2367
2477
  ref: { x: 11, y: 10 },
2368
- scale: 0.5,
2369
- attrs: {
2370
- fill: stroke,
2371
- stroke: stroke
2372
- }
2478
+ scale: 0.5
2373
2479
  });
2374
2480
  }
2375
2481
 
2376
2482
  if (type === 'messageflow-start') {
2377
- var messageflowStart = create$1('circle');
2378
- attr$1(messageflowStart, { cx: 6, cy: 6, r: 3.5 });
2483
+ var messageflowStart = create$1('circle', {
2484
+ cx: 6,
2485
+ cy: 6,
2486
+ r: 3.5,
2487
+ ...shapeStyle({
2488
+ fill: fill,
2489
+ stroke: stroke,
2490
+ strokeWidth: 1
2491
+ })
2492
+ });
2379
2493
 
2380
2494
  addMarker(id, {
2381
2495
  element: messageflowStart,
2382
- attrs: {
2383
- fill: fill,
2384
- stroke: stroke
2385
- },
2386
2496
  ref: { x: 6, y: 6 }
2387
2497
  });
2388
2498
  }
2389
2499
 
2390
2500
  if (type === 'messageflow-end') {
2391
- var messageflowEnd = create$1('path');
2392
- attr$1(messageflowEnd, { d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z' });
2501
+ var messageflowEnd = create$1('path', {
2502
+ d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z',
2503
+ ...shapeStyle({
2504
+ fill: fill,
2505
+ stroke: stroke,
2506
+ strokeWidth: 1
2507
+ })
2508
+ });
2393
2509
 
2394
2510
  addMarker(id, {
2395
2511
  element: messageflowEnd,
2396
- attrs: {
2397
- fill: fill,
2398
- stroke: stroke,
2399
- strokeLinecap: 'butt'
2400
- },
2401
2512
  ref: { x: 8.5, y: 5 }
2402
2513
  });
2403
2514
  }
2404
2515
 
2405
2516
  if (type === 'association-start') {
2406
- var associationStart = create$1('path');
2407
- attr$1(associationStart, { d: 'M 11 5 L 1 10 L 11 15' });
2408
-
2409
- addMarker(id, {
2410
- element: associationStart,
2411
- attrs: {
2517
+ var associationStart = create$1('path', {
2518
+ d: 'M 11 5 L 1 10 L 11 15',
2519
+ ...lineStyle({
2412
2520
  fill: 'none',
2413
2521
  stroke: stroke,
2414
2522
  strokeWidth: 1.5
2415
- },
2523
+ })
2524
+ });
2525
+
2526
+ addMarker(id, {
2527
+ element: associationStart,
2416
2528
  ref: { x: 1, y: 10 },
2417
2529
  scale: 0.5
2418
2530
  });
2419
2531
  }
2420
2532
 
2421
2533
  if (type === 'association-end') {
2422
- var associationEnd = create$1('path');
2423
- attr$1(associationEnd, { d: 'M 1 5 L 11 10 L 1 15' });
2424
-
2425
- addMarker(id, {
2426
- element: associationEnd,
2427
- attrs: {
2534
+ var associationEnd = create$1('path', {
2535
+ d: 'M 1 5 L 11 10 L 1 15',
2536
+ ...lineStyle({
2428
2537
  fill: 'none',
2429
2538
  stroke: stroke,
2430
2539
  strokeWidth: 1.5
2431
- },
2432
- ref: { x: 12, y: 10 },
2540
+ })
2541
+ });
2542
+
2543
+ addMarker(id, {
2544
+ element: associationEnd,
2545
+ ref: { x: 11, y: 10 },
2433
2546
  scale: 0.5
2434
2547
  });
2435
2548
  }
2436
2549
 
2437
2550
  if (type === 'conditional-flow-marker') {
2438
- var conditionalflowMarker = create$1('path');
2439
- attr$1(conditionalflowMarker, { d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z' });
2440
-
2441
- addMarker(id, {
2442
- element: conditionalflowMarker,
2443
- attrs: {
2551
+ var conditionalFlowMarker = create$1('path', {
2552
+ d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z',
2553
+ ...shapeStyle({
2444
2554
  fill: fill,
2445
2555
  stroke: stroke
2446
- },
2556
+ })
2557
+ });
2558
+
2559
+ addMarker(id, {
2560
+ element: conditionalFlowMarker,
2447
2561
  ref: { x: -1, y: 10 },
2448
2562
  scale: 0.5
2449
2563
  });
2450
2564
  }
2451
2565
 
2452
2566
  if (type === 'conditional-default-flow-marker') {
2453
- var conditionaldefaultflowMarker = create$1('path');
2454
- attr$1(conditionaldefaultflowMarker, { d: 'M 6 4 L 10 16' });
2567
+ var defaultFlowMarker = create$1('path', {
2568
+ d: 'M 6 4 L 10 16',
2569
+ ...shapeStyle({
2570
+ stroke: stroke
2571
+ })
2572
+ });
2455
2573
 
2456
2574
  addMarker(id, {
2457
- element: conditionaldefaultflowMarker,
2458
- attrs: {
2459
- stroke: stroke
2460
- },
2575
+ element: defaultFlowMarker,
2461
2576
  ref: { x: 0, y: 10 },
2462
2577
  scale: 0.5
2463
2578
  });
@@ -2473,11 +2588,7 @@
2473
2588
 
2474
2589
  offset = offset || 0;
2475
2590
 
2476
- attrs = computeStyle(attrs, {
2477
- stroke: black,
2478
- strokeWidth: 2,
2479
- fill: 'white'
2480
- });
2591
+ attrs = shapeStyle(attrs);
2481
2592
 
2482
2593
  if (attrs.fill === 'none') {
2483
2594
  delete attrs.fillOpacity;
@@ -2486,13 +2597,12 @@
2486
2597
  var cx = width / 2,
2487
2598
  cy = height / 2;
2488
2599
 
2489
- var circle = create$1('circle');
2490
- attr$1(circle, {
2600
+ var circle = create$1('circle', {
2491
2601
  cx: cx,
2492
2602
  cy: cy,
2493
- r: Math.round((width + height) / 4 - offset)
2603
+ r: Math.round((width + height) / 4 - offset),
2604
+ ...attrs
2494
2605
  });
2495
- attr$1(circle, attrs);
2496
2606
 
2497
2607
  append(parentGfx, circle);
2498
2608
 
@@ -2508,22 +2618,17 @@
2508
2618
 
2509
2619
  offset = offset || 0;
2510
2620
 
2511
- attrs = computeStyle(attrs, {
2512
- stroke: black,
2513
- strokeWidth: 2,
2514
- fill: 'white'
2515
- });
2621
+ attrs = shapeStyle(attrs);
2516
2622
 
2517
- var rect = create$1('rect');
2518
- attr$1(rect, {
2623
+ var rect = create$1('rect', {
2519
2624
  x: offset,
2520
2625
  y: offset,
2521
2626
  width: width - offset * 2,
2522
2627
  height: height - offset * 2,
2523
2628
  rx: r,
2524
- ry: r
2629
+ ry: r,
2630
+ ...attrs
2525
2631
  });
2526
- attr$1(rect, attrs);
2527
2632
 
2528
2633
  append(parentGfx, rect);
2529
2634
 
@@ -2535,53 +2640,66 @@
2535
2640
  var x_2 = width / 2;
2536
2641
  var y_2 = height / 2;
2537
2642
 
2538
- var points = [ { x: x_2, y: 0 }, { x: width, y: y_2 }, { x: x_2, y: height }, { x: 0, y: y_2 } ];
2643
+ var points = [
2644
+ { x: x_2, y: 0 },
2645
+ { x: width, y: y_2 },
2646
+ { x: x_2, y: height },
2647
+ { x: 0, y: y_2 }
2648
+ ];
2539
2649
 
2540
2650
  var pointsString = points.map(function(point) {
2541
2651
  return point.x + ',' + point.y;
2542
2652
  }).join(' ');
2543
2653
 
2544
- attrs = computeStyle(attrs, {
2545
- stroke: black,
2546
- strokeWidth: 2,
2547
- fill: 'white'
2548
- });
2654
+ attrs = shapeStyle(attrs);
2549
2655
 
2550
- var polygon = create$1('polygon');
2551
- attr$1(polygon, {
2656
+ var polygon = create$1('polygon', {
2657
+ ...attrs,
2552
2658
  points: pointsString
2553
2659
  });
2554
- attr$1(polygon, attrs);
2555
2660
 
2556
2661
  append(parentGfx, polygon);
2557
2662
 
2558
2663
  return polygon;
2559
2664
  }
2560
2665
 
2561
- function drawLine(parentGfx, waypoints, attrs) {
2562
- attrs = computeStyle(attrs, [ 'no-fill' ], {
2563
- stroke: black,
2564
- strokeWidth: 2,
2565
- fill: 'none'
2566
- });
2666
+ /**
2667
+ * @param {SVGElement} parentGfx
2668
+ * @param {Point[]} waypoints
2669
+ * @param {any} attrs
2670
+ * @param {number} [radius]
2671
+ *
2672
+ * @return {SVGElement}
2673
+ */
2674
+ function drawLine(parentGfx, waypoints, attrs, radius) {
2675
+ attrs = lineStyle(attrs);
2567
2676
 
2568
- var line = createLine(waypoints, attrs);
2677
+ var line = createLine(waypoints, attrs, radius);
2569
2678
 
2570
2679
  append(parentGfx, line);
2571
2680
 
2572
2681
  return line;
2573
2682
  }
2574
2683
 
2684
+ /**
2685
+ * @param {SVGElement} parentGfx
2686
+ * @param {Point[]} waypoints
2687
+ * @param {any} attrs
2688
+ *
2689
+ * @return {SVGElement}
2690
+ */
2691
+ function drawConnectionSegments(parentGfx, waypoints, attrs) {
2692
+ return drawLine(parentGfx, waypoints, attrs, 5);
2693
+ }
2694
+
2575
2695
  function drawPath(parentGfx, d, attrs) {
2576
2696
 
2577
- attrs = computeStyle(attrs, [ 'no-fill' ], {
2578
- strokeWidth: 2,
2579
- stroke: black
2580
- });
2697
+ attrs = lineStyle(attrs);
2581
2698
 
2582
- var path = create$1('path');
2583
- attr$1(path, { d: d });
2584
- attr$1(path, attrs);
2699
+ var path = create$1('path', {
2700
+ ...attrs,
2701
+ d
2702
+ });
2585
2703
 
2586
2704
  append(parentGfx, path);
2587
2705
 
@@ -2682,7 +2800,7 @@
2682
2800
  return renderLabel(parentGfx, semantic.name, {
2683
2801
  box: element,
2684
2802
  align: align,
2685
- padding: 5,
2803
+ padding: 7,
2686
2804
  style: {
2687
2805
  fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
2688
2806
  }
@@ -2728,16 +2846,6 @@
2728
2846
  transform(textBox, 0, -top, 270);
2729
2847
  }
2730
2848
 
2731
- function createPathFromConnection(connection) {
2732
- var waypoints = connection.waypoints;
2733
-
2734
- var pathData = 'm ' + waypoints[0].x + ',' + waypoints[0].y;
2735
- for (var i = 1; i < waypoints.length; i++) {
2736
- pathData += 'L' + waypoints[i].x + ',' + waypoints[i].y + ' ';
2737
- }
2738
- return pathData;
2739
- }
2740
-
2741
2849
  var handlers = this.handlers = {
2742
2850
  'bpmn:Event': function(parentGfx, element, attrs) {
2743
2851
 
@@ -2758,7 +2866,6 @@
2758
2866
  if (!semantic.isInterrupting) {
2759
2867
  attrs = {
2760
2868
  strokeDasharray: '6',
2761
- strokeLinecap: 'round',
2762
2869
  fill: getFillColor(element, defaultFillColor),
2763
2870
  stroke: getStrokeColor(element, defaultStrokeColor)
2764
2871
  };
@@ -2813,7 +2920,6 @@
2813
2920
 
2814
2921
  drawPath(parentGfx, pathData, {
2815
2922
  strokeWidth: 2,
2816
- strokeLinecap: 'square',
2817
2923
  stroke: getStrokeColor(element, defaultStrokeColor)
2818
2924
  });
2819
2925
 
@@ -2835,7 +2941,6 @@
2835
2941
 
2836
2942
  drawPath(parentGfx, linePathData, {
2837
2943
  strokeWidth: 1,
2838
- strokeLinecap: 'square',
2839
2944
  transform: 'rotate(' + (i * 30) + ',' + height + ',' + width + ')',
2840
2945
  stroke: getStrokeColor(element, defaultStrokeColor)
2841
2946
  });
@@ -3043,14 +3148,14 @@
3043
3148
  },
3044
3149
  'bpmn:IntermediateEvent': function(parentGfx, element) {
3045
3150
  var outer = renderer('bpmn:Event')(parentGfx, element, {
3046
- strokeWidth: 1,
3151
+ strokeWidth: 1.5,
3047
3152
  fill: getFillColor(element, defaultFillColor),
3048
3153
  stroke: getStrokeColor(element, defaultStrokeColor)
3049
3154
  });
3050
3155
 
3051
3156
  /* inner */
3052
3157
  drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, {
3053
- strokeWidth: 1,
3158
+ strokeWidth: 1.5,
3054
3159
  fill: getFillColor(element, 'none'),
3055
3160
  stroke: getStrokeColor(element, defaultStrokeColor)
3056
3161
  });
@@ -3303,10 +3408,11 @@
3303
3408
  return task;
3304
3409
  },
3305
3410
  'bpmn:SubProcess': function(parentGfx, element, attrs) {
3306
- attrs = assign$1({
3411
+ attrs = {
3307
3412
  fill: getFillColor(element, defaultFillColor),
3308
- stroke: getStrokeColor(element, defaultStrokeColor)
3309
- }, attrs);
3413
+ stroke: getStrokeColor(element, defaultStrokeColor),
3414
+ ...attrs
3415
+ };
3310
3416
 
3311
3417
  var rect = renderer('bpmn:Activity')(parentGfx, element, attrs);
3312
3418
 
@@ -3314,7 +3420,8 @@
3314
3420
 
3315
3421
  if (isEventSubProcess(element)) {
3316
3422
  attr$1(rect, {
3317
- strokeDasharray: '1,2'
3423
+ strokeDasharray: '0, 5.5',
3424
+ strokeWidth: 2.5
3318
3425
  });
3319
3426
  }
3320
3427
 
@@ -3332,13 +3439,14 @@
3332
3439
  return renderer('bpmn:SubProcess')(parentGfx, element);
3333
3440
  },
3334
3441
  'bpmn:Transaction': function(parentGfx, element) {
3335
- var outer = renderer('bpmn:SubProcess')(parentGfx, element);
3442
+ var outer = renderer('bpmn:SubProcess')(parentGfx, element, { strokeWidth: 1.5 });
3336
3443
 
3337
3444
  var innerAttrs = styles.style([ 'no-fill', 'no-events' ], {
3338
- stroke: getStrokeColor(element, defaultStrokeColor)
3445
+ stroke: getStrokeColor(element, defaultStrokeColor),
3446
+ strokeWidth: 1.5
3339
3447
  });
3340
3448
 
3341
- /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 2, INNER_OUTER_DIST, innerAttrs);
3449
+ /* inner path */ drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS - 3, INNER_OUTER_DIST, innerAttrs);
3342
3450
 
3343
3451
  return outer;
3344
3452
  },
@@ -3349,10 +3457,13 @@
3349
3457
  },
3350
3458
  'bpmn:Participant': function(parentGfx, element) {
3351
3459
 
3460
+ var strokeWidth = 1.5;
3461
+
3352
3462
  var attrs = {
3353
3463
  fillOpacity: DEFAULT_FILL_OPACITY,
3354
3464
  fill: getFillColor(element, defaultFillColor),
3355
- stroke: getStrokeColor(element, defaultStrokeColor)
3465
+ stroke: getStrokeColor(element, defaultStrokeColor),
3466
+ strokeWidth
3356
3467
  };
3357
3468
 
3358
3469
  var lane = renderer('bpmn:Lane')(parentGfx, element, attrs);
@@ -3364,13 +3475,14 @@
3364
3475
  { x: 30, y: 0 },
3365
3476
  { x: 30, y: element.height }
3366
3477
  ], {
3367
- stroke: getStrokeColor(element, defaultStrokeColor)
3478
+ stroke: getStrokeColor(element, defaultStrokeColor),
3479
+ strokeWidth
3368
3480
  });
3369
3481
  var text = getSemantic(element).name;
3370
3482
  renderLaneLabel(parentGfx, text, element);
3371
3483
  } else {
3372
3484
 
3373
- // Collapsed pool draw text inline
3485
+ // collapsed pool draw text inline
3374
3486
  var text2 = getSemantic(element).name;
3375
3487
  renderLabel(parentGfx, text2, {
3376
3488
  box: element, align: 'center-middle',
@@ -3389,11 +3501,13 @@
3389
3501
  return lane;
3390
3502
  },
3391
3503
  'bpmn:Lane': function(parentGfx, element, attrs) {
3392
- var rect = drawRect(parentGfx, element.width, element.height, 0, assign$1({
3504
+ var rect = drawRect(parentGfx, element.width, element.height, 0, {
3393
3505
  fill: getFillColor(element, defaultFillColor),
3394
3506
  fillOpacity: HIGH_FILL_OPACITY,
3395
- stroke: getStrokeColor(element, defaultStrokeColor)
3396
- }, attrs));
3507
+ stroke: getStrokeColor(element, defaultStrokeColor),
3508
+ strokeWidth: 1.5,
3509
+ ...attrs
3510
+ });
3397
3511
 
3398
3512
  var semantic = getSemantic(element);
3399
3513
 
@@ -3512,13 +3626,11 @@
3512
3626
  }
3513
3627
  });
3514
3628
 
3515
- var attrs = {
3629
+ /* event path */ drawPath(parentGfx, pathData, {
3516
3630
  strokeWidth: 2,
3517
3631
  fill: getFillColor(element, 'none'),
3518
3632
  stroke: getStrokeColor(element, defaultStrokeColor)
3519
- };
3520
-
3521
- /* event path */ drawPath(parentGfx, pathData, attrs);
3633
+ });
3522
3634
  }
3523
3635
 
3524
3636
  if (type === 'Parallel') {
@@ -3534,16 +3646,14 @@
3534
3646
  }
3535
3647
  });
3536
3648
 
3537
- var parallelPath = drawPath(parentGfx, pathData);
3538
- attr$1(parallelPath, {
3649
+ drawPath(parentGfx, pathData, {
3539
3650
  strokeWidth: 1,
3540
3651
  fill: 'none'
3541
3652
  });
3542
3653
  } else if (type === 'Exclusive') {
3543
3654
 
3544
3655
  if (!instantiate) {
3545
- var innerCircle = drawCircle(parentGfx, element.width, element.height, element.height * 0.26);
3546
- attr$1(innerCircle, {
3656
+ drawCircle(parentGfx, element.width, element.height, element.height * 0.26, {
3547
3657
  strokeWidth: 1,
3548
3658
  fill: 'none',
3549
3659
  stroke: getStrokeColor(element, defaultStrokeColor)
@@ -3557,27 +3667,20 @@
3557
3667
  return diamond;
3558
3668
  },
3559
3669
  'bpmn:Gateway': function(parentGfx, element) {
3560
- var attrs = {
3670
+ return drawDiamond(parentGfx, element.width, element.height, {
3561
3671
  fill: getFillColor(element, defaultFillColor),
3562
3672
  fillOpacity: DEFAULT_FILL_OPACITY,
3563
3673
  stroke: getStrokeColor(element, defaultStrokeColor)
3564
- };
3565
-
3566
- return drawDiamond(parentGfx, element.width, element.height, attrs);
3674
+ });
3567
3675
  },
3568
3676
  'bpmn:SequenceFlow': function(parentGfx, element) {
3569
- var pathData = createPathFromConnection(element);
3570
-
3571
3677
  var fill = getFillColor(element, defaultFillColor),
3572
3678
  stroke = getStrokeColor(element, defaultStrokeColor);
3573
3679
 
3574
- var attrs = {
3575
- strokeLinejoin: 'round',
3680
+ var path = drawConnectionSegments(parentGfx, element.waypoints, {
3576
3681
  markerEnd: marker('sequenceflow-end', fill, stroke),
3577
3682
  stroke: getStrokeColor(element, defaultStrokeColor)
3578
- };
3579
-
3580
- var path = drawPath(parentGfx, pathData, attrs);
3683
+ });
3581
3684
 
3582
3685
  var sequenceFlow = getSemantic(element);
3583
3686
 
@@ -3611,12 +3714,11 @@
3611
3714
  var fill = getFillColor(element, defaultFillColor),
3612
3715
  stroke = getStrokeColor(element, defaultStrokeColor);
3613
3716
 
3614
- attrs = assign$1({
3615
- strokeDasharray: '0.5, 5',
3616
- strokeLinecap: 'round',
3617
- strokeLinejoin: 'round',
3618
- stroke: getStrokeColor(element, defaultStrokeColor)
3619
- }, attrs || {});
3717
+ attrs = {
3718
+ strokeDasharray: '0, 5',
3719
+ stroke: getStrokeColor(element, defaultStrokeColor),
3720
+ ...attrs
3721
+ };
3620
3722
 
3621
3723
  if (semantic.associationDirection === 'One' ||
3622
3724
  semantic.associationDirection === 'Both') {
@@ -3627,7 +3729,7 @@
3627
3729
  attrs.markerStart = marker('association-start', fill, stroke);
3628
3730
  }
3629
3731
 
3630
- return drawLine(parentGfx, element.waypoints, attrs);
3732
+ return drawConnectionSegments(parentGfx, element.waypoints, attrs);
3631
3733
  },
3632
3734
  'bpmn:DataInputAssociation': function(parentGfx, element) {
3633
3735
  var fill = getFillColor(element, defaultFillColor),
@@ -3653,19 +3755,13 @@
3653
3755
  var fill = getFillColor(element, defaultFillColor),
3654
3756
  stroke = getStrokeColor(element, defaultStrokeColor);
3655
3757
 
3656
- var pathData = createPathFromConnection(element);
3657
-
3658
- var attrs = {
3758
+ var path = drawConnectionSegments(parentGfx, element.waypoints, {
3659
3759
  markerEnd: marker('messageflow-end', fill, stroke),
3660
3760
  markerStart: marker('messageflow-start', fill, stroke),
3661
- strokeDasharray: '10, 12',
3662
- strokeLinecap: 'round',
3663
- strokeLinejoin: 'round',
3664
- strokeWidth: '1.5px',
3761
+ strokeDasharray: '10, 11',
3762
+ strokeWidth: 1.5,
3665
3763
  stroke: getStrokeColor(element, defaultStrokeColor)
3666
- };
3667
-
3668
- var path = drawPath(parentGfx, pathData, attrs);
3764
+ });
3669
3765
 
3670
3766
  if (semantic.messageRef) {
3671
3767
  var midPoint = path.getPointAtLength(path.getTotalLength() / 2);
@@ -3788,25 +3884,26 @@
3788
3884
  cancel = semantic.cancelActivity;
3789
3885
 
3790
3886
  var attrs = {
3791
- strokeWidth: 1,
3887
+ strokeWidth: 1.5,
3792
3888
  fill: getFillColor(element, defaultFillColor),
3793
3889
  stroke: getStrokeColor(element, defaultStrokeColor)
3794
3890
  };
3795
3891
 
3796
3892
  if (!cancel) {
3797
3893
  attrs.strokeDasharray = '6';
3798
- attrs.strokeLinecap = 'round';
3799
3894
  }
3800
3895
 
3801
3896
  // apply fillOpacity
3802
- var outerAttrs = assign$1({}, attrs, {
3897
+ var outerAttrs = {
3898
+ ...attrs,
3803
3899
  fillOpacity: 1
3804
- });
3900
+ };
3805
3901
 
3806
3902
  // apply no-fill
3807
- var innerAttrs = assign$1({}, attrs, {
3903
+ var innerAttrs = {
3904
+ ...attrs,
3808
3905
  fill: 'none'
3809
- });
3906
+ };
3810
3907
 
3811
3908
  var outer = renderer('bpmn:Event')(parentGfx, element, outerAttrs);
3812
3909
 
@@ -3817,27 +3914,22 @@
3817
3914
  return outer;
3818
3915
  },
3819
3916
  'bpmn:Group': function(parentGfx, element) {
3820
-
3821
- var group = drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {
3917
+ return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {
3822
3918
  stroke: getStrokeColor(element, defaultStrokeColor),
3823
- strokeWidth: 1,
3824
- strokeDasharray: '8,3,1,3',
3919
+ strokeWidth: 1.5,
3920
+ strokeDasharray: '10,6,0,6',
3825
3921
  fill: 'none',
3826
3922
  pointerEvents: 'none'
3827
3923
  });
3828
-
3829
- return group;
3830
3924
  },
3831
3925
  'label': function(parentGfx, element) {
3832
3926
  return renderExternalLabel(parentGfx, element);
3833
3927
  },
3834
3928
  'bpmn:TextAnnotation': function(parentGfx, element) {
3835
- var style = {
3929
+ var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, {
3836
3930
  'fill': 'none',
3837
3931
  'stroke': 'none'
3838
- };
3839
-
3840
- var textElement = drawRect(parentGfx, element.width, element.height, 0, 0, style);
3932
+ });
3841
3933
 
3842
3934
  var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {
3843
3935
  xScaleFactor: 1,
@@ -3858,7 +3950,7 @@
3858
3950
  renderLabel(parentGfx, text, {
3859
3951
  box: element,
3860
3952
  align: 'left-top',
3861
- padding: 5,
3953
+ padding: 7,
3862
3954
  style: {
3863
3955
  fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
3864
3956
  }
@@ -3976,10 +4068,9 @@
3976
4068
  });
3977
4069
 
3978
4070
  drawMarker('loop', parentGfx, markerPath, {
3979
- strokeWidth: 1,
4071
+ strokeWidth: 1.5,
3980
4072
  fill: getFillColor(element, defaultFillColor),
3981
4073
  stroke: getStrokeColor(element, defaultStrokeColor),
3982
- strokeLinecap: 'round',
3983
4074
  strokeMiterlimit: 0.5
3984
4075
  });
3985
4076
  },
@@ -6386,7 +6477,7 @@
6386
6477
  attr$1(outline, assign$1({
6387
6478
  x: 10,
6388
6479
  y: 10,
6389
- rx: 3,
6480
+ rx: 4,
6390
6481
  width: 100,
6391
6482
  height: 100
6392
6483
  }, OUTLINE_STYLE));