UNPKG

sigma

Version:

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

83 lines (82 loc) 3.36 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveSettings = exports.validateSettings = exports.DEFAULT_EDGE_PROGRAM_CLASSES = exports.DEFAULT_NODE_PROGRAM_CLASSES = exports.DEFAULT_SETTINGS = void 0; var utils_1 = require("./utils"); var label_1 = __importDefault(require("./rendering/canvas/label")); var hover_1 = __importDefault(require("./rendering/canvas/hover")); var edge_label_1 = __importDefault(require("./rendering/canvas/edge-label")); var node_fast_1 = __importDefault(require("./rendering/webgl/programs/node.fast")); var edge_1 = __importDefault(require("./rendering/webgl/programs/edge")); var edge_arrow_1 = __importDefault(require("./rendering/webgl/programs/edge.arrow")); exports.DEFAULT_SETTINGS = { // Performance hideEdgesOnMove: false, hideLabelsOnMove: false, renderLabels: true, renderEdgeLabels: false, enableEdgeClickEvents: false, enableEdgeWheelEvents: false, enableEdgeHoverEvents: 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, // Labels labelDensity: 1, labelGridCellSize: 100, labelRenderedSizeThreshold: 6, // Reducers nodeReducer: null, edgeReducer: null, // Features zIndex: false, minCameraRatio: null, maxCameraRatio: null, // Renderers labelRenderer: label_1.default, hoverRenderer: hover_1.default, edgeLabelRenderer: edge_label_1.default, // Lifecycle allowInvalidContainer: false, // Program classes nodeProgramClasses: {}, nodeHoverProgramClasses: {}, edgeProgramClasses: {}, }; exports.DEFAULT_NODE_PROGRAM_CLASSES = { circle: node_fast_1.default, }; exports.DEFAULT_EDGE_PROGRAM_CLASSES = { arrow: edge_arrow_1.default, line: edge_1.default, }; 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`."); } } exports.validateSettings = validateSettings; function resolveSettings(settings) { var resolvedSettings = (0, utils_1.assign)({}, exports.DEFAULT_SETTINGS, settings); resolvedSettings.nodeProgramClasses = (0, utils_1.assign)({}, exports.DEFAULT_NODE_PROGRAM_CLASSES, resolvedSettings.nodeProgramClasses); resolvedSettings.edgeProgramClasses = (0, utils_1.assign)({}, exports.DEFAULT_EDGE_PROGRAM_CLASSES, resolvedSettings.edgeProgramClasses); return resolvedSettings; } exports.resolveSettings = resolveSettings;