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