Standa Lukeš
4 years ago
1 changed files with 313 additions and 0 deletions
@ -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 new issue