mirror of
https://github.com/sartography/bpmn-js.git
synced 2025-02-22 13:48:16 +00:00
chore(auto-place): adjust to new auto place API
This commit is contained in:
parent
e03a4b2c59
commit
8d583dd91f
@ -8,7 +8,8 @@ import {
|
||||
} from 'diagram-js/lib/layout/LayoutUtil';
|
||||
|
||||
import {
|
||||
deconflictPosition,
|
||||
findFreePosition,
|
||||
generateGetNextPosition,
|
||||
getConnectedDistance
|
||||
} from 'diagram-js/lib/features/auto-place/AutoPlaceUtil';
|
||||
|
||||
@ -46,13 +47,15 @@ export function getFlowNodePosition(source, element) {
|
||||
var sourceTrbl = asTRBL(source);
|
||||
var sourceMid = getMid(source);
|
||||
|
||||
var horizontalDistance = getConnectedDistance(source, 'x', function(connection) {
|
||||
return is(connection, 'bpmn:SequenceFlow');
|
||||
var horizontalDistance = getConnectedDistance(source, {
|
||||
filter: function(connection) {
|
||||
return is(connection, 'bpmn:SequenceFlow');
|
||||
}
|
||||
});
|
||||
|
||||
var orientation = 'left',
|
||||
rowSize = 80,
|
||||
margin = 30;
|
||||
var margin = 30,
|
||||
minDistance = 80,
|
||||
orientation = 'left';
|
||||
|
||||
if (is(source, 'bpmn:BoundaryEvent')) {
|
||||
orientation = getOrientation(source, source.host, -25);
|
||||
@ -62,29 +65,30 @@ export function getFlowNodePosition(source, element) {
|
||||
}
|
||||
}
|
||||
|
||||
function getVerticalDistance(orient) {
|
||||
if (orient.indexOf('top') != -1) {
|
||||
return -1 * rowSize;
|
||||
} else if (orient.indexOf('bottom') != -1) {
|
||||
return rowSize;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
var position = {
|
||||
x: sourceTrbl.right + horizontalDistance + element.width / 2,
|
||||
y: sourceMid.y + getVerticalDistance(orientation)
|
||||
y: sourceMid.y + getVerticalDistance(orientation, minDistance)
|
||||
};
|
||||
|
||||
var escapeDirection = {
|
||||
var nextPositionDirection = {
|
||||
y: {
|
||||
margin: margin,
|
||||
rowSize: rowSize
|
||||
minDistance: minDistance
|
||||
}
|
||||
};
|
||||
|
||||
return deconflictPosition(source, element, position, escapeDirection);
|
||||
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
|
||||
}
|
||||
|
||||
|
||||
function getVerticalDistance(orientation, minDistance) {
|
||||
if (orientation.indexOf('top') != -1) {
|
||||
return -1 * minDistance;
|
||||
} else if (orientation.indexOf('bottom') != -1) {
|
||||
return minDistance;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -100,14 +104,14 @@ export function getTextAnnotationPosition(source, element) {
|
||||
y: sourceTrbl.top - 50 - element.height / 2
|
||||
};
|
||||
|
||||
var escapeDirection = {
|
||||
var nextPositionDirection = {
|
||||
y: {
|
||||
margin: -30,
|
||||
rowSize: 20
|
||||
minDistance: 20
|
||||
}
|
||||
};
|
||||
|
||||
return deconflictPosition(source, element, position, escapeDirection);
|
||||
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
|
||||
}
|
||||
|
||||
|
||||
@ -123,12 +127,12 @@ export function getDataElementPosition(source, element) {
|
||||
y: sourceTrbl.bottom + 40 + element.width / 2
|
||||
};
|
||||
|
||||
var escapeDirection = {
|
||||
var nextPositionDirection = {
|
||||
x: {
|
||||
margin: 30,
|
||||
rowSize: 30
|
||||
minDistance: 30
|
||||
}
|
||||
};
|
||||
|
||||
return deconflictPosition(source, element, position, escapeDirection);
|
||||
return findFreePosition(source, element, position, generateGetNextPosition(nextPositionDirection));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user