UNPKG

@intuitionrobotics/thunderstorm

Version:
57 lines (56 loc) 1.93 kB
import * as React from "react"; import { Module } from "@intuitionrobotics/ts-common"; import { Stylable, StylableBuilder } from "../../tools/Stylable"; import { Color, Properties } from "../../components/types"; export type Dialog_Model = Stylable & { zIndex: number; title?: React.ReactNode; content: React.ReactNode; buttons: DialogButtonModel[]; overlayColor?: Color; actionsStyle?: Properties; allowIndirectClosing?: boolean; id?: string; }; export type DialogButtonModel = Stylable & { content: React.ReactNode; action: () => void; }; export interface DialogListener { __showDialog(dialogModel: Dialog_Model): void; __hideDialog(id?: string): void; } export declare class DialogModule_Class extends Module<{}> { constructor(); protected init(): void; close: (id?: string) => void; show: (params: Dialog_Model) => void; } export declare class DialogButton_Builder extends StylableBuilder { content: React.ReactNode; action: () => void; setContent(content: React.ReactNode): this; setAction(action: () => void): this; build(): DialogButtonModel; } export declare class Dialog_Builder extends StylableBuilder { content: React.ReactNode; zIndex: number; title: React.ReactNode; buttons: DialogButtonModel[]; overlayColor: Color; allowIndirectClosing: boolean; actionsStyle: Properties; private id?; constructor(content: React.ReactNode, id?: string); setAllowIndirectClosing(allowIndirectClosing: boolean): this; setOverlayColor(overlayColor: Color): this; setActionsStyle(actionsStyle: Properties): this; setTitle(title: React.ReactNode): this; setButtons(...buttons: DialogButtonModel[]): this; addButton(button: DialogButtonModel): this; setZIndex(zIndex?: number): this; setId(id: string): this; show(): void; } export declare const DialogModule: DialogModule_Class;