UNPKG

diagram-js

Version:

A toolbox for displaying and modifying diagrams on the web

50 lines (39 loc) 1.09 kB
/** * @typedef {import('../../../core/EventBus').default} EventBus * @typedef {import('../../grid-snapping/GridSnapping').default} GridSnapping */ var HIGH_PRIORITY = 2000; /** * Integrates space tool with grid snapping. * * @param {EventBus} eventBus * @param {GridSnapping} gridSnapping */ export default function SpaceToolBehavior(eventBus, gridSnapping) { eventBus.on([ 'spaceTool.move', 'spaceTool.end' ], HIGH_PRIORITY, function(event) { var context = event.context; if (!context.initialized) { return; } var axis = context.axis; var snapped; if (axis === 'x') { // snap delta x to multiple of 10 snapped = gridSnapping.snapValue(event.dx); event.x = event.x + snapped - event.dx; event.dx = snapped; } else { // snap delta y to multiple of 10 snapped = gridSnapping.snapValue(event.dy); event.y = event.y + snapped - event.dy; event.dy = snapped; } }); } SpaceToolBehavior.$inject = [ 'eventBus', 'gridSnapping' ];