force-graph-vis
Version:
基于D3.js的知识图谱可视化解决方案
68 lines (62 loc) • 1.95 kB
TypeScript
import { anyFunction, LooseObject, GraphDataNode, GraphDataLink, GraphData, injectValue, plugin } from './common';
// 事件
declare namespace PluginSystem {
/**
* @function injectProperty
* @function injectFunction
* @description 绑定属性/方法到实例中
* @param {string} key 绑定的key名
* @param {any} value 绑定的value值
* @param {boolean} [forceInject]
*/
interface injectProperty {
(key: string, value: injectValue, forceInject: boolean): any;
}
interface injectFunction {
(key: string, value: injectValue, forceInject: boolean): any;
}
/**
* @function injectObject
* @function inject
* @description 绑定对象的属性/方法到实例上
* @param object 需要被绑定的对象
*/
interface injectObject {
(object: LooseObject): any;
}
interface inject {
(object: LooseObject): any;
}
/**
* @function injectHooks
* @description 绑定事件钩子
* @param hooksObject
*/
interface injectHooks {
(hooksObject: LooseObject): any;
}
/**
* @function use
* @description 将对象里的属性/方法绑定到实例,将逐渐替换掉inject方法
* @param {object} plugin 需要被注入的对象
* @param {function} [plugin.install] 如有install方法则运行,让插件自定义注入
* @param {Class|function} plugin 如果是一个类,install方法为必选,会自动调用
* @param {string} [compactFuncName] 兼容第二个参数是函数名的情况
* @return this
*/
interface use {
(plugin: plugin, compactFuncName?: any): any;
}
/**
* @function getPluginOptions
* @description 获取插件的配置
* @param {string} plugin 插件名字
* @param {object} plugin 插件实例
* @param {string} plugin.name 插件实例
* @return {any} 插件配置
*/
interface getPluginOptions {
(plugin: plugin | string): LooseObject;
}
}
export default PluginSystem;