Merge pull request #7393 from nkovacic/angular-toastr

Angular Toastr
This commit is contained in:
Masahiro Wakame
2016-01-09 22:59:53 +09:00
2 changed files with 185 additions and 0 deletions

View File

@@ -0,0 +1,64 @@
/// <reference path='../angularjs/angular.d.ts' />
/// <reference path='angular-toastr.d.ts' />
angular
.module('toastr-tests', ['toastr'])
.config(function(toastrConfig: angular.toastr.IToastrConfig) {
let toastContainerConfig: angular.toastr.IToastContainerConfig = {
autoDismiss: false,
containerId: 'toast-container',
maxOpened: 0,
newestOnTop: true,
positionClass: 'toast-top-right',
preventDuplicates: false,
preventOpenDuplicates: false,
target: 'body'
},
toastConfig: angular.toastr.IToastConfig = {
allowHtml: false,
closeButton: false,
closeHtml: '<button>&times;</button>',
extendedTimeOut: 1000,
iconClasses: {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
},
messageClass: 'toast-message',
onHidden: null,
onShown: null,
onTap: null,
progressBar: false,
tapToDismiss: true,
templates: {
toast: 'directives/toast/toast.html',
progressbar: 'directives/progressbar/progressbar.html'
},
timeOut: 5000,
titleClass: 'toast-title',
toastClass: 'toast'
};
angular.extend(toastrConfig, toastContainerConfig, toastConfig);
})
.controller('ToastrController', function(toastr: angular.toastr.IToastrService) {
toastr.info('<input type="checkbox" checked> Success!', 'With HTML', {
allowHtml: true
});
toastr.success('What a nice button', 'Button spree', {
closeButton: true
});
toastr.info('What a nice apple button', 'Button spree', {
closeButton: true,
closeHtml: '<button></button>'
});
toastr.info('I am totally custom!', 'Happy toast', {
iconClass: 'toast-pink'
});
});

121
angular-toastr/angular-toastr.d.ts vendored Normal file
View File

@@ -0,0 +1,121 @@
// Type definitions for Angular Toastr v1.6.0
// Project: https://github.com/Foxandxss/angular-toastr
// Definitions by: Niko Kovačič <https://github.com/nkovacic>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
/// <reference path="../angularjs/angular.d.ts" />
declare module "angular-toastr" {
var _: string;
export = _;
}
interface IToastBaseConfig {
allowHtml?: boolean;
closeButton?: boolean;
closeHtml?: string;
extendedTimeOut?: number;
messageClass?: string;
onHidden?: Function;
onShown?: Function;
onTap?: Function;
progressBar?: boolean;
tapToDismiss?: boolean;
templates?: {
toast?: string;
progressbar?: string;
};
timeOut?: number;
titleClass?: string;
toastClass?: string;
}
declare module angular.toastr {
interface IToastContainerConfig {
autoDismiss?: boolean;
containerId?: string;
maxOpened?: number;
newestOnTop?: boolean;
positionClass?: string;
preventDuplicates?: boolean;
preventOpenDuplicates?: boolean;
target?: string;
}
interface IToastConfig extends IToastBaseConfig {
iconClasses?: {
error?: string;
info?: string;
success?: string;
warning?: string;
};
}
interface IToastrConfig extends IToastContainerConfig, IToastConfig { }
interface IToastScope extends angular.IScope {
message: string;
options: IToastConfig;
title: string;
toastId: number;
toastType: string;
}
interface IToast {
el: angular.IAugmentedJQuery;
iconClass: string;
isOpened: boolean;
open: angular.IPromise<any>;
scope: IToastScope;
toastId: number;
}
interface IToastOptions extends IToastBaseConfig {
iconClass?: string;
}
interface IToastrService {
/**
* Return the number of active toasts in screen.
*/
active(): number;
/**
* Remove toast from screen. If no toast is passed in, all toasts will be closed.
*
* @param {IToast} toast Optional toast object to delete
*/
clear(toast?: IToast): void;
/**
* Create error toast notification message.
*
* @param {String} message Message to show on toast
* @param {String} title Title to show on toast
* @param {IToastOptions} options Override default toast options
*/
error(message: string, title?: string, options?: IToastOptions): IToast;
/**
* Create info toast notification message.
*
* @param {String} message Message to show on toast
* @param {String} title Title to show on toast
* @param {IToastOptions} options Override default toast options
*/
info(message: string, title?: string, options?: IToastOptions): IToast;
/**
* Create success toast notification message.
*
* @param {String} message Message to show on toast
* @param {String} title Title to show on toast
* @param {IToastOptions} options Override default toast options
*/
success(message: string, title?: string, options?: IToastOptions): IToast;
/**
* Create warning toast notification message.
*
* @param {String} message Message to show on toast
* @param {String} title Title to show on toast
* @param {IToastOptions} options Override default toast options
*/
warning(message: string, title?: string, options?: IToastOptions): IToast;
}
}