diff --git a/notify.js/notify.js.d.ts b/notify.js/notify.js.d.ts new file mode 100644 index 0000000000..ae31ea6317 --- /dev/null +++ b/notify.js/notify.js.d.ts @@ -0,0 +1,131 @@ +// Type definitions for notify.js +// Project: https://github.com/notifyjs/notifyjs +// Definitions by: Bahman Nikkhahan +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +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; + } +} diff --git a/notify.js/notify.js.tests.ts b/notify.js/notify.js.tests.ts new file mode 100644 index 0000000000..f533b47288 --- /dev/null +++ b/notify.js/notify.js.tests.ts @@ -0,0 +1,53 @@ +/// +/// + +// 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: + "
" + + "
" + + "
" + + "
" + + "" + + "" + + "
" + + "
" + + "
" +}); + +$.notify({ + title: 'Would you like some Foo ?', + button: 'Confirm' +}, { + style: 'foo', + autoHide: false, + clickToHide: false + }); \ No newline at end of file