UNPKG

@nivo/voronoi

Version:
109 lines 5.45 kB
import { MouseEvent, MutableRefObject, TouchEvent } from 'react'; import { Delaunay } from 'd3-delaunay'; import { Margin } from '@nivo/core'; import { TooltipAnchor, TooltipPosition } from '@nivo/tooltip'; import { VoronoiCommonProps, VoronoiDatum, VoronoiCustomLayerProps, NodeMouseHandler, NodePositionAccessor, NodeTouchHandler } from './types'; export declare const useVoronoiMesh: <Node>({ points, getNodePosition, width, height, margin, debug, }: { points: readonly Node[]; getNodePosition?: NodePositionAccessor<Node>; margin?: Margin; width: number; height: number; debug?: boolean; }) => { points: readonly [number, number][]; delaunay: Delaunay<Delaunay.Point>; voronoi: import("d3-delaunay").Voronoi<Delaunay.Point> | undefined; }; export declare const useVoronoi: ({ data, width, height, xDomain, yDomain, }: { data: VoronoiDatum[]; width: number; height: number; xDomain: VoronoiCommonProps["xDomain"]; yDomain: VoronoiCommonProps["yDomain"]; }) => { points: { x: number; y: number; data: VoronoiDatum; }[]; delaunay: Delaunay<Delaunay.Point>; voronoi: import("d3-delaunay").Voronoi<Delaunay.Point>; }; /** * Memoize the context to pass to custom layers. */ export declare const useVoronoiLayerContext: ({ points, delaunay, voronoi, }: VoronoiCustomLayerProps) => VoronoiCustomLayerProps; export declare const useMeshEvents: <Node, ElementType extends Element>({ elementRef, nodes, getNodePosition, delaunay, setCurrent: setCurrentNode, margin, detectionRadius, isInteractive, onMouseEnter, onMouseMove, onMouseLeave, onMouseDown, onMouseUp, onClick, onDoubleClick, onTouchStart, onTouchMove, onTouchEnd, enableTouchCrosshair, tooltip, tooltipPosition, tooltipAnchor, }: { elementRef: MutableRefObject<ElementType | null>; nodes: readonly Node[]; getNodePosition?: NodePositionAccessor<Node>; delaunay: Delaunay<Node>; setCurrent?: (node: Node | null) => void; margin?: Margin; detectionRadius?: number; isInteractive?: boolean; onMouseEnter?: NodeMouseHandler<Node>; onMouseMove?: NodeMouseHandler<Node>; onMouseLeave?: NodeMouseHandler<Node>; onMouseDown?: NodeMouseHandler<Node>; onMouseUp?: NodeMouseHandler<Node>; onClick?: NodeMouseHandler<Node>; onDoubleClick?: NodeMouseHandler<Node>; onTouchStart?: NodeTouchHandler<Node>; onTouchMove?: NodeTouchHandler<Node>; onTouchEnd?: NodeTouchHandler<Node>; enableTouchCrosshair?: boolean; tooltip?: (node: Node) => JSX.Element; tooltipPosition?: TooltipPosition; tooltipAnchor?: TooltipAnchor; }) => { current: [number, Node] | null; handleMouseEnter: ((event: MouseEvent<ElementType>) => void) | undefined; handleMouseMove: ((event: MouseEvent<ElementType>) => void) | undefined; handleMouseLeave: ((event: MouseEvent<ElementType>) => void) | undefined; handleMouseDown: ((event: MouseEvent<ElementType>) => void) | undefined; handleMouseUp: ((event: MouseEvent<ElementType>) => void) | undefined; handleClick: ((event: MouseEvent<ElementType>) => void) | undefined; handleDoubleClick: ((event: MouseEvent<ElementType>) => void) | undefined; handleTouchStart: ((event: TouchEvent<ElementType>) => void) | undefined; handleTouchMove: ((event: TouchEvent<ElementType>) => void) | undefined; handleTouchEnd: ((event: TouchEvent<SVGRectElement>) => void) | undefined; }; /** * Compute a voronoi mesh and corresponding events. */ export declare const useMesh: <Node, ElementType extends Element>({ elementRef, nodes, getNodePosition, width, height, margin, isInteractive, detectionRadius, setCurrent, onMouseEnter, onMouseMove, onMouseLeave, onMouseDown, onMouseUp, onClick, onDoubleClick, tooltip, tooltipPosition, tooltipAnchor, debug, }: { elementRef: MutableRefObject<ElementType | null>; nodes: readonly Node[]; getNodePosition?: NodePositionAccessor<Node>; width: number; height: number; margin?: Margin; isInteractive?: boolean; detectionRadius?: number; setCurrent?: (node: Node | null) => void; onMouseEnter?: NodeMouseHandler<Node>; onMouseMove?: NodeMouseHandler<Node>; onMouseLeave?: NodeMouseHandler<Node>; onMouseDown?: NodeMouseHandler<Node>; onMouseUp?: NodeMouseHandler<Node>; onClick?: NodeMouseHandler<Node>; onDoubleClick?: NodeMouseHandler<Node>; tooltip?: (node: Node) => JSX.Element; tooltipPosition?: TooltipPosition; tooltipAnchor?: TooltipAnchor; debug?: boolean; }) => { delaunay: Delaunay<Delaunay.Point>; voronoi: import("d3-delaunay").Voronoi<Delaunay.Point> | undefined; current: [number, Node] | null; handleMouseEnter: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleMouseMove: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleMouseLeave: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleMouseDown: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleMouseUp: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleClick: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; handleDoubleClick: ((event: MouseEvent<ElementType, globalThis.MouseEvent>) => void) | undefined; }; //# sourceMappingURL=hooks.d.ts.map