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