@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
100 lines • 3.86 kB
TypeScript
import * as React from 'react';
import type { ColorSchemeApi } from '../coreUtils/colorScheme';
import { Events } from '../coreUtils/events';
import { CanvasApi, CanvasEvents, CanvasMetrics, CenterToOptions, ScaleOptions, ViewportOptions, CanvasPointerMode, ZoomOptions, ExportSvgOptions, ExportRasterOptions } from './canvasApi';
import { Vector, Rect } from './geometry';
import { DiagramModel } from './model';
import { PaperTransform } from './paper';
import { MutableRenderingState } from './renderingState';
export interface PaperAreaProps {
model: DiagramModel;
renderingState: MutableRenderingState;
colorSchemeApi: ColorSchemeApi;
zoomOptions?: ZoomOptions;
hideScrollBars?: boolean;
watermarkSvg?: string;
watermarkUrl?: string;
children?: React.ReactNode;
}
interface State {
readonly transform: PaperTransform;
readonly cssAnimations: number;
readonly cssAnimationDuration: number | undefined;
}
export declare class PaperArea extends React.Component<PaperAreaProps, State> implements CanvasApi {
private readonly listener;
private readonly source;
readonly events: Events<CanvasEvents>;
private area;
private readonly rootRef;
private readonly linkLayerRef;
private readonly labelLayerRef;
private readonly elementLayerRef;
private readonly placeLayerContext;
private readonly pageSize;
private readonly canvasContext;
private viewportAnimation;
private movingState;
private scrollBeforeUpdate;
private _pointerMode;
private readonly _zoomOptions;
private resizeObserver;
readonly metrics: CanvasMetrics;
constructor(props: PaperAreaProps);
get renderingState(): MutableRenderingState;
get pointerMode(): CanvasPointerMode;
setPointerMode(value: CanvasPointerMode): void;
get zoomOptions(): Required<ZoomOptions>;
render(): import("react/jsx-runtime").JSX.Element;
private onAreaMount;
componentDidMount(): void;
componentDidUpdate(prevProps: PaperAreaProps, prevState: State): void;
componentWillUnmount(): void;
private getContentFittingBox;
private computeAdjustedBox;
private adjustPaper;
private onAreaPointerDown;
private onPaperPointerDown;
private handleMultiPointerDown;
private shouldStartPanning;
private shouldStartElementMove;
private onPointerMove;
private handleMultiPointerMove;
private generateLinkVertex;
private onPointerUp;
private onPointerCancel;
private onPaperScrollCapture;
private stopListeningToPointerMove;
private onWheel;
private shouldStartZooming;
private onResize;
focus(): void;
centerTo(paperPosition?: Vector, options?: CenterToOptions): Promise<void>;
centerContent(options?: ViewportOptions): Promise<void>;
private centerToPosition;
getScale(): number;
setScale(value: number, options?: ScaleOptions): Promise<void>;
zoomBy(value: number, options?: ScaleOptions): Promise<void>;
zoomIn(scaleOptions?: ScaleOptions): Promise<void>;
zoomOut(scaleOptions?: ScaleOptions): Promise<void>;
zoomToFit(options?: ViewportOptions): Promise<void>;
zoomToFitRect(paperRect: Rect, options?: ViewportOptions): Promise<void>;
private onDragOver;
private onDragDrop;
private onScroll;
private onContextMenu;
private onKeyDown;
private onKeyUp;
private isEventFromCellLayer;
private makeToSVGOptions;
exportSvg(options?: ExportSvgOptions): Promise<string>;
exportRaster(options?: ExportRasterOptions): Promise<string>;
isAnimatingGraph(): boolean;
animateGraph(setupChanges: () => void, duration?: number): Promise<void>;
private changeGraphAnimationCount;
private get viewportState();
private setViewportState;
private applyViewportState;
}
export {};
//# sourceMappingURL=paperArea.d.ts.map