Merge pull request #10895 from bahman616/master

Typing for notify.js
This commit is contained in:
Ryan Cavanaugh
2016-08-31 08:56:56 -07:00
committed by GitHub
2 changed files with 184 additions and 0 deletions

131
notify.js/notify.js.d.ts vendored Normal file
View File

@@ -0,0 +1,131 @@
// Type definitions for notify.js
// Project: https://github.com/notifyjs/notifyjs
// Definitions by: Bahman Nikkhahan <https://github.com/bahman616>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference path="../jquery/jquery.d.ts" />
declare namespace NotifyJS {
interface NotificationOptions {
// whether to hide the notification on click
clickToHide: boolean;
// whether to auto-hide the notification
autoHide: boolean;
// if autoHide, hide after milliseconds
autoHideDelay: number;
// show the arrow pointing at the element
arrowShow: boolean;
// arrow size in pixels
arrowSize: number;
// position defines the notification position though uses the defaults below
position: string;
// default positions
elementPosition: string;
globalPosition: string;
// default style
style: string;
// default class (string or [string])
className: string;
// show animation
showAnimation: string;
// show animation duration
showDuration: number;
// hide animation
hideAnimation: string;
// hide animation duration
hideDuration: number;
// padding between element and notification
gap: number;
}
interface JQueryStaticNotify {
/**
* notify user
* @param element a jquery element
* @param notificationdata global notification data
* @param options notification options
*/
(element?: any, notificationdata?: any, options?: NotificationOptions): JQueryStatic;
/**
* Add style
* @param styleName style name
* @param styleDefinition style definition object
*/
addStyle(styleName: string, styleDefinition: any): any;
/**
* Remove style
* @param styleName style name
*/
removeStyle(styleName: string): any;
/**
* Get style
* @param styleName style name
*/
getStyle(styleName: string): any;
/**
* Insert css
* @param cssText css text to insert
*/
insertCSS(cssText: string): any;
/**
* Set defaults for notifications
* @param options notification iptions
*/
defaults(options: NotificationOptions): any;
}
interface JQueryStatic {
notify: JQueryStaticNotify;
}
interface JQueryNotify {
/**
* notify user
* @param element a jquery element
* @param notificationdata global notification data
* @param options notification options
*/
(element?: any, notificationdata?: any, options?: NotificationOptions): JQuery;
/**
* Add style
* @param styleName style name
* @param styleDefinition style definition object
*/
addStyle(styleName: string, styleDefinition: any): any;
/**
* Remove style
* @param styleName style name
*/
removeStyle(styleName: string): any;
/**
* Get style
* @param styleName style name
*/
getStyle(styleName: string): any;
/**
* Insert css
* @param cssText css text to insert
*/
insertCSS(cssText: string): any;
/**
* Set defaults for notifications
* @param options notification iptions
*/
defaults(options: NotificationOptions): any;
}
interface JQuery {
notify: JQueryStaticNotify;
}
}

View File

@@ -0,0 +1,53 @@
/// <reference path="../jquery/jquery.d.ts"/>
/// <reference path="notify.js.d.ts"/>
// setting defaults for notification plugin
$.notify.defaults({
clickToHide: true,
autoHide: false,
autoHideDelay: 5000,
arrowShow: true,
arrowSize: 5,
position: 'top center',
elementPosition: 'bottom left',
globalPosition: 'top center',
style: 'bootstrap',
className: 'error',
showAnimation: 'slideDown',
showDuration: 400,
hideAnimation: 'slideUp',
hideDuration: 200,
gap: 2
});
$(".elem-demo").notify("Hello Box");
$.notify("Access granted", "success");
$.notify("Do not press this button", "info");
$.notify('hello !!', {
style: 'happyblue'
});
$.notify('hello !!', {
style: 'happyblue'
});
//add a new style 'foo'
$.notify.addStyle('foo', {
html:
"<div>" +
"<div class='clearfix'>" +
"<div class='title' data-notify-html='title'/>" +
"<div class='buttons'>" +
"<button class='no'>Cancel</button>" +
"<button class='yes' data-notify-text='button'></button>" +
"</div>" +
"</div>" +
"</div>"
});
$.notify({
title: 'Would you like some Foo ?',
button: 'Confirm'
}, {
style: 'foo',
autoHide: false,
clickToHide: false
});