@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
52 lines • 2.31 kB
TypeScript
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