Merge pull request #3139 from qinfchen/master

Add typings for sigmajs v1.0.3
This commit is contained in:
Masahiro Wakame
2014-11-14 10:50:06 +09:00
2 changed files with 252 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
/// <reference path="sigmajs.d.ts"/>
module SigmaJsTests {
var container = document.createElement("sigma");
var settings = new sigma.classes.configurable({
autoResize: true,
autoRescale: true
})
var s = new sigma({
settings: settings
});
s.addRenderer({
type: 'canvas',
container: container
});
var N = 100;
var E = 500;
// Generate a random graph:
for (var i = 0; i < N; i++) {
s.graph.addNode({
id: 'n' + i,
label: 'Node ' + i,
x: Math.random(),
y: Math.random(),
size: Math.random(),
color: '#666'
});
}
for (var j = 0; j < E; j++) {
s.graph.addEdge({
id: 'e' + j,
source: 'n' + Math.floor(Math.random() * N),
target: 'n' + Math.floor(Math.random() * N),
size: Math.random(),
color: '#ccc'
});
}
sigma.plugins.dragNodes(s, s.renderers[0]);
s.renderers[0].resize();
s.refresh();
}
+208
View File
@@ -0,0 +1,208 @@
// 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/borisyankov/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
declare module SigmaJs{
interface Classes {
configurable: Configurable;
graph: Graph;
}
interface Configurable {
new(setting: Settings): Configurable;
new(settings: Settings[]): Configurable;
(key: string): string;
}
interface DragNodes {
(sigma: Sigma, renderer: Renderer): DragNodes;
}
interface Edge {
color?: string;
id: string;
size?: number;
source: string;
target: string;
}
interface Graph {
addEdge(edge: Edge): Graph;
addNode(node: Node): Graph;
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 Node {
color?: string;
id: string;
label?: string;
size?: number;
x?: number;
y?: number;
}
interface Plugins {
dragNodes: DragNodes;
}
interface Renderer {
refresh(): Sigma;
render(): Sigma;
resize(): Sigma;
}
interface RendererConfigs{
container?: Element;
id?: string;
type?: string;
}
interface Sigma {
addRenderer(): Renderer;
addRenderer(configs: RendererConfigs): Renderer;
graph: Graph;
killRenderer(renderer: string): Sigma;
killRenderer(renderer: Renderer): Sigma;
kill(): void;
refresh(): void;
renderers: Renderer[];
}
interface SigmaConfigs {
container?: Element;
graph?: Graph;
id?: string;
renderers?: Renderer[];
settings?: Configurable;
}
interface SigmaFactory {
new(): Sigma;
new(container: string): Sigma;
new(container: Element): Sigma;
new(configuration: SigmaConfigs): Sigma;
classes:Classes;
plugins: Plugins;
}
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;
labelColor?: string;
labelSize?: string;
labelSizeRatio?: string;
labelThreshold?: string;
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?: boolean;
enableCamera?: boolean;
enableHovering?: boolean;
enableEdgeHovering?: boolean;
edgeHoverPrecision?: number;
rescaleIgnoreSize?: boolean;
skipErrors?: boolean;
// Camera settings
nodesPowRatio?: number;
edgesPowRatio?: number;
// Animation settings
animationsTime?: number;
}
}
declare var sigma: SigmaJs.SigmaFactory;