bpmn-js 9.0.0-subprocesses.3 → 9.0.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 (43) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/dist/assets/bpmn-js.css +38 -4
  3. package/dist/assets/diagram-js.css +1 -1
  4. package/dist/bpmn-modeler.development.js +2411 -1110
  5. package/dist/bpmn-modeler.production.min.js +8 -8
  6. package/dist/bpmn-navigated-viewer.development.js +983 -315
  7. package/dist/bpmn-navigated-viewer.production.min.js +6 -6
  8. package/dist/bpmn-viewer.development.js +983 -315
  9. package/dist/bpmn-viewer.production.min.js +6 -6
  10. package/lib/BaseViewer.js +1 -1
  11. package/lib/draw/BpmnRenderer.js +8 -7
  12. package/lib/features/auto-resize/BpmnAutoResizeProvider.js +6 -0
  13. package/lib/features/copy-paste/BpmnCopyPaste.js +1 -0
  14. package/lib/features/di-ordering/BpmnDiOrdering.js +15 -11
  15. package/lib/features/drilldown/DrilldownBreadcrumbs.js +122 -0
  16. package/lib/features/drilldown/DrilldownCentering.js +87 -10
  17. package/lib/features/drilldown/DrilldownOverlayBehavior.js +181 -0
  18. package/lib/features/drilldown/SubprocessCompatibility.js +9 -6
  19. package/lib/features/drilldown/index.js +7 -4
  20. package/lib/features/label-editing/LabelEditingProvider.js +1 -1
  21. package/lib/features/label-editing/cmd/UpdateLabelHandler.js +29 -2
  22. package/lib/features/modeling/BpmnFactory.js +5 -1
  23. package/lib/features/modeling/BpmnUpdater.js +43 -1
  24. package/lib/features/modeling/ElementFactory.js +4 -0
  25. package/lib/features/modeling/behavior/CreateParticipantBehavior.js +59 -84
  26. package/lib/features/modeling/behavior/DropOnFlowBehavior.js +2 -2
  27. package/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js +34 -0
  28. package/lib/features/modeling/behavior/SubProcessPlaneBehavior.js +557 -0
  29. package/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js +74 -0
  30. package/lib/features/modeling/behavior/UnclaimIdBehavior.js +3 -1
  31. package/lib/features/modeling/behavior/index.js +27 -18
  32. package/lib/features/modeling/cmd/SetColorHandler.js +23 -6
  33. package/lib/features/modeling/cmd/UpdateCanvasRootHandler.js +4 -2
  34. package/lib/features/modeling/util/ModelingUtil.js +2 -20
  35. package/lib/features/ordering/BpmnOrderingProvider.js +3 -3
  36. package/lib/features/palette/PaletteProvider.js +1 -1
  37. package/lib/features/popup-menu/ReplaceMenuProvider.js +1 -1
  38. package/lib/import/BpmnImporter.js +15 -9
  39. package/lib/import/Importer.js +130 -10
  40. package/lib/util/DrilldownUtil.js +66 -0
  41. package/lib/util/ModelUtil.js +19 -0
  42. package/package.json +2 -2
  43. package/lib/features/drilldown/DrilldownOverlays.js +0 -110
@@ -1,110 +0,0 @@
1
- import { domify, classes } from 'min-dom';
2
-
3
- import { escapeHTML } from 'diagram-js/lib/util/EscapeUtil';
4
- import { getBusinessObject, is } from '../../util/ModelUtil';
5
-
6
- var ARROW_DOWN_SVG = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M4.81801948,3.50735931 L10.4996894,9.1896894 L10.5,4 L12,4 L12,12 L4,12 L4,10.5 L9.6896894,10.4996894 L3.75735931,4.56801948 C3.46446609,4.27512627 3.46446609,3.80025253 3.75735931,3.50735931 C4.05025253,3.21446609 4.52512627,3.21446609 4.81801948,3.50735931 Z"/></svg>';
7
-
8
- var OPEN_CLASS = 'bjs-breadcrumbs-shown';
9
-
10
- /**
11
- * Adds Overlays that allow switching planes on collapsed subprocesses.
12
- *
13
- * @param {eventBus} eventBus
14
- * @param {elementRegistry} elementRegistry
15
- * @param {overlays} overlays
16
- * @param {canvas} canvas
17
- */
18
- export default function DrilldownOverlays(eventBus, elementRegistry, overlays, canvas) {
19
- var breadcrumbs = domify('<ul class="bjs-breadcrumbs"></ul>');
20
- var container = canvas.getContainer();
21
- var containerClasses = classes(container);
22
- container.appendChild(breadcrumbs);
23
-
24
- function updateBreadcrumbs(plane) {
25
- var subProcess = elementRegistry.get(plane.name);
26
- var parents = getParentChain(subProcess);
27
-
28
- var path = parents.map(function(el) {
29
- var title = escapeHTML(el.name || el.id);
30
- var link = domify('<li><span class="bjs-crumb"><a title="' + title + '">' + title + '</a></span></li>');
31
-
32
- link.addEventListener('click', function() {
33
- if (canvas.getPlane(el.id)) {
34
- canvas.setActivePlane(el.id);
35
- } else {
36
- var plane = canvas.findPlane(el.id);
37
- canvas.setActivePlane(plane);
38
- }
39
- });
40
-
41
- return link;
42
- });
43
-
44
- breadcrumbs.innerHTML = '';
45
-
46
- // show breadcrumbs and expose state to .djs-container
47
- var visible = path.length > 1;
48
- containerClasses.toggle(OPEN_CLASS, visible);
49
-
50
- path.forEach(function(el) {
51
- breadcrumbs.appendChild(el);
52
- });
53
- }
54
-
55
- eventBus.on('plane.set', function(event) {
56
- var plane = event.plane;
57
-
58
- updateBreadcrumbs(plane);
59
- });
60
-
61
- var createOverlay = function(element) {
62
- var html = domify('<button class="bjs-drilldown">' + ARROW_DOWN_SVG + '</button>');
63
-
64
- html.addEventListener('click', function() {
65
- canvas.setActivePlane(element.id);
66
- });
67
-
68
- overlays.add(element, {
69
- position: {
70
- bottom: -7,
71
- right: -8
72
- },
73
- html: html
74
- });
75
- };
76
-
77
- var addOverlays = function(elements) {
78
- elements.forEach(function(element) {
79
- if (is(element, 'bpmn:SubProcess')
80
- && element.collapsed
81
- && canvas.getPlane(element.id)) {
82
- createOverlay(element);
83
- }
84
- });
85
- };
86
-
87
- eventBus.on('import.done', function() {
88
- addOverlays(elementRegistry.filter(function(el) {
89
- return is(el, 'bpmn:SubProcess');
90
- }));
91
- });
92
- }
93
-
94
- DrilldownOverlays.$inject = [ 'eventBus', 'elementRegistry', 'overlays', 'canvas' ];
95
-
96
-
97
- // helpers
98
- var getParentChain = function(child) {
99
- var bo = getBusinessObject(child);
100
-
101
- var parents = [];
102
-
103
- for (var element = bo; element; element = element.$parent) {
104
- if (is(element, 'bpmn:SubProcess') || is(element, 'bpmn:Process')) {
105
- parents.push(element);
106
- }
107
- }
108
-
109
- return parents.reverse();
110
- };