UNPKG

sigma

Version:

A JavaScript library aimed at visualizing graphs of thousands of nodes and edges.

112 lines (107 loc) 3.42 kB
import { d as drawStraightEdgeLabel, b as drawDiscNodeLabel, c as drawDiscNodeHover, N as NodeCircleProgram, E as EdgeArrowProgram, e as EdgeRectangleProgram } from '../../dist/index-236c62ad.esm.js'; import { a as assign } from '../../dist/data-11df7124.esm.js'; import '../../dist/inherits-d1a1e29b.esm.js'; import '../../dist/colors-beb06eb2.esm.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: drawStraightEdgeLabel, defaultDrawNodeLabel: drawDiscNodeLabel, defaultDrawNodeHover: 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: NodeCircleProgram }; var DEFAULT_EDGE_PROGRAM_CLASSES = { arrow: EdgeArrowProgram, line: 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 = assign({}, DEFAULT_SETTINGS, settings); resolvedSettings.nodeProgramClasses = assign({}, DEFAULT_NODE_PROGRAM_CLASSES, resolvedSettings.nodeProgramClasses); resolvedSettings.edgeProgramClasses = assign({}, DEFAULT_EDGE_PROGRAM_CLASSES, resolvedSettings.edgeProgramClasses); return resolvedSettings; } export { DEFAULT_EDGE_PROGRAM_CLASSES, DEFAULT_NODE_PROGRAM_CLASSES, DEFAULT_SETTINGS, resolveSettings, validateSettings };