@gorpacrate/core-graphics
Version:
A core library for creating shape-based graphic editors
94 lines • 3.28 kB
JavaScript
;
exports.__esModule = true;
var tslib_1 = require("tslib");
var invariant = require("invariant");
var modes_1 = require("../declarations/modes");
var draw_1 = require("../editor-state/reducer/draw");
var data_1 = require("../utils/data");
tslib_1.__exportStar(require("../declarations/modes"), exports);
function isShapeSelected(mode, id) {
return (modes_1.isSelectedMode(mode) && data_1.hasInArr(id, mode.payload.ids));
}
exports.isShapeSelected = isShapeSelected;
function hasSelectedShapes(mode) {
return (modes_1.isSelectedMode(mode) || modes_1.isMovingMode(mode) || modes_1.isResizingMode(mode));
}
exports.hasSelectedShapes = hasSelectedShapes;
function getSelectedShapesIds(mode) {
if (modes_1.isSelectedMode(mode)) {
return mode.payload.ids;
}
if (modes_1.isResizingMode(mode)) {
return mode.payload.ids;
}
if (modes_1.isMovingMode(mode)) {
return mode.payload.ids;
}
return [];
}
exports.getSelectedShapesIds = getSelectedShapesIds;
function getRubberBandSelectedShapes(mode) {
if (modes_1.isRubberBandSelectionMode(mode)) {
return mode.payload.newlySelectedShapes.concat(mode.payload.previouslySelectedShapes);
}
return [];
}
exports.getRubberBandSelectedShapes = getRubberBandSelectedShapes;
function hasSubSelectedShape(mode) {
return (modes_1.isSubSelectedMode(mode));
}
exports.hasSubSelectedShape = hasSubSelectedShape;
function getSubSelectedShapeId(mode) {
if (modes_1.isSubSelectedMode(mode)) {
return mode.payload.id;
}
return undefined;
}
exports.getSubSelectedShapeId = getSubSelectedShapeId;
function isShapeBeingDrawn(mode) {
return (modes_1.isDrawingShapeMode(mode) && (mode.payload.drawing === true));
}
exports.isShapeBeingDrawn = isShapeBeingDrawn;
function getDrawnShapeId(mode) {
if (!isShapeBeingDrawn(mode)) {
return undefined;
}
return draw_1.DRAWN_SHAPE_ID;
}
exports.getDrawnShapeId = getDrawnShapeId;
function getMovedShapesIds(mode) {
if (modes_1.isMovingMode(mode)) {
return mode.payload.ids;
}
return invariant(false, 'not in moving mode');
}
exports.getMovedShapesIds = getMovedShapesIds;
function hasShapesBeingTransformed(mode) {
return (modes_1.isMovingMode(mode) || modes_1.isResizingMode(mode));
}
exports.hasShapesBeingTransformed = hasShapesBeingTransformed;
function getTransformedShapeIds(mode) {
if (modes_1.isMovingMode(mode)) {
return mode.payload.ids;
}
if (modes_1.isResizingMode(mode)) {
return mode.payload.ids;
}
return [];
}
exports.getTransformedShapeIds = getTransformedShapeIds;
function getVerboseModeInfo(mode) {
return {
selectedShapes: hasSelectedShapes(mode),
selectedShapesIds: getSelectedShapesIds(mode),
rubberBandSelectedShapesIds: getRubberBandSelectedShapes(mode),
subSelectedShape: hasSubSelectedShape(mode),
subSelectedShapeId: getSubSelectedShapeId(mode),
drawingShape: isShapeBeingDrawn(mode),
drawnShapeId: getDrawnShapeId(mode),
transformingShapes: hasShapesBeingTransformed(mode),
transformedShapesIds: getTransformedShapeIds(mode)
};
}
exports.getVerboseModeInfo = getVerboseModeInfo;
//# sourceMappingURL=modes.js.map