diff --git a/angular-toasty/angular-toasty-tests.ts b/angular-toasty/angular-toasty-tests.ts new file mode 100644 index 0000000000..017d821720 --- /dev/null +++ b/angular-toasty/angular-toasty-tests.ts @@ -0,0 +1,76 @@ +/// + +interface AngularToastyTestControllerScope extends ng.IScope { + button:string; + options:toasty.IToastyConfig; + runToasts(): void; + runQuickToasts(): void; + newToast(): void; + clearToasts(): void; +} + +class AngularToastyTestController { + + static $inject = ['$scope', 'toasty']; + + constructor($scope:AngularToastyTestControllerScope, toasty:toasty.IToastyService) { + + var options: toasty.IToastyConfig = { + title: 'Toast It!', + msg: 'Mmmm, tasties...', + showClose: true, + clickToClose: false, + timeout: 5000, + sound: true, + html: false, + shake: false, + theme: 'bootstrap', + onAdd: function () { + console.log('Toasty ' + this.id + ' has been added!', this); + }, + onRemove: function () { + console.log('Toasty ' + this.id + ' has been removed!', this); + }, + onClick: function () { + console.log('Toasty ' + this.id + ' has been clicked!', this); + } + }; + + $scope.runToasts = function () { + toasty(options); + toasty.default(options); + toasty.info(options); + toasty.success(options); + toasty.wait(options); + toasty.error(options); + toasty.warning(options); + }; + + $scope.runQuickToasts = function () { + var title = 'Toast it!' + toasty(title); + toasty.default(title); + toasty.info(title); + toasty.success(title); + toasty.wait(title); + toasty.error(title); + toasty.warning(title); + }; + + $scope.clearToasts = function () { + toasty.clear(); + }; + } +}; + +angular + .module('main', ['angular-toasty']) + .config(['toastyConfigProvider', (toastyConfigProvider:toasty.IToastyConfigProvider) => { + toastyConfigProvider.setConfig({ + title: 'global', + limit: 10, + sound: false, + shake: true + }); + }]) + .controller('MainController', AngularToastyTestController); diff --git a/angular-toasty/angular-toasty.d.ts b/angular-toasty/angular-toasty.d.ts new file mode 100644 index 0000000000..c4e3923898 --- /dev/null +++ b/angular-toasty/angular-toasty.d.ts @@ -0,0 +1,251 @@ +// Type definitions for Angular Toasty v1.0.2 +// Project: https://github.com/invertase/angular-toasty +// Definitions by: Dominik Muench +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module toasty { + + interface IToastyService { + /** + * Create a toast with the given options and type. + * @param options + * @param type + */ + (options: IToastyConfig, type?: string): void; + + /** + * Create a default "quick toast" with the given title. + * @param title + */ + (title: string|number): void; + + /** + * Create a default toast with the given options. + * @param options + */ + default(options: IToastyConfig): void; + + /** + * Create a default "quick toast" with the given title. + * @param title + */ + default(title: string|number): void; + + /** + * Create an info toast with the given options. + * @param options + */ + info(options: IToastyConfig): void; + + /** + * Create an info "quick toast" with the given title. + * @param title + */ + info(title: string|number): void; + + /** + * Create a wait toast with the given options. + * @param options + */ + wait(options: IToastyConfig): void; + + /** + * Create a wait "quick toast" with the given title. + * @param title + */ + wait(title: string|number): void; + + /** + * Create a success toast with the given options. + * @param options + */ + success(options: IToastyConfig): void; + + /** + * Create a success "quick toast" with the given title. + * @param title + */ + success(title: string|number): void; + + /** + * Create an error toast with the given options. + * @param options + */ + error(options: IToastyConfig): void; + + /** + * Create an error "quick toast" with the given title. + * @param title + */ + error(title: string|number): void; + + /** + * Create a warning toast with the given options. + * @param options + */ + warning(options: IToastyConfig): void; + + /** + * Create a warning "quick toast" with the given title. + * @param title + */ + warning(title: string|number): void; + + /** + * Clear toast(s). + * @param id Optional ID to clear a specific toast. + */ + clear(id?: number): void; + + /** + * Get the global config. + */ + getGlobalConfig(): IGlobalConfig; + + } + + interface IToastyConfig { + /** + * The toast's title. + */ + title: string; + + /** + * The toast's message. + */ + msg?: string; + + /** + * Whether to show the 'X' icon to close the toast. + */ + showClose?: boolean; + + /** + * Whether clicking the toast closes it. + */ + clickToClose?: boolean; + + /** + * How long (in milliseconds) the toast shows before it's removed. Set to false to disable. + */ + timeout?: number; + + /** + * Whether to play a sound when a toast is added. + */ + sound?: boolean; + + /** + * Whether HTML is allowed in toasts. + */ + html?: boolean; + + /** + * Whether to shake the toasts. + */ + shake?: boolean; + + /** + * What theme to use. + * - 'default' + * - 'material' + * - 'bootstrap' + */ + theme?: string; + + /** + * The toast's type: + * - 'default' + * - 'info' + * - 'success' + * - 'wait' + * - 'error' + * - 'warning' + */ + type?: string; + + /** + * Add event handler. + */ + onAdd?: Function; + + /** + * Remove event handler. + */ + onRemove?: Function; + + /** + * Click event handler. + */ + onClick?: Function; + } + + interface IGlobalConfig { + + /** + * Maximum number of toasts to show at once. + */ + limit?: number; + + /** + * The toast's title. + */ + title?: string; + + /** + * The toast's message. + */ + msg?: string; + + /** + * Whether to show the 'X' icon to close the toast. + */ + showClose?: boolean; + + /** + * Whether clicking the toast closes it. + */ + clickToClose?: boolean; + + /** + * The window position where the toast pops up. + * + */ + position?: string; + + /** + * How long (in miliseconds) the toast shows before it's removed. Set to false to disable. + */ + timeout?: number|boolean; + + /** + * Whether to play a sound when a toast is added. + */ + sound?: boolean; + + /** + * Whether HTML is allowed in toast. + */ + html?: boolean; + + /** + * Whether to shake the toast. + */ + shake?: boolean; + + /** + * What theme to use. + * - 'default' + * - 'material' + * - 'bootstrap' + */ + theme?: string; + } + + interface IToastyConfigProvider { + setConfig(override: IGlobalConfig): void; + $get(): IGlobalConfig; + } +}