core-graphics
Version:
A core library for creating shape-based graphic editors
99 lines (85 loc) • 3.71 kB
JavaScript
'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);
}