camunda-bpmn-js 4.0.0-0 → 4.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/dist/assets/diagram-js.css +7 -19
- package/dist/assets/properties-panel.css +57 -23
- package/dist/base-modeler.development.js +65569 -62864
- package/dist/base-modeler.production.min.js +52 -53
- package/dist/base-navigated-viewer.development.js +1694 -1145
- package/dist/base-navigated-viewer.production.min.js +1 -1
- package/dist/base-viewer.development.js +1692 -1147
- package/dist/base-viewer.production.min.js +1 -1
- package/dist/camunda-cloud-modeler.development.js +52572 -39963
- package/dist/camunda-cloud-modeler.production.min.js +61 -61
- package/dist/camunda-cloud-navigated-viewer.development.js +1694 -1145
- package/dist/camunda-cloud-navigated-viewer.production.min.js +1 -1
- package/dist/camunda-cloud-viewer.development.js +1692 -1147
- package/dist/camunda-cloud-viewer.production.min.js +1 -1
- package/dist/camunda-platform-modeler.development.js +45585 -42832
- package/dist/camunda-platform-modeler.production.min.js +52 -53
- package/dist/camunda-platform-navigated-viewer.development.js +1694 -1145
- package/dist/camunda-platform-navigated-viewer.production.min.js +1 -1
- package/dist/camunda-platform-viewer.development.js +1692 -1147
- package/dist/camunda-platform-viewer.production.min.js +1 -1
- package/lib/camunda-cloud/Modeler.js +0 -3
- package/package.json +33 -33
- package/lib/camunda-cloud/features/rules/BpmnRules.d.ts +0 -32
- package/lib/camunda-cloud/features/rules/BpmnRules.js +0 -161
- package/lib/camunda-cloud/features/rules/index.d.ts +0 -6
- package/lib/camunda-cloud/features/rules/index.js +0 -6
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* @template T
|
|
13
13
|
*
|
|
14
|
-
* @param {T[][]} arr
|
|
14
|
+
* @param {T[][] | T[] | null} [arr]
|
|
15
15
|
*
|
|
16
16
|
* @return {T[]}
|
|
17
17
|
*/
|
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
return obj !== undefined;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
function isNil(obj) {
|
|
31
|
+
return obj == null;
|
|
32
|
+
}
|
|
33
|
+
|
|
30
34
|
function isArray$2(obj) {
|
|
31
35
|
return nativeToString$1.call(obj) === '[object Array]';
|
|
32
36
|
}
|
|
@@ -475,6 +479,58 @@
|
|
|
475
479
|
return Object.assign(target, ...others);
|
|
476
480
|
}
|
|
477
481
|
|
|
482
|
+
/**
|
|
483
|
+
* Sets a nested property of a given object to the specified value.
|
|
484
|
+
*
|
|
485
|
+
* This mutates the object and returns it.
|
|
486
|
+
*
|
|
487
|
+
* @template T
|
|
488
|
+
*
|
|
489
|
+
* @param {T} target The target of the set operation.
|
|
490
|
+
* @param {(string|number)[]} path The path to the nested value.
|
|
491
|
+
* @param {any} value The value to set.
|
|
492
|
+
*
|
|
493
|
+
* @return {T}
|
|
494
|
+
*/
|
|
495
|
+
function set$2(target, path, value) {
|
|
496
|
+
|
|
497
|
+
let currentTarget = target;
|
|
498
|
+
|
|
499
|
+
forEach$1(path, function(key, idx) {
|
|
500
|
+
|
|
501
|
+
if (typeof key !== 'number' && typeof key !== 'string') {
|
|
502
|
+
throw new Error('illegal key type: ' + typeof key + '. Key should be of type number or string.');
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (key === 'constructor') {
|
|
506
|
+
throw new Error('illegal key: constructor');
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
if (key === '__proto__') {
|
|
510
|
+
throw new Error('illegal key: __proto__');
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
let nextKey = path[idx + 1];
|
|
514
|
+
let nextTarget = currentTarget[key];
|
|
515
|
+
|
|
516
|
+
if (isDefined(nextKey) && isNil(nextTarget)) {
|
|
517
|
+
nextTarget = currentTarget[key] = isNaN(+nextKey) ? {} : [];
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
if (isUndefined$2(nextKey)) {
|
|
521
|
+
if (isUndefined$2(value)) {
|
|
522
|
+
delete currentTarget[key];
|
|
523
|
+
} else {
|
|
524
|
+
currentTarget[key] = value;
|
|
525
|
+
}
|
|
526
|
+
} else {
|
|
527
|
+
currentTarget = nextTarget;
|
|
528
|
+
}
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
return target;
|
|
532
|
+
}
|
|
533
|
+
|
|
478
534
|
/**
|
|
479
535
|
* Pick properties from the given target.
|
|
480
536
|
*
|
|
@@ -713,6 +769,26 @@
|
|
|
713
769
|
return true;
|
|
714
770
|
}
|
|
715
771
|
|
|
772
|
+
/**
|
|
773
|
+
* @param {Element} element
|
|
774
|
+
*
|
|
775
|
+
* @return {boolean}
|
|
776
|
+
*/
|
|
777
|
+
function isHorizontal(element) {
|
|
778
|
+
|
|
779
|
+
if (!is$1(element, 'bpmn:Participant') && !is$1(element, 'bpmn:Lane')) {
|
|
780
|
+
return undefined;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
var isHorizontal = getDi(element).isHorizontal;
|
|
784
|
+
|
|
785
|
+
if (isHorizontal === undefined) {
|
|
786
|
+
return true;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
return isHorizontal;
|
|
790
|
+
}
|
|
791
|
+
|
|
716
792
|
/**
|
|
717
793
|
* @param {Element} element
|
|
718
794
|
*
|
|
@@ -1795,6 +1871,7 @@
|
|
|
1795
1871
|
}
|
|
1796
1872
|
|
|
1797
1873
|
var black = 'hsl(225, 10%, 15%)';
|
|
1874
|
+
var white = 'white';
|
|
1798
1875
|
|
|
1799
1876
|
// element utils //////////////////////
|
|
1800
1877
|
|
|
@@ -1842,39 +1919,42 @@
|
|
|
1842
1919
|
/**
|
|
1843
1920
|
* @param {Element} element
|
|
1844
1921
|
* @param {string} [defaultColor]
|
|
1922
|
+
* @param {string} [overrideColor]
|
|
1845
1923
|
*
|
|
1846
1924
|
* @return {string}
|
|
1847
1925
|
*/
|
|
1848
|
-
function getFillColor(element, defaultColor) {
|
|
1926
|
+
function getFillColor(element, defaultColor, overrideColor) {
|
|
1849
1927
|
var di = getDi(element);
|
|
1850
1928
|
|
|
1851
|
-
return di.get('color:background-color') || di.get('bioc:fill') || defaultColor ||
|
|
1929
|
+
return overrideColor || di.get('color:background-color') || di.get('bioc:fill') || defaultColor || white;
|
|
1852
1930
|
}
|
|
1853
1931
|
|
|
1854
1932
|
/**
|
|
1855
1933
|
* @param {Element} element
|
|
1856
1934
|
* @param {string} [defaultColor]
|
|
1935
|
+
* @param {string} [overrideColor]
|
|
1857
1936
|
*
|
|
1858
1937
|
* @return {string}
|
|
1859
1938
|
*/
|
|
1860
|
-
function getStrokeColor(element, defaultColor) {
|
|
1939
|
+
function getStrokeColor(element, defaultColor, overrideColor) {
|
|
1861
1940
|
var di = getDi(element);
|
|
1862
1941
|
|
|
1863
|
-
return di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black;
|
|
1942
|
+
return overrideColor || di.get('color:border-color') || di.get('bioc:stroke') || defaultColor || black;
|
|
1864
1943
|
}
|
|
1865
1944
|
|
|
1866
1945
|
/**
|
|
1867
1946
|
* @param {Element} element
|
|
1868
1947
|
* @param {string} [defaultColor]
|
|
1869
1948
|
* @param {string} [defaultStrokeColor]
|
|
1949
|
+
* @param {string} [overrideColor]
|
|
1870
1950
|
*
|
|
1871
1951
|
* @return {string}
|
|
1872
1952
|
*/
|
|
1873
|
-
function getLabelColor(element, defaultColor, defaultStrokeColor) {
|
|
1953
|
+
function getLabelColor(element, defaultColor, defaultStrokeColor, overrideColor) {
|
|
1874
1954
|
var di = getDi(element),
|
|
1875
1955
|
label = di.get('label');
|
|
1876
1956
|
|
|
1877
|
-
return label && label.get('color:color') || defaultColor ||
|
|
1957
|
+
return overrideColor || (label && label.get('color:color')) || defaultColor ||
|
|
1878
1958
|
getStrokeColor(element, defaultStrokeColor);
|
|
1879
1959
|
}
|
|
1880
1960
|
|
|
@@ -1978,6 +2058,45 @@
|
|
|
1978
2058
|
return componentsToPath(rectPath);
|
|
1979
2059
|
}
|
|
1980
2060
|
|
|
2061
|
+
/**
|
|
2062
|
+
* Get width and height from element or overrides.
|
|
2063
|
+
*
|
|
2064
|
+
* @param {Dimensions|Rect|ShapeLike} bounds
|
|
2065
|
+
* @param {Object} overrides
|
|
2066
|
+
*
|
|
2067
|
+
* @returns {Dimensions}
|
|
2068
|
+
*/
|
|
2069
|
+
function getBounds(bounds, overrides = {}) {
|
|
2070
|
+
return {
|
|
2071
|
+
width: getWidth(bounds, overrides),
|
|
2072
|
+
height: getHeight(bounds, overrides)
|
|
2073
|
+
};
|
|
2074
|
+
}
|
|
2075
|
+
|
|
2076
|
+
/**
|
|
2077
|
+
* Get width from element or overrides.
|
|
2078
|
+
*
|
|
2079
|
+
* @param {Dimensions|Rect|ShapeLike} bounds
|
|
2080
|
+
* @param {Object} overrides
|
|
2081
|
+
*
|
|
2082
|
+
* @returns {number}
|
|
2083
|
+
*/
|
|
2084
|
+
function getWidth(bounds, overrides = {}) {
|
|
2085
|
+
return has$1(overrides, 'width') ? overrides.width : bounds.width;
|
|
2086
|
+
}
|
|
2087
|
+
|
|
2088
|
+
/**
|
|
2089
|
+
* Get height from element or overrides.
|
|
2090
|
+
*
|
|
2091
|
+
* @param {Dimensions|Rect|ShapeLike} bounds
|
|
2092
|
+
* @param {Object} overrides
|
|
2093
|
+
*
|
|
2094
|
+
* @returns {number}
|
|
2095
|
+
*/
|
|
2096
|
+
function getHeight(bounds, overrides = {}) {
|
|
2097
|
+
return has$1(overrides, 'height') ? overrides.height : bounds.height;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
1981
2100
|
function _mergeNamespaces$1(n, m) {
|
|
1982
2101
|
m.forEach(function (e) {
|
|
1983
2102
|
e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
|
|
@@ -2741,15 +2860,16 @@
|
|
|
2741
2860
|
}
|
|
2742
2861
|
};
|
|
2743
2862
|
|
|
2744
|
-
var
|
|
2745
|
-
|
|
2746
|
-
var TASK_BORDER_RADIUS = 10;
|
|
2747
|
-
var INNER_OUTER_DIST = 3;
|
|
2863
|
+
var rendererIds = new Ids();
|
|
2748
2864
|
|
|
2749
|
-
var
|
|
2750
|
-
|
|
2865
|
+
var ELEMENT_LABEL_DISTANCE = 10,
|
|
2866
|
+
INNER_OUTER_DIST = 3,
|
|
2867
|
+
PARTICIPANT_STROKE_WIDTH = 1.5,
|
|
2868
|
+
TASK_BORDER_RADIUS = 10;
|
|
2751
2869
|
|
|
2752
|
-
var
|
|
2870
|
+
var DEFAULT_OPACITY = 0.95,
|
|
2871
|
+
FULL_OPACITY = 1,
|
|
2872
|
+
LOW_OPACITY = 0.25;
|
|
2753
2873
|
|
|
2754
2874
|
/**
|
|
2755
2875
|
* @typedef { Partial<{
|
|
@@ -2757,6 +2877,13 @@
|
|
|
2757
2877
|
* defaultStrokeColor: string,
|
|
2758
2878
|
* defaultLabelColor: string
|
|
2759
2879
|
* }> } BpmnRendererConfig
|
|
2880
|
+
*
|
|
2881
|
+
* @typedef { Partial<{
|
|
2882
|
+
* fill: string,
|
|
2883
|
+
* stroke: string,
|
|
2884
|
+
* width: string,
|
|
2885
|
+
* height: string
|
|
2886
|
+
* }> } Attrs
|
|
2760
2887
|
*/
|
|
2761
2888
|
|
|
2762
2889
|
/**
|
|
@@ -2784,7 +2911,7 @@
|
|
|
2784
2911
|
defaultStrokeColor = config && config.defaultStrokeColor,
|
|
2785
2912
|
defaultLabelColor = config && config.defaultLabelColor;
|
|
2786
2913
|
|
|
2787
|
-
var rendererId =
|
|
2914
|
+
var rendererId = rendererIds.next();
|
|
2788
2915
|
|
|
2789
2916
|
var markers = {};
|
|
2790
2917
|
|
|
@@ -2880,7 +3007,7 @@
|
|
|
2880
3007
|
cy: 6,
|
|
2881
3008
|
r: 3.5,
|
|
2882
3009
|
...shapeStyle({
|
|
2883
|
-
fill
|
|
3010
|
+
fill,
|
|
2884
3011
|
stroke: stroke,
|
|
2885
3012
|
strokeWidth: 1,
|
|
2886
3013
|
|
|
@@ -2900,7 +3027,7 @@
|
|
|
2900
3027
|
var messageflowEnd = create$1('path', {
|
|
2901
3028
|
d: 'm 1 5 l 0 -3 l 7 3 l -7 3 z',
|
|
2902
3029
|
...shapeStyle({
|
|
2903
|
-
fill
|
|
3030
|
+
fill,
|
|
2904
3031
|
stroke: stroke,
|
|
2905
3032
|
strokeWidth: 1,
|
|
2906
3033
|
|
|
@@ -2921,7 +3048,7 @@
|
|
|
2921
3048
|
d: 'M 11 5 L 1 10 L 11 15',
|
|
2922
3049
|
...lineStyle({
|
|
2923
3050
|
fill: 'none',
|
|
2924
|
-
stroke
|
|
3051
|
+
stroke,
|
|
2925
3052
|
strokeWidth: 1.5,
|
|
2926
3053
|
|
|
2927
3054
|
// fix for safari / chrome / firefox bug not correctly
|
|
@@ -2942,7 +3069,7 @@
|
|
|
2942
3069
|
d: 'M 1 5 L 11 10 L 1 15',
|
|
2943
3070
|
...lineStyle({
|
|
2944
3071
|
fill: 'none',
|
|
2945
|
-
stroke
|
|
3072
|
+
stroke,
|
|
2946
3073
|
strokeWidth: 1.5,
|
|
2947
3074
|
|
|
2948
3075
|
// fix for safari / chrome / firefox bug not correctly
|
|
@@ -2962,7 +3089,7 @@
|
|
|
2962
3089
|
var conditionalFlowMarker = create$1('path', {
|
|
2963
3090
|
d: 'M 0 10 L 8 6 L 16 10 L 8 14 Z',
|
|
2964
3091
|
...shapeStyle({
|
|
2965
|
-
fill
|
|
3092
|
+
fill,
|
|
2966
3093
|
stroke: stroke
|
|
2967
3094
|
})
|
|
2968
3095
|
});
|
|
@@ -2990,7 +3117,7 @@
|
|
|
2990
3117
|
}
|
|
2991
3118
|
}
|
|
2992
3119
|
|
|
2993
|
-
function drawCircle(parentGfx, width, height, offset, attrs) {
|
|
3120
|
+
function drawCircle(parentGfx, width, height, offset, attrs = {}) {
|
|
2994
3121
|
|
|
2995
3122
|
if (isObject(offset)) {
|
|
2996
3123
|
attrs = offset;
|
|
@@ -3001,10 +3128,6 @@
|
|
|
3001
3128
|
|
|
3002
3129
|
attrs = shapeStyle(attrs);
|
|
3003
3130
|
|
|
3004
|
-
if (attrs.fill === 'none') {
|
|
3005
|
-
delete attrs.fillOpacity;
|
|
3006
|
-
}
|
|
3007
|
-
|
|
3008
3131
|
var cx = width / 2,
|
|
3009
3132
|
cy = height / 2;
|
|
3010
3133
|
|
|
@@ -3104,7 +3227,6 @@
|
|
|
3104
3227
|
}
|
|
3105
3228
|
|
|
3106
3229
|
function drawPath(parentGfx, d, attrs) {
|
|
3107
|
-
|
|
3108
3230
|
attrs = lineStyle(attrs);
|
|
3109
3231
|
|
|
3110
3232
|
var path = create$1('path', {
|
|
@@ -3126,171 +3248,13 @@
|
|
|
3126
3248
|
}
|
|
3127
3249
|
|
|
3128
3250
|
function as(type) {
|
|
3129
|
-
return function(parentGfx, element,
|
|
3130
|
-
return renderer(type)(parentGfx, element,
|
|
3131
|
-
};
|
|
3132
|
-
}
|
|
3133
|
-
|
|
3134
|
-
function renderEventContent(element, parentGfx) {
|
|
3135
|
-
|
|
3136
|
-
var event = getBusinessObject(element);
|
|
3137
|
-
var isThrowing = isThrowEvent(event);
|
|
3138
|
-
|
|
3139
|
-
if (event.eventDefinitions && event.eventDefinitions.length > 1) {
|
|
3140
|
-
if (event.parallelMultiple) {
|
|
3141
|
-
return renderer('bpmn:ParallelMultipleEventDefinition')(parentGfx, element, isThrowing);
|
|
3142
|
-
}
|
|
3143
|
-
else {
|
|
3144
|
-
return renderer('bpmn:MultipleEventDefinition')(parentGfx, element, isThrowing);
|
|
3145
|
-
}
|
|
3146
|
-
}
|
|
3147
|
-
|
|
3148
|
-
if (isTypedEvent(event, 'bpmn:MessageEventDefinition')) {
|
|
3149
|
-
return renderer('bpmn:MessageEventDefinition')(parentGfx, element, isThrowing);
|
|
3150
|
-
}
|
|
3151
|
-
|
|
3152
|
-
if (isTypedEvent(event, 'bpmn:TimerEventDefinition')) {
|
|
3153
|
-
return renderer('bpmn:TimerEventDefinition')(parentGfx, element, isThrowing);
|
|
3154
|
-
}
|
|
3155
|
-
|
|
3156
|
-
if (isTypedEvent(event, 'bpmn:ConditionalEventDefinition')) {
|
|
3157
|
-
return renderer('bpmn:ConditionalEventDefinition')(parentGfx, element);
|
|
3158
|
-
}
|
|
3159
|
-
|
|
3160
|
-
if (isTypedEvent(event, 'bpmn:SignalEventDefinition')) {
|
|
3161
|
-
return renderer('bpmn:SignalEventDefinition')(parentGfx, element, isThrowing);
|
|
3162
|
-
}
|
|
3163
|
-
|
|
3164
|
-
if (isTypedEvent(event, 'bpmn:EscalationEventDefinition')) {
|
|
3165
|
-
return renderer('bpmn:EscalationEventDefinition')(parentGfx, element, isThrowing);
|
|
3166
|
-
}
|
|
3167
|
-
|
|
3168
|
-
if (isTypedEvent(event, 'bpmn:LinkEventDefinition')) {
|
|
3169
|
-
return renderer('bpmn:LinkEventDefinition')(parentGfx, element, isThrowing);
|
|
3170
|
-
}
|
|
3171
|
-
|
|
3172
|
-
if (isTypedEvent(event, 'bpmn:ErrorEventDefinition')) {
|
|
3173
|
-
return renderer('bpmn:ErrorEventDefinition')(parentGfx, element, isThrowing);
|
|
3174
|
-
}
|
|
3175
|
-
|
|
3176
|
-
if (isTypedEvent(event, 'bpmn:CancelEventDefinition')) {
|
|
3177
|
-
return renderer('bpmn:CancelEventDefinition')(parentGfx, element, isThrowing);
|
|
3178
|
-
}
|
|
3179
|
-
|
|
3180
|
-
if (isTypedEvent(event, 'bpmn:CompensateEventDefinition')) {
|
|
3181
|
-
return renderer('bpmn:CompensateEventDefinition')(parentGfx, element, isThrowing);
|
|
3182
|
-
}
|
|
3183
|
-
|
|
3184
|
-
if (isTypedEvent(event, 'bpmn:TerminateEventDefinition')) {
|
|
3185
|
-
return renderer('bpmn:TerminateEventDefinition')(parentGfx, element, isThrowing);
|
|
3186
|
-
}
|
|
3187
|
-
|
|
3188
|
-
return null;
|
|
3189
|
-
}
|
|
3190
|
-
|
|
3191
|
-
function renderLabel(parentGfx, label, options) {
|
|
3192
|
-
|
|
3193
|
-
options = assign$1({
|
|
3194
|
-
size: {
|
|
3195
|
-
width: 100
|
|
3196
|
-
}
|
|
3197
|
-
}, options);
|
|
3198
|
-
|
|
3199
|
-
var text = textRenderer.createText(label || '', options);
|
|
3200
|
-
|
|
3201
|
-
classes$1(text).add('djs-label');
|
|
3202
|
-
|
|
3203
|
-
append(parentGfx, text);
|
|
3204
|
-
|
|
3205
|
-
return text;
|
|
3206
|
-
}
|
|
3207
|
-
|
|
3208
|
-
function renderEmbeddedLabel(parentGfx, element, align) {
|
|
3209
|
-
var semantic = getBusinessObject(element);
|
|
3210
|
-
|
|
3211
|
-
return renderLabel(parentGfx, semantic.name, {
|
|
3212
|
-
box: element,
|
|
3213
|
-
align: align,
|
|
3214
|
-
padding: 7,
|
|
3215
|
-
style: {
|
|
3216
|
-
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
|
|
3217
|
-
}
|
|
3218
|
-
});
|
|
3219
|
-
}
|
|
3220
|
-
|
|
3221
|
-
function renderExternalLabel(parentGfx, element) {
|
|
3222
|
-
|
|
3223
|
-
var box = {
|
|
3224
|
-
width: 90,
|
|
3225
|
-
height: 30,
|
|
3226
|
-
x: element.width / 2 + element.x,
|
|
3227
|
-
y: element.height / 2 + element.y
|
|
3251
|
+
return function(parentGfx, element, attrs) {
|
|
3252
|
+
return renderer(type)(parentGfx, element, attrs);
|
|
3228
3253
|
};
|
|
3229
|
-
|
|
3230
|
-
return renderLabel(parentGfx, getLabel(element), {
|
|
3231
|
-
box: box,
|
|
3232
|
-
fitBox: true,
|
|
3233
|
-
style: assign$1(
|
|
3234
|
-
{},
|
|
3235
|
-
textRenderer.getExternalStyle(),
|
|
3236
|
-
{
|
|
3237
|
-
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
|
|
3238
|
-
}
|
|
3239
|
-
)
|
|
3240
|
-
});
|
|
3241
|
-
}
|
|
3242
|
-
|
|
3243
|
-
function renderLaneLabel(parentGfx, text, element) {
|
|
3244
|
-
var textBox = renderLabel(parentGfx, text, {
|
|
3245
|
-
box: {
|
|
3246
|
-
height: 30,
|
|
3247
|
-
width: element.height
|
|
3248
|
-
},
|
|
3249
|
-
align: 'center-middle',
|
|
3250
|
-
style: {
|
|
3251
|
-
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
|
|
3252
|
-
}
|
|
3253
|
-
});
|
|
3254
|
-
|
|
3255
|
-
var top = -1 * element.height;
|
|
3256
|
-
|
|
3257
|
-
transform(textBox, 0, -top, 270);
|
|
3258
3254
|
}
|
|
3259
3255
|
|
|
3260
|
-
var
|
|
3261
|
-
'bpmn:
|
|
3262
|
-
|
|
3263
|
-
if (!('fillOpacity' in attrs)) {
|
|
3264
|
-
attrs.fillOpacity = DEFAULT_FILL_OPACITY;
|
|
3265
|
-
}
|
|
3266
|
-
|
|
3267
|
-
return drawCircle(parentGfx, element.width, element.height, attrs);
|
|
3268
|
-
},
|
|
3269
|
-
'bpmn:StartEvent': function(parentGfx, element, options) {
|
|
3270
|
-
var attrs = {
|
|
3271
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3272
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3273
|
-
};
|
|
3274
|
-
|
|
3275
|
-
var semantic = getBusinessObject(element);
|
|
3276
|
-
|
|
3277
|
-
if (!semantic.isInterrupting) {
|
|
3278
|
-
attrs = {
|
|
3279
|
-
strokeDasharray: '6',
|
|
3280
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3281
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3282
|
-
};
|
|
3283
|
-
}
|
|
3284
|
-
|
|
3285
|
-
var circle = renderer('bpmn:Event')(parentGfx, element, attrs);
|
|
3286
|
-
|
|
3287
|
-
if (!options || options.renderIcon !== false) {
|
|
3288
|
-
renderEventContent(element, parentGfx);
|
|
3289
|
-
}
|
|
3290
|
-
|
|
3291
|
-
return circle;
|
|
3292
|
-
},
|
|
3293
|
-
'bpmn:MessageEventDefinition': function(parentGfx, element, isThrowing) {
|
|
3256
|
+
var eventIconRenderers = {
|
|
3257
|
+
'bpmn:MessageEventDefinition': function(parentGfx, element, attrs = {}, isThrowing) {
|
|
3294
3258
|
var pathData = pathMap.getScaledPath('EVENT_MESSAGE', {
|
|
3295
3259
|
xScaleFactor: 0.9,
|
|
3296
3260
|
yScaleFactor: 0.9,
|
|
@@ -3302,22 +3266,27 @@
|
|
|
3302
3266
|
}
|
|
3303
3267
|
});
|
|
3304
3268
|
|
|
3305
|
-
var fill = isThrowing
|
|
3306
|
-
|
|
3269
|
+
var fill = isThrowing
|
|
3270
|
+
? getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3271
|
+
: getFillColor(element, defaultFillColor, attrs.fill);
|
|
3272
|
+
|
|
3273
|
+
var stroke = isThrowing
|
|
3274
|
+
? getFillColor(element, defaultFillColor, attrs.fill)
|
|
3275
|
+
: getStrokeColor(element, defaultStrokeColor, attrs.stroke);
|
|
3307
3276
|
|
|
3308
3277
|
var messagePath = drawPath(parentGfx, pathData, {
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3278
|
+
fill,
|
|
3279
|
+
stroke,
|
|
3280
|
+
strokeWidth: 1
|
|
3312
3281
|
});
|
|
3313
3282
|
|
|
3314
3283
|
return messagePath;
|
|
3315
3284
|
},
|
|
3316
|
-
'bpmn:TimerEventDefinition': function(parentGfx, element) {
|
|
3285
|
+
'bpmn:TimerEventDefinition': function(parentGfx, element, attrs = {}) {
|
|
3317
3286
|
var circle = drawCircle(parentGfx, element.width, element.height, 0.2 * element.height, {
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3287
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3288
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3289
|
+
strokeWidth: 2
|
|
3321
3290
|
});
|
|
3322
3291
|
|
|
3323
3292
|
var pathData = pathMap.getScaledPath('EVENT_TIMER_WH', {
|
|
@@ -3332,12 +3301,11 @@
|
|
|
3332
3301
|
});
|
|
3333
3302
|
|
|
3334
3303
|
drawPath(parentGfx, pathData, {
|
|
3335
|
-
|
|
3336
|
-
|
|
3304
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3305
|
+
strokeWidth: 2
|
|
3337
3306
|
});
|
|
3338
3307
|
|
|
3339
|
-
for (var i = 0;i < 12; i++) {
|
|
3340
|
-
|
|
3308
|
+
for (var i = 0; i < 12; i++) {
|
|
3341
3309
|
var linePathData = pathMap.getScaledPath('EVENT_TIMER_LINE', {
|
|
3342
3310
|
xScaleFactor: 0.75,
|
|
3343
3311
|
yScaleFactor: 0.75,
|
|
@@ -3349,19 +3317,19 @@
|
|
|
3349
3317
|
}
|
|
3350
3318
|
});
|
|
3351
3319
|
|
|
3352
|
-
var width = element.width / 2
|
|
3353
|
-
|
|
3320
|
+
var width = element.width / 2,
|
|
3321
|
+
height = element.height / 2;
|
|
3354
3322
|
|
|
3355
3323
|
drawPath(parentGfx, linePathData, {
|
|
3356
3324
|
strokeWidth: 1,
|
|
3357
|
-
|
|
3358
|
-
|
|
3325
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3326
|
+
transform: 'rotate(' + (i * 30) + ',' + height + ',' + width + ')'
|
|
3359
3327
|
});
|
|
3360
3328
|
}
|
|
3361
3329
|
|
|
3362
3330
|
return circle;
|
|
3363
3331
|
},
|
|
3364
|
-
'bpmn:EscalationEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3332
|
+
'bpmn:EscalationEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3365
3333
|
var pathData = pathMap.getScaledPath('EVENT_ESCALATION', {
|
|
3366
3334
|
xScaleFactor: 1,
|
|
3367
3335
|
yScaleFactor: 1,
|
|
@@ -3373,15 +3341,17 @@
|
|
|
3373
3341
|
}
|
|
3374
3342
|
});
|
|
3375
3343
|
|
|
3376
|
-
var fill = isThrowing
|
|
3344
|
+
var fill = isThrowing
|
|
3345
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3346
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3377
3347
|
|
|
3378
3348
|
return drawPath(parentGfx, pathData, {
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3349
|
+
fill,
|
|
3350
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3351
|
+
strokeWidth: 1
|
|
3382
3352
|
});
|
|
3383
3353
|
},
|
|
3384
|
-
'bpmn:ConditionalEventDefinition': function(parentGfx, event) {
|
|
3354
|
+
'bpmn:ConditionalEventDefinition': function(parentGfx, event, attrs = {}) {
|
|
3385
3355
|
var pathData = pathMap.getScaledPath('EVENT_CONDITIONAL', {
|
|
3386
3356
|
xScaleFactor: 1,
|
|
3387
3357
|
yScaleFactor: 1,
|
|
@@ -3394,11 +3364,12 @@
|
|
|
3394
3364
|
});
|
|
3395
3365
|
|
|
3396
3366
|
return drawPath(parentGfx, pathData, {
|
|
3397
|
-
|
|
3398
|
-
stroke: getStrokeColor(event, defaultStrokeColor)
|
|
3367
|
+
fill: getFillColor(event, defaultFillColor, attrs.fill),
|
|
3368
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3369
|
+
strokeWidth: 1
|
|
3399
3370
|
});
|
|
3400
3371
|
},
|
|
3401
|
-
'bpmn:LinkEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3372
|
+
'bpmn:LinkEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3402
3373
|
var pathData = pathMap.getScaledPath('EVENT_LINK', {
|
|
3403
3374
|
xScaleFactor: 1,
|
|
3404
3375
|
yScaleFactor: 1,
|
|
@@ -3410,15 +3381,17 @@
|
|
|
3410
3381
|
}
|
|
3411
3382
|
});
|
|
3412
3383
|
|
|
3413
|
-
var fill = isThrowing
|
|
3384
|
+
var fill = isThrowing
|
|
3385
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3386
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3414
3387
|
|
|
3415
3388
|
return drawPath(parentGfx, pathData, {
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3389
|
+
fill,
|
|
3390
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3391
|
+
strokeWidth: 1
|
|
3419
3392
|
});
|
|
3420
3393
|
},
|
|
3421
|
-
'bpmn:ErrorEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3394
|
+
'bpmn:ErrorEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3422
3395
|
var pathData = pathMap.getScaledPath('EVENT_ERROR', {
|
|
3423
3396
|
xScaleFactor: 1.1,
|
|
3424
3397
|
yScaleFactor: 1.1,
|
|
@@ -3430,15 +3403,17 @@
|
|
|
3430
3403
|
}
|
|
3431
3404
|
});
|
|
3432
3405
|
|
|
3433
|
-
var fill = isThrowing
|
|
3406
|
+
var fill = isThrowing
|
|
3407
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3408
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3434
3409
|
|
|
3435
3410
|
return drawPath(parentGfx, pathData, {
|
|
3436
|
-
|
|
3437
|
-
|
|
3438
|
-
|
|
3411
|
+
fill,
|
|
3412
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3413
|
+
strokeWidth: 1
|
|
3439
3414
|
});
|
|
3440
3415
|
},
|
|
3441
|
-
'bpmn:CancelEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3416
|
+
'bpmn:CancelEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3442
3417
|
var pathData = pathMap.getScaledPath('EVENT_CANCEL_45', {
|
|
3443
3418
|
xScaleFactor: 1.0,
|
|
3444
3419
|
yScaleFactor: 1.0,
|
|
@@ -3450,19 +3425,19 @@
|
|
|
3450
3425
|
}
|
|
3451
3426
|
});
|
|
3452
3427
|
|
|
3453
|
-
var fill = isThrowing ? getStrokeColor(event, defaultStrokeColor) : 'none';
|
|
3428
|
+
var fill = isThrowing ? getStrokeColor(event, defaultStrokeColor, attrs.stroke) : 'none';
|
|
3454
3429
|
|
|
3455
3430
|
var path = drawPath(parentGfx, pathData, {
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3431
|
+
fill,
|
|
3432
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3433
|
+
strokeWidth: 1
|
|
3459
3434
|
});
|
|
3460
3435
|
|
|
3461
3436
|
rotate(path, 45);
|
|
3462
3437
|
|
|
3463
3438
|
return path;
|
|
3464
3439
|
},
|
|
3465
|
-
'bpmn:CompensateEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3440
|
+
'bpmn:CompensateEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3466
3441
|
var pathData = pathMap.getScaledPath('EVENT_COMPENSATION', {
|
|
3467
3442
|
xScaleFactor: 1,
|
|
3468
3443
|
yScaleFactor: 1,
|
|
@@ -3474,15 +3449,17 @@
|
|
|
3474
3449
|
}
|
|
3475
3450
|
});
|
|
3476
3451
|
|
|
3477
|
-
var fill = isThrowing
|
|
3452
|
+
var fill = isThrowing
|
|
3453
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3454
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3478
3455
|
|
|
3479
3456
|
return drawPath(parentGfx, pathData, {
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3457
|
+
fill,
|
|
3458
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3459
|
+
strokeWidth: 1
|
|
3483
3460
|
});
|
|
3484
3461
|
},
|
|
3485
|
-
'bpmn:SignalEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3462
|
+
'bpmn:SignalEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3486
3463
|
var pathData = pathMap.getScaledPath('EVENT_SIGNAL', {
|
|
3487
3464
|
xScaleFactor: 0.9,
|
|
3488
3465
|
yScaleFactor: 0.9,
|
|
@@ -3494,15 +3471,17 @@
|
|
|
3494
3471
|
}
|
|
3495
3472
|
});
|
|
3496
3473
|
|
|
3497
|
-
var fill = isThrowing
|
|
3474
|
+
var fill = isThrowing
|
|
3475
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3476
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3498
3477
|
|
|
3499
3478
|
return drawPath(parentGfx, pathData, {
|
|
3500
3479
|
strokeWidth: 1,
|
|
3501
|
-
fill
|
|
3502
|
-
stroke: getStrokeColor(event, defaultStrokeColor)
|
|
3480
|
+
fill,
|
|
3481
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3503
3482
|
});
|
|
3504
3483
|
},
|
|
3505
|
-
'bpmn:MultipleEventDefinition': function(parentGfx, event, isThrowing) {
|
|
3484
|
+
'bpmn:MultipleEventDefinition': function(parentGfx, event, attrs = {}, isThrowing) {
|
|
3506
3485
|
var pathData = pathMap.getScaledPath('EVENT_MULTIPLE', {
|
|
3507
3486
|
xScaleFactor: 1.1,
|
|
3508
3487
|
yScaleFactor: 1.1,
|
|
@@ -3514,14 +3493,16 @@
|
|
|
3514
3493
|
}
|
|
3515
3494
|
});
|
|
3516
3495
|
|
|
3517
|
-
var fill = isThrowing
|
|
3496
|
+
var fill = isThrowing
|
|
3497
|
+
? getStrokeColor(event, defaultStrokeColor, attrs.stroke)
|
|
3498
|
+
: getFillColor(event, defaultFillColor, attrs.fill);
|
|
3518
3499
|
|
|
3519
3500
|
return drawPath(parentGfx, pathData, {
|
|
3520
|
-
|
|
3521
|
-
|
|
3501
|
+
fill,
|
|
3502
|
+
strokeWidth: 1
|
|
3522
3503
|
});
|
|
3523
3504
|
},
|
|
3524
|
-
'bpmn:ParallelMultipleEventDefinition': function(parentGfx, event) {
|
|
3505
|
+
'bpmn:ParallelMultipleEventDefinition': function(parentGfx, event, attrs = {}) {
|
|
3525
3506
|
var pathData = pathMap.getScaledPath('EVENT_PARALLEL_MULTIPLE', {
|
|
3526
3507
|
xScaleFactor: 1.2,
|
|
3527
3508
|
yScaleFactor: 1.2,
|
|
@@ -3534,501 +3515,791 @@
|
|
|
3534
3515
|
});
|
|
3535
3516
|
|
|
3536
3517
|
return drawPath(parentGfx, pathData, {
|
|
3537
|
-
|
|
3538
|
-
|
|
3539
|
-
|
|
3518
|
+
fill: getFillColor(event, defaultFillColor, attrs.fill),
|
|
3519
|
+
stroke: getStrokeColor(event, defaultStrokeColor, attrs.stroke),
|
|
3520
|
+
strokeWidth: 1
|
|
3540
3521
|
});
|
|
3541
3522
|
},
|
|
3542
|
-
'bpmn:
|
|
3543
|
-
var circle = renderer('bpmn:Event')(parentGfx, element, {
|
|
3544
|
-
strokeWidth: 4,
|
|
3545
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3546
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3547
|
-
});
|
|
3548
|
-
|
|
3549
|
-
if (!options || options.renderIcon !== false) {
|
|
3550
|
-
renderEventContent(element, parentGfx);
|
|
3551
|
-
}
|
|
3552
|
-
|
|
3553
|
-
return circle;
|
|
3554
|
-
},
|
|
3555
|
-
'bpmn:TerminateEventDefinition': function(parentGfx, element) {
|
|
3523
|
+
'bpmn:TerminateEventDefinition': function(parentGfx, element, attrs = {}) {
|
|
3556
3524
|
var circle = drawCircle(parentGfx, element.width, element.height, 8, {
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3525
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3526
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3527
|
+
strokeWidth: 4
|
|
3560
3528
|
});
|
|
3561
3529
|
|
|
3562
3530
|
return circle;
|
|
3563
|
-
}
|
|
3564
|
-
|
|
3565
|
-
var outer = renderer('bpmn:Event')(parentGfx, element, {
|
|
3566
|
-
strokeWidth: 1.5,
|
|
3567
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3568
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3569
|
-
});
|
|
3531
|
+
}
|
|
3532
|
+
};
|
|
3570
3533
|
|
|
3571
|
-
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
fill: getFillColor(element, 'none'),
|
|
3575
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3576
|
-
});
|
|
3534
|
+
function renderEventIcon(element, parentGfx, attrs = {}) {
|
|
3535
|
+
var semantic = getBusinessObject(element),
|
|
3536
|
+
isThrowing = isThrowEvent(semantic);
|
|
3577
3537
|
|
|
3578
|
-
|
|
3579
|
-
|
|
3538
|
+
if (semantic.get('eventDefinitions') && semantic.get('eventDefinitions').length > 1) {
|
|
3539
|
+
if (semantic.get('parallelMultiple')) {
|
|
3540
|
+
return eventIconRenderers[ 'bpmn:ParallelMultipleEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3541
|
+
}
|
|
3542
|
+
else {
|
|
3543
|
+
return eventIconRenderers[ 'bpmn:MultipleEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3580
3544
|
}
|
|
3545
|
+
}
|
|
3581
3546
|
|
|
3582
|
-
|
|
3583
|
-
|
|
3584
|
-
|
|
3585
|
-
'bpmn:IntermediateThrowEvent': as('bpmn:IntermediateEvent'),
|
|
3547
|
+
if (isTypedEvent(semantic, 'bpmn:MessageEventDefinition')) {
|
|
3548
|
+
return eventIconRenderers[ 'bpmn:MessageEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3549
|
+
}
|
|
3586
3550
|
|
|
3587
|
-
'bpmn:
|
|
3551
|
+
if (isTypedEvent(semantic, 'bpmn:TimerEventDefinition')) {
|
|
3552
|
+
return eventIconRenderers[ 'bpmn:TimerEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3553
|
+
}
|
|
3588
3554
|
|
|
3589
|
-
|
|
3555
|
+
if (isTypedEvent(semantic, 'bpmn:ConditionalEventDefinition')) {
|
|
3556
|
+
return eventIconRenderers[ 'bpmn:ConditionalEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3557
|
+
}
|
|
3590
3558
|
|
|
3591
|
-
|
|
3592
|
-
|
|
3593
|
-
|
|
3559
|
+
if (isTypedEvent(semantic, 'bpmn:SignalEventDefinition')) {
|
|
3560
|
+
return eventIconRenderers[ 'bpmn:SignalEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3561
|
+
}
|
|
3594
3562
|
|
|
3595
|
-
|
|
3596
|
-
|
|
3563
|
+
if (isTypedEvent(semantic, 'bpmn:EscalationEventDefinition')) {
|
|
3564
|
+
return eventIconRenderers[ 'bpmn:EscalationEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3565
|
+
}
|
|
3597
3566
|
|
|
3598
|
-
'bpmn:
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3602
|
-
};
|
|
3567
|
+
if (isTypedEvent(semantic, 'bpmn:LinkEventDefinition')) {
|
|
3568
|
+
return eventIconRenderers[ 'bpmn:LinkEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3569
|
+
}
|
|
3603
3570
|
|
|
3604
|
-
|
|
3571
|
+
if (isTypedEvent(semantic, 'bpmn:ErrorEventDefinition')) {
|
|
3572
|
+
return eventIconRenderers[ 'bpmn:ErrorEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3573
|
+
}
|
|
3605
3574
|
|
|
3606
|
-
|
|
3607
|
-
|
|
3575
|
+
if (isTypedEvent(semantic, 'bpmn:CancelEventDefinition')) {
|
|
3576
|
+
return eventIconRenderers[ 'bpmn:CancelEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3577
|
+
}
|
|
3608
3578
|
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
var task = renderer('bpmn:Task')(parentGfx, element);
|
|
3579
|
+
if (isTypedEvent(semantic, 'bpmn:CompensateEventDefinition')) {
|
|
3580
|
+
return eventIconRenderers[ 'bpmn:CompensateEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3581
|
+
}
|
|
3613
3582
|
|
|
3614
|
-
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
3583
|
+
if (isTypedEvent(semantic, 'bpmn:TerminateEventDefinition')) {
|
|
3584
|
+
return eventIconRenderers[ 'bpmn:TerminateEventDefinition' ](parentGfx, element, attrs, isThrowing);
|
|
3585
|
+
}
|
|
3586
|
+
|
|
3587
|
+
return null;
|
|
3588
|
+
}
|
|
3589
|
+
|
|
3590
|
+
var taskMarkerRenderers = {
|
|
3591
|
+
'ParticipantMultiplicityMarker': function(parentGfx, element, attrs = {}) {
|
|
3592
|
+
var width = getWidth(element, attrs),
|
|
3593
|
+
height = getHeight(element, attrs);
|
|
3594
|
+
|
|
3595
|
+
var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {
|
|
3596
|
+
xScaleFactor: 1,
|
|
3597
|
+
yScaleFactor: 1,
|
|
3598
|
+
containerWidth: width,
|
|
3599
|
+
containerHeight: height,
|
|
3600
|
+
position: {
|
|
3601
|
+
mx: ((width / 2 - 6) / width),
|
|
3602
|
+
my: (height - 15) / height
|
|
3618
3603
|
}
|
|
3619
3604
|
});
|
|
3620
3605
|
|
|
3621
|
-
|
|
3606
|
+
drawMarker('participant-multiplicity', parentGfx, markerPath, {
|
|
3607
|
+
strokeWidth: 2,
|
|
3608
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3609
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3610
|
+
});
|
|
3611
|
+
},
|
|
3612
|
+
'SubProcessMarker': function(parentGfx, element, attrs = {}) {
|
|
3613
|
+
var markerRect = drawRect(parentGfx, 14, 14, 0, {
|
|
3622
3614
|
strokeWidth: 1,
|
|
3623
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3624
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3615
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3616
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3625
3617
|
});
|
|
3626
3618
|
|
|
3627
|
-
|
|
3628
|
-
|
|
3629
|
-
|
|
3630
|
-
|
|
3619
|
+
translate$1(markerRect, element.width / 2 - 7.5, element.height - 20);
|
|
3620
|
+
|
|
3621
|
+
var markerPath = pathMap.getScaledPath('MARKER_SUB_PROCESS', {
|
|
3622
|
+
xScaleFactor: 1.5,
|
|
3623
|
+
yScaleFactor: 1.5,
|
|
3624
|
+
containerWidth: element.width,
|
|
3625
|
+
containerHeight: element.height,
|
|
3626
|
+
position: {
|
|
3627
|
+
mx: (element.width / 2 - 7.5) / element.width,
|
|
3628
|
+
my: (element.height - 20) / element.height
|
|
3631
3629
|
}
|
|
3632
3630
|
});
|
|
3633
3631
|
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3632
|
+
drawMarker('sub-process', parentGfx, markerPath, {
|
|
3633
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3634
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3637
3635
|
});
|
|
3636
|
+
},
|
|
3637
|
+
'ParallelMarker': function(parentGfx, element, attrs) {
|
|
3638
|
+
var width = getWidth(element, attrs),
|
|
3639
|
+
height = getHeight(element, attrs);
|
|
3638
3640
|
|
|
3639
|
-
var
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3641
|
+
var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {
|
|
3642
|
+
xScaleFactor: 1,
|
|
3643
|
+
yScaleFactor: 1,
|
|
3644
|
+
containerWidth: width,
|
|
3645
|
+
containerHeight: height,
|
|
3646
|
+
position: {
|
|
3647
|
+
mx: ((width / 2 + attrs.parallel) / width),
|
|
3648
|
+
my: (height - 20) / height
|
|
3643
3649
|
}
|
|
3644
3650
|
});
|
|
3645
3651
|
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3652
|
+
drawMarker('parallel', parentGfx, markerPath, {
|
|
3653
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3654
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3650
3655
|
});
|
|
3651
|
-
|
|
3652
|
-
return task;
|
|
3653
3656
|
},
|
|
3654
|
-
'
|
|
3655
|
-
var
|
|
3656
|
-
|
|
3657
|
-
|
|
3658
|
-
|
|
3659
|
-
|
|
3660
|
-
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
y: y
|
|
3657
|
+
'SequentialMarker': function(parentGfx, element, attrs) {
|
|
3658
|
+
var markerPath = pathMap.getScaledPath('MARKER_SEQUENTIAL', {
|
|
3659
|
+
xScaleFactor: 1,
|
|
3660
|
+
yScaleFactor: 1,
|
|
3661
|
+
containerWidth: element.width,
|
|
3662
|
+
containerHeight: element.height,
|
|
3663
|
+
position: {
|
|
3664
|
+
mx: ((element.width / 2 + attrs.seq) / element.width),
|
|
3665
|
+
my: (element.height - 19) / element.height
|
|
3664
3666
|
}
|
|
3665
3667
|
});
|
|
3666
3668
|
|
|
3667
|
-
|
|
3668
|
-
|
|
3669
|
-
|
|
3670
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3669
|
+
drawMarker('sequential', parentGfx, markerPath, {
|
|
3670
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3671
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3671
3672
|
});
|
|
3672
|
-
|
|
3673
|
-
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3673
|
+
},
|
|
3674
|
+
'CompensationMarker': function(parentGfx, element, attrs) {
|
|
3675
|
+
var markerMath = pathMap.getScaledPath('MARKER_COMPENSATION', {
|
|
3676
|
+
xScaleFactor: 1,
|
|
3677
|
+
yScaleFactor: 1,
|
|
3678
|
+
containerWidth: element.width,
|
|
3679
|
+
containerHeight: element.height,
|
|
3680
|
+
position: {
|
|
3681
|
+
mx: ((element.width / 2 + attrs.compensation) / element.width),
|
|
3682
|
+
my: (element.height - 13) / element.height
|
|
3677
3683
|
}
|
|
3678
3684
|
});
|
|
3679
3685
|
|
|
3680
|
-
|
|
3681
|
-
strokeWidth:
|
|
3682
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3683
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3686
|
+
drawMarker('compensation', parentGfx, markerMath, {
|
|
3687
|
+
strokeWidth: 1,
|
|
3688
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3689
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3684
3690
|
});
|
|
3691
|
+
},
|
|
3692
|
+
'LoopMarker': function(parentGfx, element, attrs) {
|
|
3693
|
+
var width = getWidth(element, attrs),
|
|
3694
|
+
height = getHeight(element, attrs);
|
|
3685
3695
|
|
|
3686
|
-
var
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3696
|
+
var markerPath = pathMap.getScaledPath('MARKER_LOOP', {
|
|
3697
|
+
xScaleFactor: 1,
|
|
3698
|
+
yScaleFactor: 1,
|
|
3699
|
+
containerWidth: width,
|
|
3700
|
+
containerHeight: height,
|
|
3701
|
+
position: {
|
|
3702
|
+
mx: ((width / 2 + attrs.loop) / width),
|
|
3703
|
+
my: (height - 7) / height
|
|
3690
3704
|
}
|
|
3691
3705
|
});
|
|
3692
3706
|
|
|
3693
|
-
|
|
3694
|
-
strokeWidth:
|
|
3695
|
-
fill:
|
|
3696
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3707
|
+
drawMarker('loop', parentGfx, markerPath, {
|
|
3708
|
+
strokeWidth: 1.5,
|
|
3709
|
+
fill: 'none',
|
|
3710
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3711
|
+
strokeMiterlimit: 0.5
|
|
3697
3712
|
});
|
|
3698
|
-
|
|
3699
|
-
return task;
|
|
3700
3713
|
},
|
|
3701
|
-
'
|
|
3702
|
-
var
|
|
3714
|
+
'AdhocMarker': function(parentGfx, element, attrs) {
|
|
3715
|
+
var width = getWidth(element, attrs),
|
|
3716
|
+
height = getHeight(element, attrs);
|
|
3703
3717
|
|
|
3704
|
-
var
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3718
|
+
var markerPath = pathMap.getScaledPath('MARKER_ADHOC', {
|
|
3719
|
+
xScaleFactor: 1,
|
|
3720
|
+
yScaleFactor: 1,
|
|
3721
|
+
containerWidth: width,
|
|
3722
|
+
containerHeight: height,
|
|
3723
|
+
position: {
|
|
3724
|
+
mx: ((width / 2 + attrs.adhoc) / width),
|
|
3725
|
+
my: (height - 15) / height
|
|
3708
3726
|
}
|
|
3709
3727
|
});
|
|
3710
3728
|
|
|
3711
|
-
|
|
3712
|
-
strokeWidth:
|
|
3713
|
-
fill:
|
|
3714
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3729
|
+
drawMarker('adhoc', parentGfx, markerPath, {
|
|
3730
|
+
strokeWidth: 1,
|
|
3731
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3732
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3715
3733
|
});
|
|
3734
|
+
}
|
|
3735
|
+
};
|
|
3716
3736
|
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
var task = renderer('bpmn:Task')(parentGfx, element);
|
|
3737
|
+
function renderTaskMarker(type, parentGfx, element, attrs) {
|
|
3738
|
+
taskMarkerRenderers[ type ](parentGfx, element, attrs);
|
|
3739
|
+
}
|
|
3721
3740
|
|
|
3722
|
-
|
|
3741
|
+
function renderTaskMarkers(parentGfx, element, taskMarkers, attrs = {}) {
|
|
3742
|
+
attrs = {
|
|
3743
|
+
fill: attrs.fill,
|
|
3744
|
+
stroke: attrs.stroke,
|
|
3745
|
+
width: getWidth(element, attrs),
|
|
3746
|
+
height: getHeight(element, attrs)
|
|
3747
|
+
};
|
|
3748
|
+
|
|
3749
|
+
var semantic = getBusinessObject(element);
|
|
3750
|
+
|
|
3751
|
+
var subprocess = taskMarkers && taskMarkers.includes('SubProcessMarker');
|
|
3752
|
+
|
|
3753
|
+
if (subprocess) {
|
|
3754
|
+
attrs = {
|
|
3755
|
+
...attrs,
|
|
3756
|
+
seq: -21,
|
|
3757
|
+
parallel: -22,
|
|
3758
|
+
compensation: -42,
|
|
3759
|
+
loop: -18,
|
|
3760
|
+
adhoc: 10
|
|
3761
|
+
};
|
|
3762
|
+
} else {
|
|
3763
|
+
attrs = {
|
|
3764
|
+
...attrs,
|
|
3765
|
+
seq: -5,
|
|
3766
|
+
parallel: -6,
|
|
3767
|
+
compensation: -27,
|
|
3768
|
+
loop: 0,
|
|
3769
|
+
adhoc: 10
|
|
3770
|
+
};
|
|
3771
|
+
}
|
|
3772
|
+
|
|
3773
|
+
forEach$1(taskMarkers, function(marker) {
|
|
3774
|
+
renderTaskMarker(marker, parentGfx, element, attrs);
|
|
3775
|
+
});
|
|
3776
|
+
|
|
3777
|
+
if (semantic.get('isForCompensation')) {
|
|
3778
|
+
renderTaskMarker('CompensationMarker', parentGfx, element, attrs);
|
|
3779
|
+
}
|
|
3780
|
+
|
|
3781
|
+
if (is$1(semantic, 'bpmn:AdHocSubProcess')) {
|
|
3782
|
+
renderTaskMarker('AdhocMarker', parentGfx, element, attrs);
|
|
3783
|
+
}
|
|
3784
|
+
|
|
3785
|
+
var loopCharacteristics = semantic.get('loopCharacteristics'),
|
|
3786
|
+
isSequential = loopCharacteristics && loopCharacteristics.get('isSequential');
|
|
3787
|
+
|
|
3788
|
+
if (loopCharacteristics) {
|
|
3789
|
+
|
|
3790
|
+
if (isSequential === undefined) {
|
|
3791
|
+
renderTaskMarker('LoopMarker', parentGfx, element, attrs);
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
if (isSequential === false) {
|
|
3795
|
+
renderTaskMarker('ParallelMarker', parentGfx, element, attrs);
|
|
3796
|
+
}
|
|
3797
|
+
|
|
3798
|
+
if (isSequential === true) {
|
|
3799
|
+
renderTaskMarker('SequentialMarker', parentGfx, element, attrs);
|
|
3800
|
+
}
|
|
3801
|
+
}
|
|
3802
|
+
}
|
|
3803
|
+
|
|
3804
|
+
function renderLabel(parentGfx, label, attrs = {}) {
|
|
3805
|
+
attrs = assign$1({
|
|
3806
|
+
size: {
|
|
3807
|
+
width: 100
|
|
3808
|
+
}
|
|
3809
|
+
}, attrs);
|
|
3810
|
+
|
|
3811
|
+
var text = textRenderer.createText(label || '', attrs);
|
|
3812
|
+
|
|
3813
|
+
classes$1(text).add('djs-label');
|
|
3814
|
+
|
|
3815
|
+
append(parentGfx, text);
|
|
3816
|
+
|
|
3817
|
+
return text;
|
|
3818
|
+
}
|
|
3819
|
+
|
|
3820
|
+
function renderEmbeddedLabel(parentGfx, element, align, attrs = {}) {
|
|
3821
|
+
var semantic = getBusinessObject(element);
|
|
3822
|
+
|
|
3823
|
+
var box = getBounds({
|
|
3824
|
+
x: element.x,
|
|
3825
|
+
y: element.y,
|
|
3826
|
+
width: element.width,
|
|
3827
|
+
height: element.height
|
|
3828
|
+
}, attrs);
|
|
3829
|
+
|
|
3830
|
+
return renderLabel(parentGfx, semantic.name, {
|
|
3831
|
+
align,
|
|
3832
|
+
box,
|
|
3833
|
+
padding: 7,
|
|
3834
|
+
style: {
|
|
3835
|
+
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor, attrs.stroke)
|
|
3836
|
+
}
|
|
3837
|
+
});
|
|
3838
|
+
}
|
|
3839
|
+
|
|
3840
|
+
function renderExternalLabel(parentGfx, element, attrs = {}) {
|
|
3841
|
+
var box = {
|
|
3842
|
+
width: 90,
|
|
3843
|
+
height: 30,
|
|
3844
|
+
x: element.width / 2 + element.x,
|
|
3845
|
+
y: element.height / 2 + element.y
|
|
3846
|
+
};
|
|
3847
|
+
|
|
3848
|
+
return renderLabel(parentGfx, getLabel(element), {
|
|
3849
|
+
box: box,
|
|
3850
|
+
fitBox: true,
|
|
3851
|
+
style: assign$1(
|
|
3852
|
+
{},
|
|
3853
|
+
textRenderer.getExternalStyle(),
|
|
3854
|
+
{
|
|
3855
|
+
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor, attrs.stroke)
|
|
3856
|
+
}
|
|
3857
|
+
)
|
|
3858
|
+
});
|
|
3859
|
+
}
|
|
3860
|
+
|
|
3861
|
+
function renderLaneLabel(parentGfx, text, element, attrs = {}) {
|
|
3862
|
+
var isHorizontalLane = isHorizontal(element);
|
|
3863
|
+
|
|
3864
|
+
var textBox = renderLabel(parentGfx, text, {
|
|
3865
|
+
box: {
|
|
3866
|
+
height: 30,
|
|
3867
|
+
width: isHorizontalLane ? getHeight(element, attrs) : getWidth(element, attrs),
|
|
3868
|
+
},
|
|
3869
|
+
align: 'center-middle',
|
|
3870
|
+
style: {
|
|
3871
|
+
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor, attrs.stroke)
|
|
3872
|
+
}
|
|
3873
|
+
});
|
|
3874
|
+
|
|
3875
|
+
if (isHorizontalLane) {
|
|
3876
|
+
var top = -1 * getHeight(element, attrs);
|
|
3877
|
+
transform(textBox, 0, -top, 270);
|
|
3878
|
+
}
|
|
3879
|
+
}
|
|
3880
|
+
|
|
3881
|
+
function renderActivity(parentGfx, element, attrs = {}) {
|
|
3882
|
+
var {
|
|
3883
|
+
width,
|
|
3884
|
+
height
|
|
3885
|
+
} = getBounds(element, attrs);
|
|
3886
|
+
|
|
3887
|
+
return drawRect(parentGfx, width, height, TASK_BORDER_RADIUS, {
|
|
3888
|
+
...attrs,
|
|
3889
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3890
|
+
fillOpacity: DEFAULT_OPACITY,
|
|
3891
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3892
|
+
});
|
|
3893
|
+
}
|
|
3894
|
+
|
|
3895
|
+
function renderAssociation(parentGfx, element, attrs = {}) {
|
|
3896
|
+
var semantic = getBusinessObject(element);
|
|
3897
|
+
|
|
3898
|
+
var fill = getFillColor(element, defaultFillColor, attrs.fill),
|
|
3899
|
+
stroke = getStrokeColor(element, defaultStrokeColor, attrs.stroke);
|
|
3900
|
+
|
|
3901
|
+
if (semantic.get('associationDirection') === 'One' ||
|
|
3902
|
+
semantic.get('associationDirection') === 'Both') {
|
|
3903
|
+
attrs.markerEnd = marker('association-end', fill, stroke);
|
|
3904
|
+
}
|
|
3905
|
+
|
|
3906
|
+
if (semantic.get('associationDirection') === 'Both') {
|
|
3907
|
+
attrs.markerStart = marker('association-start', fill, stroke);
|
|
3908
|
+
}
|
|
3909
|
+
|
|
3910
|
+
attrs = pickAttrs(attrs, [
|
|
3911
|
+
'markerStart',
|
|
3912
|
+
'markerEnd'
|
|
3913
|
+
]);
|
|
3914
|
+
|
|
3915
|
+
return drawConnectionSegments(parentGfx, element.waypoints, {
|
|
3916
|
+
...attrs,
|
|
3917
|
+
stroke,
|
|
3918
|
+
strokeDasharray: '0, 5'
|
|
3919
|
+
});
|
|
3920
|
+
}
|
|
3921
|
+
|
|
3922
|
+
function renderDataObject(parentGfx, element, attrs = {}) {
|
|
3923
|
+
var fill = getFillColor(element, defaultFillColor, attrs.fill),
|
|
3924
|
+
stroke = getStrokeColor(element, defaultStrokeColor, attrs.stroke);
|
|
3925
|
+
|
|
3926
|
+
var pathData = pathMap.getScaledPath('DATA_OBJECT_PATH', {
|
|
3927
|
+
xScaleFactor: 1,
|
|
3928
|
+
yScaleFactor: 1,
|
|
3929
|
+
containerWidth: element.width,
|
|
3930
|
+
containerHeight: element.height,
|
|
3931
|
+
position: {
|
|
3932
|
+
mx: 0.474,
|
|
3933
|
+
my: 0.296
|
|
3934
|
+
}
|
|
3935
|
+
});
|
|
3936
|
+
|
|
3937
|
+
var dataObject = drawPath(parentGfx, pathData, {
|
|
3938
|
+
fill,
|
|
3939
|
+
fillOpacity: DEFAULT_OPACITY,
|
|
3940
|
+
stroke
|
|
3941
|
+
});
|
|
3942
|
+
|
|
3943
|
+
var semantic = getBusinessObject(element);
|
|
3944
|
+
|
|
3945
|
+
if (isCollection(semantic)) {
|
|
3946
|
+
var collectionPathData = pathMap.getScaledPath('DATA_OBJECT_COLLECTION_PATH', {
|
|
3723
3947
|
xScaleFactor: 1,
|
|
3724
3948
|
yScaleFactor: 1,
|
|
3725
|
-
containerWidth:
|
|
3726
|
-
containerHeight:
|
|
3949
|
+
containerWidth: element.width,
|
|
3950
|
+
containerHeight: element.height,
|
|
3727
3951
|
position: {
|
|
3728
|
-
mx: 0.
|
|
3729
|
-
my:
|
|
3952
|
+
mx: 0.33,
|
|
3953
|
+
my: (element.height - 18) / element.height
|
|
3730
3954
|
}
|
|
3731
3955
|
});
|
|
3732
3956
|
|
|
3733
|
-
|
|
3734
|
-
strokeWidth:
|
|
3735
|
-
fill
|
|
3736
|
-
stroke
|
|
3957
|
+
drawPath(parentGfx, collectionPathData, {
|
|
3958
|
+
strokeWidth: 2,
|
|
3959
|
+
fill,
|
|
3960
|
+
stroke
|
|
3737
3961
|
});
|
|
3962
|
+
}
|
|
3738
3963
|
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
'bpmn:ReceiveTask' : function(parentGfx, element) {
|
|
3742
|
-
var semantic = getBusinessObject(element);
|
|
3964
|
+
return dataObject;
|
|
3965
|
+
}
|
|
3743
3966
|
|
|
3744
|
-
|
|
3745
|
-
|
|
3967
|
+
function renderEvent(parentGfx, element, attrs = {}) {
|
|
3968
|
+
return drawCircle(parentGfx, element.width, element.height, {
|
|
3969
|
+
fillOpacity: DEFAULT_OPACITY,
|
|
3970
|
+
...attrs,
|
|
3971
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3972
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3973
|
+
});
|
|
3974
|
+
}
|
|
3746
3975
|
|
|
3747
|
-
|
|
3748
|
-
|
|
3976
|
+
function renderGateway(parentGfx, element, attrs = {}) {
|
|
3977
|
+
return drawDiamond(parentGfx, element.width, element.height, {
|
|
3978
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3979
|
+
fillOpacity: DEFAULT_OPACITY,
|
|
3980
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3981
|
+
});
|
|
3982
|
+
}
|
|
3749
3983
|
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3984
|
+
function renderLane(parentGfx, element, attrs = {}) {
|
|
3985
|
+
var lane = drawRect(parentGfx, getWidth(element, attrs), getHeight(element, attrs), 0, {
|
|
3986
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
3987
|
+
fillOpacity: attrs.fillOpacity || DEFAULT_OPACITY,
|
|
3988
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
3989
|
+
strokeWidth: 1.5
|
|
3990
|
+
});
|
|
3757
3991
|
|
|
3758
|
-
|
|
3759
|
-
xScaleFactor: 0.9,
|
|
3760
|
-
yScaleFactor: 0.9,
|
|
3761
|
-
containerWidth: 21,
|
|
3762
|
-
containerHeight: 14,
|
|
3763
|
-
position: {
|
|
3764
|
-
mx: 0.3,
|
|
3765
|
-
my: 0.4
|
|
3766
|
-
}
|
|
3767
|
-
});
|
|
3768
|
-
}
|
|
3992
|
+
var semantic = getBusinessObject(element);
|
|
3769
3993
|
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3994
|
+
if (is$1(semantic, 'bpmn:Lane')) {
|
|
3995
|
+
var text = semantic.get('name');
|
|
3996
|
+
|
|
3997
|
+
renderLaneLabel(parentGfx, text, element, attrs);
|
|
3998
|
+
}
|
|
3999
|
+
|
|
4000
|
+
return lane;
|
|
4001
|
+
}
|
|
4002
|
+
|
|
4003
|
+
function renderSubProcess(parentGfx, element, attrs = {}) {
|
|
4004
|
+
var activity = renderActivity(parentGfx, element, attrs);
|
|
4005
|
+
|
|
4006
|
+
if (isEventSubProcess(element)) {
|
|
4007
|
+
attr$1(activity, {
|
|
4008
|
+
strokeDasharray: '0, 5.5',
|
|
4009
|
+
strokeWidth: 2.5
|
|
3774
4010
|
});
|
|
4011
|
+
}
|
|
3775
4012
|
|
|
3776
|
-
|
|
4013
|
+
var expanded = isExpanded(element);
|
|
4014
|
+
|
|
4015
|
+
renderEmbeddedLabel(parentGfx, element, expanded ? 'center-top' : 'center-middle', attrs);
|
|
4016
|
+
|
|
4017
|
+
if (expanded) {
|
|
4018
|
+
renderTaskMarkers(parentGfx, element, undefined, attrs);
|
|
4019
|
+
} else {
|
|
4020
|
+
renderTaskMarkers(parentGfx, element, [ 'SubProcessMarker' ], attrs);
|
|
4021
|
+
}
|
|
4022
|
+
|
|
4023
|
+
return activity;
|
|
4024
|
+
}
|
|
4025
|
+
|
|
4026
|
+
function renderTask(parentGfx, element, attrs = {}) {
|
|
4027
|
+
var activity = renderActivity(parentGfx, element, attrs);
|
|
4028
|
+
|
|
4029
|
+
renderEmbeddedLabel(parentGfx, element, 'center-middle', attrs);
|
|
4030
|
+
|
|
4031
|
+
renderTaskMarkers(parentGfx, element, undefined, attrs);
|
|
4032
|
+
|
|
4033
|
+
return activity;
|
|
4034
|
+
}
|
|
4035
|
+
|
|
4036
|
+
var handlers = this.handlers = {
|
|
4037
|
+
'bpmn:AdHocSubProcess': function(parentGfx, element, attrs = {}) {
|
|
4038
|
+
if (isExpanded(element)) {
|
|
4039
|
+
attrs = pickAttrs(attrs, [
|
|
4040
|
+
'fill',
|
|
4041
|
+
'stroke',
|
|
4042
|
+
'width',
|
|
4043
|
+
'height'
|
|
4044
|
+
]);
|
|
4045
|
+
} else {
|
|
4046
|
+
attrs = pickAttrs(attrs, [
|
|
4047
|
+
'fill',
|
|
4048
|
+
'stroke'
|
|
4049
|
+
]);
|
|
4050
|
+
}
|
|
4051
|
+
|
|
4052
|
+
return renderSubProcess(parentGfx, element, attrs);
|
|
3777
4053
|
},
|
|
3778
|
-
'bpmn:
|
|
3779
|
-
|
|
4054
|
+
'bpmn:Association': function(parentGfx, element, attrs = {}) {
|
|
4055
|
+
attrs = pickAttrs(attrs, [
|
|
4056
|
+
'fill',
|
|
4057
|
+
'stroke'
|
|
4058
|
+
]);
|
|
3780
4059
|
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
}
|
|
3786
|
-
});
|
|
4060
|
+
return renderAssociation(parentGfx, element, attrs);
|
|
4061
|
+
},
|
|
4062
|
+
'bpmn:BoundaryEvent': function(parentGfx, element, attrs = {}) {
|
|
4063
|
+
var { renderIcon = true } = attrs;
|
|
3787
4064
|
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
stroke
|
|
4065
|
+
attrs = pickAttrs(attrs, [
|
|
4066
|
+
'fill',
|
|
4067
|
+
'stroke'
|
|
4068
|
+
]);
|
|
4069
|
+
|
|
4070
|
+
var semantic = getBusinessObject(element),
|
|
4071
|
+
cancelActivity = semantic.get('cancelActivity');
|
|
4072
|
+
|
|
4073
|
+
attrs = {
|
|
4074
|
+
strokeWidth: 1.5,
|
|
4075
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4076
|
+
fillOpacity: FULL_OPACITY,
|
|
4077
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
4078
|
+
};
|
|
4079
|
+
|
|
4080
|
+
if (!cancelActivity) {
|
|
4081
|
+
attrs.strokeDasharray = '6';
|
|
4082
|
+
}
|
|
4083
|
+
|
|
4084
|
+
var event = renderEvent(parentGfx, element, attrs);
|
|
4085
|
+
|
|
4086
|
+
drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, {
|
|
4087
|
+
...attrs,
|
|
4088
|
+
fill: 'none'
|
|
3791
4089
|
});
|
|
3792
4090
|
|
|
3793
|
-
|
|
4091
|
+
if (renderIcon) {
|
|
4092
|
+
renderEventIcon(element, parentGfx, attrs);
|
|
4093
|
+
}
|
|
4094
|
+
|
|
4095
|
+
return event;
|
|
3794
4096
|
},
|
|
3795
|
-
'bpmn:BusinessRuleTask': function(parentGfx, element) {
|
|
3796
|
-
|
|
4097
|
+
'bpmn:BusinessRuleTask': function(parentGfx, element, attrs = {}) {
|
|
4098
|
+
attrs = pickAttrs(attrs, [
|
|
4099
|
+
'fill',
|
|
4100
|
+
'stroke'
|
|
4101
|
+
]);
|
|
3797
4102
|
|
|
3798
|
-
var
|
|
4103
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4104
|
+
|
|
4105
|
+
var headerData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_MAIN', {
|
|
3799
4106
|
abspos: {
|
|
3800
4107
|
x: 8,
|
|
3801
4108
|
y: 8
|
|
3802
4109
|
}
|
|
3803
4110
|
});
|
|
3804
4111
|
|
|
3805
|
-
var
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
fill: getFillColor(element,
|
|
3809
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4112
|
+
var businessPath = drawPath(parentGfx, headerData);
|
|
4113
|
+
|
|
4114
|
+
attr$1(businessPath, {
|
|
4115
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4116
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4117
|
+
strokeWidth: 1
|
|
3810
4118
|
});
|
|
3811
4119
|
|
|
3812
|
-
var
|
|
4120
|
+
var headerPathData = pathMap.getScaledPath('TASK_TYPE_BUSINESS_RULE_HEADER', {
|
|
3813
4121
|
abspos: {
|
|
3814
4122
|
x: 8,
|
|
3815
4123
|
y: 8
|
|
3816
4124
|
}
|
|
3817
4125
|
});
|
|
3818
4126
|
|
|
3819
|
-
var
|
|
3820
|
-
|
|
3821
|
-
|
|
3822
|
-
|
|
4127
|
+
var businessHeaderPath = drawPath(parentGfx, headerPathData);
|
|
4128
|
+
|
|
4129
|
+
attr$1(businessHeaderPath, {
|
|
4130
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4131
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4132
|
+
strokeWidth: 1
|
|
3823
4133
|
});
|
|
3824
4134
|
|
|
3825
4135
|
return task;
|
|
3826
4136
|
},
|
|
3827
|
-
'bpmn:
|
|
3828
|
-
attrs =
|
|
3829
|
-
fill
|
|
3830
|
-
stroke
|
|
4137
|
+
'bpmn:CallActivity': function(parentGfx, element, attrs = {}) {
|
|
4138
|
+
attrs = pickAttrs(attrs, [
|
|
4139
|
+
'fill',
|
|
4140
|
+
'stroke'
|
|
4141
|
+
]);
|
|
4142
|
+
|
|
4143
|
+
return renderSubProcess(parentGfx, element, {
|
|
4144
|
+
strokeWidth: 5,
|
|
3831
4145
|
...attrs
|
|
3832
|
-
};
|
|
4146
|
+
});
|
|
4147
|
+
},
|
|
4148
|
+
'bpmn:ComplexGateway': function(parentGfx, element, attrs = {}) {
|
|
4149
|
+
attrs = pickAttrs(attrs, [
|
|
4150
|
+
'fill',
|
|
4151
|
+
'stroke'
|
|
4152
|
+
]);
|
|
3833
4153
|
|
|
3834
|
-
var
|
|
4154
|
+
var gateway = renderGateway(parentGfx, element, attrs);
|
|
3835
4155
|
|
|
3836
|
-
var
|
|
4156
|
+
var pathData = pathMap.getScaledPath('GATEWAY_COMPLEX', {
|
|
4157
|
+
xScaleFactor: 0.5,
|
|
4158
|
+
yScaleFactor:0.5,
|
|
4159
|
+
containerWidth: element.width,
|
|
4160
|
+
containerHeight: element.height,
|
|
4161
|
+
position: {
|
|
4162
|
+
mx: 0.46,
|
|
4163
|
+
my: 0.26
|
|
4164
|
+
}
|
|
4165
|
+
});
|
|
3837
4166
|
|
|
3838
|
-
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
3843
|
-
}
|
|
4167
|
+
drawPath(parentGfx, pathData, {
|
|
4168
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4169
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4170
|
+
strokeWidth: 1
|
|
4171
|
+
});
|
|
3844
4172
|
|
|
3845
|
-
|
|
4173
|
+
return gateway;
|
|
4174
|
+
},
|
|
4175
|
+
'bpmn:DataInput': function(parentGfx, element, attrs = {}) {
|
|
4176
|
+
attrs = pickAttrs(attrs, [
|
|
4177
|
+
'fill',
|
|
4178
|
+
'stroke'
|
|
4179
|
+
]);
|
|
3846
4180
|
|
|
3847
|
-
|
|
3848
|
-
attachTaskMarkers(parentGfx, element);
|
|
3849
|
-
} else {
|
|
3850
|
-
attachTaskMarkers(parentGfx, element, [ 'SubProcessMarker' ]);
|
|
3851
|
-
}
|
|
4181
|
+
var arrowPathData = pathMap.getRawPath('DATA_ARROW');
|
|
3852
4182
|
|
|
3853
|
-
|
|
3854
|
-
},
|
|
3855
|
-
'bpmn:AdHocSubProcess': function(parentGfx, element) {
|
|
3856
|
-
return renderer('bpmn:SubProcess')(parentGfx, element);
|
|
3857
|
-
},
|
|
3858
|
-
'bpmn:Transaction': function(parentGfx, element) {
|
|
3859
|
-
var outer = renderer('bpmn:SubProcess')(parentGfx, element, { strokeWidth: 1.5 });
|
|
4183
|
+
var dataObject = renderDataObject(parentGfx, element, attrs);
|
|
3860
4184
|
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
4185
|
+
drawPath(parentGfx, arrowPathData, {
|
|
4186
|
+
fill: 'none',
|
|
4187
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4188
|
+
strokeWidth: 1
|
|
3864
4189
|
});
|
|
3865
4190
|
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
return outer;
|
|
4191
|
+
return dataObject;
|
|
3869
4192
|
},
|
|
3870
|
-
'bpmn:
|
|
3871
|
-
|
|
3872
|
-
|
|
4193
|
+
'bpmn:DataInputAssociation': function(parentGfx, element, attrs = {}) {
|
|
4194
|
+
attrs = pickAttrs(attrs, [
|
|
4195
|
+
'fill',
|
|
4196
|
+
'stroke'
|
|
4197
|
+
]);
|
|
4198
|
+
|
|
4199
|
+
return renderAssociation(parentGfx, element, {
|
|
4200
|
+
...attrs,
|
|
4201
|
+
markerEnd: marker('association-end', getFillColor(element, defaultFillColor, attrs.fill), getStrokeColor(element, defaultStrokeColor, attrs.stroke))
|
|
3873
4202
|
});
|
|
3874
4203
|
},
|
|
3875
|
-
'bpmn:
|
|
3876
|
-
|
|
3877
|
-
|
|
3878
|
-
|
|
3879
|
-
|
|
3880
|
-
fillOpacity: DEFAULT_FILL_OPACITY,
|
|
3881
|
-
fill: getFillColor(element, defaultFillColor),
|
|
3882
|
-
stroke: getStrokeColor(element, defaultStrokeColor),
|
|
3883
|
-
strokeWidth
|
|
3884
|
-
};
|
|
3885
|
-
|
|
3886
|
-
var lane = renderer('bpmn:Lane')(parentGfx, element, attrs);
|
|
3887
|
-
|
|
3888
|
-
var expandedPool = isExpanded(element);
|
|
3889
|
-
|
|
3890
|
-
if (expandedPool) {
|
|
3891
|
-
drawLine(parentGfx, [
|
|
3892
|
-
{ x: 30, y: 0 },
|
|
3893
|
-
{ x: 30, y: element.height }
|
|
3894
|
-
], {
|
|
3895
|
-
stroke: getStrokeColor(element, defaultStrokeColor),
|
|
3896
|
-
strokeWidth
|
|
3897
|
-
});
|
|
3898
|
-
var text = getBusinessObject(element).name;
|
|
3899
|
-
renderLaneLabel(parentGfx, text, element);
|
|
3900
|
-
} else {
|
|
3901
|
-
|
|
3902
|
-
// collapsed pool draw text inline
|
|
3903
|
-
var text2 = getBusinessObject(element).name;
|
|
3904
|
-
renderLabel(parentGfx, text2, {
|
|
3905
|
-
box: element, align: 'center-middle',
|
|
3906
|
-
style: {
|
|
3907
|
-
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
|
|
3908
|
-
}
|
|
3909
|
-
});
|
|
3910
|
-
}
|
|
3911
|
-
|
|
3912
|
-
var participantMultiplicity = !!(getBusinessObject(element).participantMultiplicity);
|
|
3913
|
-
|
|
3914
|
-
if (participantMultiplicity) {
|
|
3915
|
-
renderer('ParticipantMultiplicityMarker')(parentGfx, element);
|
|
3916
|
-
}
|
|
4204
|
+
'bpmn:DataObject': function(parentGfx, element, attrs = {}) {
|
|
4205
|
+
attrs = pickAttrs(attrs, [
|
|
4206
|
+
'fill',
|
|
4207
|
+
'stroke'
|
|
4208
|
+
]);
|
|
3917
4209
|
|
|
3918
|
-
return
|
|
4210
|
+
return renderDataObject(parentGfx, element, attrs);
|
|
3919
4211
|
},
|
|
3920
|
-
'bpmn:
|
|
3921
|
-
|
|
3922
|
-
|
|
3923
|
-
|
|
3924
|
-
stroke
|
|
3925
|
-
|
|
3926
|
-
...attrs
|
|
3927
|
-
});
|
|
3928
|
-
|
|
3929
|
-
var semantic = getBusinessObject(element);
|
|
4212
|
+
'bpmn:DataObjectReference': as('bpmn:DataObject'),
|
|
4213
|
+
'bpmn:DataOutput': function(parentGfx, element, attrs = {}) {
|
|
4214
|
+
attrs = pickAttrs(attrs, [
|
|
4215
|
+
'fill',
|
|
4216
|
+
'stroke'
|
|
4217
|
+
]);
|
|
3930
4218
|
|
|
3931
|
-
|
|
3932
|
-
var text = semantic.name;
|
|
3933
|
-
renderLaneLabel(parentGfx, text, element);
|
|
3934
|
-
}
|
|
4219
|
+
var arrowPathData = pathMap.getRawPath('DATA_ARROW');
|
|
3935
4220
|
|
|
3936
|
-
|
|
3937
|
-
},
|
|
3938
|
-
'bpmn:InclusiveGateway': function(parentGfx, element) {
|
|
3939
|
-
var diamond = renderer('bpmn:Gateway')(parentGfx, element);
|
|
4221
|
+
var dataObject = renderDataObject(parentGfx, element, attrs);
|
|
3940
4222
|
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4223
|
+
drawPath(parentGfx, arrowPathData, {
|
|
4224
|
+
strokeWidth: 1,
|
|
4225
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4226
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
3946
4227
|
});
|
|
3947
4228
|
|
|
3948
|
-
return
|
|
4229
|
+
return dataObject;
|
|
3949
4230
|
},
|
|
3950
|
-
'bpmn:
|
|
3951
|
-
|
|
4231
|
+
'bpmn:DataOutputAssociation': function(parentGfx, element, attrs = {}) {
|
|
4232
|
+
attrs = pickAttrs(attrs, [
|
|
4233
|
+
'fill',
|
|
4234
|
+
'stroke'
|
|
4235
|
+
]);
|
|
3952
4236
|
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
containerWidth: element.width,
|
|
3957
|
-
containerHeight: element.height,
|
|
3958
|
-
position: {
|
|
3959
|
-
mx: 0.32,
|
|
3960
|
-
my: 0.3
|
|
3961
|
-
}
|
|
4237
|
+
return renderAssociation(parentGfx, element, {
|
|
4238
|
+
...attrs,
|
|
4239
|
+
markerEnd: marker('association-end', getFillColor(element, defaultFillColor, attrs.fill), getStrokeColor(element, defaultStrokeColor, attrs.stroke))
|
|
3962
4240
|
});
|
|
3963
|
-
|
|
3964
|
-
if ((getDi(element).isMarkerVisible)) {
|
|
3965
|
-
drawPath(parentGfx, pathData, {
|
|
3966
|
-
strokeWidth: 1,
|
|
3967
|
-
fill: getStrokeColor(element, defaultStrokeColor),
|
|
3968
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
3969
|
-
});
|
|
3970
|
-
}
|
|
3971
|
-
|
|
3972
|
-
return diamond;
|
|
3973
4241
|
},
|
|
3974
|
-
'bpmn:
|
|
3975
|
-
|
|
4242
|
+
'bpmn:DataStoreReference': function(parentGfx, element, attrs = {}) {
|
|
4243
|
+
attrs = pickAttrs(attrs, [
|
|
4244
|
+
'fill',
|
|
4245
|
+
'stroke'
|
|
4246
|
+
]);
|
|
3976
4247
|
|
|
3977
|
-
var
|
|
3978
|
-
xScaleFactor:
|
|
3979
|
-
yScaleFactor:
|
|
4248
|
+
var dataStorePath = pathMap.getScaledPath('DATA_STORE', {
|
|
4249
|
+
xScaleFactor: 1,
|
|
4250
|
+
yScaleFactor: 1,
|
|
3980
4251
|
containerWidth: element.width,
|
|
3981
4252
|
containerHeight: element.height,
|
|
3982
4253
|
position: {
|
|
3983
|
-
mx: 0
|
|
3984
|
-
my: 0.
|
|
4254
|
+
mx: 0,
|
|
4255
|
+
my: 0.133
|
|
3985
4256
|
}
|
|
3986
4257
|
});
|
|
3987
4258
|
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4259
|
+
return drawPath(parentGfx, dataStorePath, {
|
|
4260
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4261
|
+
fillOpacity: DEFAULT_OPACITY,
|
|
4262
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4263
|
+
strokeWidth: 2
|
|
3992
4264
|
});
|
|
3993
|
-
|
|
3994
|
-
return diamond;
|
|
3995
4265
|
},
|
|
3996
|
-
'bpmn:
|
|
3997
|
-
var
|
|
4266
|
+
'bpmn:EndEvent': function(parentGfx, element, attrs = {}) {
|
|
4267
|
+
var { renderIcon = true } = attrs;
|
|
3998
4268
|
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
containerHeight: element.height,
|
|
4004
|
-
position: {
|
|
4005
|
-
mx: 0.46,
|
|
4006
|
-
my: 0.2
|
|
4007
|
-
}
|
|
4008
|
-
});
|
|
4269
|
+
attrs = pickAttrs(attrs, [
|
|
4270
|
+
'fill',
|
|
4271
|
+
'stroke'
|
|
4272
|
+
]);
|
|
4009
4273
|
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4274
|
+
var event = renderEvent(parentGfx, element, {
|
|
4275
|
+
...attrs,
|
|
4276
|
+
strokeWidth: 4
|
|
4014
4277
|
});
|
|
4015
4278
|
|
|
4016
|
-
|
|
4279
|
+
if (renderIcon) {
|
|
4280
|
+
renderEventIcon(element, parentGfx, attrs);
|
|
4281
|
+
}
|
|
4282
|
+
|
|
4283
|
+
return event;
|
|
4017
4284
|
},
|
|
4018
|
-
'bpmn:EventBasedGateway': function(parentGfx, element) {
|
|
4285
|
+
'bpmn:EventBasedGateway': function(parentGfx, element, attrs = {}) {
|
|
4286
|
+
attrs = pickAttrs(attrs, [
|
|
4287
|
+
'fill',
|
|
4288
|
+
'stroke'
|
|
4289
|
+
]);
|
|
4019
4290
|
|
|
4020
4291
|
var semantic = getBusinessObject(element);
|
|
4021
4292
|
|
|
4022
|
-
var diamond =
|
|
4293
|
+
var diamond = renderGateway(parentGfx, element, attrs);
|
|
4023
4294
|
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4295
|
+
drawCircle(parentGfx, element.width, element.height, element.height * 0.20, {
|
|
4296
|
+
fill: getFillColor(element, 'none', attrs.fill),
|
|
4297
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4298
|
+
strokeWidth: 1
|
|
4028
4299
|
});
|
|
4029
4300
|
|
|
4030
|
-
var type = semantic.eventGatewayType
|
|
4031
|
-
|
|
4301
|
+
var type = semantic.get('eventGatewayType'),
|
|
4302
|
+
instantiate = !!semantic.get('instantiate');
|
|
4032
4303
|
|
|
4033
4304
|
function drawEvent() {
|
|
4034
4305
|
|
|
@@ -4043,18 +4314,17 @@
|
|
|
4043
4314
|
}
|
|
4044
4315
|
});
|
|
4045
4316
|
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4317
|
+
drawPath(parentGfx, pathData, {
|
|
4318
|
+
fill: 'none',
|
|
4319
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4320
|
+
strokeWidth: 2
|
|
4050
4321
|
});
|
|
4051
4322
|
}
|
|
4052
4323
|
|
|
4053
4324
|
if (type === 'Parallel') {
|
|
4054
|
-
|
|
4055
4325
|
var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {
|
|
4056
4326
|
xScaleFactor: 0.4,
|
|
4057
|
-
yScaleFactor:0.4,
|
|
4327
|
+
yScaleFactor: 0.4,
|
|
4058
4328
|
containerWidth: element.width,
|
|
4059
4329
|
containerHeight: element.height,
|
|
4060
4330
|
position: {
|
|
@@ -4064,16 +4334,16 @@
|
|
|
4064
4334
|
});
|
|
4065
4335
|
|
|
4066
4336
|
drawPath(parentGfx, pathData, {
|
|
4067
|
-
|
|
4068
|
-
|
|
4337
|
+
fill: 'none',
|
|
4338
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4339
|
+
strokeWidth: 1
|
|
4069
4340
|
});
|
|
4070
4341
|
} else if (type === 'Exclusive') {
|
|
4071
|
-
|
|
4072
4342
|
if (!instantiate) {
|
|
4073
4343
|
drawCircle(parentGfx, element.width, element.height, element.height * 0.26, {
|
|
4074
|
-
strokeWidth: 1,
|
|
4075
4344
|
fill: 'none',
|
|
4076
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4345
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4346
|
+
strokeWidth: 1
|
|
4077
4347
|
});
|
|
4078
4348
|
}
|
|
4079
4349
|
|
|
@@ -4083,104 +4353,163 @@
|
|
|
4083
4353
|
|
|
4084
4354
|
return diamond;
|
|
4085
4355
|
},
|
|
4086
|
-
'bpmn:
|
|
4087
|
-
|
|
4088
|
-
fill
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
});
|
|
4092
|
-
},
|
|
4093
|
-
'bpmn:SequenceFlow': function(parentGfx, element) {
|
|
4094
|
-
var fill = getFillColor(element, defaultFillColor),
|
|
4095
|
-
stroke = getStrokeColor(element, defaultStrokeColor);
|
|
4356
|
+
'bpmn:ExclusiveGateway': function(parentGfx, element, attrs = {}) {
|
|
4357
|
+
attrs = pickAttrs(attrs, [
|
|
4358
|
+
'fill',
|
|
4359
|
+
'stroke'
|
|
4360
|
+
]);
|
|
4096
4361
|
|
|
4097
|
-
var
|
|
4098
|
-
markerEnd: marker('sequenceflow-end', fill, stroke),
|
|
4099
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4100
|
-
});
|
|
4362
|
+
var gateway = renderGateway(parentGfx, element, attrs);
|
|
4101
4363
|
|
|
4102
|
-
var
|
|
4364
|
+
var pathData = pathMap.getScaledPath('GATEWAY_EXCLUSIVE', {
|
|
4365
|
+
xScaleFactor: 0.4,
|
|
4366
|
+
yScaleFactor: 0.4,
|
|
4367
|
+
containerWidth: element.width,
|
|
4368
|
+
containerHeight: element.height,
|
|
4369
|
+
position: {
|
|
4370
|
+
mx: 0.32,
|
|
4371
|
+
my: 0.3
|
|
4372
|
+
}
|
|
4373
|
+
});
|
|
4103
4374
|
|
|
4104
|
-
var
|
|
4375
|
+
var di = getDi(element);
|
|
4105
4376
|
|
|
4106
|
-
if (
|
|
4107
|
-
|
|
4377
|
+
if (di.get('isMarkerVisible')) {
|
|
4378
|
+
drawPath(parentGfx, pathData, {
|
|
4379
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4380
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4381
|
+
strokeWidth: 1
|
|
4382
|
+
});
|
|
4383
|
+
}
|
|
4108
4384
|
|
|
4109
|
-
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
|
|
4113
|
-
|
|
4114
|
-
|
|
4385
|
+
return gateway;
|
|
4386
|
+
},
|
|
4387
|
+
'bpmn:Gateway': function(parentGfx, element, attrs = {}) {
|
|
4388
|
+
attrs = pickAttrs(attrs, [
|
|
4389
|
+
'fill',
|
|
4390
|
+
'stroke'
|
|
4391
|
+
]);
|
|
4115
4392
|
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4119
|
-
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4123
|
-
|
|
4393
|
+
return renderGateway(parentGfx, element, attrs);
|
|
4394
|
+
},
|
|
4395
|
+
'bpmn:Group': function(parentGfx, element, attrs = {}) {
|
|
4396
|
+
attrs = pickAttrs(attrs, [
|
|
4397
|
+
'fill',
|
|
4398
|
+
'stroke',
|
|
4399
|
+
'width',
|
|
4400
|
+
'height'
|
|
4401
|
+
]);
|
|
4124
4402
|
|
|
4125
|
-
return
|
|
4403
|
+
return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {
|
|
4404
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4405
|
+
strokeWidth: 1.5,
|
|
4406
|
+
strokeDasharray: '10, 6, 0, 6',
|
|
4407
|
+
fill: 'none',
|
|
4408
|
+
pointerEvents: 'none',
|
|
4409
|
+
width: getWidth(element, attrs),
|
|
4410
|
+
height: getHeight(element, attrs)
|
|
4411
|
+
});
|
|
4126
4412
|
},
|
|
4127
|
-
'bpmn:
|
|
4413
|
+
'bpmn:InclusiveGateway': function(parentGfx, element, attrs = {}) {
|
|
4414
|
+
attrs = pickAttrs(attrs, [
|
|
4415
|
+
'fill',
|
|
4416
|
+
'stroke'
|
|
4417
|
+
]);
|
|
4128
4418
|
|
|
4129
|
-
var
|
|
4419
|
+
var gateway = renderGateway(parentGfx, element, attrs);
|
|
4130
4420
|
|
|
4131
|
-
|
|
4132
|
-
|
|
4421
|
+
drawCircle(parentGfx, element.width, element.height, element.height * 0.24, {
|
|
4422
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4423
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4424
|
+
strokeWidth: 2.5
|
|
4425
|
+
});
|
|
4133
4426
|
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
};
|
|
4427
|
+
return gateway;
|
|
4428
|
+
},
|
|
4429
|
+
'bpmn:IntermediateEvent': function(parentGfx, element, attrs = {}) {
|
|
4430
|
+
var { renderIcon = true } = attrs;
|
|
4139
4431
|
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4432
|
+
attrs = pickAttrs(attrs, [
|
|
4433
|
+
'fill',
|
|
4434
|
+
'stroke'
|
|
4435
|
+
]);
|
|
4436
|
+
|
|
4437
|
+
var outer = renderEvent(parentGfx, element, {
|
|
4438
|
+
...attrs,
|
|
4439
|
+
strokeWidth: 1.5
|
|
4440
|
+
});
|
|
4441
|
+
|
|
4442
|
+
drawCircle(parentGfx, element.width, element.height, INNER_OUTER_DIST, {
|
|
4443
|
+
fill: 'none',
|
|
4444
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4445
|
+
strokeWidth: 1.5
|
|
4446
|
+
});
|
|
4144
4447
|
|
|
4145
|
-
if (
|
|
4146
|
-
|
|
4448
|
+
if (renderIcon) {
|
|
4449
|
+
renderEventIcon(element, parentGfx, attrs);
|
|
4147
4450
|
}
|
|
4148
4451
|
|
|
4149
|
-
return
|
|
4452
|
+
return outer;
|
|
4150
4453
|
},
|
|
4151
|
-
'bpmn:
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4454
|
+
'bpmn:IntermediateCatchEvent': as('bpmn:IntermediateEvent'),
|
|
4455
|
+
'bpmn:IntermediateThrowEvent': as('bpmn:IntermediateEvent'),
|
|
4456
|
+
'bpmn:Lane': function(parentGfx, element, attrs = {}) {
|
|
4457
|
+
attrs = pickAttrs(attrs, [
|
|
4458
|
+
'fill',
|
|
4459
|
+
'stroke',
|
|
4460
|
+
'width',
|
|
4461
|
+
'height'
|
|
4462
|
+
]);
|
|
4463
|
+
|
|
4464
|
+
return renderLane(parentGfx, element, {
|
|
4465
|
+
...attrs,
|
|
4466
|
+
fillOpacity: LOW_OPACITY
|
|
4157
4467
|
});
|
|
4158
4468
|
},
|
|
4159
|
-
'bpmn:
|
|
4160
|
-
|
|
4161
|
-
|
|
4469
|
+
'bpmn:ManualTask': function(parentGfx, element, attrs = {}) {
|
|
4470
|
+
attrs = pickAttrs(attrs, [
|
|
4471
|
+
'fill',
|
|
4472
|
+
'stroke'
|
|
4473
|
+
]);
|
|
4474
|
+
|
|
4475
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4476
|
+
|
|
4477
|
+
var pathData = pathMap.getScaledPath('TASK_TYPE_MANUAL', {
|
|
4478
|
+
abspos: {
|
|
4479
|
+
x: 17,
|
|
4480
|
+
y: 15
|
|
4481
|
+
}
|
|
4482
|
+
});
|
|
4162
4483
|
|
|
4163
|
-
|
|
4164
|
-
|
|
4484
|
+
drawPath(parentGfx, pathData, {
|
|
4485
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4486
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4487
|
+
strokeWidth: 0.5
|
|
4165
4488
|
});
|
|
4489
|
+
|
|
4490
|
+
return task;
|
|
4166
4491
|
},
|
|
4167
|
-
'bpmn:MessageFlow': function(parentGfx, element) {
|
|
4492
|
+
'bpmn:MessageFlow': function(parentGfx, element, attrs = {}) {
|
|
4493
|
+
attrs = pickAttrs(attrs, [
|
|
4494
|
+
'fill',
|
|
4495
|
+
'stroke'
|
|
4496
|
+
]);
|
|
4168
4497
|
|
|
4169
4498
|
var semantic = getBusinessObject(element),
|
|
4170
4499
|
di = getDi(element);
|
|
4171
4500
|
|
|
4172
|
-
var fill = getFillColor(element, defaultFillColor),
|
|
4173
|
-
stroke = getStrokeColor(element, defaultStrokeColor);
|
|
4501
|
+
var fill = getFillColor(element, defaultFillColor, attrs.fill),
|
|
4502
|
+
stroke = getStrokeColor(element, defaultStrokeColor, attrs.stroke);
|
|
4174
4503
|
|
|
4175
4504
|
var path = drawConnectionSegments(parentGfx, element.waypoints, {
|
|
4176
4505
|
markerEnd: marker('messageflow-end', fill, stroke),
|
|
4177
4506
|
markerStart: marker('messageflow-start', fill, stroke),
|
|
4507
|
+
stroke,
|
|
4178
4508
|
strokeDasharray: '10, 11',
|
|
4179
|
-
strokeWidth: 1.5
|
|
4180
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4509
|
+
strokeWidth: 1.5
|
|
4181
4510
|
});
|
|
4182
4511
|
|
|
4183
|
-
if (semantic.messageRef) {
|
|
4512
|
+
if (semantic.get('messageRef')) {
|
|
4184
4513
|
var midPoint = path.getPointAtLength(path.getTotalLength() / 2);
|
|
4185
4514
|
|
|
4186
4515
|
var markerPathData = pathMap.getScaledPath('MESSAGE_FLOW_MARKER', {
|
|
@@ -4190,404 +4519,518 @@
|
|
|
4190
4519
|
}
|
|
4191
4520
|
});
|
|
4192
4521
|
|
|
4193
|
-
var messageAttrs = {
|
|
4522
|
+
var messageAttrs = {
|
|
4523
|
+
strokeWidth: 1
|
|
4524
|
+
};
|
|
4525
|
+
|
|
4526
|
+
if (di.get('messageVisibleKind') === 'initiating') {
|
|
4527
|
+
messageAttrs.fill = fill;
|
|
4528
|
+
messageAttrs.stroke = stroke;
|
|
4529
|
+
} else {
|
|
4530
|
+
messageAttrs.fill = stroke;
|
|
4531
|
+
messageAttrs.stroke = fill;
|
|
4532
|
+
}
|
|
4533
|
+
|
|
4534
|
+
var message = drawPath(parentGfx, markerPathData, messageAttrs);
|
|
4535
|
+
|
|
4536
|
+
var messageRef = semantic.get('messageRef'),
|
|
4537
|
+
name = messageRef.get('name');
|
|
4538
|
+
|
|
4539
|
+
var label = renderLabel(parentGfx, name, {
|
|
4540
|
+
align: 'center-top',
|
|
4541
|
+
fitBox: true,
|
|
4542
|
+
style: {
|
|
4543
|
+
fill: stroke
|
|
4544
|
+
}
|
|
4545
|
+
});
|
|
4546
|
+
|
|
4547
|
+
var messageBounds = message.getBBox(),
|
|
4548
|
+
labelBounds = label.getBBox();
|
|
4549
|
+
|
|
4550
|
+
var translateX = midPoint.x - labelBounds.width / 2,
|
|
4551
|
+
translateY = midPoint.y + messageBounds.height / 2 + ELEMENT_LABEL_DISTANCE;
|
|
4552
|
+
|
|
4553
|
+
transform(label, translateX, translateY, 0);
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
return path;
|
|
4557
|
+
},
|
|
4558
|
+
'bpmn:ParallelGateway': function(parentGfx, element, attrs = {}) {
|
|
4559
|
+
attrs = pickAttrs(attrs, [
|
|
4560
|
+
'fill',
|
|
4561
|
+
'stroke'
|
|
4562
|
+
]);
|
|
4563
|
+
|
|
4564
|
+
var diamond = renderGateway(parentGfx, element, attrs);
|
|
4565
|
+
|
|
4566
|
+
var pathData = pathMap.getScaledPath('GATEWAY_PARALLEL', {
|
|
4567
|
+
xScaleFactor: 0.6,
|
|
4568
|
+
yScaleFactor: 0.6,
|
|
4569
|
+
containerWidth: element.width,
|
|
4570
|
+
containerHeight: element.height,
|
|
4571
|
+
position: {
|
|
4572
|
+
mx: 0.46,
|
|
4573
|
+
my: 0.2
|
|
4574
|
+
}
|
|
4575
|
+
});
|
|
4576
|
+
|
|
4577
|
+
drawPath(parentGfx, pathData, {
|
|
4578
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4579
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4580
|
+
strokeWidth: 1
|
|
4581
|
+
});
|
|
4582
|
+
|
|
4583
|
+
return diamond;
|
|
4584
|
+
},
|
|
4585
|
+
'bpmn:Participant': function(parentGfx, element, attrs = {}) {
|
|
4586
|
+
attrs = pickAttrs(attrs, [
|
|
4587
|
+
'fill',
|
|
4588
|
+
'stroke',
|
|
4589
|
+
'width',
|
|
4590
|
+
'height'
|
|
4591
|
+
]);
|
|
4592
|
+
|
|
4593
|
+
var participant = renderLane(parentGfx, element, attrs);
|
|
4594
|
+
|
|
4595
|
+
var expandedParticipant = isExpanded(element);
|
|
4596
|
+
var horizontalParticipant = isHorizontal(element);
|
|
4597
|
+
|
|
4598
|
+
var semantic = getBusinessObject(element),
|
|
4599
|
+
name = semantic.get('name');
|
|
4600
|
+
|
|
4601
|
+
if (expandedParticipant) {
|
|
4602
|
+
var waypoints = horizontalParticipant ? [
|
|
4603
|
+
{
|
|
4604
|
+
x: 30,
|
|
4605
|
+
y: 0
|
|
4606
|
+
},
|
|
4607
|
+
{
|
|
4608
|
+
x: 30,
|
|
4609
|
+
y: getHeight(element, attrs)
|
|
4610
|
+
}
|
|
4611
|
+
] : [
|
|
4612
|
+
{
|
|
4613
|
+
x: 0,
|
|
4614
|
+
y: 30
|
|
4615
|
+
},
|
|
4616
|
+
{
|
|
4617
|
+
x: getWidth(element, attrs),
|
|
4618
|
+
y: 30
|
|
4619
|
+
}
|
|
4620
|
+
];
|
|
4621
|
+
|
|
4622
|
+
drawLine(parentGfx, waypoints, {
|
|
4623
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4624
|
+
strokeWidth: PARTICIPANT_STROKE_WIDTH
|
|
4625
|
+
});
|
|
4626
|
+
|
|
4627
|
+
renderLaneLabel(parentGfx, name, element, attrs);
|
|
4628
|
+
} else {
|
|
4629
|
+
var bounds = getBounds(element, attrs);
|
|
4194
4630
|
|
|
4195
|
-
if (
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
} else {
|
|
4199
|
-
messageAttrs.fill = '#888';
|
|
4200
|
-
messageAttrs.stroke = 'white';
|
|
4631
|
+
if (!horizontalParticipant) {
|
|
4632
|
+
bounds.height = getWidth(element, attrs);
|
|
4633
|
+
bounds.width = getHeight(element, attrs);
|
|
4201
4634
|
}
|
|
4202
4635
|
|
|
4203
|
-
var
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
var label = renderLabel(parentGfx, labelText, {
|
|
4207
|
-
align: 'center-top',
|
|
4208
|
-
fitBox: true,
|
|
4636
|
+
var textBox = renderLabel(parentGfx, name, {
|
|
4637
|
+
box: bounds,
|
|
4638
|
+
align: 'center-middle',
|
|
4209
4639
|
style: {
|
|
4210
|
-
fill:
|
|
4640
|
+
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor, attrs.stroke)
|
|
4211
4641
|
}
|
|
4212
4642
|
});
|
|
4213
4643
|
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
transform(label, translateX, translateY, 0);
|
|
4644
|
+
if (!horizontalParticipant) {
|
|
4645
|
+
var top = -1 * getHeight(element, attrs);
|
|
4646
|
+
transform(textBox, 0, -top, 270);
|
|
4647
|
+
}
|
|
4648
|
+
}
|
|
4221
4649
|
|
|
4650
|
+
if (semantic.get('participantMultiplicity')) {
|
|
4651
|
+
renderTaskMarker('ParticipantMultiplicityMarker', parentGfx, element, attrs);
|
|
4222
4652
|
}
|
|
4223
4653
|
|
|
4224
|
-
return
|
|
4654
|
+
return participant;
|
|
4225
4655
|
},
|
|
4226
|
-
'bpmn:
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
containerHeight: element.height,
|
|
4232
|
-
position: {
|
|
4233
|
-
mx: 0.474,
|
|
4234
|
-
my: 0.296
|
|
4235
|
-
}
|
|
4236
|
-
});
|
|
4237
|
-
|
|
4238
|
-
var elementObject = drawPath(parentGfx, pathData, {
|
|
4239
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4240
|
-
fillOpacity: DEFAULT_FILL_OPACITY,
|
|
4241
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4242
|
-
});
|
|
4656
|
+
'bpmn:ReceiveTask' : function(parentGfx, element, attrs = {}) {
|
|
4657
|
+
attrs = pickAttrs(attrs, [
|
|
4658
|
+
'fill',
|
|
4659
|
+
'stroke'
|
|
4660
|
+
]);
|
|
4243
4661
|
|
|
4244
4662
|
var semantic = getBusinessObject(element);
|
|
4245
4663
|
|
|
4246
|
-
|
|
4247
|
-
renderDataItemCollection(parentGfx, element);
|
|
4248
|
-
}
|
|
4664
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4249
4665
|
|
|
4250
|
-
|
|
4251
|
-
},
|
|
4252
|
-
'bpmn:DataObjectReference': as('bpmn:DataObject'),
|
|
4253
|
-
'bpmn:DataInput': function(parentGfx, element) {
|
|
4666
|
+
var pathData;
|
|
4254
4667
|
|
|
4255
|
-
|
|
4668
|
+
if (semantic.get('instantiate')) {
|
|
4669
|
+
drawCircle(parentGfx, 28, 28, 20 * 0.22, {
|
|
4670
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4671
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4672
|
+
strokeWidth: 1
|
|
4673
|
+
});
|
|
4256
4674
|
|
|
4257
|
-
|
|
4258
|
-
|
|
4675
|
+
pathData = pathMap.getScaledPath('TASK_TYPE_INSTANTIATING_SEND', {
|
|
4676
|
+
abspos: {
|
|
4677
|
+
x: 7.77,
|
|
4678
|
+
y: 9.52
|
|
4679
|
+
}
|
|
4680
|
+
});
|
|
4681
|
+
} else {
|
|
4682
|
+
pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {
|
|
4683
|
+
xScaleFactor: 0.9,
|
|
4684
|
+
yScaleFactor: 0.9,
|
|
4685
|
+
containerWidth: 21,
|
|
4686
|
+
containerHeight: 14,
|
|
4687
|
+
position: {
|
|
4688
|
+
mx: 0.3,
|
|
4689
|
+
my: 0.4
|
|
4690
|
+
}
|
|
4691
|
+
});
|
|
4692
|
+
}
|
|
4259
4693
|
|
|
4260
|
-
|
|
4694
|
+
drawPath(parentGfx, pathData, {
|
|
4695
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4696
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4697
|
+
strokeWidth: 1
|
|
4698
|
+
});
|
|
4261
4699
|
|
|
4262
|
-
return
|
|
4700
|
+
return task;
|
|
4263
4701
|
},
|
|
4264
|
-
'bpmn:
|
|
4265
|
-
|
|
4702
|
+
'bpmn:ScriptTask': function(parentGfx, element, attrs = {}) {
|
|
4703
|
+
attrs = pickAttrs(attrs, [
|
|
4704
|
+
'fill',
|
|
4705
|
+
'stroke'
|
|
4706
|
+
]);
|
|
4266
4707
|
|
|
4267
|
-
|
|
4268
|
-
var elementObject = renderer('bpmn:DataObject')(parentGfx, element);
|
|
4708
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4269
4709
|
|
|
4270
|
-
|
|
4271
|
-
|
|
4272
|
-
|
|
4710
|
+
var pathData = pathMap.getScaledPath('TASK_TYPE_SCRIPT', {
|
|
4711
|
+
abspos: {
|
|
4712
|
+
x: 15,
|
|
4713
|
+
y: 20
|
|
4714
|
+
}
|
|
4273
4715
|
});
|
|
4274
4716
|
|
|
4275
|
-
|
|
4717
|
+
drawPath(parentGfx, pathData, {
|
|
4718
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4719
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4720
|
+
strokeWidth: 1
|
|
4721
|
+
});
|
|
4722
|
+
|
|
4723
|
+
return task;
|
|
4276
4724
|
},
|
|
4277
|
-
'bpmn:
|
|
4278
|
-
|
|
4725
|
+
'bpmn:SendTask': function(parentGfx, element, attrs = {}) {
|
|
4726
|
+
attrs = pickAttrs(attrs, [
|
|
4727
|
+
'fill',
|
|
4728
|
+
'stroke'
|
|
4729
|
+
]);
|
|
4730
|
+
|
|
4731
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4732
|
+
|
|
4733
|
+
var pathData = pathMap.getScaledPath('TASK_TYPE_SEND', {
|
|
4279
4734
|
xScaleFactor: 1,
|
|
4280
4735
|
yScaleFactor: 1,
|
|
4281
|
-
containerWidth:
|
|
4282
|
-
containerHeight:
|
|
4736
|
+
containerWidth: 21,
|
|
4737
|
+
containerHeight: 14,
|
|
4283
4738
|
position: {
|
|
4284
|
-
mx: 0,
|
|
4285
|
-
my: 0.
|
|
4739
|
+
mx: 0.285,
|
|
4740
|
+
my: 0.357
|
|
4286
4741
|
}
|
|
4287
4742
|
});
|
|
4288
4743
|
|
|
4289
|
-
|
|
4290
|
-
|
|
4291
|
-
|
|
4292
|
-
|
|
4293
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4744
|
+
drawPath(parentGfx, pathData, {
|
|
4745
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4746
|
+
stroke: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4747
|
+
strokeWidth: 1
|
|
4294
4748
|
});
|
|
4295
4749
|
|
|
4296
|
-
return
|
|
4750
|
+
return task;
|
|
4297
4751
|
},
|
|
4298
|
-
'bpmn:
|
|
4299
|
-
|
|
4300
|
-
|
|
4301
|
-
|
|
4752
|
+
'bpmn:SequenceFlow': function(parentGfx, element, attrs = {}) {
|
|
4753
|
+
attrs = pickAttrs(attrs, [
|
|
4754
|
+
'fill',
|
|
4755
|
+
'stroke'
|
|
4756
|
+
]);
|
|
4302
4757
|
|
|
4303
|
-
var
|
|
4304
|
-
|
|
4305
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4306
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4307
|
-
};
|
|
4758
|
+
var fill = getFillColor(element, defaultFillColor, attrs.fill),
|
|
4759
|
+
stroke = getStrokeColor(element, defaultStrokeColor, attrs.stroke);
|
|
4308
4760
|
|
|
4309
|
-
|
|
4310
|
-
|
|
4311
|
-
|
|
4761
|
+
var connection = drawConnectionSegments(parentGfx, element.waypoints, {
|
|
4762
|
+
markerEnd: marker('sequenceflow-end', fill, stroke),
|
|
4763
|
+
stroke
|
|
4764
|
+
});
|
|
4312
4765
|
|
|
4313
|
-
|
|
4314
|
-
var outerAttrs = {
|
|
4315
|
-
...attrs,
|
|
4316
|
-
fillOpacity: 1
|
|
4317
|
-
};
|
|
4766
|
+
var semantic = getBusinessObject(element);
|
|
4318
4767
|
|
|
4319
|
-
|
|
4320
|
-
var innerAttrs = {
|
|
4321
|
-
...attrs,
|
|
4322
|
-
fill: 'none'
|
|
4323
|
-
};
|
|
4768
|
+
var { source } = element;
|
|
4324
4769
|
|
|
4325
|
-
|
|
4770
|
+
if (source) {
|
|
4771
|
+
var sourceSemantic = getBusinessObject(source);
|
|
4326
4772
|
|
|
4327
|
-
|
|
4773
|
+
// conditional flow marker
|
|
4774
|
+
if (semantic.get('conditionExpression') && is$1(sourceSemantic, 'bpmn:Activity')) {
|
|
4775
|
+
attr$1(connection, {
|
|
4776
|
+
markerStart: marker('conditional-flow-marker', fill, stroke)
|
|
4777
|
+
});
|
|
4778
|
+
}
|
|
4328
4779
|
|
|
4329
|
-
|
|
4330
|
-
|
|
4780
|
+
// default marker
|
|
4781
|
+
if (sourceSemantic.get('default') && (is$1(sourceSemantic, 'bpmn:Gateway') || is$1(sourceSemantic, 'bpmn:Activity')) &&
|
|
4782
|
+
sourceSemantic.get('default') === semantic) {
|
|
4783
|
+
attr$1(connection, {
|
|
4784
|
+
markerStart: marker('conditional-default-flow-marker', fill, stroke)
|
|
4785
|
+
});
|
|
4786
|
+
}
|
|
4331
4787
|
}
|
|
4332
4788
|
|
|
4333
|
-
return
|
|
4334
|
-
},
|
|
4335
|
-
'bpmn:Group': function(parentGfx, element) {
|
|
4336
|
-
return drawRect(parentGfx, element.width, element.height, TASK_BORDER_RADIUS, {
|
|
4337
|
-
stroke: getStrokeColor(element, defaultStrokeColor),
|
|
4338
|
-
strokeWidth: 1.5,
|
|
4339
|
-
strokeDasharray: '10,6,0,6',
|
|
4340
|
-
fill: 'none',
|
|
4341
|
-
pointerEvents: 'none'
|
|
4342
|
-
});
|
|
4789
|
+
return connection;
|
|
4343
4790
|
},
|
|
4344
|
-
'
|
|
4345
|
-
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
|
|
4349
|
-
|
|
4350
|
-
|
|
4791
|
+
'bpmn:ServiceTask': function(parentGfx, element, attrs = {}) {
|
|
4792
|
+
attrs = pickAttrs(attrs, [
|
|
4793
|
+
'fill',
|
|
4794
|
+
'stroke'
|
|
4795
|
+
]);
|
|
4796
|
+
|
|
4797
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4798
|
+
|
|
4799
|
+
drawCircle(parentGfx, 10, 10, {
|
|
4800
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4801
|
+
stroke: 'none',
|
|
4802
|
+
transform: 'translate(6, 6)'
|
|
4351
4803
|
});
|
|
4352
4804
|
|
|
4353
|
-
var
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
containerHeight: element.height,
|
|
4358
|
-
position: {
|
|
4359
|
-
mx: 0.0,
|
|
4360
|
-
my: 0.0
|
|
4805
|
+
var pathDataService1 = pathMap.getScaledPath('TASK_TYPE_SERVICE', {
|
|
4806
|
+
abspos: {
|
|
4807
|
+
x: 12,
|
|
4808
|
+
y: 18
|
|
4361
4809
|
}
|
|
4362
4810
|
});
|
|
4363
4811
|
|
|
4364
|
-
drawPath(parentGfx,
|
|
4365
|
-
|
|
4812
|
+
drawPath(parentGfx, pathDataService1, {
|
|
4813
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4814
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4815
|
+
strokeWidth: 1
|
|
4366
4816
|
});
|
|
4367
4817
|
|
|
4368
|
-
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
padding: 7,
|
|
4373
|
-
style: {
|
|
4374
|
-
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor)
|
|
4375
|
-
}
|
|
4818
|
+
drawCircle(parentGfx, 10, 10, {
|
|
4819
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4820
|
+
stroke: 'none',
|
|
4821
|
+
transform: 'translate(11, 10)'
|
|
4376
4822
|
});
|
|
4377
4823
|
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
xScaleFactor: 1,
|
|
4383
|
-
yScaleFactor: 1,
|
|
4384
|
-
containerWidth: element.width,
|
|
4385
|
-
containerHeight: element.height,
|
|
4386
|
-
position: {
|
|
4387
|
-
mx: ((element.width / 2) / element.width),
|
|
4388
|
-
my: (element.height - 15) / element.height
|
|
4824
|
+
var pathDataService2 = pathMap.getScaledPath('TASK_TYPE_SERVICE', {
|
|
4825
|
+
abspos: {
|
|
4826
|
+
x: 17,
|
|
4827
|
+
y: 22
|
|
4389
4828
|
}
|
|
4390
4829
|
});
|
|
4391
4830
|
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4831
|
+
drawPath(parentGfx, pathDataService2, {
|
|
4832
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4833
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4834
|
+
strokeWidth: 1
|
|
4396
4835
|
});
|
|
4836
|
+
|
|
4837
|
+
return task;
|
|
4397
4838
|
},
|
|
4398
|
-
'
|
|
4399
|
-
var
|
|
4400
|
-
strokeWidth: 1,
|
|
4401
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4402
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4403
|
-
});
|
|
4839
|
+
'bpmn:StartEvent': function(parentGfx, element, attrs = {}) {
|
|
4840
|
+
var { renderIcon = true } = attrs;
|
|
4404
4841
|
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
|
|
4842
|
+
attrs = pickAttrs(attrs, [
|
|
4843
|
+
'fill',
|
|
4844
|
+
'stroke'
|
|
4845
|
+
]);
|
|
4408
4846
|
|
|
4409
|
-
var
|
|
4410
|
-
xScaleFactor: 1.5,
|
|
4411
|
-
yScaleFactor: 1.5,
|
|
4412
|
-
containerWidth: element.width,
|
|
4413
|
-
containerHeight: element.height,
|
|
4414
|
-
position: {
|
|
4415
|
-
mx: (element.width / 2 - 7.5) / element.width,
|
|
4416
|
-
my: (element.height - 20) / element.height
|
|
4417
|
-
}
|
|
4418
|
-
});
|
|
4847
|
+
var semantic = getBusinessObject(element);
|
|
4419
4848
|
|
|
4420
|
-
|
|
4421
|
-
|
|
4422
|
-
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
var markerPath = pathMap.getScaledPath('MARKER_PARALLEL', {
|
|
4427
|
-
xScaleFactor: 1,
|
|
4428
|
-
yScaleFactor: 1,
|
|
4429
|
-
containerWidth: element.width,
|
|
4430
|
-
containerHeight: element.height,
|
|
4431
|
-
position: {
|
|
4432
|
-
mx: ((element.width / 2 + position.parallel) / element.width),
|
|
4433
|
-
my: (element.height - 20) / element.height
|
|
4434
|
-
}
|
|
4435
|
-
});
|
|
4849
|
+
if (!semantic.get('isInterrupting')) {
|
|
4850
|
+
attrs = {
|
|
4851
|
+
...attrs,
|
|
4852
|
+
strokeDasharray: '6'
|
|
4853
|
+
};
|
|
4854
|
+
}
|
|
4436
4855
|
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4856
|
+
var event = renderEvent(parentGfx, element, attrs);
|
|
4857
|
+
|
|
4858
|
+
if (renderIcon) {
|
|
4859
|
+
renderEventIcon(element, parentGfx, attrs);
|
|
4860
|
+
}
|
|
4861
|
+
|
|
4862
|
+
return event;
|
|
4441
4863
|
},
|
|
4442
|
-
'
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4864
|
+
'bpmn:SubProcess': function(parentGfx, element, attrs = {}) {
|
|
4865
|
+
if (isExpanded(element)) {
|
|
4866
|
+
attrs = pickAttrs(attrs, [
|
|
4867
|
+
'fill',
|
|
4868
|
+
'stroke',
|
|
4869
|
+
'width',
|
|
4870
|
+
'height'
|
|
4871
|
+
]);
|
|
4872
|
+
} else {
|
|
4873
|
+
attrs = pickAttrs(attrs, [
|
|
4874
|
+
'fill',
|
|
4875
|
+
'stroke'
|
|
4876
|
+
]);
|
|
4877
|
+
}
|
|
4453
4878
|
|
|
4454
|
-
|
|
4455
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4456
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4457
|
-
});
|
|
4879
|
+
return renderSubProcess(parentGfx, element, attrs);
|
|
4458
4880
|
},
|
|
4459
|
-
'
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
containerHeight: element.height,
|
|
4465
|
-
position: {
|
|
4466
|
-
mx: ((element.width / 2 + position.compensation) / element.width),
|
|
4467
|
-
my: (element.height - 13) / element.height
|
|
4468
|
-
}
|
|
4469
|
-
});
|
|
4881
|
+
'bpmn:Task': function(parentGfx, element, attrs = {}) {
|
|
4882
|
+
attrs = pickAttrs(attrs, [
|
|
4883
|
+
'fill',
|
|
4884
|
+
'stroke'
|
|
4885
|
+
]);
|
|
4470
4886
|
|
|
4471
|
-
|
|
4472
|
-
strokeWidth: 1,
|
|
4473
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4474
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4475
|
-
});
|
|
4887
|
+
return renderTask(parentGfx, element, attrs);
|
|
4476
4888
|
},
|
|
4477
|
-
'
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4889
|
+
'bpmn:TextAnnotation': function(parentGfx, element, attrs = {}) {
|
|
4890
|
+
attrs = pickAttrs(attrs, [
|
|
4891
|
+
'fill',
|
|
4892
|
+
'stroke',
|
|
4893
|
+
'width',
|
|
4894
|
+
'height'
|
|
4895
|
+
]);
|
|
4896
|
+
|
|
4897
|
+
var {
|
|
4898
|
+
width,
|
|
4899
|
+
height
|
|
4900
|
+
} = getBounds(element, attrs);
|
|
4901
|
+
|
|
4902
|
+
var textElement = drawRect(parentGfx, width, height, 0, 0, {
|
|
4903
|
+
fill: 'none',
|
|
4904
|
+
stroke: 'none'
|
|
4487
4905
|
});
|
|
4488
4906
|
|
|
4489
|
-
|
|
4490
|
-
strokeWidth: 1.5,
|
|
4491
|
-
fill: getFillColor(element, defaultFillColor),
|
|
4492
|
-
stroke: getStrokeColor(element, defaultStrokeColor),
|
|
4493
|
-
strokeMiterlimit: 0.5
|
|
4494
|
-
});
|
|
4495
|
-
},
|
|
4496
|
-
'AdhocMarker': function(parentGfx, element, position) {
|
|
4497
|
-
var markerPath = pathMap.getScaledPath('MARKER_ADHOC', {
|
|
4907
|
+
var textPathData = pathMap.getScaledPath('TEXT_ANNOTATION', {
|
|
4498
4908
|
xScaleFactor: 1,
|
|
4499
4909
|
yScaleFactor: 1,
|
|
4500
|
-
containerWidth:
|
|
4501
|
-
containerHeight:
|
|
4910
|
+
containerWidth: width,
|
|
4911
|
+
containerHeight: height,
|
|
4502
4912
|
position: {
|
|
4503
|
-
mx:
|
|
4504
|
-
my:
|
|
4913
|
+
mx: 0.0,
|
|
4914
|
+
my: 0.0
|
|
4505
4915
|
}
|
|
4506
4916
|
});
|
|
4507
4917
|
|
|
4508
|
-
|
|
4509
|
-
|
|
4510
|
-
fill: getStrokeColor(element, defaultStrokeColor),
|
|
4511
|
-
stroke: getStrokeColor(element, defaultStrokeColor)
|
|
4918
|
+
drawPath(parentGfx, textPathData, {
|
|
4919
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke)
|
|
4512
4920
|
});
|
|
4513
|
-
}
|
|
4514
|
-
};
|
|
4515
4921
|
|
|
4516
|
-
|
|
4517
|
-
|
|
4922
|
+
var semantic = getBusinessObject(element),
|
|
4923
|
+
text = semantic.get('text') || '';
|
|
4518
4924
|
|
|
4519
|
-
|
|
4520
|
-
|
|
4925
|
+
renderLabel(parentGfx, text, {
|
|
4926
|
+
align: 'left-top',
|
|
4927
|
+
box: getBounds(element, attrs),
|
|
4928
|
+
padding: 7,
|
|
4929
|
+
style: {
|
|
4930
|
+
fill: getLabelColor(element, defaultLabelColor, defaultStrokeColor, attrs.stroke)
|
|
4931
|
+
}
|
|
4932
|
+
});
|
|
4521
4933
|
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4526
|
-
|
|
4527
|
-
|
|
4528
|
-
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4536
|
-
|
|
4537
|
-
}
|
|
4538
|
-
|
|
4934
|
+
return textElement;
|
|
4935
|
+
},
|
|
4936
|
+
'bpmn:Transaction': function(parentGfx, element, attrs = {}) {
|
|
4937
|
+
if (isExpanded(element)) {
|
|
4938
|
+
attrs = pickAttrs(attrs, [
|
|
4939
|
+
'fill',
|
|
4940
|
+
'stroke',
|
|
4941
|
+
'width',
|
|
4942
|
+
'height'
|
|
4943
|
+
]);
|
|
4944
|
+
} else {
|
|
4945
|
+
attrs = pickAttrs(attrs, [
|
|
4946
|
+
'fill',
|
|
4947
|
+
'stroke'
|
|
4948
|
+
]);
|
|
4949
|
+
}
|
|
4950
|
+
|
|
4951
|
+
var outer = renderSubProcess(parentGfx, element, {
|
|
4952
|
+
strokeWidth: 1.5,
|
|
4953
|
+
...attrs
|
|
4954
|
+
});
|
|
4539
4955
|
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4956
|
+
var innerAttrs = styles.style([ 'no-fill', 'no-events' ], {
|
|
4957
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4958
|
+
strokeWidth: 1.5
|
|
4959
|
+
});
|
|
4543
4960
|
|
|
4544
|
-
|
|
4545
|
-
renderer('CompensationMarker')(parentGfx, element, position);
|
|
4546
|
-
}
|
|
4961
|
+
var expanded = isExpanded(element);
|
|
4547
4962
|
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4963
|
+
if (!expanded) {
|
|
4964
|
+
attrs = {};
|
|
4965
|
+
}
|
|
4551
4966
|
|
|
4552
|
-
|
|
4553
|
-
|
|
4967
|
+
drawRect(
|
|
4968
|
+
parentGfx,
|
|
4969
|
+
getWidth(element, attrs),
|
|
4970
|
+
getHeight(element, attrs),
|
|
4971
|
+
TASK_BORDER_RADIUS - INNER_OUTER_DIST,
|
|
4972
|
+
INNER_OUTER_DIST,
|
|
4973
|
+
innerAttrs
|
|
4974
|
+
);
|
|
4554
4975
|
|
|
4555
|
-
|
|
4976
|
+
return outer;
|
|
4977
|
+
},
|
|
4978
|
+
'bpmn:UserTask': function(parentGfx, element, attrs = {}) {
|
|
4979
|
+
attrs = pickAttrs(attrs, [
|
|
4980
|
+
'fill',
|
|
4981
|
+
'stroke'
|
|
4982
|
+
]);
|
|
4556
4983
|
|
|
4557
|
-
|
|
4558
|
-
renderer('LoopMarker')(parentGfx, element, position);
|
|
4559
|
-
}
|
|
4984
|
+
var task = renderTask(parentGfx, element, attrs);
|
|
4560
4985
|
|
|
4561
|
-
|
|
4562
|
-
|
|
4563
|
-
}
|
|
4986
|
+
var x = 15;
|
|
4987
|
+
var y = 12;
|
|
4564
4988
|
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4569
|
-
|
|
4989
|
+
var pathDataUser1 = pathMap.getScaledPath('TASK_TYPE_USER_1', {
|
|
4990
|
+
abspos: {
|
|
4991
|
+
x: x,
|
|
4992
|
+
y: y
|
|
4993
|
+
}
|
|
4994
|
+
});
|
|
4570
4995
|
|
|
4571
|
-
|
|
4996
|
+
drawPath(parentGfx, pathDataUser1, {
|
|
4997
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
4998
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
4999
|
+
strokeWidth: 0.5
|
|
5000
|
+
});
|
|
5001
|
+
|
|
5002
|
+
var pathDataUser2 = pathMap.getScaledPath('TASK_TYPE_USER_2', {
|
|
5003
|
+
abspos: {
|
|
5004
|
+
x: x,
|
|
5005
|
+
y: y
|
|
5006
|
+
}
|
|
5007
|
+
});
|
|
4572
5008
|
|
|
4573
|
-
|
|
5009
|
+
drawPath(parentGfx, pathDataUser2, {
|
|
5010
|
+
fill: getFillColor(element, defaultFillColor, attrs.fill),
|
|
5011
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
5012
|
+
strokeWidth: 0.5
|
|
5013
|
+
});
|
|
4574
5014
|
|
|
4575
|
-
|
|
4576
|
-
|
|
4577
|
-
|
|
4578
|
-
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
mx: 0.33,
|
|
4582
|
-
my: yPosition
|
|
4583
|
-
}
|
|
4584
|
-
});
|
|
5015
|
+
var pathDataUser3 = pathMap.getScaledPath('TASK_TYPE_USER_3', {
|
|
5016
|
+
abspos: {
|
|
5017
|
+
x: x,
|
|
5018
|
+
y: y
|
|
5019
|
+
}
|
|
5020
|
+
});
|
|
4585
5021
|
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
5022
|
+
drawPath(parentGfx, pathDataUser3, {
|
|
5023
|
+
fill: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
5024
|
+
stroke: getStrokeColor(element, defaultStrokeColor, attrs.stroke),
|
|
5025
|
+
strokeWidth: 0.5
|
|
5026
|
+
});
|
|
4590
5027
|
|
|
5028
|
+
return task;
|
|
5029
|
+
},
|
|
5030
|
+
'label': function(parentGfx, element, attrs = {}) {
|
|
5031
|
+
return renderExternalLabel(parentGfx, element, attrs);
|
|
5032
|
+
}
|
|
5033
|
+
};
|
|
4591
5034
|
|
|
4592
5035
|
// extension API, use at your own risk
|
|
4593
5036
|
this._drawPath = drawPath;
|
|
@@ -4622,15 +5065,16 @@
|
|
|
4622
5065
|
*
|
|
4623
5066
|
* @param {SVGElement} parentGfx
|
|
4624
5067
|
* @param {Element} element
|
|
5068
|
+
* @param {Attrs} [attrs]
|
|
4625
5069
|
*
|
|
4626
5070
|
* @return {SVGElement} mainGfx
|
|
4627
5071
|
*/
|
|
4628
|
-
BpmnRenderer.prototype.drawShape = function(parentGfx, element) {
|
|
4629
|
-
var type = element
|
|
4630
|
-
var h = this._renderer(type);
|
|
5072
|
+
BpmnRenderer.prototype.drawShape = function(parentGfx, element, attrs = {}) {
|
|
5073
|
+
var { type } = element;
|
|
4631
5074
|
|
|
4632
|
-
|
|
4633
|
-
|
|
5075
|
+
var handler = this._renderer(type);
|
|
5076
|
+
|
|
5077
|
+
return handler(parentGfx, element, attrs);
|
|
4634
5078
|
};
|
|
4635
5079
|
|
|
4636
5080
|
/**
|
|
@@ -4638,15 +5082,16 @@
|
|
|
4638
5082
|
*
|
|
4639
5083
|
* @param {SVGElement} parentGfx
|
|
4640
5084
|
* @param {Element} element
|
|
5085
|
+
* @param {Attrs} [attrs]
|
|
4641
5086
|
*
|
|
4642
5087
|
* @return {SVGElement} mainGfx
|
|
4643
5088
|
*/
|
|
4644
|
-
BpmnRenderer.prototype.drawConnection = function(parentGfx, element) {
|
|
4645
|
-
var type = element
|
|
4646
|
-
|
|
5089
|
+
BpmnRenderer.prototype.drawConnection = function(parentGfx, element, attrs = {}) {
|
|
5090
|
+
var { type } = element;
|
|
5091
|
+
|
|
5092
|
+
var handler = this._renderer(type);
|
|
4647
5093
|
|
|
4648
|
-
|
|
4649
|
-
return h(parentGfx, element);
|
|
5094
|
+
return handler(parentGfx, element, attrs);
|
|
4650
5095
|
};
|
|
4651
5096
|
|
|
4652
5097
|
/**
|
|
@@ -4657,7 +5102,6 @@
|
|
|
4657
5102
|
* @return {string} path
|
|
4658
5103
|
*/
|
|
4659
5104
|
BpmnRenderer.prototype.getShapePath = function(element) {
|
|
4660
|
-
|
|
4661
5105
|
if (is$1(element, 'bpmn:Event')) {
|
|
4662
5106
|
return getCirclePath(element);
|
|
4663
5107
|
}
|
|
@@ -4673,6 +5117,24 @@
|
|
|
4673
5117
|
return getRectPath(element);
|
|
4674
5118
|
};
|
|
4675
5119
|
|
|
5120
|
+
/**
|
|
5121
|
+
* Pick attributes if they exist.
|
|
5122
|
+
*
|
|
5123
|
+
* @param {Object} attrs
|
|
5124
|
+
* @param {string[]} keys
|
|
5125
|
+
*
|
|
5126
|
+
* @returns {Object}
|
|
5127
|
+
*/
|
|
5128
|
+
function pickAttrs(attrs, keys = []) {
|
|
5129
|
+
return keys.reduce((pickedAttrs, key) => {
|
|
5130
|
+
if (attrs[ key ]) {
|
|
5131
|
+
pickedAttrs[ key ] = attrs[ key ];
|
|
5132
|
+
}
|
|
5133
|
+
|
|
5134
|
+
return pickedAttrs;
|
|
5135
|
+
}, {});
|
|
5136
|
+
}
|
|
5137
|
+
|
|
4676
5138
|
/**
|
|
4677
5139
|
* @typedef {import('../util/Types').Dimensions} Dimensions
|
|
4678
5140
|
*
|
|
@@ -5769,10 +6231,6 @@
|
|
|
5769
6231
|
translate: [ 'value', translate ]
|
|
5770
6232
|
};
|
|
5771
6233
|
|
|
5772
|
-
function getDefaultExportFromCjs (x) {
|
|
5773
|
-
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
5774
|
-
}
|
|
5775
|
-
|
|
5776
6234
|
/**
|
|
5777
6235
|
* @param {Point} point
|
|
5778
6236
|
*
|
|
@@ -6361,26 +6819,6 @@
|
|
|
6361
6819
|
return isButton(event, 1);
|
|
6362
6820
|
}
|
|
6363
6821
|
|
|
6364
|
-
/**
|
|
6365
|
-
* @param {MouseEvent} event
|
|
6366
|
-
*
|
|
6367
|
-
* @return {boolean}
|
|
6368
|
-
*/
|
|
6369
|
-
function hasPrimaryModifier(event) {
|
|
6370
|
-
var originalEvent = getOriginal(event) || event;
|
|
6371
|
-
|
|
6372
|
-
if (!isPrimaryButton(event)) {
|
|
6373
|
-
return false;
|
|
6374
|
-
}
|
|
6375
|
-
|
|
6376
|
-
// Use cmd as primary modifier key for mac OS
|
|
6377
|
-
if (isMac()) {
|
|
6378
|
-
return originalEvent.metaKey;
|
|
6379
|
-
} else {
|
|
6380
|
-
return originalEvent.ctrlKey;
|
|
6381
|
-
}
|
|
6382
|
-
}
|
|
6383
|
-
|
|
6384
6822
|
/**
|
|
6385
6823
|
* @param {MouseEvent} event
|
|
6386
6824
|
*
|
|
@@ -6981,6 +7419,8 @@
|
|
|
6981
7419
|
|
|
6982
7420
|
var LOW_PRIORITY$3 = 500;
|
|
6983
7421
|
|
|
7422
|
+
var DEFAULT_PRIORITY$3 = 1000;
|
|
7423
|
+
|
|
6984
7424
|
/**
|
|
6985
7425
|
* @typedef {import('../../model/Types').Element} Element
|
|
6986
7426
|
*
|
|
@@ -6999,25 +7439,30 @@
|
|
|
6999
7439
|
*/
|
|
7000
7440
|
function Outline(eventBus, styles) {
|
|
7001
7441
|
|
|
7002
|
-
this.
|
|
7442
|
+
this._eventBus = eventBus;
|
|
7443
|
+
|
|
7444
|
+
this.offset = 5;
|
|
7003
7445
|
|
|
7004
7446
|
var OUTLINE_STYLE = styles.cls('djs-outline', [ 'no-fill' ]);
|
|
7005
7447
|
|
|
7006
7448
|
var self = this;
|
|
7007
7449
|
|
|
7008
|
-
|
|
7450
|
+
/**
|
|
7451
|
+
* @param {SVGElement} gfx
|
|
7452
|
+
*
|
|
7453
|
+
* @return {SVGElement} outline
|
|
7454
|
+
*/
|
|
7455
|
+
function createOutline(gfx) {
|
|
7009
7456
|
var outline = create$1('rect');
|
|
7010
7457
|
|
|
7011
7458
|
attr$1(outline, assign$1({
|
|
7012
|
-
x:
|
|
7013
|
-
y:
|
|
7459
|
+
x: 0,
|
|
7460
|
+
y: 0,
|
|
7014
7461
|
rx: 4,
|
|
7015
7462
|
width: 100,
|
|
7016
7463
|
height: 100
|
|
7017
7464
|
}, OUTLINE_STYLE));
|
|
7018
7465
|
|
|
7019
|
-
append(gfx, outline);
|
|
7020
|
-
|
|
7021
7466
|
return outline;
|
|
7022
7467
|
}
|
|
7023
7468
|
|
|
@@ -7030,7 +7475,8 @@
|
|
|
7030
7475
|
var outline = query('.djs-outline', gfx);
|
|
7031
7476
|
|
|
7032
7477
|
if (!outline) {
|
|
7033
|
-
outline = createOutline(
|
|
7478
|
+
outline = self.getOutline(element) || createOutline();
|
|
7479
|
+
append(gfx, outline);
|
|
7034
7480
|
}
|
|
7035
7481
|
|
|
7036
7482
|
self.updateShapeOutline(outline, element);
|
|
@@ -7043,7 +7489,8 @@
|
|
|
7043
7489
|
var outline = query('.djs-outline', gfx);
|
|
7044
7490
|
|
|
7045
7491
|
if (!outline) {
|
|
7046
|
-
outline = createOutline(
|
|
7492
|
+
outline = createOutline();
|
|
7493
|
+
append(gfx, outline);
|
|
7047
7494
|
}
|
|
7048
7495
|
|
|
7049
7496
|
self.updateConnectionOutline(outline, element);
|
|
@@ -7060,25 +7507,34 @@
|
|
|
7060
7507
|
*/
|
|
7061
7508
|
Outline.prototype.updateShapeOutline = function(outline, element) {
|
|
7062
7509
|
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
y: -this.offset,
|
|
7066
|
-
width: element.width + this.offset * 2,
|
|
7067
|
-
height: element.height + this.offset * 2
|
|
7068
|
-
});
|
|
7510
|
+
var updated = false;
|
|
7511
|
+
var providers = this._getProviders();
|
|
7069
7512
|
|
|
7070
|
-
|
|
7513
|
+
if (providers.length) {
|
|
7514
|
+
forEach$1(providers, function(provider) {
|
|
7515
|
+
updated = updated || provider.updateOutline(element, outline);
|
|
7516
|
+
});
|
|
7517
|
+
}
|
|
7071
7518
|
|
|
7519
|
+
if (!updated) {
|
|
7520
|
+
attr$1(outline, {
|
|
7521
|
+
x: -this.offset,
|
|
7522
|
+
y: -this.offset,
|
|
7523
|
+
width: element.width + this.offset * 2,
|
|
7524
|
+
height: element.height + this.offset * 2
|
|
7525
|
+
});
|
|
7526
|
+
}
|
|
7527
|
+
};
|
|
7072
7528
|
|
|
7073
7529
|
/**
|
|
7074
7530
|
* Updates the outline of a connection respecting the bounding box of
|
|
7075
7531
|
* the connection and an outline offset.
|
|
7532
|
+
* Register an outline provider with the given priority.
|
|
7076
7533
|
*
|
|
7077
7534
|
* @param {SVGElement} outline
|
|
7078
7535
|
* @param {Element} connection
|
|
7079
7536
|
*/
|
|
7080
7537
|
Outline.prototype.updateConnectionOutline = function(outline, connection) {
|
|
7081
|
-
|
|
7082
7538
|
var bbox = getBBox(connection);
|
|
7083
7539
|
|
|
7084
7540
|
attr$1(outline, {
|
|
@@ -7087,9 +7543,61 @@
|
|
|
7087
7543
|
width: bbox.width + this.offset * 2,
|
|
7088
7544
|
height: bbox.height + this.offset * 2
|
|
7089
7545
|
});
|
|
7546
|
+
};
|
|
7547
|
+
|
|
7548
|
+
/**
|
|
7549
|
+
* Register an outline provider with the given priority.
|
|
7550
|
+
*
|
|
7551
|
+
* @param {number} priority
|
|
7552
|
+
* @param {OutlineProvider} provider
|
|
7553
|
+
*/
|
|
7554
|
+
Outline.prototype.registerProvider = function(priority, provider) {
|
|
7555
|
+
if (!provider) {
|
|
7556
|
+
provider = priority;
|
|
7557
|
+
priority = DEFAULT_PRIORITY$3;
|
|
7558
|
+
}
|
|
7559
|
+
|
|
7560
|
+
this._eventBus.on('outline.getProviders', priority, function(event) {
|
|
7561
|
+
event.providers.push(provider);
|
|
7562
|
+
});
|
|
7563
|
+
};
|
|
7564
|
+
|
|
7565
|
+
/**
|
|
7566
|
+
* Returns the registered outline providers.
|
|
7567
|
+
*
|
|
7568
|
+
* @returns {OutlineProvider[]}
|
|
7569
|
+
*/
|
|
7570
|
+
Outline.prototype._getProviders = function() {
|
|
7571
|
+
var event = this._eventBus.createEvent({
|
|
7572
|
+
type: 'outline.getProviders',
|
|
7573
|
+
providers: []
|
|
7574
|
+
});
|
|
7575
|
+
|
|
7576
|
+
this._eventBus.fire(event);
|
|
7090
7577
|
|
|
7578
|
+
return event.providers;
|
|
7091
7579
|
};
|
|
7092
7580
|
|
|
7581
|
+
/**
|
|
7582
|
+
* Returns the outline for an element.
|
|
7583
|
+
*
|
|
7584
|
+
* @param {Element} element
|
|
7585
|
+
**/
|
|
7586
|
+
Outline.prototype.getOutline = function(element) {
|
|
7587
|
+
var outline;
|
|
7588
|
+
var providers = this._getProviders();
|
|
7589
|
+
|
|
7590
|
+
forEach$1(providers, function(provider) {
|
|
7591
|
+
|
|
7592
|
+
if (!isFunction(provider.getOutline)) {
|
|
7593
|
+
return;
|
|
7594
|
+
}
|
|
7595
|
+
|
|
7596
|
+
outline = outline || provider.getOutline(element);
|
|
7597
|
+
});
|
|
7598
|
+
|
|
7599
|
+
return outline;
|
|
7600
|
+
};
|
|
7093
7601
|
|
|
7094
7602
|
Outline.$inject = [ 'eventBus', 'styles', 'elementRegistry' ];
|
|
7095
7603
|
|
|
@@ -7431,8 +7939,8 @@
|
|
|
7431
7939
|
var isSelected = selection.isSelected(element),
|
|
7432
7940
|
isMultiSelect = selection.get().length > 1;
|
|
7433
7941
|
|
|
7434
|
-
// Add to selection if
|
|
7435
|
-
var add =
|
|
7942
|
+
// Add to selection if SHIFT pressed
|
|
7943
|
+
var add = hasSecondaryModifier(event);
|
|
7436
7944
|
|
|
7437
7945
|
if (isSelected && isMultiSelect) {
|
|
7438
7946
|
if (add) {
|
|
@@ -9408,7 +9916,7 @@
|
|
|
9408
9916
|
}
|
|
9409
9917
|
|
|
9410
9918
|
/**
|
|
9411
|
-
* @typedef {import('./index').InjectAnnotated } InjectAnnotated
|
|
9919
|
+
* @typedef {import('./index.js').InjectAnnotated } InjectAnnotated
|
|
9412
9920
|
*/
|
|
9413
9921
|
|
|
9414
9922
|
/**
|
|
@@ -9478,9 +9986,9 @@
|
|
|
9478
9986
|
}
|
|
9479
9987
|
|
|
9480
9988
|
/**
|
|
9481
|
-
* @typedef { import('./index').ModuleDeclaration } ModuleDeclaration
|
|
9482
|
-
* @typedef { import('./index').ModuleDefinition } ModuleDefinition
|
|
9483
|
-
* @typedef { import('./index').InjectorContext } InjectorContext
|
|
9989
|
+
* @typedef { import('./index.js').ModuleDeclaration } ModuleDeclaration
|
|
9990
|
+
* @typedef { import('./index.js').ModuleDefinition } ModuleDefinition
|
|
9991
|
+
* @typedef { import('./index.js').InjectorContext } InjectorContext
|
|
9484
9992
|
*/
|
|
9485
9993
|
|
|
9486
9994
|
/**
|
|
@@ -9583,11 +10091,20 @@
|
|
|
9583
10091
|
};
|
|
9584
10092
|
}
|
|
9585
10093
|
|
|
9586
|
-
|
|
10094
|
+
/**
|
|
10095
|
+
* Instantiate the given type, injecting dependencies.
|
|
10096
|
+
*
|
|
10097
|
+
* @template T
|
|
10098
|
+
*
|
|
10099
|
+
* @param { Function | [...string[], Function ]} type
|
|
10100
|
+
*
|
|
10101
|
+
* @return T
|
|
10102
|
+
*/
|
|
10103
|
+
function instantiate(type) {
|
|
9587
10104
|
const {
|
|
9588
10105
|
fn,
|
|
9589
10106
|
dependencies
|
|
9590
|
-
} = fnDef(
|
|
10107
|
+
} = fnDef(type);
|
|
9591
10108
|
|
|
9592
10109
|
// instantiate var args constructor
|
|
9593
10110
|
const Constructor = Function.prototype.bind.apply(fn, [ null ].concat(dependencies));
|
|
@@ -9595,6 +10112,17 @@
|
|
|
9595
10112
|
return new Constructor();
|
|
9596
10113
|
}
|
|
9597
10114
|
|
|
10115
|
+
/**
|
|
10116
|
+
* Invoke the given function, injecting dependencies. Return the result.
|
|
10117
|
+
*
|
|
10118
|
+
* @template T
|
|
10119
|
+
*
|
|
10120
|
+
* @param { Function | [...string[], Function ]} func
|
|
10121
|
+
* @param { Object } [context]
|
|
10122
|
+
* @param { Object } [locals]
|
|
10123
|
+
*
|
|
10124
|
+
* @return {T} invocation result
|
|
10125
|
+
*/
|
|
9598
10126
|
function invoke(func, context, locals) {
|
|
9599
10127
|
const {
|
|
9600
10128
|
fn,
|
|
@@ -11863,32 +12391,17 @@
|
|
|
11863
12391
|
}
|
|
11864
12392
|
};
|
|
11865
12393
|
|
|
11866
|
-
var objectRefs = {exports: {}};
|
|
11867
|
-
|
|
11868
|
-
var collection = {};
|
|
11869
|
-
|
|
11870
|
-
/**
|
|
11871
|
-
* An empty collection stub. Use {@link RefsCollection.extend} to extend a
|
|
11872
|
-
* collection with ref semantics.
|
|
11873
|
-
*
|
|
11874
|
-
* @class RefsCollection
|
|
11875
|
-
*/
|
|
11876
|
-
|
|
11877
12394
|
/**
|
|
11878
12395
|
* Extends a collection with {@link Refs} aware methods
|
|
11879
12396
|
*
|
|
11880
|
-
* @
|
|
11881
|
-
* @
|
|
11882
|
-
*
|
|
11883
|
-
* @param
|
|
11884
|
-
* @param {Refs} refs instance
|
|
11885
|
-
* @param {Object} property represented by the collection
|
|
11886
|
-
* @param {Object} target object the collection is attached to
|
|
12397
|
+
* @param {Array<Object>} collection
|
|
12398
|
+
* @param {Refs} refs instance
|
|
12399
|
+
* @param {Object} property represented by the collection
|
|
12400
|
+
* @param {Object} target object the collection is attached to
|
|
11887
12401
|
*
|
|
11888
12402
|
* @return {RefsCollection<Object>} the extended array
|
|
11889
12403
|
*/
|
|
11890
12404
|
function extend(collection, refs, property, target) {
|
|
11891
|
-
|
|
11892
12405
|
var inverseProperty = property.inverse;
|
|
11893
12406
|
|
|
11894
12407
|
/**
|
|
@@ -11899,7 +12412,7 @@
|
|
|
11899
12412
|
* @param {Object} element the element to remove
|
|
11900
12413
|
*/
|
|
11901
12414
|
Object.defineProperty(collection, 'remove', {
|
|
11902
|
-
value: function(element) {
|
|
12415
|
+
value: function (element) {
|
|
11903
12416
|
var idx = this.indexOf(element);
|
|
11904
12417
|
if (idx !== -1) {
|
|
11905
12418
|
this.splice(idx, 1);
|
|
@@ -11907,7 +12420,6 @@
|
|
|
11907
12420
|
// unset inverse
|
|
11908
12421
|
refs.unset(element, inverseProperty, target);
|
|
11909
12422
|
}
|
|
11910
|
-
|
|
11911
12423
|
return element;
|
|
11912
12424
|
}
|
|
11913
12425
|
});
|
|
@@ -11920,7 +12432,7 @@
|
|
|
11920
12432
|
* @param {Object} element the element to check for
|
|
11921
12433
|
*/
|
|
11922
12434
|
Object.defineProperty(collection, 'contains', {
|
|
11923
|
-
value: function(element) {
|
|
12435
|
+
value: function (element) {
|
|
11924
12436
|
return this.indexOf(element) !== -1;
|
|
11925
12437
|
}
|
|
11926
12438
|
});
|
|
@@ -11935,12 +12447,9 @@
|
|
|
11935
12447
|
* (possibly moving other elements around)
|
|
11936
12448
|
*/
|
|
11937
12449
|
Object.defineProperty(collection, 'add', {
|
|
11938
|
-
value: function(element, idx) {
|
|
11939
|
-
|
|
12450
|
+
value: function (element, idx) {
|
|
11940
12451
|
var currentIdx = this.indexOf(element);
|
|
11941
|
-
|
|
11942
12452
|
if (typeof idx === 'undefined') {
|
|
11943
|
-
|
|
11944
12453
|
if (currentIdx !== -1) {
|
|
11945
12454
|
// element already in collection (!)
|
|
11946
12455
|
return;
|
|
@@ -11952,14 +12461,12 @@
|
|
|
11952
12461
|
|
|
11953
12462
|
// handle already in collection
|
|
11954
12463
|
if (currentIdx !== -1) {
|
|
11955
|
-
|
|
11956
12464
|
// remove element from currentIdx
|
|
11957
12465
|
this.splice(currentIdx, 1);
|
|
11958
12466
|
}
|
|
11959
12467
|
|
|
11960
12468
|
// add element at idx
|
|
11961
12469
|
this.splice(idx, 0, element);
|
|
11962
|
-
|
|
11963
12470
|
if (currentIdx === -1) {
|
|
11964
12471
|
// set inverse, unless element was
|
|
11965
12472
|
// in collection already
|
|
@@ -11973,69 +12480,53 @@
|
|
|
11973
12480
|
Object.defineProperty(collection, '__refs_collection', {
|
|
11974
12481
|
value: true
|
|
11975
12482
|
});
|
|
11976
|
-
|
|
11977
12483
|
return collection;
|
|
11978
12484
|
}
|
|
11979
12485
|
|
|
11980
|
-
|
|
12486
|
+
/**
|
|
12487
|
+
* Checks if a given collection is extended
|
|
12488
|
+
*
|
|
12489
|
+
* @param {Array<Object>} collection
|
|
12490
|
+
*
|
|
12491
|
+
* @return {boolean}
|
|
12492
|
+
*/
|
|
11981
12493
|
function isExtended(collection) {
|
|
11982
12494
|
return collection.__refs_collection === true;
|
|
11983
12495
|
}
|
|
11984
12496
|
|
|
11985
|
-
collection.extend = extend;
|
|
11986
|
-
|
|
11987
|
-
collection.isExtended = isExtended;
|
|
11988
|
-
|
|
11989
|
-
var Collection = collection;
|
|
11990
|
-
|
|
11991
12497
|
function hasOwnProperty$1(e, property) {
|
|
11992
12498
|
return Object.prototype.hasOwnProperty.call(e, property.name || property);
|
|
11993
12499
|
}
|
|
11994
|
-
|
|
11995
12500
|
function defineCollectionProperty(ref, property, target) {
|
|
11996
|
-
|
|
11997
|
-
var collection = Collection.extend(target[property.name] || [], ref, property, target);
|
|
11998
|
-
|
|
12501
|
+
var collection = extend(target[property.name] || [], ref, property, target);
|
|
11999
12502
|
Object.defineProperty(target, property.name, {
|
|
12000
12503
|
enumerable: property.enumerable,
|
|
12001
12504
|
value: collection
|
|
12002
12505
|
});
|
|
12003
|
-
|
|
12004
12506
|
if (collection.length) {
|
|
12005
|
-
|
|
12006
|
-
collection.forEach(function(o) {
|
|
12507
|
+
collection.forEach(function (o) {
|
|
12007
12508
|
ref.set(o, property.inverse, target);
|
|
12008
12509
|
});
|
|
12009
12510
|
}
|
|
12010
12511
|
}
|
|
12011
|
-
|
|
12012
|
-
|
|
12013
12512
|
function defineProperty$1(ref, property, target) {
|
|
12014
|
-
|
|
12015
12513
|
var inverseProperty = property.inverse;
|
|
12016
|
-
|
|
12017
12514
|
var _value = target[property.name];
|
|
12018
|
-
|
|
12019
12515
|
Object.defineProperty(target, property.name, {
|
|
12020
12516
|
configurable: property.configurable,
|
|
12021
12517
|
enumerable: property.enumerable,
|
|
12022
|
-
|
|
12023
|
-
get: function() {
|
|
12518
|
+
get: function () {
|
|
12024
12519
|
return _value;
|
|
12025
12520
|
},
|
|
12026
|
-
|
|
12027
|
-
set: function(value) {
|
|
12028
|
-
|
|
12521
|
+
set: function (value) {
|
|
12029
12522
|
// return if we already performed all changes
|
|
12030
12523
|
if (value === _value) {
|
|
12031
12524
|
return;
|
|
12032
12525
|
}
|
|
12033
|
-
|
|
12034
12526
|
var old = _value;
|
|
12035
12527
|
|
|
12036
12528
|
// temporary set null
|
|
12037
12529
|
_value = null;
|
|
12038
|
-
|
|
12039
12530
|
if (old) {
|
|
12040
12531
|
ref.unset(old, inverseProperty, target);
|
|
12041
12532
|
}
|
|
@@ -12047,7 +12538,6 @@
|
|
|
12047
12538
|
ref.set(_value, inverseProperty, target);
|
|
12048
12539
|
}
|
|
12049
12540
|
});
|
|
12050
|
-
|
|
12051
12541
|
}
|
|
12052
12542
|
|
|
12053
12543
|
/**
|
|
@@ -12093,16 +12583,14 @@
|
|
|
12093
12583
|
*
|
|
12094
12584
|
* wheels[0].car // undefined
|
|
12095
12585
|
*/
|
|
12096
|
-
function Refs
|
|
12097
|
-
|
|
12098
|
-
|
|
12099
|
-
return new Refs$1(a, b);
|
|
12586
|
+
function Refs(a, b) {
|
|
12587
|
+
if (!(this instanceof Refs)) {
|
|
12588
|
+
return new Refs(a, b);
|
|
12100
12589
|
}
|
|
12101
12590
|
|
|
12102
12591
|
// link
|
|
12103
12592
|
a.inverse = b;
|
|
12104
12593
|
b.inverse = a;
|
|
12105
|
-
|
|
12106
12594
|
this.props = {};
|
|
12107
12595
|
this.props[a.name] = a;
|
|
12108
12596
|
this.props[b.name] = b;
|
|
@@ -12117,43 +12605,34 @@
|
|
|
12117
12605
|
* @param {Object} target
|
|
12118
12606
|
* @param {String} property
|
|
12119
12607
|
*/
|
|
12120
|
-
Refs
|
|
12608
|
+
Refs.prototype.bind = function (target, property) {
|
|
12121
12609
|
if (typeof property === 'string') {
|
|
12122
12610
|
if (!this.props[property]) {
|
|
12123
12611
|
throw new Error('no property <' + property + '> in ref');
|
|
12124
12612
|
}
|
|
12125
12613
|
property = this.props[property];
|
|
12126
12614
|
}
|
|
12127
|
-
|
|
12128
12615
|
if (property.collection) {
|
|
12129
12616
|
defineCollectionProperty(this, property, target);
|
|
12130
12617
|
} else {
|
|
12131
12618
|
defineProperty$1(this, property, target);
|
|
12132
12619
|
}
|
|
12133
12620
|
};
|
|
12134
|
-
|
|
12135
|
-
Refs$1.prototype.ensureRefsCollection = function(target, property) {
|
|
12136
|
-
|
|
12621
|
+
Refs.prototype.ensureRefsCollection = function (target, property) {
|
|
12137
12622
|
var collection = target[property.name];
|
|
12138
|
-
|
|
12139
|
-
if (!Collection.isExtended(collection)) {
|
|
12623
|
+
if (!isExtended(collection)) {
|
|
12140
12624
|
defineCollectionProperty(this, property, target);
|
|
12141
12625
|
}
|
|
12142
|
-
|
|
12143
12626
|
return collection;
|
|
12144
12627
|
};
|
|
12145
|
-
|
|
12146
|
-
Refs$1.prototype.ensureBound = function(target, property) {
|
|
12628
|
+
Refs.prototype.ensureBound = function (target, property) {
|
|
12147
12629
|
if (!hasOwnProperty$1(target, property)) {
|
|
12148
12630
|
this.bind(target, property);
|
|
12149
12631
|
}
|
|
12150
12632
|
};
|
|
12151
|
-
|
|
12152
|
-
Refs$1.prototype.unset = function(target, property, value) {
|
|
12153
|
-
|
|
12633
|
+
Refs.prototype.unset = function (target, property, value) {
|
|
12154
12634
|
if (target) {
|
|
12155
12635
|
this.ensureBound(target, property);
|
|
12156
|
-
|
|
12157
12636
|
if (property.collection) {
|
|
12158
12637
|
this.ensureRefsCollection(target, property).remove(value);
|
|
12159
12638
|
} else {
|
|
@@ -12161,12 +12640,9 @@
|
|
|
12161
12640
|
}
|
|
12162
12641
|
}
|
|
12163
12642
|
};
|
|
12164
|
-
|
|
12165
|
-
Refs$1.prototype.set = function(target, property, value) {
|
|
12166
|
-
|
|
12643
|
+
Refs.prototype.set = function (target, property, value) {
|
|
12167
12644
|
if (target) {
|
|
12168
12645
|
this.ensureBound(target, property);
|
|
12169
|
-
|
|
12170
12646
|
if (property.collection) {
|
|
12171
12647
|
this.ensureRefsCollection(target, property).add(value);
|
|
12172
12648
|
} else {
|
|
@@ -12175,15 +12651,6 @@
|
|
|
12175
12651
|
}
|
|
12176
12652
|
};
|
|
12177
12653
|
|
|
12178
|
-
var refs = Refs$1;
|
|
12179
|
-
|
|
12180
|
-
objectRefs.exports = refs;
|
|
12181
|
-
|
|
12182
|
-
objectRefs.exports.Collection = collection;
|
|
12183
|
-
|
|
12184
|
-
var objectRefsExports = objectRefs.exports;
|
|
12185
|
-
var Refs = /*@__PURE__*/getDefaultExportFromCjs(objectRefsExports);
|
|
12186
|
-
|
|
12187
12654
|
var parentRefs = new Refs({ name: 'children', enumerable: true, collection: true }, { name: 'parent' }),
|
|
12188
12655
|
labelRefs = new Refs({ name: 'labels', enumerable: true, collection: true }, { name: 'labelTarget' }),
|
|
12189
12656
|
attacherRefs = new Refs({ name: 'attachers', collection: true }, { name: 'host' }),
|
|
@@ -13388,13 +13855,14 @@
|
|
|
13388
13855
|
*
|
|
13389
13856
|
* @param {SVGElement} visual The graphical element.
|
|
13390
13857
|
* @param {ShapeLike} element The shape.
|
|
13858
|
+
* @param {Object} attrs Optional attributes.
|
|
13391
13859
|
*
|
|
13392
13860
|
* @return {SVGElement}
|
|
13393
13861
|
*/
|
|
13394
|
-
GraphicsFactory.prototype.drawShape = function(visual, element) {
|
|
13862
|
+
GraphicsFactory.prototype.drawShape = function(visual, element, attrs = {}) {
|
|
13395
13863
|
var eventBus = this._eventBus;
|
|
13396
13864
|
|
|
13397
|
-
return eventBus.fire('render.shape', { gfx: visual, element
|
|
13865
|
+
return eventBus.fire('render.shape', { gfx: visual, element, attrs });
|
|
13398
13866
|
};
|
|
13399
13867
|
|
|
13400
13868
|
/**
|
|
@@ -13415,13 +13883,14 @@
|
|
|
13415
13883
|
*
|
|
13416
13884
|
* @param {SVGElement} visual The graphical element.
|
|
13417
13885
|
* @param {ConnectionLike} element The connection.
|
|
13886
|
+
* @param {Object} attrs Optional attributes.
|
|
13418
13887
|
*
|
|
13419
13888
|
* @return {SVGElement}
|
|
13420
13889
|
*/
|
|
13421
|
-
GraphicsFactory.prototype.drawConnection = function(visual, element) {
|
|
13890
|
+
GraphicsFactory.prototype.drawConnection = function(visual, element, attrs = {}) {
|
|
13422
13891
|
var eventBus = this._eventBus;
|
|
13423
13892
|
|
|
13424
|
-
return eventBus.fire('render.connection', { gfx: visual, element
|
|
13893
|
+
return eventBus.fire('render.connection', { gfx: visual, element, attrs });
|
|
13425
13894
|
};
|
|
13426
13895
|
|
|
13427
13896
|
/**
|
|
@@ -13998,6 +14467,17 @@
|
|
|
13998
14467
|
this.idProperty = p;
|
|
13999
14468
|
};
|
|
14000
14469
|
|
|
14470
|
+
DescriptorBuilder.prototype.assertNotTrait = function(typeDescriptor) {
|
|
14471
|
+
|
|
14472
|
+
const _extends = typeDescriptor.extends || [];
|
|
14473
|
+
|
|
14474
|
+
if (_extends.length) {
|
|
14475
|
+
throw new Error(
|
|
14476
|
+
`cannot create <${ typeDescriptor.name }> extending <${ typeDescriptor.extends }>`
|
|
14477
|
+
);
|
|
14478
|
+
}
|
|
14479
|
+
};
|
|
14480
|
+
|
|
14001
14481
|
DescriptorBuilder.prototype.assertNotDefined = function(p, name) {
|
|
14002
14482
|
var propertyName = p.name,
|
|
14003
14483
|
definedProperty = this.propertiesByName[propertyName];
|
|
@@ -14016,6 +14496,10 @@
|
|
|
14016
14496
|
|
|
14017
14497
|
DescriptorBuilder.prototype.addTrait = function(t, inherited) {
|
|
14018
14498
|
|
|
14499
|
+
if (inherited) {
|
|
14500
|
+
this.assertNotTrait(t);
|
|
14501
|
+
}
|
|
14502
|
+
|
|
14019
14503
|
var typesByName = this.allTypesByName,
|
|
14020
14504
|
types = this.allTypes;
|
|
14021
14505
|
|
|
@@ -14149,7 +14633,9 @@
|
|
|
14149
14633
|
});
|
|
14150
14634
|
|
|
14151
14635
|
forEach$1(type.extends, bind$2(function(extendsName) {
|
|
14152
|
-
var
|
|
14636
|
+
var extendsNameNs = parseName(extendsName, ns.prefix);
|
|
14637
|
+
|
|
14638
|
+
var extended = this.typeMap[extendsNameNs.name];
|
|
14153
14639
|
|
|
14154
14640
|
extended.traits = extended.traits || [];
|
|
14155
14641
|
extended.traits.push(name);
|
|
@@ -14178,24 +14664,33 @@
|
|
|
14178
14664
|
|
|
14179
14665
|
var self = this;
|
|
14180
14666
|
|
|
14667
|
+
/**
|
|
14668
|
+
* Traverse the selected super type or trait
|
|
14669
|
+
*
|
|
14670
|
+
* @param {String} cls
|
|
14671
|
+
* @param {Boolean} [trait=false]
|
|
14672
|
+
*/
|
|
14673
|
+
function traverse(cls, trait) {
|
|
14674
|
+
var parentNs = parseName(cls, isBuiltIn(cls) ? '' : nsName.prefix);
|
|
14675
|
+
self.mapTypes(parentNs, iterator, trait);
|
|
14676
|
+
}
|
|
14677
|
+
|
|
14181
14678
|
/**
|
|
14182
14679
|
* Traverse the selected trait.
|
|
14183
14680
|
*
|
|
14184
14681
|
* @param {String} cls
|
|
14185
14682
|
*/
|
|
14186
14683
|
function traverseTrait(cls) {
|
|
14187
|
-
return
|
|
14684
|
+
return traverse(cls, true);
|
|
14188
14685
|
}
|
|
14189
14686
|
|
|
14190
14687
|
/**
|
|
14191
|
-
* Traverse the selected super type
|
|
14688
|
+
* Traverse the selected super type
|
|
14192
14689
|
*
|
|
14193
14690
|
* @param {String} cls
|
|
14194
|
-
* @param {Boolean} [trait=false]
|
|
14195
14691
|
*/
|
|
14196
|
-
function traverseSuper(cls
|
|
14197
|
-
|
|
14198
|
-
self.mapTypes(parentNs, iterator, trait);
|
|
14692
|
+
function traverseSuper(cls) {
|
|
14693
|
+
return traverse(cls, false);
|
|
14199
14694
|
}
|
|
14200
14695
|
|
|
14201
14696
|
if (!type) {
|
|
@@ -14278,7 +14773,7 @@
|
|
|
14278
14773
|
throw new TypeError('property name must be a non-empty string');
|
|
14279
14774
|
}
|
|
14280
14775
|
|
|
14281
|
-
var property = this.
|
|
14776
|
+
var property = this.getProperty(target, name);
|
|
14282
14777
|
|
|
14283
14778
|
var propertyName = property && property.name;
|
|
14284
14779
|
|
|
@@ -14289,7 +14784,7 @@
|
|
|
14289
14784
|
if (property) {
|
|
14290
14785
|
delete target[propertyName];
|
|
14291
14786
|
} else {
|
|
14292
|
-
delete target.$attrs[name];
|
|
14787
|
+
delete target.$attrs[stripGlobal(name)];
|
|
14293
14788
|
}
|
|
14294
14789
|
} else {
|
|
14295
14790
|
|
|
@@ -14302,7 +14797,7 @@
|
|
|
14302
14797
|
defineProperty(target, property, value);
|
|
14303
14798
|
}
|
|
14304
14799
|
} else {
|
|
14305
|
-
target.$attrs[name] = value;
|
|
14800
|
+
target.$attrs[stripGlobal(name)] = value;
|
|
14306
14801
|
}
|
|
14307
14802
|
}
|
|
14308
14803
|
};
|
|
@@ -14317,10 +14812,10 @@
|
|
|
14317
14812
|
*/
|
|
14318
14813
|
Properties.prototype.get = function(target, name) {
|
|
14319
14814
|
|
|
14320
|
-
var property = this.
|
|
14815
|
+
var property = this.getProperty(target, name);
|
|
14321
14816
|
|
|
14322
14817
|
if (!property) {
|
|
14323
|
-
return target.$attrs[name];
|
|
14818
|
+
return target.$attrs[stripGlobal(name)];
|
|
14324
14819
|
}
|
|
14325
14820
|
|
|
14326
14821
|
var propertyName = property.name;
|
|
@@ -14374,6 +14869,44 @@
|
|
|
14374
14869
|
this.define(target, '$model', { value: model });
|
|
14375
14870
|
};
|
|
14376
14871
|
|
|
14872
|
+
/**
|
|
14873
|
+
* Return property with the given name on the element.
|
|
14874
|
+
*
|
|
14875
|
+
* @param {any} target
|
|
14876
|
+
* @param {string} name
|
|
14877
|
+
*
|
|
14878
|
+
* @return {object | null} property
|
|
14879
|
+
*/
|
|
14880
|
+
Properties.prototype.getProperty = function(target, name) {
|
|
14881
|
+
|
|
14882
|
+
var model = this.model;
|
|
14883
|
+
|
|
14884
|
+
var property = model.getPropertyDescriptor(target, name);
|
|
14885
|
+
|
|
14886
|
+
if (property) {
|
|
14887
|
+
return property;
|
|
14888
|
+
}
|
|
14889
|
+
|
|
14890
|
+
if (name.includes(':')) {
|
|
14891
|
+
return null;
|
|
14892
|
+
}
|
|
14893
|
+
|
|
14894
|
+
const strict = model.config.strict;
|
|
14895
|
+
|
|
14896
|
+
if (typeof strict !== 'undefined') {
|
|
14897
|
+
const error = new TypeError(`unknown property <${ name }> on <${ target.$type }>`);
|
|
14898
|
+
|
|
14899
|
+
if (strict) {
|
|
14900
|
+
throw error;
|
|
14901
|
+
} else {
|
|
14902
|
+
|
|
14903
|
+
// eslint-disable-next-line no-undef
|
|
14904
|
+
typeof console !== 'undefined' && console.warn(error);
|
|
14905
|
+
}
|
|
14906
|
+
}
|
|
14907
|
+
|
|
14908
|
+
return null;
|
|
14909
|
+
};
|
|
14377
14910
|
|
|
14378
14911
|
function isUndefined(val) {
|
|
14379
14912
|
return typeof val === 'undefined';
|
|
@@ -14388,6 +14921,10 @@
|
|
|
14388
14921
|
});
|
|
14389
14922
|
}
|
|
14390
14923
|
|
|
14924
|
+
function stripGlobal(name) {
|
|
14925
|
+
return name.replace(/^:/, '');
|
|
14926
|
+
}
|
|
14927
|
+
|
|
14391
14928
|
// Moddle implementation /////////////////////////////////////////////////
|
|
14392
14929
|
|
|
14393
14930
|
/**
|
|
@@ -14410,8 +14947,10 @@
|
|
|
14410
14947
|
* var moddle = new Moddle([pkg]);
|
|
14411
14948
|
*
|
|
14412
14949
|
* @param {Array<Package>} packages the packages to contain
|
|
14950
|
+
*
|
|
14951
|
+
* @param { { strict?: boolean } } [config] moddle configuration
|
|
14413
14952
|
*/
|
|
14414
|
-
function Moddle(packages) {
|
|
14953
|
+
function Moddle(packages, config = {}) {
|
|
14415
14954
|
|
|
14416
14955
|
this.properties = new Properties(this);
|
|
14417
14956
|
|
|
@@ -14419,6 +14958,8 @@
|
|
|
14419
14958
|
this.registry = new Registry(packages, this.properties);
|
|
14420
14959
|
|
|
14421
14960
|
this.typeCache = {};
|
|
14961
|
+
|
|
14962
|
+
this.config = config;
|
|
14422
14963
|
}
|
|
14423
14964
|
|
|
14424
14965
|
|
|
@@ -14512,6 +15053,12 @@
|
|
|
14512
15053
|
$type: name,
|
|
14513
15054
|
$instanceOf: function(type) {
|
|
14514
15055
|
return type === this.$type;
|
|
15056
|
+
},
|
|
15057
|
+
get: function(key) {
|
|
15058
|
+
return this[key];
|
|
15059
|
+
},
|
|
15060
|
+
set: function(key, value) {
|
|
15061
|
+
set$2(this, [ key ], value);
|
|
14515
15062
|
}
|
|
14516
15063
|
};
|
|
14517
15064
|
|
|
@@ -14527,6 +15074,8 @@
|
|
|
14527
15074
|
|
|
14528
15075
|
this.properties.defineDescriptor(element, descriptor);
|
|
14529
15076
|
this.properties.defineModel(element, this);
|
|
15077
|
+
this.properties.define(element, 'get', { enumerable: false, writable: true });
|
|
15078
|
+
this.properties.define(element, 'set', { enumerable: false, writable: true });
|
|
14530
15079
|
this.properties.define(element, '$parent', { enumerable: false, writable: true });
|
|
14531
15080
|
this.properties.define(element, '$instanceOf', { enumerable: false, writable: true });
|
|
14532
15081
|
|
|
@@ -23770,7 +24319,7 @@
|
|
|
23770
24319
|
// pinch to zoom is mapped to wheel + ctrlKey = true
|
|
23771
24320
|
// in modern browsers (!)
|
|
23772
24321
|
|
|
23773
|
-
var isZoom = event.ctrlKey;
|
|
24322
|
+
var isZoom = event.ctrlKey || (isMac() && event.metaKey);
|
|
23774
24323
|
|
|
23775
24324
|
var isHorizontalScroll = event.shiftKey;
|
|
23776
24325
|
|