jstd-web/node_modules/diagram-js/lib/layout/BaseLayouter.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-11-25 15:23:22 +08:00
/**
* @typedef {import('../model').Base} Base
* @typedef {import('../model').Connection} Connection
*
* @typedef {import('../util').Point} Point
*/
import {
getMid
} from './LayoutUtil';
/**
* A base connection layouter implementation
* that layouts the connection by directly connecting
* mid(source) + mid(target).
*/
export default function BaseLayouter() {}
/**
* Return the new layouted waypoints for the given connection.
*
* The connection passed is still unchanged; you may figure out about
* the new connection start / end via the layout hints provided.
*
* @param {Connection} connection
* @param {Object} [hints]
* @param {Point} [hints.connectionStart]
* @param {Point} [hints.connectionEnd]
* @param {Base} [hints.source]
* @param {Base} [hints.target]
*
* @return {Point[]} The waypoints of the laid out connection.
*/
BaseLayouter.prototype.layoutConnection = function(connection, hints) {
hints = hints || {};
return [
hints.connectionStart || getMid(hints.source || connection.source),
hints.connectionEnd || getMid(hints.target || connection.target)
];
};