@nu-art/thunder
Version:
Thunder - React & Typescript based frontend framework
63 lines (62 loc) • 2.03 kB
TypeScript
import * as React from "react";
import { Module } from "@nu-art/ts-common";
import { Color, Properties } from "csstype";
export declare type Stylable = {
style?: Properties;
className?: string;
};
export declare type Dialog_Model = Stylable & {
zIndex: number;
title?: React.ReactNode;
content: React.ReactNode;
buttons: DialogButtonModel[];
overlayColor?: Color;
actionsStyle?: Properties;
allowIndirectClosing?: boolean;
};
export declare type DialogButtonModel = Stylable & {
content: React.ReactNode;
action: () => void;
};
export interface DialogListener {
showDialog(dialogModel?: Dialog_Model): void;
}
export declare class DialogModule_Class extends Module<{}> {
private showDialog;
close: () => void;
show: (params: Dialog_Model) => void;
}
export declare const DialogModule: DialogModule_Class;
export declare class StylableBuilder {
style?: Properties;
className?: string;
setStyle(style: Properties): this;
clearInlineStyle(): this;
addStyle(style: Properties): this;
setClassName(className: string): this;
}
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;
constructor(content: React.ReactNode);
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;
show(): void;
}