sigma
Version:
A JavaScript library aimed at visualizing graphs of thousands of nodes and edges.
120 lines (113 loc) • 3.56 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var index = require('../../dist/index-88310d0d.cjs.dev.js');
var data = require('../../dist/data-24ae515b.cjs.dev.js');
require('../../dist/inherits-04acba6b.cjs.dev.js');
require('../../dist/colors-fe6de9d2.cjs.dev.js');
/**
* Sigma.js Settings
* =================================
*
* The list of settings and some handy functions.
* @module
*/
/**
* Sigma.js settings
* =================================
*/
var DEFAULT_SETTINGS = {
// Performance
hideEdgesOnMove: false,
hideLabelsOnMove: false,
renderLabels: true,
renderEdgeLabels: false,
enableEdgeEvents: false,
// Component rendering
defaultNodeColor: "#999",
defaultNodeType: "circle",
defaultEdgeColor: "#ccc",
defaultEdgeType: "line",
labelFont: "Arial",
labelSize: 14,
labelWeight: "normal",
labelColor: {
color: "#000"
},
edgeLabelFont: "Arial",
edgeLabelSize: 14,
edgeLabelWeight: "normal",
edgeLabelColor: {
attribute: "color"
},
stagePadding: 30,
defaultDrawEdgeLabel: index.drawStraightEdgeLabel,
defaultDrawNodeLabel: index.drawDiscNodeLabel,
defaultDrawNodeHover: index.drawDiscNodeHover,
minEdgeThickness: 1.7,
antiAliasingFeather: 1,
// Mouse and touch settings
dragTimeout: 100,
draggedEventsTolerance: 3,
inertiaDuration: 200,
inertiaRatio: 3,
zoomDuration: 250,
zoomingRatio: 1.7,
doubleClickTimeout: 300,
doubleClickZoomingRatio: 2.2,
doubleClickZoomingDuration: 200,
tapMoveTolerance: 10,
// Size and scaling
zoomToSizeRatioFunction: Math.sqrt,
itemSizesReference: "screen",
autoRescale: true,
autoCenter: true,
// Labels
labelDensity: 1,
labelGridCellSize: 100,
labelRenderedSizeThreshold: 6,
// Reducers
nodeReducer: null,
edgeReducer: null,
// Features
zIndex: false,
minCameraRatio: null,
maxCameraRatio: null,
enableCameraZooming: true,
enableCameraPanning: true,
enableCameraRotation: true,
cameraPanBoundaries: null,
// Lifecycle
allowInvalidContainer: false,
// Program classes
nodeProgramClasses: {},
nodeHoverProgramClasses: {},
edgeProgramClasses: {}
};
var DEFAULT_NODE_PROGRAM_CLASSES = {
circle: index.NodeCircleProgram
};
var DEFAULT_EDGE_PROGRAM_CLASSES = {
arrow: index.EdgeArrowProgram,
line: index.EdgeRectangleProgram
};
function validateSettings(settings) {
if (typeof settings.labelDensity !== "number" || settings.labelDensity < 0) {
throw new Error("Settings: invalid `labelDensity`. Expecting a positive number.");
}
var minCameraRatio = settings.minCameraRatio,
maxCameraRatio = settings.maxCameraRatio;
if (typeof minCameraRatio === "number" && typeof maxCameraRatio === "number" && maxCameraRatio < minCameraRatio) {
throw new Error("Settings: invalid camera ratio boundaries. Expecting `maxCameraRatio` to be greater than `minCameraRatio`.");
}
}
function resolveSettings(settings) {
var resolvedSettings = data.assign({}, DEFAULT_SETTINGS, settings);
resolvedSettings.nodeProgramClasses = data.assign({}, DEFAULT_NODE_PROGRAM_CLASSES, resolvedSettings.nodeProgramClasses);
resolvedSettings.edgeProgramClasses = data.assign({}, DEFAULT_EDGE_PROGRAM_CLASSES, resolvedSettings.edgeProgramClasses);
return resolvedSettings;
}
exports.DEFAULT_EDGE_PROGRAM_CLASSES = DEFAULT_EDGE_PROGRAM_CLASSES;
exports.DEFAULT_NODE_PROGRAM_CLASSES = DEFAULT_NODE_PROGRAM_CLASSES;
exports.DEFAULT_SETTINGS = DEFAULT_SETTINGS;
exports.resolveSettings = resolveSettings;
exports.validateSettings = validateSettings;