UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

42 lines (34 loc) 1.49 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.snapCoordToGrid = snapCoordToGrid; exports.snapCoordsIfNeeded = snapCoordsIfNeeded; exports.snapEditorInputEventCoordsIfNeeded = snapEditorInputEventCoordsIfNeeded; var _icepick = require('icepick'); var i = _interopRequireWildcard(_icepick); var _editorEvents = require('../editor-state/editor-events'); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } function snapCoordToGrid(size, x) { return Math.round(x / size) * size; } function snapCoordsIfNeeded(gridState, coords) { var on = gridState.on; var size = gridState.size; if (!on) { return coords; } var x = coords.x; var y = coords.y; return i.merge(coords, { x: snapCoordToGrid(size, x), y: snapCoordToGrid(size, y) }); } function snapEditorInputEventCoordsIfNeeded(gridState, ev) { if ((0, _editorEvents.isMouseDownEvent)(ev) || (0, _editorEvents.isMouseUpEvent)(ev) || (0, _editorEvents.isMouseMoveEvent)(ev) || (0, _editorEvents.isMouseEnterEvent)(ev) || (0, _editorEvents.isMouseLeaveEvent)(ev)) { var snappedPayload = snapCoordsIfNeeded(gridState, ev.payload); return i.assoc(ev, 'payload', snappedPayload); } return ev; }