UNPKG

core-graphics

Version:

A core library for creating shape-based graphic editors

45 lines (37 loc) 1.8 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getShapesSelectedWithRubberBand = getShapesSelectedWithRubberBand; exports.getResultingRubberBandSelectedShapes = getResultingRubberBandSelectedShapes; var _boundingBox = require('../utils/bounding-box'); function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } function getShapesSelectedWithRubberBand(payload) { var pStart = payload.pStart; var pEnd = payload.pEnd; var shapesData = payload.shapesData; var shapesDeclarations = payload.shapesDeclarations; var indexedBoundingBoxes = shapesData.map(function (shapeData) { var id = shapeData.id; var type = shapeData.type; return { id: id, bb: shapesDeclarations[type].getBoundingBox(shapeData) }; }); var rubberBandBB = (0, _boundingBox.getBoundingBoxFromTwoPoints)(pStart, pEnd); return indexedBoundingBoxes.filter(function (_ref) { var bb = _ref.bb; return (0, _boundingBox.doBoundingBoxesCollide)(rubberBandBB, bb); }).map(function (_ref2) { var id = _ref2.id; return id; }); } function getResultingRubberBandSelectedShapes(payload) { if (!payload) { return []; } var _payload$newlySelecte = payload.newlySelectedShapes; var newlySelectedShapes = _payload$newlySelecte === undefined ? [] : _payload$newlySelecte; var _payload$previouslySe = payload.previouslySelectedShapes; var previouslySelectedShapes = _payload$previouslySe === undefined ? [] : _payload$previouslySe; return [].concat(_toConsumableArray(previouslySelectedShapes), _toConsumableArray(newlySelectedShapes)); }