Add definitions for angular-toasty

This commit is contained in:
Dominik Münch
2015-08-12 12:37:15 +02:00
parent 71d072b735
commit b41162d7fc
2 changed files with 376 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
/// <reference path="angular-toasty.d.ts" />
interface AngularToastyTestControllerScope extends ng.IScope {
options:toasty.IToastyConfig;
newToast(): void;
clearToasties(): void;
}
class AngularToastyTestController {
static $inject = ['$rootScope', '$scope', 'toasty'];
constructor($rootScope:ng.IRootScopeService, $scope:AngularToastyTestControllerScope, toasty:toasty.IToastyService) {
// When a new toast is added
$rootScope.$on('toasty-added', function (event, toast) {
console.log(toast)
});
// When a toast is clicked
$rootScope.$on('toasty-clicked', function (event, toast) {
console.log(toast)
});
// When a toast is cleared/removed
$rootScope.$on('toasty-cleared', function (event, toast) {
console.log(toast)
});
var options: toasty.IToastyConfig = {
title: 'Toast It!',
msg: 'Mmmm, tasties...',
showClose: true,
clickToClose: false,
timeout: 5000,
sound: true,
html: false,
shake: false,
theme: 'bootstrap'
};
toasty(options);
toasty.default(options);
toasty.info(options);
toasty.success(options);
toasty.wait(options);
toasty.error(options);
toasty.warning(options);
$scope.newToast = function () {
toasty.clear(); // Clear all
toasty.clear(1); // Remove a single toast by it's ID
toasty('Quick Toast!');
toasty.success('Quick Success Toast!');
toasty({
title: 'New Toast!',
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);
}
});
toasty({
title: 'Ping!',
msg: '<a href="http://google.com">Take me to Google!</a>',
showClose: false,
clickToClose: true,
timeout: 10000,
sound: false,
html: true,
shake: true,
theme: 'bootstrap'
});
toasty(1);
toasty[$scope.options.type]({
title: $scope.options.title,
msg: $scope.options.msg,
showClose: $scope.options.showClose,
clickToClose: $scope.options.clickToClose,
sound: $scope.options.sound,
shake: $scope.options.shake,
timeout: $scope.options.timeout || false,
html: $scope.options.html,
theme: $scope.options.theme,
onAdd: function () {
console.log('Toasty ' + this.id + ' has been added!');
},
onRemove: function () {
console.log('Toasty ' + this.id + ' has been removed!');
},
onClick: function () {
console.log('Toasty ' + this.id + ' has been clicked!');
}
});
};
$scope.clearToasties = function () {
toasty.clear();
};
}
};
angular
.module('main', ['angular-toasty'])
.config(['toastyConfigProvider', (toastyConfigProvider:toasty.IToastyConfigProvider) => {
toastyConfigProvider.setConfig({
title: 'global',
sound: false,
shake: true
});
}])
.controller('MainController', AngularToastyTestController);
+255
View File
@@ -0,0 +1,255 @@
// Type definitions for Angular Toasty v1.0.2
// Project: https://github.com/invertase/angular-toasty
// Definitions by: Dominik Muench <https://github.com/muenchdo>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../angularjs/angular.d.ts" />
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?): 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 {
/**
*
* @param override
*/
setConfig(override: IGlobalConfig);
$get(): IGlobalConfig;
}
}