27 lines
1.4 KiB
TypeScript
27 lines
1.4 KiB
TypeScript
import { ChannelMessage } from "../../../ipc/BrowserIPC";
|
|
import { Registry } from "tc-events";
|
|
import { EventControllerBase, Popout2ControllerMessages, PopoutIPCMessage } from "../../../ui/react-elements/external-modal/IPCMessage";
|
|
import { ModalController, ModalEvents, ModalOptions, ModalState } from "../../../ui/react-elements/ModalDefinitions";
|
|
export declare abstract class AbstractExternalModalController extends EventControllerBase<"controller"> implements ModalController {
|
|
readonly modalType: string;
|
|
readonly constructorArguments: any[];
|
|
private readonly modalEvents;
|
|
private modalState;
|
|
private readonly documentUnloadListener;
|
|
private callbackWindowInitialized;
|
|
protected constructor(modalType: string, constructorArguments: any[]);
|
|
getOptions(): Readonly<ModalOptions>;
|
|
getEvents(): Registry<ModalEvents>;
|
|
getState(): ModalState;
|
|
protected abstract spawnWindow(): Promise<boolean>;
|
|
protected abstract focusWindow(): void;
|
|
protected abstract destroyWindow(): void;
|
|
show(): Promise<void>;
|
|
private doDestroyWindow;
|
|
hide(): Promise<void>;
|
|
destroy(): void;
|
|
protected handleWindowClosed(): void;
|
|
protected handleIPCMessage(remoteId: string, broadcast: boolean, message: ChannelMessage): void;
|
|
protected handleTypedIPCMessage<T extends Popout2ControllerMessages>(remoteId: string, isBroadcast: boolean, type: T, payload: PopoutIPCMessage[T]): void;
|
|
}
|