@gorpacrate/core-graphics
Version:
A core library for creating shape-based graphic editors
57 lines • 3.34 kB
JavaScript
"use strict";
exports.__esModule = true;
var transform_1 = require("../utils/transform");
var history_event_1 = require("./history-event");
function getShapeMoveEvent(delta, shapeData) {
var dx = delta.dx, dy = delta.dy;
return history_event_1.shapeUpdateEvent(shapeData.id, transform_1.moveShapeKeyPoints({ dx: dx, dy: dy }, shapeData));
}
exports.getShapeMoveEvent = getShapeMoveEvent;
function getShapesMoveEvent(delta, shapesData) {
var dx = delta.dx, dy = delta.dy;
var events = shapesData.map(function (shapeData) { return history_event_1.shapeUpdateEvent(shapeData.id, transform_1.moveShapeKeyPoints({
dx: dx,
dy: dy
}, shapeData)); });
return history_event_1.historyEventsGroup(events);
}
exports.getShapesMoveEvent = getShapesMoveEvent;
function getShapesRemoveEvent(ids) {
if (ids.length === 1) {
var id = ids[0];
return history_event_1.shapeRemoveEvent(id);
}
var events = ids.map(function (id) { return history_event_1.shapeRemoveEvent(id); });
return history_event_1.historyEventsGroup(events);
}
exports.getShapesRemoveEvent = getShapesRemoveEvent;
function getShapesScaleEvent(params) {
var shapesData = params.shapesData, ids = params.ids, pOrigin = params.pOrigin, pStart = params.pStart, pEnd = params.pEnd, proportional = params.proportional, minWidth = params.minWidth, minHeight = params.minHeight;
var oX = pOrigin.x, oY = pOrigin.y;
if (ids.length === 1) {
var id = ids[0];
var shapeData = shapesData[id];
var noX = pOrigin.x, noY = pOrigin.y;
var resizeCoeffs = transform_1.getResizeCoeffs({ pOrigin: pOrigin, pEnd: pEnd, pStart: pStart, proportional: proportional, minWidth: minWidth, minHeight: minHeight });
return history_event_1.shapeUpdateEvent(id, transform_1.scaleShapeKeyPoints({ oX: noX, oY: noY }, { kx: resizeCoeffs.kx, ky: resizeCoeffs.ky }, shapeData));
}
var _a = transform_1.getResizeCoeffs({ pOrigin: pOrigin, pEnd: pEnd, pStart: pStart, proportional: proportional, minWidth: minWidth, minHeight: minHeight }), kx = _a.kx, ky = _a.ky;
var events = ids.map(function (id) { return history_event_1.shapeUpdateEvent(id, transform_1.scaleShapeKeyPoints({ oX: oX, oY: oY }, { kx: kx, ky: ky }, shapesData[id])); });
return history_event_1.historyEventsGroup(events);
}
exports.getShapesScaleEvent = getShapesScaleEvent;
function getShapesChangeOrderEvent(params) {
var shapesIds = params.shapesIds, relative = params.relative, value = params.value, shapesOrder = params.shapesOrder;
if (shapesIds.length === 1) {
return history_event_1.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) { return (history_event_1.shapeChangeOrderEvent({ shapeId: shapeId, relative: relative, value: value })); });
return history_event_1.historyEventsGroup(events);
}
exports.getShapesChangeOrderEvent = getShapesChangeOrderEvent;
//# sourceMappingURL=history-events-wrappers.js.map