///
///
import * as angular from 'angular';
export interface IDialogCloseHandler {
(explicit: boolean): boolean;
}
export interface IDialogScope extends angular.IScope {
$close(): void;
$dismiss(): void;
}
export interface IDialogInstance {
close(): void;
dismiss(): void;
validateAndNotify(): void;
}
export interface IPromptSettings {
acceptHandler(): void;
cancelHandler?: {
(): void;
};
message: string;
okButton?: string;
cancelButton?: string;
}
export interface IAutosaveDialogSettings {
scope?: angular.IScope;
template?: string;
templateUrl?: string;
size?: string;
data?: any;
resolve?: any;
save: {
(...data: any[]): Promise;
};
triggers?: string;
}
export interface IDialogSettings {
scope?: angular.IScope;
template?: string;
templateUrl?: string;
size?: string;
data?: any;
controller?: string;
controllerAs?: string;
bindToController?: boolean;
}
export interface IAutosaveDialogInstance extends IDialogInstance {
save(): Promise | boolean;
saveAndClose(): Promise | boolean;
}
export interface IAutosaveDialogScope extends IDialogScope {
$save(): Promise | boolean;
$saveAndClose(): Promise | boolean;
dialog: any;
}
export interface IPromptInstance extends IDialogInstance {
accept(): void;
cancel(): void;
}
export interface IDialogImplementation {
open(options: TDialogSettings, closeHandler?: IDialogCloseHandler): IDialogInstance;
prompt(options: IPromptSettings, template: string): IPromptInstance;
}