Add types for sigma
This commit is contained in:
parent
bdac72fb9d
commit
7aba50fef3
1 changed files with 313 additions and 0 deletions
313
frontend/src/sigma.d.ts
vendored
Normal file
313
frontend/src/sigma.d.ts
vendored
Normal file
|
@ -0,0 +1,313 @@
|
||||||
|
// Type definitions for sigma.js v1.0.3
|
||||||
|
// Project: https://github.com/jacomyal/sigma.js
|
||||||
|
// Definitions by: Qinfeng Chen <https://github.com/qinfchen>
|
||||||
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||||
|
|
||||||
|
declare namespace SigmaJs{
|
||||||
|
interface Animation {
|
||||||
|
camera(camera: Camera, target: { [index: string]: any }, options: { [index: string]: any }): number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Camera {
|
||||||
|
angle: number;
|
||||||
|
cameraPosition(x: number, y:number): {x: number; y: number};
|
||||||
|
goTo(settings: { [index: string]: any }): void;
|
||||||
|
graphPosition(x: number, y:number): {x: number; y: number};
|
||||||
|
ratio: number;
|
||||||
|
readPrefix: string;
|
||||||
|
settings(setting: string) : any;
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Canvas {
|
||||||
|
edges: {[renderType: string]: (edge: Edge, source: Node, target: Node, ...a:any[]) => void};
|
||||||
|
labels: {[renderType: string]: (node: Node, ...a:any[]) => void};
|
||||||
|
nodes: {[renderType: string]: (node: Node, ...a:any[]) => void};
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Classes {
|
||||||
|
configurable: Configurable;
|
||||||
|
graph: Graph;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Configurable {
|
||||||
|
new(setting: Settings): Configurable;
|
||||||
|
new(settings: Settings[]): Configurable;
|
||||||
|
(key: string): string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface CustomShapes {
|
||||||
|
init(sigma: Sigma): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DragNodes {
|
||||||
|
(sigma: Sigma, renderer: Renderer): DragNodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Edge {
|
||||||
|
[key : string] : any;
|
||||||
|
color?: string;
|
||||||
|
id: string;
|
||||||
|
size?: number;
|
||||||
|
source: string;
|
||||||
|
target: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface JsonParser {
|
||||||
|
(target: string, sigma: Sigma, callback: (graph: Sigma) => void): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GexfParser {
|
||||||
|
(target: string, sigma: Sigma, callback: (graph: Sigma) => void): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Graph {
|
||||||
|
addEdge(edge: Edge): Graph;
|
||||||
|
addNode(node: Node): Graph;
|
||||||
|
addMethod(name: string, method: (input: any) => any): void;
|
||||||
|
clear(): Graph;
|
||||||
|
degree(id: string): number;
|
||||||
|
degree(id: string, type: string): number;
|
||||||
|
degree(ids: string[]): number[];
|
||||||
|
degree(ids: string[], type: string): number[];
|
||||||
|
dropEdge(id: string): Graph;
|
||||||
|
dropNode(id: string): Graph;
|
||||||
|
edges(): Edge[];
|
||||||
|
edges(id: string): Edge;
|
||||||
|
edges(ids: string[]): Edge[];
|
||||||
|
kill(): Graph;
|
||||||
|
nodes(): Node[];
|
||||||
|
nodes(id: string): Node;
|
||||||
|
nodes(ids: string[]): Node[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GraphData {
|
||||||
|
edges: Edge[];
|
||||||
|
nodes: Node[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Image {
|
||||||
|
clip?: number;
|
||||||
|
scale?: number;
|
||||||
|
url?: string;
|
||||||
|
x?: number;
|
||||||
|
y?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Miscellaneous {
|
||||||
|
animation: Animation;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Node {
|
||||||
|
[key : string] : any;
|
||||||
|
color?: string;
|
||||||
|
id: string;
|
||||||
|
image?: any;
|
||||||
|
label?: string;
|
||||||
|
size?: number;
|
||||||
|
type?: string;
|
||||||
|
x?: number;
|
||||||
|
y?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Parsers {
|
||||||
|
json: JsonParser;
|
||||||
|
gexf: GexfParser;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Plugins {
|
||||||
|
dragNodes: DragNodes;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Renderer {
|
||||||
|
container: HTMLElement;
|
||||||
|
refresh(): Sigma;
|
||||||
|
render(): Sigma;
|
||||||
|
resize(): Sigma;
|
||||||
|
settings(settings: Settings): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RendererConfigs{
|
||||||
|
container?: Element;
|
||||||
|
id?: string;
|
||||||
|
type?: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface ShapeLibrary {
|
||||||
|
enumerate(): any;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Sigma {
|
||||||
|
addRenderer(): Renderer;
|
||||||
|
addRenderer(configs: RendererConfigs): Renderer;
|
||||||
|
bind(event: string, callback: (e: any) => void): void;
|
||||||
|
cameras: Camera[];
|
||||||
|
graph: Graph;
|
||||||
|
killRenderer(renderer: string): Sigma;
|
||||||
|
killRenderer(renderer: Renderer): Sigma;
|
||||||
|
kill(): void;
|
||||||
|
refresh(): void;
|
||||||
|
renderers: Renderer[];
|
||||||
|
settings(key: string): any;
|
||||||
|
settings(settings: Settings): void;
|
||||||
|
|
||||||
|
// forceAtlas2 layout
|
||||||
|
configForceAtlas2(configs: { [key: string]: any }): void;
|
||||||
|
isForceAtlas2Running(): boolean;
|
||||||
|
killForceAtlas2(): void;
|
||||||
|
startForceAtlas2(): void;
|
||||||
|
startForceAtlas2(configs: { [key: string]: any }): void;
|
||||||
|
stopForceAtlas2(): void;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SigmaConfigs {
|
||||||
|
container?: Element;
|
||||||
|
graph?: GraphData;
|
||||||
|
id?: string;
|
||||||
|
renderers?: Renderer[];
|
||||||
|
settings?: { [index: string]: any };
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SigmaFactory {
|
||||||
|
new(): Sigma;
|
||||||
|
new(container: string): Sigma;
|
||||||
|
new(container: Element): Sigma;
|
||||||
|
new(configuration: SigmaConfigs): Sigma;
|
||||||
|
canvas: Canvas;
|
||||||
|
classes:Classes;
|
||||||
|
misc: Miscellaneous;
|
||||||
|
parsers: Parsers;
|
||||||
|
plugins: Plugins;
|
||||||
|
svg: SVG;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Settings {
|
||||||
|
// Graph settings
|
||||||
|
clone?: boolean;
|
||||||
|
immutable?: boolean;
|
||||||
|
verbose?: boolean;
|
||||||
|
|
||||||
|
// Renderers settings
|
||||||
|
defaultNodeType?: string;
|
||||||
|
defaultEdgeType?: string;
|
||||||
|
defaultLabelColor?: string;
|
||||||
|
defaultEdgeColor?: string;
|
||||||
|
defaultNodeColor?: string;
|
||||||
|
defaultLabelSize?: string;
|
||||||
|
edgeColor?: string;
|
||||||
|
minArrowSize?: number;
|
||||||
|
font?: string;
|
||||||
|
fontStyle?: string;
|
||||||
|
labelAlignment?: string;
|
||||||
|
labelColor?: string;
|
||||||
|
labelSize?: string;
|
||||||
|
labelSizeRatio?: string;
|
||||||
|
labelThreshold?: number;
|
||||||
|
webglOversamplingRatio?: number;
|
||||||
|
|
||||||
|
// hovered node customizations
|
||||||
|
borderSize?: number;
|
||||||
|
defaultNodeBorderColor?: string;
|
||||||
|
hoverFont?: number;
|
||||||
|
hoverFontStyle?: string;
|
||||||
|
labelHoverShadow?: string;
|
||||||
|
labelHoverShadowColor?: string;
|
||||||
|
nodeHoverColor?: string;
|
||||||
|
defaultNodeHoverColor?: string;
|
||||||
|
labelHoverBGColor?: string;
|
||||||
|
defaultHoverLabelBGColor?: string;
|
||||||
|
labelHoverColor?: string;
|
||||||
|
defaultLabelHoverColor?: string;
|
||||||
|
singleHover?: boolean;
|
||||||
|
|
||||||
|
// hovered edge customizations
|
||||||
|
edgeHoverColor?: string;
|
||||||
|
edgeHoverSizeRatio?: number;
|
||||||
|
defaultEdgeHoverColor?: string;
|
||||||
|
edgeHoverExtremities?: boolean;
|
||||||
|
|
||||||
|
// Draw settings for labels, edges, and nodes
|
||||||
|
drawLabels?: boolean;
|
||||||
|
drawEdges?: boolean;
|
||||||
|
drawNodes?: boolean;
|
||||||
|
|
||||||
|
// Batch edge drawing
|
||||||
|
batchEdgesDrawing?: boolean;
|
||||||
|
hideEdgesOnMove?: boolean;
|
||||||
|
canvasEdgesBatchSize?: number;
|
||||||
|
webglEdgesBatchSize?: number;
|
||||||
|
|
||||||
|
// Rescale settings
|
||||||
|
scalingMode?: string;
|
||||||
|
sideMargin?: number;
|
||||||
|
|
||||||
|
// max/min node and edge size
|
||||||
|
minEdgeSize?: number;
|
||||||
|
maxEdgeSize?: number;
|
||||||
|
minNodeSize?: number;
|
||||||
|
maxNodeSize?: number;
|
||||||
|
|
||||||
|
// Captor settings
|
||||||
|
touchEnabled?: boolean;
|
||||||
|
mouseEnabled?: boolean;
|
||||||
|
mouseWheelEnabled?: boolean;
|
||||||
|
doubleClickEnabled?: boolean;
|
||||||
|
eventsEnabled?: boolean;
|
||||||
|
zoomingRatio?: number;
|
||||||
|
doubleClickZoomingRatio?: number;
|
||||||
|
zoomMin?: number;
|
||||||
|
zoomMax?: number;
|
||||||
|
mouseZoomDuration?: number;
|
||||||
|
doubleClickZoomDuration?: number;
|
||||||
|
mouseInertiaDuration?: number;
|
||||||
|
mouseInertiaRatio?: number;
|
||||||
|
touchInertiaDuration?: number;
|
||||||
|
touchInertiaRatio?: number;
|
||||||
|
doubleClickTimeout?: number;
|
||||||
|
doubleTapTimeout?: number;
|
||||||
|
dragTimeout?: number;
|
||||||
|
|
||||||
|
// Global settings
|
||||||
|
autoResize?: boolean;
|
||||||
|
autoRescale?: any;
|
||||||
|
enableCamera?: boolean;
|
||||||
|
enableHovering?: boolean;
|
||||||
|
enableEdgeHovering?: boolean;
|
||||||
|
edgeHoverPrecision?: number;
|
||||||
|
rescaleIgnoreSize?: boolean;
|
||||||
|
skipErrors?: boolean;
|
||||||
|
|
||||||
|
// Camera settings
|
||||||
|
nodesPowRatio?: number;
|
||||||
|
edgesPowRatio?: number;
|
||||||
|
|
||||||
|
// Animation settings
|
||||||
|
animationsTime?: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVG {
|
||||||
|
edges: {
|
||||||
|
labels: SVGEdgeLabels;
|
||||||
|
[renderType: string]: SVGObject<SigmaJs.Edge> | SVGEdgeLabels;
|
||||||
|
};
|
||||||
|
labels: {[renderType: string]: SVGObject<SigmaJs.Node>};
|
||||||
|
nodes: {[renderType: string]: SVGObject<SigmaJs.Node>};
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGEdgeLabels {
|
||||||
|
[renderType: string]: SVGObject<SigmaJs.Edge>;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SVGObject<T> {
|
||||||
|
create: (object: T, ...a:any[]) => Element;
|
||||||
|
update: (object: T, ...a:any[]) => void;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'sigma' {
|
||||||
|
declare var sigma: SigmaJs.SigmaFactory;
|
||||||
|
declare var CustomShapes: SigmaJs.CustomShapes;
|
||||||
|
declare var ShapeLibrary: SigmaJs.CustomShapes;
|
||||||
|
}
|
||||||
|
|
Reference in a new issue