@intuitionrobotics/thunderstorm
Version:
57 lines (56 loc) • 1.93 kB
TypeScript
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;