UNPKG

@reactodia/workspace

Version:

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

67 lines 2.29 kB
import * as React from 'react'; import { Events, PropertyChange } from '../coreUtils/events'; import type { Translation } from '../coreUtils/i18n'; import { Element, Link } from '../diagram/elements'; import { DiagramModel } from '../diagram/model'; import { SharedCanvasState } from '../diagram/sharedCanvasState'; import { DialogStyleProps } from '../widgets/dialog'; export interface OverlayControllerProps { readonly model: DiagramModel; readonly view: SharedCanvasState; readonly translation: Translation; } export interface OverlayControllerEvents { changeOpenedDialog: PropertyChange<OverlayController, OpenedDialog | undefined>; } export interface OpenedDialog { readonly target?: Element | Link; readonly knownType: OverlayDialogType | undefined; readonly holdSelection: boolean; readonly onClose: (() => void) | undefined; } export type OverlayDialogType = string & { overlayDialogTypeBrand: void; }; export declare class OverlayController { private readonly listener; private readonly source; readonly events: Events<OverlayControllerEvents>; private readonly interalSource; private readonly model; private readonly view; private readonly translation; private _openedDialog; private _tasks; private _taskError; constructor(props: OverlayControllerProps); get openedDialog(): OpenedDialog | undefined; dispose(): void; private onAnyCanvasPointerUp; private onAnyCanvasKeydown; startTask(params?: { title?: string; delay?: number; }): OverlayTask; showSpinnerWhile(operation: Promise<unknown>): void; private updateTaskSpinner; private setSpinner; showDialog(params: { target?: Element | Link; style: DialogStyleProps; content: React.ReactElement<any>; dialogType?: OverlayDialogType; holdSelection?: boolean; onClose?: () => void; }): void; hideDialog(): void; private setDialog; } export interface OverlayTask { readonly title: string | undefined; setError(error: unknown): void; end(): void; } export declare function OverlaySupport(props: { overlay: OverlayController; }): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=overlayController.d.ts.map