fybdp-d3-kg
Version:
Knowledge Graph using React and D3.js
131 lines (130 loc) • 3.95 kB
TypeScript
import React, { Component } from 'react';
import { Placement } from 'rdk';
import { Node, Link, Axis } from './types';
interface NodeEventData {
nativeEvent: any;
node: Node;
links: Link[];
}
interface LinkEventData {
nativeEvent: any;
link: Link;
}
export interface HivePlotProps {
axis: Axis[];
nodes: Node[];
links: Link[];
activeIds?: string[];
disabled?: boolean;
label: {
show: boolean;
padding?: number;
};
width?: number;
height?: number;
innerRadius: number;
className?: any;
onNodeClick: (data: NodeEventData) => void;
onNodeMouseOver: (data: NodeEventData) => void;
onLinkMouseOver: (data: LinkEventData) => void;
onNodeMouseOut: (data: NodeEventData) => void;
onLinkMouseOut: (data: LinkEventData) => void;
tooltip: {
show: boolean;
placement: Placement;
formatter: (axis: Axis[], nodes: Node[], link?: Link, node?: Node) => React.ReactNode;
};
colorScheme: {
axis: string[];
domain: string[];
};
}
interface HivePlotState {
tooltipReference?: EventTarget | null;
nodeTooltipData?: Node;
linkTooltipData?: Link;
active?: {
[k: string]: boolean;
};
height?: number;
width?: number;
}
export declare class HivePlot extends Component<HivePlotProps, HivePlotState> {
static defaultProps: {
innerRadius: number;
disabled: boolean;
axis: never[];
nodes: never[];
links: never[];
label: {
show: boolean;
padding: number;
};
activeIds: never[];
onNodeClick: () => undefined;
onNodeMouseOver: () => undefined;
onNodeMouseOut: () => undefined;
onLinkMouseOver: () => undefined;
onLinkMouseOut: () => undefined;
tooltip: {
show: boolean;
placement: string;
formatter: (attr: any) => any;
};
colorScheme: {
axis: string[];
domain: string[];
};
};
state: HivePlotState;
onNodeMouseOver(node: Node, event: MouseEvent): void;
onLinkMouseOver(link: Link, event: MouseEvent): void;
activateLink(link: Link): void;
activateAdjacentLinks(links: Link[], target: Node, accumulator: {}): any[];
onNodeMouseOut(node: Node, event: MouseEvent): void;
onLinkMouseOut(link: Link, event: MouseEvent): void;
onNodeClick(node: Node, event: MouseEvent): void;
getLinksForNode(node: Node): Link[];
resetActive(): void;
prepareData({ dimension, innerRadius, colorScheme, axis, label }: {
dimension: any;
innerRadius: any;
colorScheme: any;
axis: any;
label: any;
}): {
angle: import("d3-scale").ScalePoint<string>;
radius: import("d3-scale").ScaleLinear<number, number>;
axisColor: import("d3-scale").ScaleOrdinal<string, unknown>;
domainColor: import("d3-scale").ScaleOrdinal<string, unknown>;
outerRadius: number;
};
onSize({ height, width }: {
height: any;
width: any;
}): void;
getDimensions(): {
height: number;
width: number;
};
renderAxis({ angle, radius, axisColor, outerRadius }: {
angle: any;
radius: any;
axisColor: any;
outerRadius: any;
}): JSX.Element;
isActive(nodeOrLink: Node | Link, index: number, type: 'node' | 'link'): boolean;
renderLinks({ angle, radius, domainColor }: {
angle: any;
radius: any;
domainColor: any;
}): JSX.Element;
renderNodes({ angle, radius, domainColor }: {
angle: any;
radius: any;
domainColor: any;
}): JSX.Element;
renderTooltip(): JSX.Element;
render(): JSX.Element;
}
export {};