UNPKG

react-planner-viewer

Version:

react-planner-viewer is a React Component for view plans builded with react-planner in 2D mode

31 lines (27 loc) 3.48 kB
function getEdgesOfSubgraphs(subgraphs, graph) { var edges = []; subgraphs.forEach(function (component) { edges.push([]); var vertices = getVerticesFromBiconnectedComponent(component); var inserted = []; vertices.forEach(function (vertex) { var adjacents = graph.adj[vertex]; adjacents.forEach(function (adj) { if (vertex <= adj && vertices.has(adj)) { edges[edges.length - 1].push([vertex, adj]); } }); }); }); return edges; } function getVerticesFromBiconnectedComponent(component) { var vertices = new Set(); component.forEach(function (edge) { vertices.add(edge.u); vertices.add(edge.v); }); return vertices; } module.exports = getEdgesOfSubgraphs; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9nZXQtZWRnZXMtb2Ytc3ViZ3JhcGhzLmpzIl0sIm5hbWVzIjpbImdldEVkZ2VzT2ZTdWJncmFwaHMiLCJzdWJncmFwaHMiLCJncmFwaCIsImVkZ2VzIiwiZm9yRWFjaCIsInB1c2giLCJ2ZXJ0aWNlcyIsImdldFZlcnRpY2VzRnJvbUJpY29ubmVjdGVkQ29tcG9uZW50IiwiY29tcG9uZW50IiwiaW5zZXJ0ZWQiLCJhZGphY2VudHMiLCJhZGoiLCJ2ZXJ0ZXgiLCJoYXMiLCJsZW5ndGgiLCJTZXQiLCJhZGQiLCJlZGdlIiwidSIsInYiLCJtb2R1bGUiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxtQkFBVCxDQUE2QkMsU0FBN0IsRUFBd0NDLEtBQXhDLEVBQStDOztBQUUzQyxRQUFJQyxRQUFRLEVBQVo7O0FBRUFGLGNBQVVHLE9BQVYsQ0FBa0IscUJBQWE7QUFDM0JELGNBQU1FLElBQU4sQ0FBVyxFQUFYO0FBQ0EsWUFBSUMsV0FBV0Msb0NBQW9DQyxTQUFwQyxDQUFmO0FBQ0EsWUFBSUMsV0FBVyxFQUFmO0FBQ0FILGlCQUFTRixPQUFULENBQWlCLGtCQUFVO0FBQ3ZCLGdCQUFJTSxZQUFZUixNQUFNUyxHQUFOLENBQVVDLE1BQVYsQ0FBaEI7QUFDQUYsc0JBQVVOLE9BQVYsQ0FBa0IsZUFBTztBQUNyQixvQkFBSVEsVUFBVUQsR0FBVixJQUFpQkwsU0FBU08sR0FBVCxDQUFhRixHQUFiLENBQXJCLEVBQXdDO0FBQ3BDUiwwQkFBTUEsTUFBTVcsTUFBTixHQUFlLENBQXJCLEVBQXdCVCxJQUF4QixDQUE2QixDQUFDTyxNQUFELEVBQVFELEdBQVIsQ0FBN0I7QUFDSDtBQUNKLGFBSkQ7QUFLSCxTQVBEO0FBUUgsS0FaRDtBQWFBLFdBQU9SLEtBQVA7QUFFSDs7QUFFRCxTQUFTSSxtQ0FBVCxDQUE2Q0MsU0FBN0MsRUFBd0Q7QUFDcEQsUUFBSUYsV0FBVyxJQUFJUyxHQUFKLEVBQWY7QUFDQVAsY0FBVUosT0FBVixDQUFrQixnQkFBUTtBQUN0QkUsaUJBQVNVLEdBQVQsQ0FBYUMsS0FBS0MsQ0FBbEI7QUFDQVosaUJBQVNVLEdBQVQsQ0FBYUMsS0FBS0UsQ0FBbEI7QUFDSCxLQUhEO0FBSUEsV0FBT2IsUUFBUDtBQUNIOztBQUVEYyxPQUFPQyxPQUFQLEdBQWlCckIsbUJBQWpCIiwiZmlsZSI6ImdldC1lZGdlcy1vZi1zdWJncmFwaHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBnZXRFZGdlc09mU3ViZ3JhcGhzKHN1YmdyYXBocywgZ3JhcGgpIHtcblxuICAgIGxldCBlZGdlcyA9IFtdO1xuXG4gICAgc3ViZ3JhcGhzLmZvckVhY2goY29tcG9uZW50ID0+IHtcbiAgICAgICAgZWRnZXMucHVzaChbXSk7XG4gICAgICAgIGxldCB2ZXJ0aWNlcyA9IGdldFZlcnRpY2VzRnJvbUJpY29ubmVjdGVkQ29tcG9uZW50KGNvbXBvbmVudCk7XG4gICAgICAgIGxldCBpbnNlcnRlZCA9IFtdO1xuICAgICAgICB2ZXJ0aWNlcy5mb3JFYWNoKHZlcnRleCA9PiB7XG4gICAgICAgICAgICBsZXQgYWRqYWNlbnRzID0gZ3JhcGguYWRqW3ZlcnRleF07XG4gICAgICAgICAgICBhZGphY2VudHMuZm9yRWFjaChhZGogPT4ge1xuICAgICAgICAgICAgICAgIGlmICh2ZXJ0ZXggPD0gYWRqICYmIHZlcnRpY2VzLmhhcyhhZGopKSB7XG4gICAgICAgICAgICAgICAgICAgIGVkZ2VzW2VkZ2VzLmxlbmd0aCAtIDFdLnB1c2goW3ZlcnRleCxhZGpdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGVkZ2VzO1xuXG59XG5cbmZ1bmN0aW9uIGdldFZlcnRpY2VzRnJvbUJpY29ubmVjdGVkQ29tcG9uZW50KGNvbXBvbmVudCkge1xuICAgIGxldCB2ZXJ0aWNlcyA9IG5ldyBTZXQoKTtcbiAgICBjb21wb25lbnQuZm9yRWFjaChlZGdlID0+IHtcbiAgICAgICAgdmVydGljZXMuYWRkKGVkZ2UudSk7XG4gICAgICAgIHZlcnRpY2VzLmFkZChlZGdlLnYpO1xuICAgIH0pO1xuICAgIHJldHVybiB2ZXJ0aWNlcztcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBnZXRFZGdlc09mU3ViZ3JhcGhzO1xuIl19