@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
42 lines • 1.87 kB
TypeScript
import * as React from 'react';
import { Cell } from './elements';
import { Vector } from './geometry';
import { DiagramModel } from './model';
export interface PaperProps {
model: DiagramModel;
paperTransform: PaperTransform;
onPointerDown?: (e: React.PointerEvent<HTMLElement>, cell: Cell | undefined) => void;
onContextMenu?: (e: React.MouseEvent<HTMLElement>, cell: Cell | undefined) => void;
onScrollCapture?: (e: React.UIEvent<HTMLElement>, cell: Cell | undefined) => void;
children: React.ReactNode;
}
export declare class Paper extends React.Component<PaperProps> {
render(): import("react/jsx-runtime").JSX.Element;
private onPointerDown;
private onContextMenu;
private onScrollCapture;
}
export interface PaperTransform {
readonly width: number;
readonly height: number;
readonly originX: number;
readonly originY: number;
readonly scale: number;
readonly paddingX: number;
readonly paddingY: number;
}
export interface HtmlPaperLayerProps extends React.HTMLProps<HTMLDivElement> {
paperTransform: PaperTransform;
layerRef?: React.Ref<HTMLDivElement | null>;
}
export declare function HtmlPaperLayer(props: HtmlPaperLayerProps): import("react/jsx-runtime").JSX.Element;
export interface SvgPaperLayerProps extends React.HTMLProps<SVGSVGElement> {
paperTransform: PaperTransform;
layerRef?: React.RefObject<SVGSVGElement | null>;
}
export declare function SvgPaperLayer(props: SvgPaperLayerProps): import("react/jsx-runtime").JSX.Element;
export declare function totalPaneSize(pt: PaperTransform): Vector;
export declare function paneTopLeft(pt: PaperTransform): Vector;
export declare function paneFromPaperCoords(paper: Vector, pt: PaperTransform): Vector;
export declare function paperFromPaneCoords(pane: Vector, pt: PaperTransform): Vector;
//# sourceMappingURL=paper.d.ts.map