bpmn-js 14.2.0 → 15.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.
package/lib/Modeler.js CHANGED
@@ -30,6 +30,7 @@ import LabelEditingModule from './features/label-editing';
30
30
  import ModelingModule from './features/modeling';
31
31
  import ModelingFeedbackModule from './features/modeling-feedback';
32
32
  import MoveModule from 'diagram-js/lib/features/move';
33
+ import OutlineModule from './features/outline';
33
34
  import PaletteModule from './features/palette';
34
35
  import ReplacePreviewModule from './features/replace-preview';
35
36
  import ResizeModule from 'diagram-js/lib/features/resize';
@@ -182,6 +183,7 @@ Modeler.prototype._modelingModules = [
182
183
  ModelingModule,
183
184
  ModelingFeedbackModule,
184
185
  MoveModule,
186
+ OutlineModule,
185
187
  PaletteModule,
186
188
  ReplacePreviewModule,
187
189
  ResizeModule,
@@ -7,6 +7,7 @@
7
7
  * @return
8
8
  */
9
9
  export function isTypedEvent(event: any, eventDefinitionType: string): boolean;
10
+
10
11
  /**
11
12
  * Check if element is a throw event.
12
13
  *
@@ -15,6 +16,7 @@ export function isTypedEvent(event: any, eventDefinitionType: string): boolean;
15
16
  * @return
16
17
  */
17
18
  export function isThrowEvent(event: any): boolean;
19
+
18
20
  /**
19
21
  * Check if element is a throw event.
20
22
  *
@@ -23,34 +25,42 @@ export function isThrowEvent(event: any): boolean;
23
25
  * @return
24
26
  */
25
27
  export function isCollection(element: any): boolean;
28
+
26
29
  /**
27
30
  * @param element
28
31
  * @param defaultColor
32
+ * @param overrideColor
29
33
  *
30
34
  * @return
31
35
  */
32
- export function getFillColor(element: any, defaultColor?: string): string;
36
+ export function getFillColor(element: any, defaultColor?: string, overrideColor?: string): string;
37
+
33
38
  /**
34
39
  * @param element
35
40
  * @param defaultColor
41
+ * @param overrideColor
36
42
  *
37
43
  * @return
38
44
  */
39
- export function getStrokeColor(element: any, defaultColor?: string): string;
45
+ export function getStrokeColor(element: any, defaultColor?: string, overrideColor?: string): string;
46
+
40
47
  /**
41
48
  * @param element
42
49
  * @param defaultColor
43
50
  * @param defaultStrokeColor
51
+ * @param overrideColor
44
52
  *
45
53
  * @return
46
54
  */
47
- export function getLabelColor(element: any, defaultColor?: string, defaultStrokeColor?: string): string;
55
+ export function getLabelColor(element: any, defaultColor?: string, defaultStrokeColor?: string, overrideColor?: string): string;
56
+
48
57
  /**
49
58
  * @param shape
50
59
  *
51
60
  * @return path
52
61
  */
53
62
  export function getCirclePath(shape: any): string;
63
+
54
64
  /**
55
65
  * @param shape
56
66
  * @param borderRadius
@@ -58,20 +68,56 @@ export function getCirclePath(shape: any): string;
58
68
  * @return path
59
69
  */
60
70
  export function getRoundRectPath(shape: any, borderRadius?: number): string;
71
+
61
72
  /**
62
73
  * @param shape
63
74
  *
64
75
  * @return path
65
76
  */
66
77
  export function getDiamondPath(shape: any): string;
78
+
67
79
  /**
68
80
  * @param shape
69
81
  *
70
82
  * @return path
71
83
  */
72
84
  export function getRectPath(shape: any): string;
85
+
86
+ /**
87
+ * Get width and height from element or overrides.
88
+ *
89
+ * @param bounds
90
+ * @param overrides
91
+ *
92
+ * @returns
93
+ */
94
+ export function getBounds(bounds: Dimensions | Rect | Shape, overrides?: any): Dimensions;
95
+
96
+ /**
97
+ * Get width from element or overrides.
98
+ *
99
+ * @param bounds
100
+ * @param overrides
101
+ *
102
+ * @returns
103
+ */
104
+ export function getWidth(bounds: Dimensions | Rect | Shape, overrides?: any): number;
105
+
106
+ /**
107
+ * Get height from element or overrides.
108
+ *
109
+ * @param bounds
110
+ * @param overrides
111
+ *
112
+ * @returns
113
+ */
114
+ export function getHeight(bounds: Dimensions | Rect | Shape, overrides?: any): number;
115
+
73
116
  export const black: string;
117
+ export const white: string;
74
118
  export type ModdleElement = any;
75
119
  export type Element = any;
76
120
  export type ShapeLike = any;
121
+ type Dimensions = import('diagram-js/lib/util/Types').Dimensions;
122
+ type Rect = import('diagram-js/lib/util/Types').Rect;
77
123
  export { getDi, getBusinessObject as getSemantic } from "../util/ModelUtil";
@@ -1,4 +1,5 @@
1
1
  import {
2
+ has,
2
3
  some
3
4
  } from 'min-dash';
4
5
 
@@ -16,6 +17,9 @@ import {
16
17
  * @typedef {import('../model').Element} Element
17
18
  *
18
19
  * @typedef {import('../model').ShapeLike} ShapeLike
20
+ *
21
+ * @typedef {import('diagram-js/lib/util/Types').Dimensions} Dimensions
22
+ * @typedef {import('diagram-js/lib/util/Types').Rect} Rect
19
23
  */
20
24
 
21
25
  // re-export for compatibility
@@ -26,6 +30,7 @@ export {
26
30
 
27
31
 
28
32
  export var black = 'hsl(225, 10%, 15%)';
33
+ export var white = 'white';
29
34
 
30
35
  // element utils //////////////////////
31
36
 
@@ -73,39 +78,42 @@ export function isCollection(element) {
73
78
  /**
74
79
  * @param {Element} element
75
80
  * @param {string} [defaultColor]
81
+ * @param {string} [overrideColor]
76
82
  *
77
83
  * @return {string}
78
84
  */
79
- export function getFillColor(element, defaultColor) {
85
+ export function getFillColor(element, defaultColor, overrideColor) {
80
86
  var di = getDi(element);
81
87
 
82
- return di.get('color:background-color') || di.get('bioc:fill') || defaultColor || 'white';
88
+ return overrideColor || di.get('color:background-color') || di.get('bioc:fill') || defaultColor || white;
83
89
  }
84
90
 
85
91
  /**
86
92
  * @param {Element} element
87
93
  * @param {string} [defaultColor]
94
+ * @param {string} [overrideColor]
88
95
  *
89
96
  * @return {string}
90
97
  */
91
- export function getStrokeColor(element, defaultColor) {
98
+ export function getStrokeColor(element, defaultColor, overrideColor) {
92
99
  var di = getDi(element);
93
100
 
94
- return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black;
101
+ return overrideColor || di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black;
95
102
  }
96
103
 
97
104
  /**
98
105
  * @param {Element} element
99
106
  * @param {string} [defaultColor]
100
107
  * @param {string} [defaultStrokeColor]
108
+ * @param {string} [overrideColor]
101
109
  *
102
110
  * @return {string}
103
111
  */
104
- export function getLabelColor(element, defaultColor, defaultStrokeColor) {
112
+ export function getLabelColor(element, defaultColor, defaultStrokeColor, overrideColor) {
105
113
  var di = getDi(element),
106
114
  label = di.get('label');
107
115
 
108
- return label && label.get('color:color') || defaultColor ||
116
+ return overrideColor || (label && label.get('color:color')) || defaultColor ||
109
117
  getStrokeColor(element, defaultStrokeColor);
110
118
  }
111
119
 
@@ -208,3 +216,42 @@ export function getRectPath(shape) {
208
216
 
209
217
  return componentsToPath(rectPath);
210
218
  }
219
+
220
+ /**
221
+ * Get width and height from element or overrides.
222
+ *
223
+ * @param {Dimensions|Rect|Shape} bounds
224
+ * @param {Object} overrides
225
+ *
226
+ * @returns {Dimensions}
227
+ */
228
+ export function getBounds(bounds, overrides = {}) {
229
+ return {
230
+ width: getWidth(bounds, overrides),
231
+ height: getHeight(bounds, overrides)
232
+ };
233
+ }
234
+
235
+ /**
236
+ * Get width from element or overrides.
237
+ *
238
+ * @param {Dimensions|Rect|Shape} bounds
239
+ * @param {Object} overrides
240
+ *
241
+ * @returns {number}
242
+ */
243
+ export function getWidth(bounds, overrides = {}) {
244
+ return has(overrides, 'width') ? overrides.width : bounds.width;
245
+ }
246
+
247
+ /**
248
+ * Get height from element or overrides.
249
+ *
250
+ * @param {Dimensions|Rect|Shape} bounds
251
+ * @param {Object} overrides
252
+ *
253
+ * @returns {number}
254
+ */
255
+ export function getHeight(bounds, overrides = {}) {
256
+ return has(overrides, 'height') ? overrides.height : bounds.height;
257
+ }
@@ -17,66 +17,45 @@ export default class BpmnRenderer extends BaseRenderer {
17
17
  constructor(config: BpmnRendererConfig, eventBus: import('diagram-js/lib/core/EventBus').default, styles: import('diagram-js/lib/draw/Styles').default, pathMap: import('./PathMap').default, canvas: import('diagram-js/lib/core/Canvas').default, textRenderer: import('./TextRenderer').default, priority?: number);
18
18
 
19
19
  handlers: {
20
- 'bpmn:Event': (parentGfx: any, element: any, attrs: any) => SVGCircleElement;
21
- 'bpmn:StartEvent': (parentGfx: any, element: any, options: any) => any;
22
- 'bpmn:MessageEventDefinition': (parentGfx: any, element: any, isThrowing: any) => SVGPathElement;
23
- 'bpmn:TimerEventDefinition': (parentGfx: any, element: any) => SVGCircleElement;
24
- 'bpmn:EscalationEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
25
- 'bpmn:ConditionalEventDefinition': (parentGfx: any, event: any) => SVGPathElement;
26
- 'bpmn:LinkEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
27
- 'bpmn:ErrorEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
28
- 'bpmn:CancelEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
29
- 'bpmn:CompensateEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
30
- 'bpmn:SignalEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
31
- 'bpmn:MultipleEventDefinition': (parentGfx: any, event: any, isThrowing: any) => SVGPathElement;
32
- 'bpmn:ParallelMultipleEventDefinition': (parentGfx: any, event: any) => SVGPathElement;
33
- 'bpmn:EndEvent': (parentGfx: any, element: any, options: any) => any;
34
- 'bpmn:TerminateEventDefinition': (parentGfx: any, element: any) => SVGCircleElement;
35
- 'bpmn:IntermediateEvent': (parentGfx: any, element: any, options: any) => any;
36
- 'bpmn:IntermediateCatchEvent': (parentGfx: any, element: any, options: any) => any;
37
- 'bpmn:IntermediateThrowEvent': (parentGfx: any, element: any, options: any) => any;
38
- 'bpmn:Activity': (parentGfx: any, element: any, attrs: any) => SVGRectElement;
39
- 'bpmn:Task': (parentGfx: any, element: any) => any;
40
- 'bpmn:ServiceTask': (parentGfx: any, element: any) => any;
41
- 'bpmn:UserTask': (parentGfx: any, element: any) => any;
42
- 'bpmn:ManualTask': (parentGfx: any, element: any) => any;
43
- 'bpmn:SendTask': (parentGfx: any, element: any) => any;
44
- 'bpmn:ReceiveTask': (parentGfx: any, element: any) => any;
45
- 'bpmn:ScriptTask': (parentGfx: any, element: any) => any;
46
- 'bpmn:BusinessRuleTask': (parentGfx: any, element: any) => any;
47
- 'bpmn:SubProcess': (parentGfx: any, element: any, attrs: any) => any;
48
- 'bpmn:AdHocSubProcess': (parentGfx: any, element: any) => any;
49
- 'bpmn:Transaction': (parentGfx: any, element: any) => any;
50
- 'bpmn:CallActivity': (parentGfx: any, element: any) => any;
51
- 'bpmn:Participant': (parentGfx: any, element: any) => any;
52
- 'bpmn:Lane': (parentGfx: any, element: any, attrs: any) => SVGRectElement;
53
- 'bpmn:InclusiveGateway': (parentGfx: any, element: any) => any;
54
- 'bpmn:ExclusiveGateway': (parentGfx: any, element: any) => any;
55
- 'bpmn:ComplexGateway': (parentGfx: any, element: any) => any;
56
- 'bpmn:ParallelGateway': (parentGfx: any, element: any) => any;
57
- 'bpmn:EventBasedGateway': (parentGfx: any, element: any) => any;
58
- 'bpmn:Gateway': (parentGfx: any, element: any) => SVGPolygonElement;
59
- 'bpmn:SequenceFlow': (parentGfx: any, element: any) => SVGElement;
60
- 'bpmn:Association': (parentGfx: any, element: any, attrs: any) => SVGElement;
61
- 'bpmn:DataInputAssociation': (parentGfx: any, element: any) => any;
62
- 'bpmn:DataOutputAssociation': (parentGfx: any, element: any) => any;
63
- 'bpmn:MessageFlow': (parentGfx: any, element: any) => SVGElement;
64
- 'bpmn:DataObject': (parentGfx: any, element: any) => SVGPathElement;
65
- 'bpmn:DataObjectReference': (parentGfx: any, element: any, options: any) => any;
66
- 'bpmn:DataInput': (parentGfx: any, element: any) => any;
67
- 'bpmn:DataOutput': (parentGfx: any, element: any) => any;
68
- 'bpmn:DataStoreReference': (parentGfx: any, element: any) => SVGPathElement;
69
- 'bpmn:BoundaryEvent': (parentGfx: any, element: any, options: any) => any;
70
- 'bpmn:Group': (parentGfx: any, element: any) => SVGRectElement;
71
- label: (parentGfx: any, element: any) => SVGElement;
72
- 'bpmn:TextAnnotation': (parentGfx: any, element: any) => SVGRectElement;
73
- ParticipantMultiplicityMarker: (parentGfx: any, element: any) => void;
74
- SubProcessMarker: (parentGfx: any, element: any) => void;
75
- ParallelMarker: (parentGfx: any, element: any, position: any) => void;
76
- SequentialMarker: (parentGfx: any, element: any, position: any) => void;
77
- CompensationMarker: (parentGfx: any, element: any, position: any) => void;
78
- LoopMarker: (parentGfx: any, element: any, position: any) => void;
79
- AdhocMarker: (parentGfx: any, element: any, position: any) => void;
20
+ 'bpmn:AdHocSubProcess': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
21
+ 'bpmn:Association': (parentGfx: any, element: any, attrs?: {}) => SVGElement;
22
+ 'bpmn:BoundaryEvent': (parentGfx: any, element: any, attrs?: {}) => SVGCircleElement;
23
+ 'bpmn:BusinessRuleTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
24
+ 'bpmn:CallActivity': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
25
+ 'bpmn:ComplexGateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
26
+ 'bpmn:DataInput': (parentGfx: any, element: any, attrs?: {}) => SVGPathElement;
27
+ 'bpmn:DataInputAssociation': (parentGfx: any, element: any, attrs?: {}) => SVGElement;
28
+ 'bpmn:DataObject': (parentGfx: any, element: any, attrs?: {}) => SVGPathElement;
29
+ 'bpmn:DataObjectReference': (parentGfx: any, element: any, attrs: any) => any;
30
+ 'bpmn:DataOutput': (parentGfx: any, element: any, attrs?: {}) => SVGPathElement;
31
+ 'bpmn:DataOutputAssociation': (parentGfx: any, element: any, attrs?: {}) => SVGElement;
32
+ 'bpmn:DataStoreReference': (parentGfx: any, element: any, attrs?: {}) => SVGPathElement;
33
+ 'bpmn:EndEvent': (parentGfx: any, element: any, attrs?: {}) => SVGCircleElement;
34
+ 'bpmn:EventBasedGateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
35
+ 'bpmn:ExclusiveGateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
36
+ 'bpmn:Gateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
37
+ 'bpmn:Group': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
38
+ 'bpmn:InclusiveGateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
39
+ 'bpmn:IntermediateEvent': (parentGfx: any, element: any, attrs?: {}) => SVGCircleElement;
40
+ 'bpmn:IntermediateCatchEvent': (parentGfx: any, element: any, attrs: any) => any;
41
+ 'bpmn:IntermediateThrowEvent': (parentGfx: any, element: any, attrs: any) => any;
42
+ 'bpmn:Lane': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
43
+ 'bpmn:ManualTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
44
+ 'bpmn:MessageFlow': (parentGfx: any, element: any, attrs?: {}) => SVGElement;
45
+ 'bpmn:ParallelGateway': (parentGfx: any, element: any, attrs?: {}) => SVGPolygonElement;
46
+ 'bpmn:Participant': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
47
+ 'bpmn:ReceiveTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
48
+ 'bpmn:ScriptTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
49
+ 'bpmn:SendTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
50
+ 'bpmn:SequenceFlow': (parentGfx: any, element: any, attrs?: {}) => SVGElement;
51
+ 'bpmn:ServiceTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
52
+ 'bpmn:StartEvent': (parentGfx: any, element: any, attrs?: {}) => SVGCircleElement;
53
+ 'bpmn:SubProcess': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
54
+ 'bpmn:Task': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
55
+ 'bpmn:TextAnnotation': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
56
+ 'bpmn:Transaction': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
57
+ 'bpmn:UserTask': (parentGfx: any, element: any, attrs?: {}) => SVGRectElement;
58
+ label: (parentGfx: any, element: any, attrs?: {}) => SVGElement;
80
59
  };
81
60
 
82
61
  /**
@@ -91,20 +70,22 @@ export default class BpmnRenderer extends BaseRenderer {
91
70
  *
92
71
  * @param parentGfx
93
72
  * @param element
73
+ * @param attrs
94
74
  *
95
75
  * @return mainGfx
96
76
  */
97
- drawShape(parentGfx: SVGElement, element: Element): SVGElement;
77
+ drawShape(parentGfx: SVGElement, element: Element, attrs?: Attrs): SVGElement;
98
78
 
99
79
  /**
100
80
  * Draw connection into parentGfx.
101
81
  *
102
82
  * @param parentGfx
103
83
  * @param element
84
+ * @param attrs
104
85
  *
105
86
  * @return mainGfx
106
87
  */
107
- drawConnection(parentGfx: SVGElement, element: Element): SVGElement;
88
+ drawConnection(parentGfx: SVGElement, element: Element, attrs?: Attrs): SVGElement;
108
89
 
109
90
  /**
110
91
  * Get shape path.
@@ -122,5 +103,12 @@ export type BpmnRendererConfig = Partial<{
122
103
  defaultLabelColor: string;
123
104
  }>;
124
105
 
106
+ export type Attrs = Partial<{
107
+ fill: string;
108
+ stroke: string;
109
+ width: string;
110
+ height: string;
111
+ }>;
112
+
125
113
  type Element = import('../model/Types').Element;
126
114
  import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';