UNPKG

react-d3-dag

Version:

React component to create interactive D3 directed acyclic graphs (DAGs)

31 lines (30 loc) 1.53 kB
"use strict"; 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;