UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

99 lines (85 loc) 3.71 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getShapeMoveEvent = getShapeMoveEvent; exports.getShapesMoveEvent = getShapesMoveEvent; exports.getShapesRemoveEvent = getShapesRemoveEvent; exports.getShapesScaleEvent = getShapesScaleEvent; exports.getShapesChangeOrderEvent = getShapesChangeOrderEvent; var _historyEvent = require('./history-event'); var _transform = require('../utils/transform'); function getShapeMoveEvent(delta, shapeData) { var dx = delta.dx; var dy = delta.dy; return (0, _historyEvent.shapeUpdateEvent)(shapeData.id, (0, _transform.moveShapeKeyPoints)({ dx: dx, dy: dy }, shapeData)); } function getShapesMoveEvent(delta, shapesData) { var dx = delta.dx; var dy = delta.dy; var events = shapesData.map(function (shapeData, index) { return (0, _historyEvent.shapeUpdateEvent)(shapeData.id, (0, _transform.moveShapeKeyPoints)({ dx: dx, dy: dy }, shapeData)); }); return (0, _historyEvent.historyEventsGroup)(events); } function getShapesRemoveEvent(ids) { if (ids.length === 1) { var id = ids[0]; return (0, _historyEvent.shapeRemoveEvent)(id); } var events = ids.map(function (id) { return (0, _historyEvent.shapeRemoveEvent)(id); }); return (0, _historyEvent.historyEventsGroup)(events); } function getShapesScaleEvent(params) { var shapesData = params.shapesData; var ids = params.ids; var pOrigin = params.pOrigin; var pStart = params.pStart; var pEnd = params.pEnd; var proportional = params.proportional; var minWidth = params.minWidth; var minHeight = params.minHeight; var oX = pOrigin.x; var oY = pOrigin.y; if (ids.length === 1) { var id = ids[0]; var shapeData = shapesData[id]; var _oX = pOrigin.x; var _oY = pOrigin.y; var _getResizeCoeffs = (0, _transform.getResizeCoeffs)({ pOrigin: pOrigin, pEnd: pEnd, pStart: pStart, proportional: proportional, minWidth: minWidth, minHeight: minHeight }); var _kx = _getResizeCoeffs.kx; var _ky = _getResizeCoeffs.ky; return (0, _historyEvent.shapeUpdateEvent)(id, (0, _transform.scaleShapeKeyPoints)({ oX: _oX, oY: _oY }, { kx: _kx, ky: _ky }, shapeData)); } var _getResizeCoeffs2 = (0, _transform.getResizeCoeffs)({ pOrigin: pOrigin, pEnd: pEnd, pStart: pStart, proportional: proportional, minWidth: minWidth, minHeight: minHeight }); var kx = _getResizeCoeffs2.kx; var ky = _getResizeCoeffs2.ky; var events = ids.map(function (id, index) { return (0, _historyEvent.shapeUpdateEvent)(id, (0, _transform.scaleShapeKeyPoints)({ oX: oX, oY: oY }, { kx: kx, ky: ky }, shapesData[id])); }); return (0, _historyEvent.historyEventsGroup)(events); } function getShapesChangeOrderEvent(params) { var shapesIds = params.shapesIds; var relative = params.relative; var value = params.value; var shapesOrder = params.shapesOrder; if (shapesIds.length === 1) { return (0, _historyEvent.shapeChangeOrderEvent)({ shapeId: shapesIds[0], relative: relative, value: value }); } // move them, preserving order var orderedIds = shapesOrder.filter(function (id) { return shapesIds.filter(function (x) { return x === id; }).length > 0; }); // FIXME if (!relative && value === 0 || relative && value > 0) { orderedIds = orderedIds.reverse(); } var events = orderedIds.map(function (shapeId, index) { return (0, _historyEvent.shapeChangeOrderEvent)({ shapeId: shapeId, relative: relative, value: value }); }); return (0, _historyEvent.historyEventsGroup)(events); }