@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
34 lines (33 loc) • 1.22 kB
JavaScript
import { connectWorker } from "@reactodia/worker-proxy/protocol";
import { blockingDefaultLayout, colaForceLayout, colaFlowLayout, colaRemoveOverlaps } from "./layout-sync.js";
class DefaultLayouts {
/**
* Default layout algorithm, the same as {@link blockingDefaultLayout}
* but non-blocking due to being run in a worker.
*
* @see {@link blockingDefaultLayout}
*/
defaultLayout = async (graph, state, options) => {
return blockingDefaultLayout(graph, state, options);
};
/**
* Force-directed layout algorithm from [cola.js](https://ialab.it.monash.edu/webcola/).
*/
forceLayout = async (graph, state, options) => {
return Promise.resolve(colaForceLayout(graph, state, options));
};
/**
* Flow layout algorithm from [cola.js](https://ialab.it.monash.edu/webcola/).
*/
flowLayout = async (graph, state, options) => {
return Promise.resolve(colaFlowLayout(graph, state, options));
};
/**
* Remove overlaps algorithm from [cola.js](https://ialab.it.monash.edu/webcola/).
*/
removeOverlaps = async (graph, state) => {
return Promise.resolve(colaRemoveOverlaps(state));
};
}
connectWorker(DefaultLayouts);
//# sourceMappingURL=layout.worker.js.map