react-d3-dag
Version:
React component to create interactive D3 directed acyclic graphs (DAGs)
31 lines (30 loc) • 1.53 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const DEFAULT_NODE_CIRCLE_RADIUS = 15;
const textLayout = {
title: {
textAnchor: 'start',
x: 40,
},
attribute: {
x: 40,
dy: '1.2em',
},
};
const DefaultNodeElement = ({ nodeDatum, toggleNode, onNodeClick, onNodeMouseOver, onNodeMouseOut, }) => (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement("circle", { r: DEFAULT_NODE_CIRCLE_RADIUS, onClick: evt => {
toggleNode();
onNodeClick(evt);
}, onMouseOver: onNodeMouseOver, onMouseOut: onNodeMouseOut }),
react_1.default.createElement("g", { className: "rd3dag-label" },
react_1.default.createElement("text", Object.assign({ className: "rd3dag-label__title" }, textLayout.title), nodeDatum.name),
react_1.default.createElement("text", { className: "rd3dag-label__attributes" }, nodeDatum.attributes &&
Object.entries(nodeDatum.attributes).map(([labelKey, labelValue], i) => (react_1.default.createElement("tspan", Object.assign({ key: `${labelKey}-${i}` }, textLayout.attribute),
labelKey,
": ",
typeof labelValue === 'boolean' ? labelValue.toString() : labelValue)))))));
exports.default = DefaultNodeElement;
;