@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
74 lines • 2.68 kB
TypeScript
import * as React from 'react';
import { Link } from './elements';
import { Vector } from './geometry';
import { DiagramModel } from './model';
import { type PaperTransform } from './paper';
import { type MutableRenderingState } from './renderingState';
export interface LinkLayerProps {
model: DiagramModel;
renderingState: MutableRenderingState;
shouldRenderLink?: (link: Link) => boolean;
}
interface LinkLayerState {
readonly version: number;
readonly shouldUpdateLink: (link: Link) => boolean;
}
export declare class LinkLayer extends React.Component<LinkLayerProps, LinkLayerState> {
private readonly listener;
private providedContext;
private updateState;
private scheduledToUpdate;
private labelMeasureRequests;
private readonly memoizedLinks;
constructor(props: LinkLayerProps);
componentDidMount(): void;
shouldComponentUpdate(nextProps: LinkLayerProps, nextState: LinkLayerState): boolean;
componentWillUnmount(): void;
private scheduleUpdateAll;
private scheduleUpdateLink;
private popShouldUpdatePredicate;
private scheduleLabelMeasure;
private clearLabelMeasure;
private measureLabels;
private performUpdate;
render(): import("react/jsx-runtime").JSX.Element;
}
export interface LinkPathProps {
path: string;
pathProps?: React.SVGAttributes<SVGPathElement>;
markerSource?: string;
markerTarget?: string;
}
export declare function LinkPath(props: LinkPathProps): import("react/jsx-runtime").JSX.Element;
export declare function LinkLabelLayer(props: {
renderingState: MutableRenderingState;
paperTransform: PaperTransform;
layerRef?: React.MutableRefObject<HTMLDivElement | null>;
}): import("react/jsx-runtime").JSX.Element;
export interface LinkLabelProps {
link: Link;
primary?: boolean;
position: Vector;
line?: number;
className?: string;
style?: React.CSSProperties;
textAnchor?: 'start' | 'middle' | 'end';
title?: string;
children?: React.ReactNode;
}
export declare function LinkLabel(props: LinkLabelProps): React.ReactPortal;
export interface LinkVerticesProps {
linkId: string;
vertices: ReadonlyArray<Vector>;
className?: string;
vertexRadius?: number;
fill?: string;
}
export declare function LinkVertices(props: LinkVerticesProps): import("react/jsx-runtime").JSX.Element | null;
declare function LinkMarkersInner(props: {
model: DiagramModel;
renderingState: MutableRenderingState;
}): import("react/jsx-runtime").JSX.Element;
export declare const LinkMarkers: React.MemoExoticComponent<typeof LinkMarkersInner>;
export {};
//# sourceMappingURL=linkLayer.d.ts.map