diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index b62f47fd1..69dd757ce 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -159,6 +159,7 @@ All definitions files include a header with the author and editors, so at some p * [jQuery.jNotify](http://jnotify.codeplex.com) (by [James Curran](https://github.com/jamescurran/)) * [jQuery.joyride](http://zurb.com/playground/jquery-joyride-feature-tour-plugin) (by [Vincent Bortone](https://github.com/vbortone)) * [jQuery.jSignature](https://github.com/willowsystems/jSignature) (by [Patrick Magee](https://github.com/pjmagee)) +* [jQuery.notifyBar](http://www.whoop.ee/posts/2013-04-05-the-resurrection-of-jquery-notify-bar/) (by [Shunsuke Ohtani](https://github.com/zaneli)) * [jQuery.noty](http://needim.github.io/noty/) (by [Aaron King](https://github.com/kingdango/)) * [jQuery.payment](http://needim.github.io/noty/) (by [Eric J. Smith](https://github.com/ejsmith/)) * [jQuery.pickadate](https://github.com/amsul/pickadate.js) (by [Theodore Brown](https://github.com/theodorejb)) @@ -196,6 +197,7 @@ All definitions files include a header with the author and editors, so at some p * [KineticJS](http://kineticjs.com/) (by [Basarat Ali Syed](https://github.com/basarat)) * [Knockback](http://kmalakoff.github.com/knockback/) (by [Marcel Binot](https://github.com/docgit)) * [Knockout.js](http://knockoutjs.com/) (by [Boris Yankov](https://github.com/borisyankov)) +* [Knockout.Amd.Helpers](https://github.com/rniemeyer/knockout-amd-helpers) (by [David Sichau](https://github.com/DavidSichau/)) * [Knockout.DeferredUpdates](https://github.com/mbest/knockout-deferred-updates) (by [Sebastián Galiano](https://github.com/sgaliano)) * [Knockout.ES5](https://github.com/SteveSanderson/knockout-es5) (by [Sebastián Galiano](https://github.com/sgaliano)) * [Knockout.Mapper](https://github.com/LucasLorentz/knockout.mapper) (by [Brandon Meyer](https://github.com/BMeyerKC)) diff --git a/jquery.notifyBar/jquery.notifyBar-test.ts b/jquery.notifyBar/jquery.notifyBar-test.ts new file mode 100644 index 000000000..8338fc830 --- /dev/null +++ b/jquery.notifyBar/jquery.notifyBar-test.ts @@ -0,0 +1,66 @@ +/// + +$(function() { + $.notifyBar({ + html: "Autostart" + }); + + $("#common").click(function () { + $.notifyBar(); + }); + $("#error").click(function () { + $.notifyBar({ cssClass: "error", html: "Error occurred!" }); + }); + $("#success").click(function () { + $.notifyBar({ cssClass: "success", html: "Your data has been changed!" }); + }); + $("#warning").click(function() { + $.notifyBar({ cssClass: "warning", html: "Settings aren't changed!" }); + }) + $("#custom").click(function () { + $.notifyBar({ cssClass: "custom", html: "Your data has been changed!" }); + }); + $("#close").click(function () { + $.notifyBar({ html: "Click 'close' to hide notify bar", close: true, closeOnClick: false }); + }); + $("#position").click(function () { + $.notifyBar({ html: "At bottom", position: "bottom" }); + }); + + $("#events").click(function () { + $.notifyBar({ + html: "Test events", + onBeforeShow: function () { + $("#onBeforeShow").html("onBeforeShow - ok"); + }, + onShow: function () { + $("#onShow").html("onShow - ok"); + }, + onBeforeHide: function () { + $("#onBeforeHide").html("onBeforeHide - ok"); + }, + onHide: function () { + $("#onHide").html("onHide - ok"); + } + }); + }); + + $("#delay").click(function () { + $.notifyBar({ html: "delay 1000000", delay: 1000000 }); + }); + $("#speed-string").click(function () { + $.notifyBar({ html: "speed normal", animationSpeed: "normal" }); + }); + $("#speed-number").click(function () { + $.notifyBar({ html: "speed normal", animationSpeed: 500 }); + }); + $("#jqObject").click(function () { + $.notifyBar({ html: "set jqObject", jqObject: $("#jqObject") }); + }); + $("#closeText").click(function () { + $.notifyBar({ html: "set close text", closeText: "close" }); + }); + $("#closeOnOver").click(function () { + $.notifyBar({ html: "enable close on over", close: false, closeOnClick: false, closeOnOver: true }); + }); +}); diff --git a/jquery.notifyBar/jquery.notifyBar.d.ts b/jquery.notifyBar/jquery.notifyBar.d.ts new file mode 100644 index 000000000..22e012673 --- /dev/null +++ b/jquery.notifyBar/jquery.notifyBar.d.ts @@ -0,0 +1,99 @@ +// Type definitions for jQuery Notify Bar 1.4 +// Project: http://www.whoop.ee/posts/2013-04-05-the-resurrection-of-jquery-notify-bar/ +// Definitions by: Shunsuke Ohtani +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + +declare module JQueryNotifyBar { + + interface NotifyBarOptions { + /** + * What text will be inside bar. Can be HTML or just text. + */ + html?: string; + + /** + * How long bar will be delayed, doesn't count animation time. + */ + delay?: number; + + /** + * Custom jQuery object for notify bar. + */ + jqObject?: JQuery; + + /** + * You can define own CSS class for Notify bar. There are too premade classes "error", "warning" and "success". + */ + cssClass?: string; + + /** + * If set to true close button will be displayed. + */ + close?: boolean; + + /** + * Sets the text to close button. + */ + closeText?: string; + + /** + * If enabled, user can hide notify bar just by click on it. + */ + closeOnClick?: boolean; + + /** + * If enabled, user can hide notify bar just by moving mouse cursor on it. + */ + closeOnOver?: boolean; + + /** + * Callback on before show. + */ + onBeforeShow?: () => any; + + /** + * Callback on show. + */ + onShow?: () => any; + + /** + * Callback on before hide. + */ + onBeforeHide?: () => any; + + /** + * Callback on hide. + */ + onHide?: () => any; + + /** + * Set the position of notify bar. Possible values are "top", "bottom". + */ + position?: string; + } + + interface NotifyBarOptionsForAnimationSpeedString extends NotifyBarOptions { + /** + * How long this bar will be slided up and down. Possible values are "slow", "default", "normal", "fast". + */ + animationSpeed?: string; + } + + interface NotifyBarOptionsForAnimationSpeedNumber extends NotifyBarOptions { + /** + * How long this bar will be slided up and down. + */ + animationSpeed?: number; + } +} + +interface JQueryStatic { + /** + * Show notify bar. + * + * @param options notify bar options + */ + notifyBar(options?: JQueryNotifyBar.NotifyBarOptions): void; +} diff --git a/knockout.amd.helpers/knockout-amd-helpers-tests.ts b/knockout.amd.helpers/knockout-amd-helpers-tests.ts new file mode 100644 index 000000000..c5d1b62e0 --- /dev/null +++ b/knockout.amd.helpers/knockout-amd-helpers-tests.ts @@ -0,0 +1,23 @@ +// Tests for knockout.projections.d.ts + +/// +/// + +//The baseDir is used in building the path to use in the require statement. If your modules live in the modules directory, then you can specify it globally here. +ko.bindingHandlers.module.baseDir = "blub"; + +//This allows the ability to globally override the function that the module binding calls after loading an AMD module that does not return a constructor. +ko.bindingHandlers.module.initializer= "initialize"; + +//The dispose method name can be globally overriden. This function is optionally called when a module is being removed/swapped. +ko.bindingHandlers.module.disposeMethod ="dispose"; + +//The templateProperty option can be globally set. If defined, when a module is loaded - if it has a property with the key specified here +// (where the value is a string or function), the value of that property will be used as the template for the module. The result is a fully +// self-contained module (i.e. it has its own template, not an external one). +ko.bindingHandlers.module.templateProperty ="test"; + + +ko.amdTemplateEngine.defaultPath = "your/path/to/templates"; +ko.amdTemplateEngine.defaultSuffix = ".template.html"; +ko.amdTemplateEngine.defaultRequireTextPluginName = "text"; \ No newline at end of file diff --git a/knockout.amd.helpers/knockout-amd-helpers.d.ts b/knockout.amd.helpers/knockout-amd-helpers.d.ts new file mode 100644 index 000000000..34d4eb027 --- /dev/null +++ b/knockout.amd.helpers/knockout-amd-helpers.d.ts @@ -0,0 +1,34 @@ +// Type definitions for knockout-amd-helpers +// Project: https://github.com/rniemeyer/knockout-amd-helpers +// Definitions by: David Sichau +// Definitions: https://github.com/borisyankov/DefinitelyTyped + +/// + + +interface KnockoutAMDModule { + baseDir: string; + initializer: string; + disposeMethod: string; + templateProperty: string; +} + +interface KnockoutAMDTemplate { + defaultPath: string; + defaultSuffix: string; + defaultRequireTextPluginName: string; +} + +interface KnockoutBindingHandlers { + module: KnockoutAMDModule; +} +interface KnockoutStatic { + + amdTemplateEngine: KnockoutAMDTemplate +} + +declare module "knockout-amd-helpers" { + export = ko; +} + +declare var ko: KnockoutStatic; diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts index 9b86be44d..8b26c50b9 100644 --- a/knockout/knockout.d.ts +++ b/knockout/knockout.d.ts @@ -127,12 +127,13 @@ interface KnockoutBindingContext { interface KnockoutAllBindingsAccessor { (): any; - get(bindingName: string): any; + get(name: string): any; + has(name: string): boolean; } interface KnockoutBindingHandler { - init?(element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; - update?(element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; + init? (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; + update? (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; options?: any; } diff --git a/knockout/tests/knockout-tests.ts b/knockout/tests/knockout-tests.ts index da5d1e65a..6d4c9e25d 100644 --- a/knockout/tests/knockout-tests.ts +++ b/knockout/tests/knockout-tests.ts @@ -591,11 +591,15 @@ function test_allBindingsAccessor() { ko.bindingHandlers.allBindingsAccessorTest = { init: (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext) => { var allBindings = allBindingsAccessor(); + var hasBinding = allBindingsAccessor.has("myBindingName"); var myBinding = allBindingsAccessor.get("myBindingName"); + var fnAccessorBinding = allBindingsAccessor().myBindingName; }, update: (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext) => { var allBindings = allBindingsAccessor(); + var hasBinding = allBindingsAccessor.has("myBindingName"); var myBinding = allBindingsAccessor.get("myBindingName"); + var fnAccessorBinding = allBindingsAccessor().myBindingName; } }; } \ No newline at end of file