force-graph-vis
Version:
基于D3.js的知识图谱可视化解决方案
198 lines (173 loc) • 6.5 kB
TypeScript
import { anyFunction, LooseObject, GraphDataNode, GraphDataLink, GraphData, injectValue, plugin } from './common';
import GraphOptions from './options';
import Main from './main';
import Event from './event';
import Events from './events'; // 需要和Event区分一下
import * as Forces from './forces';
import PluginSystem from './plugin-system';
import Render from './render';
import Simulation from './simulation';
import Util from './util';
import EventBus, { on, emit } from './event-bus';
// 插件
import bezierCurveController from './plugins/bezier-curve-controller';
import colorPalette from './plugins/color-palette';
import colorType from './plugins/color-type';
import highlight from './plugins/highlight';
import layoutForce from './plugins/layout-force';
import layoutLayer from './plugins/layout-layer';
import layoutRing from './plugins/layout-ring';
import occlusionDetection from './plugins/occlusion-detection';
import rectSelection from './plugins/rect-selection';
import selector from './plugins/selector';
import toolHelper from './plugins/tool-helper';
import dynamicLoadData from './plugins/dynamic-load-data';
import LockNode from './plugins/lock-node';
declare class ForceGraphVis {
[key: string]: any;
static version?: number; // 版本号
constructor(options: GraphOptions); //构造函数
setOptions: Main.setOptions;
initGraph: Main.initGraph;
render: Main.render;
start: Main.start;
reset: Main.reset;
resize: Main.resize;
destroy: Main.destroy;
// 事件
event: EventBus;
eventEmitter: EventBus;
eventBus: EventBus;
bus: EventBus;
$bus: EventBus;
on: on;
emit: emit;
// 实例属性
data: GraphData; // 数据
domWrap: HTMLDivElement; // 外部dom容器
dom: HTMLDivElement; // 内部自己创建的dom容器
width: number; // dom的宽度
height: number; // dom的高度
isStop: boolean; // 是否停止
isDestroy: boolean; // 是否销毁
isDrag: boolean; // 是否在拖拽
isTicking: boolean; // 是否在力学模拟tick
// highlightNodes: GraphDataNode[]; // 高亮节点
// highlightLinks: GraphDataLink[]; // 高亮边
plugins: LooseObject;
// 插件
injectProperty: PluginSystem.injectProperty;
injectFunction: PluginSystem.injectFunction;
injectObject: PluginSystem.injectObject;
inject: PluginSystem.inject;
injectHooks: PluginSystem.injectHooks;
use: PluginSystem.use;
getPluginOptions: PluginSystem.getPluginOptions;
// 事件
compatMouseEvent: Event.compatMouseEvent;
compatClickEvent: Event.compatClickEvent;
addZoomEvent: Event.addZoomEvent;
zoom: Event.zoom;
zoomTo: Event.zoomTo;
zoomIn: Event.zoomIn;
zoomOut: Event.zoomOut;
transformTo: Event.transformTo;
translateTo: Event.translateTo;
dragstarted: Event.dragstarted;
dragged: Event.dragged;
dragended: Event.dragended;
addNodeEvent: Event.addNodeEvent;
addLinkEvent: Event.addLinkEvent;
dragstartedCanvas: Event.dragstartedCanvas;
draggedCanvas: Event.draggedCanvas;
dragendedCanvas: Event.dragendedCanvas;
addNodeEventCanvas: Event.addNodeEventCanvas;
// 渲染svg
arrowDefs: Render.arrowDefs;
createDefs: Render.createDefs;
createLinks: Render.createLinks;
createNodes: Render.createNodes;
createSvg: Render.createSvg;
drawLink: Render.drawLink;
drawNode: Render.drawNode;
// 渲染svg
createCanvas: Render.createCanvas;
refresh: Render.refresh;
// 模拟器
tickNum: Simulation.tickNum; // tick次数
tickTimeStart: Simulation.tickTimeStart; // tick开始时间
simulation: Simulation.simulation; // 模拟器对象
initSimulation: Simulation.initSimulation;
startSimulation: Simulation.startSimulation;
stopSimulation: Simulation.stopSimulation;
ticked: Simulation.ticked;
// 工具
util: {
arcPath: Util.arcPath;
bezierCurveCoord: Util.bezierCurveCoord;
getProportion: Util.getProportion;
bezierPath: Util.bezierPath;
couldBeClass: Util.couldBeClass;
GraphCreator: Util.GraphCreator;
layoutLayerData: Util.layoutLayerData;
layoutLayerCoord: Util.layoutLayerCoord;
layoutRingCoord: Util.layoutRingCoord;
linkCoord: Util.linkCoord;
OcclusionDetection: Util.OcclusionDetection;
straightPath: Util.straightPath;
};
// 插件
polylinesGroup: bezierCurveController.polylinesGroup;
circle2sGroup: bezierCurveController.circle2sGroup;
circle3sGroup: bezierCurveController.circle3sGroup;
createBezierCurve: bezierCurveController.createBezierCurve;
dragBezierControlPoints: bezierCurveController.dragBezierControlPoints;
hiddenControlPoints: bezierCurveController.hiddenControlPoints;
onClickBezierControl: bezierCurveController.onClickBezierControl;
tickedBezierControl: bezierCurveController.tickedBezierControl;
updateBezierPath: bezierCurveController.updateBezierPath;
color: colorPalette.color;
nodeColor: colorPalette.nodeColor;
linkColor: colorPalette.linkColor;
colorType: colorType;
setHighlightStep: highlight.setHighlightStep;
setHighlight: highlight.setHighlight;
resetHighlight: highlight.resetHighlight;
pureHighlight: highlight.pureHighlight;
isConnected: highlight.isConnected;
light: highlight.light;
dark: highlight.dark;
flyLine: highlight.flyLine;
layoutForce: layoutForce.layoutForce;
layoutLayer: layoutLayer.layoutLayer;
layoutRing: layoutRing.layoutRing;
startOD: occlusionDetection.startOD;
stopOD: occlusionDetection.stopOD;
updateData: dynamicLoadData.updateData;
clear: dynamicLoadData.clear;
getNodeById: dynamicLoadData.getNodeById;
getLinkById: dynamicLoadData.getLinkById;
deleteNodeById: dynamicLoadData.deleteNodeById;
deleteLinkById: dynamicLoadData.deleteLinkById;
brush: rectSelection.brush;
brushArea: rectSelection.brushArea;
activeRectSelection: rectSelection.activeRectSelection;
deactivatedRectSelection: rectSelection.deactivatedRectSelection;
brushstarted: rectSelection.brushstarted;
brushing: rectSelection.brushing;
brushended: rectSelection.brushended;
handleBrush: rectSelection.handleBrush;
lockNode: LockNode.lockNode; // 锁定节点
drawLock: LockNode.drawLock;
setLock: LockNode.setLock;
removeLock: LockNode.removeLock;
graphSelector: selector.graphSelector;
findLinkedRoute: selector.findLinkedRoute;
random: toolHelper.random;
$sleep: toolHelper.$sleep;
}
export default ForceGraphVis;
declare let util: any;
declare let plugin: any;
declare let Constants: any;
export { util, plugin, Events, Constants, Forces };