UNPKG

react-plot

Version:

Library of React components to render SVG 2D plots.

27 lines 1.6 kB
import type { RefObject } from 'react'; import type { TrackingResult } from '../../components/Tracking.js'; type EventHandler<NativeEventType extends MouseEvent> = (result: TrackingResult<NativeEventType>) => void; type PointerEventName = 'onPointerEnter' | 'onPointerDown' | 'onPointerMove' | 'onPointerUp' | 'onPointerLeave'; type ClickEventName = 'onClick' | 'onDoubleClick'; type WheelEventName = 'onWheel'; export type EventName = PointerEventName | ClickEventName | WheelEventName; type PointerEventHandlers = Partial<Record<PointerEventName, EventHandler<PointerEvent>>>; type ClickEventHandlers = Partial<Record<ClickEventName, EventHandler<MouseEvent>>>; type WheelEventHandlers = Partial<Record<WheelEventName, EventHandler<WheelEvent>>>; export type EventsHandlers = PointerEventHandlers & ClickEventHandlers & WheelEventHandlers; type EventMap = Record<PointerEventName, PointerEvent> & Record<ClickEventName, MouseEvent> & Record<WheelEventName, WheelEvent>; export interface PlotEventsUserActions { registerHandlers: (handlersRef: RefObject<EventsHandlers>) => void; unregisterHandlers: (handlersRef: RefObject<EventsHandlers>) => void; } export interface PlotEventsPlotActions { registerPlot: (plotId: string) => void; unregisterPlot: (plotId: string) => void; handleEvent: <T extends EventName>(plotId: string, eventName: T, eventData: TrackingResult<EventMap[T]>) => void; } export declare function usePlotEventsState(): { userActions: PlotEventsUserActions; plotActions: PlotEventsPlotActions; }; export {}; //# sourceMappingURL=usePlotEvents.d.ts.map