@foblex/flow
Version:
An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.
22 lines • 4.53 kB
JavaScript
import { EFConnectableSide } from '../../../f-connectors';
export function fixedOutboundBehavior(payload) {
return {
point1: _getPosition(payload.outputRect, payload.outputSide === EFConnectableSide.AUTO ? EFConnectableSide.BOTTOM : payload.outputSide),
point2: _getPosition(payload.inputRect, payload.inputSide === EFConnectableSide.AUTO ? EFConnectableSide.TOP : payload.inputSide)
};
}
function _getPosition(rect, side) {
switch (side) {
case EFConnectableSide.TOP:
return { x: rect.x + rect.width / 2, y: rect.y };
case EFConnectableSide.BOTTOM:
return { x: rect.x + rect.width / 2, y: rect.y + rect.height };
case EFConnectableSide.LEFT:
return { x: rect.x, y: rect.y + rect.height / 2 };
case EFConnectableSide.RIGHT:
return { x: rect.x + rect.width, y: rect.y + rect.height / 2 };
default:
throw new Error(`Unknown side: ${side}`);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtb3V0Ym91bmQtYmVoYXZpb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3Rpb24vY2FsY3VsYXRlLWNvbm5lY3Rpb24tbGluZS1ieS1iZWhhdmlvci9maXhlZC1vdXRib3VuZC1iZWhhdmlvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBaUQ7SUFDckYsT0FBTztRQUNMLE1BQU0sRUFBRSxZQUFZLENBQ2xCLE9BQU8sQ0FBQyxVQUFVLEVBQ2xCLE9BQU8sQ0FBQyxVQUFVLEtBQUssaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQzlGO1FBQ0QsTUFBTSxFQUFFLFlBQVksQ0FDbEIsT0FBTyxDQUFDLFNBQVMsRUFDakIsT0FBTyxDQUFDLFNBQVMsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDekY7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLElBQVcsRUFBRSxJQUF1QjtJQUN4RCxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2IsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25ELEtBQUssaUJBQWlCLENBQUMsTUFBTTtZQUMzQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pFLEtBQUssaUJBQWlCLENBQUMsSUFBSTtZQUN6QixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNwRCxLQUFLLGlCQUFpQixDQUFDLEtBQUs7WUFDMUIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqRTtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWtCLElBQUssRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJTGluZSwgSVBvaW50LCBJUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbkxpbmVCeUJlaGF2aW9yUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24tbGluZS1ieS1iZWhhdmlvci5yZXF1ZXN0JztcbmltcG9ydCB7IEVGQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZpeGVkT3V0Ym91bmRCZWhhdmlvcihwYXlsb2FkOiBDYWxjdWxhdGVDb25uZWN0aW9uTGluZUJ5QmVoYXZpb3JSZXF1ZXN0KTogSUxpbmUge1xuICByZXR1cm4ge1xuICAgIHBvaW50MTogX2dldFBvc2l0aW9uKFxuICAgICAgcGF5bG9hZC5vdXRwdXRSZWN0LFxuICAgICAgcGF5bG9hZC5vdXRwdXRTaWRlID09PSBFRkNvbm5lY3RhYmxlU2lkZS5BVVRPID8gRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NIDogcGF5bG9hZC5vdXRwdXRTaWRlXG4gICAgKSxcbiAgICBwb2ludDI6IF9nZXRQb3NpdGlvbihcbiAgICAgIHBheWxvYWQuaW5wdXRSZWN0LFxuICAgICAgcGF5bG9hZC5pbnB1dFNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkFVVE8gPyBFRkNvbm5lY3RhYmxlU2lkZS5UT1AgOiBwYXlsb2FkLmlucHV0U2lkZVxuICAgIClcbiAgfTtcbn1cblxuZnVuY3Rpb24gX2dldFBvc2l0aW9uKHJlY3Q6IElSZWN0LCBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSk6IElQb2ludCB7XG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgcmV0dXJuIHsgeDogcmVjdC54ICsgcmVjdC53aWR0aCAvIDIsIHk6IHJlY3QueSB9O1xuICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIHsgeDogcmVjdC54ICsgcmVjdC53aWR0aCAvIDIsIHk6IHJlY3QueSArIHJlY3QuaGVpZ2h0IH07XG4gICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUOlxuICAgICAgcmV0dXJuIHsgeDogcmVjdC54LCB5OiByZWN0LnkgKyByZWN0LmhlaWdodCAvIDIgfTtcbiAgICBjYXNlIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUOlxuICAgICAgcmV0dXJuIHsgeDogcmVjdC54ICsgcmVjdC53aWR0aCwgeTogcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyIH07XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBzaWRlOiAkeyBzaWRlIH1gKTtcbiAgfVxufVxuXG5cblxuXG4iXX0=