UNPKG

vmes-flowable

Version:

ceshibao

54 lines (37 loc) 1.24 kB
import { forEach } from 'min-dash'; /** * A handler that align elements in a certain way. * */ export default function AlignElements(modeling, canvas) { this._modeling = modeling; this._canvas = canvas; } AlignElements.$inject = [ 'modeling', 'canvas' ]; AlignElements.prototype.preExecute = function(context) { var modeling = this._modeling; var elements = context.elements, alignment = context.alignment; forEach(elements, function(element) { var delta = { x: 0, y: 0 }; if (alignment.left) { delta.x = alignment.left - element.x; } else if (alignment.right) { delta.x = (alignment.right - element.width) - element.x; } else if (alignment.center) { delta.x = (alignment.center - Math.round(element.width / 2)) - element.x; } else if (alignment.top) { delta.y = alignment.top - element.y; } else if (alignment.bottom) { delta.y = (alignment.bottom - element.height) - element.y; } else if (alignment.middle) { delta.y = (alignment.middle - Math.round(element.height / 2)) - element.y; } modeling.moveElements([ element ], delta, element.parent); }); }; AlignElements.prototype.postExecute = function(context) { };