diff --git a/ng-dialog/ng-dialog-tests.ts b/ng-dialog/ng-dialog-tests.ts new file mode 100644 index 000000000..52b33212a --- /dev/null +++ b/ng-dialog/ng-dialog-tests.ts @@ -0,0 +1,52 @@ +/// +/// + +var app = angular.module('testModule', ['ngDialog']); + +class DialogTestController { + + constructor(ngDialog: angular.dialog.IDialogService) { + + ngDialog.close("login-popup", "bye"); + ngDialog.closeAll("bye"); + + var defaults = ngDialog.getDefaults(); + + var dialogs = ngDialog.getOpenDialogs(); + + ngDialog.isOpen("bye"); + + var loginDialog = ngDialog.open({ + template: "login.html", + className: "default flat-ui", + closeByEscape: false, + name: "login-popup" + }); + + if (loginDialog.id === "login-popup") { + loginDialog.close("closing"); + } + + var deleteConfirm = ngDialog.openConfirm({ + template: "confirm.html" + }); + } +} + +class LoginDialogController { + + constructor($scope: angular.dialog.IDialogScope) { + + $scope.closeThisDialog("bye"); + } +} + +app.controller('TestController', DialogTestController); + +app.config((ngDialogProvider: angular.dialog.IDialogProvider) => { + + ngDialogProvider.setDefaults({ + className: "flat-ui" + }) + +}); \ No newline at end of file diff --git a/ng-dialog/ng-dialog.d.ts b/ng-dialog/ng-dialog.d.ts new file mode 100644 index 000000000..3f045a8e1 --- /dev/null +++ b/ng-dialog/ng-dialog.d.ts @@ -0,0 +1,105 @@ +// Type definitions for ngDialog +// Project: https://github.com/likeastore/ngDialog +// Definitions by: Stephen Lautier +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module angular.dialog { + + interface IDialogService { + getDefaults(): IDialogOptions; + open(options: IDialogOpenOptions): IDialogOpenResult; + openConfirm(options: IDialogOpenOptions): IPromise; + + /** + * Determine whether the specified dialog is open or not. + * @param id Dialog id to check for. + * @returns {boolean} Indicating whether it exists or not. + */ + isOpen(id: string): boolean; + close(id: string, value?: any): void; + closeAll(value?: any): void; + getOpenDialogs(): string[]; + } + + interface IDialogOpenResult { + id: string; + close: (value?: string) => void; + closePromise: IPromise; + } + + interface IDialogProvider extends angular.IServiceProvider { + /** + * Default options for the dialogs. + * @param defaultOptions + * @returns {} + */ + setDefaults(defaultOptions: IDialogOptions): void; + } + + /** + * Dialog Scope which extends the $scope. + */ + interface IDialogScope extends angular.IScope { + /** + * This allows you to close dialog straight from handler in a popup element. + * @param value Any value passed to this function will be attached to the object which resolves on the close promise for this dialog. + * For dialogs opened with the openConfirm() method the value is used as the reject reason. + */ + closeThisDialog(value?: any): void; + } + + interface IDialogOptions { + /** + * This option allows you to control the dialog's look, you can use built-in themes or create your own styled modals. + * It will be appended with the "ngdialog" class e.g. className is "default-theme flat-ui" it will be class="ngdialog default-theme flat-ui". + */ + className?: string; + /** + * If false it allows to hide overlay div behind the modals, default true. + */ + overlay?: boolean; + + /** + * If false it allows to hide close button on modals, default true. + */ + showClose?: boolean; + + /** + * It allows to close modals by clicking Esc button, default true. + * This will close all open modals if there several of them open at the same time. + */ + closeByEscape?: boolean; + + /** + * It allows to close modals by clicking on overlay background, default true. If @see Hammer.js is loaded, it will listen for tap instead of click. + */ + closeByDocument?: boolean; + + /** + * If true allows to use plain string as template, default false. + */ + plain?: boolean; + + /** + * Give a name for a dialog instance. It is useful for identifying specific dialog if there are multiple dialog boxes opened. + */ + name?: string | number; + + preCloseCallback?: string|Function; + } + + /** + * Options which are provided to open a dialog. + */ + interface IDialogOpenOptions extends IDialogOptions { + template: string; + controller?: string|any; + controllerAs?: string; + /** + * Scope object that will be passed to dialog. If you use controller with separate $scope service this object will be passed to $scope.$parent param. + */ + scope?: ng.IScope; + } +} \ No newline at end of file