UNPKG

@reactodia/workspace

Version:

Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.

52 lines 2.31 kB
import { Events, PropertyChange } from '../coreUtils/events'; import type { CanvasApi, CanvasDropEvent, CanvasWidgetDescription } from './canvasApi'; import type { ElementTemplate, LinkTemplate, RenameLinkProvider } from './customization'; import { Element, Link } from './elements'; import type { LayoutFunction } from './layout'; export interface SharedCanvasStateEvents { changeHighlight: PropertyChange<SharedCanvasState, CellHighlighter | undefined>; changeWidgets: PropertyChange<SharedCanvasState, ReadonlyMap<string, CanvasWidgetDescription>>; findCanvas: FindCanvasEvent; dispose: { readonly source: SharedCanvasState; }; } export interface FindCanvasEvent { readonly canvases: CanvasApi[]; } export type CellHighlighter = (item: Element | Link) => boolean; export interface SharedCanvasStateOptions { defaultElementTemplate: ElementTemplate; defaultLinkTemplate: LinkTemplate; defaultLayout: LayoutFunction; renameLinkProvider?: RenameLinkProvider; } export declare class SharedCanvasState { private readonly listener; private readonly source; readonly events: Events<SharedCanvasStateEvents>; private disposed; private _canvasWidgets; private dropOnPaperHandler; private _highlighter; readonly defaultElementTemplate: ElementTemplate; readonly defaultLinkTemplate: LinkTemplate; readonly defaultLayout: LayoutFunction; readonly renameLinkProvider: RenameLinkProvider | undefined; constructor(options: SharedCanvasStateOptions); dispose(): void; findAllCanvases(): CanvasApi[]; findAnyCanvas(): CanvasApi | undefined; get widgets(): ReadonlyMap<string, CanvasWidgetDescription>; setCanvasWidget(key: string, widget: CanvasWidgetDescription | null): void; setHandlerForNextDropOnPaper(handler: ((e: CanvasDropEvent) => void) | undefined): void; tryHandleDropOnPaper(e: CanvasDropEvent): boolean; get highlighter(): CellHighlighter | undefined; setHighlighter(value: CellHighlighter | undefined): void; } export declare class RenameLinkToLinkStateProvider implements RenameLinkProvider { canRename(link: Link): boolean; getLabel(link: Link): string | undefined; setLabel(link: Link, label: string): void; } //# sourceMappingURL=sharedCanvasState.d.ts.map