diff --git a/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.js b/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.js new file mode 100755 index 000000000..48ccab7bf --- /dev/null +++ b/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.js @@ -0,0 +1,426 @@ +// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information. +(function (root, factory) { + var freeExports = typeof exports == 'object' && exports && + (typeof root == 'object' && root && root == root.global && (window = root), exports); + + // Because of build optimizers + if (typeof define === 'function' && define.amd) { + define(['rx', 'jQuery', 'exports'], function (Rx, jQuery, exports) { + root.Rx = factory(root, exports, Rx, jQuery); + return root.Rx; + }); + } else if (typeof module == 'object' && module && module.exports == freeExports) { + module.exports = factory(root, module.exports, require('./rx'), require('./jQuery')); + } else { + root.Rx = factory(root, {}, root.Rx, jQuery); + } +}(this, function (global, exp, root, $, undefined) { + // Headers + var root = global.Rx, + observable = root.Observable, + observableProto = observable.prototype, + AsyncSubject = root.AsyncSubject, + observableCreate = observable.create, + observableCreateWithDisposable = observable.createWithDisposable, + disposableEmpty = root.Disposable.empty, + slice = Array.prototype.slice, + proto = $.fn; + + $.Deferred.prototype.toObservable = function () { + var subject = new AsyncSubject(); + this.done(function () { + subject.onNext(slice.call(arguments)); + subject.onCompleted(); + }).fail(function () { + subject.onError(slice.call(arguments)); + }); + return subject; + }; + + observableProto.toDeferred = function () { + var deferred = $.Deferred(); + this.subscribe(function (value) { + deferred.resolve(value); + }, function (e) { + deferred.reject(e); + }); + return deferred; + }; + + //in order to support jQuery 1.6.* + if ($.Callbacks) { + $.Callbacks.prototype.toObservable = function () { + var parent = this; + return observableCreate(function (observer) { + + function handler(values) { + observer.onNext(values); + } + + parent.add(handler.bind(parent)); + return function () { + parent.remove(handler); + }; + }); + }; + } + + proto.onAsObservable = function () { + var parent = this, args = slice.call(arguments, 0); + return observableCreate(function(observer) { + + function handler(eventObject) { + eventObject.additionalArguments = slice.call(arguments, 1); + observer.onNext(eventObject); + } + + args.push(handler.bind(parent)); + + parent.on.apply(parent, args); + + return function() { + parent.off.apply(parent, args); + }; + }); + }; + + proto.bindAsObservable = function(eventType, eventData) { + var parent = this; + return observableCreate(function(observer) { + + function handler(eventObject) { + eventObject.additionalArguments = slice.call(arguments, 1); + observer.onNext(eventObject); + } + + parent.bind(eventType, eventData, handler.bind(parent)); + + return function() { + parent.unbind(eventType, handler); + }; + }); + }; + + proto.delegateAsObservable = function(selector, eventType, eventData) { + var parent = this; + return observableCreate(function(observer) { + + function handler(eventObject) { + eventObject.additionalArguments = slice.call(arguments, 1); + observer.onNext(eventObject); + } + + parent.delegate(selector, eventType, eventData, handler.bind(parent)); + + return function() { + parent.undelegate(selector, eventType, handler); + }; + }); + }; + + proto.liveAsObservable = function(eventType, eventData) { + var parent = this; + return observableCreate(function(observer) { + + function handler(eventObject) { + eventObject.additionalArguments = slice.call(arguments, 1); + observer.onNext(eventObject); + } + + parent.live(eventType, eventData, handler.bind(parent)); + + return function() { + parent.die(eventType, handler); + }; + }); + }; + + proto.changeAsObservable = function (eventData) { + return this.bindAsObservable('change', eventData); + }; + + proto.clickAsObservable = function (eventData) { + return this.bindAsObservable('click', eventData); + }; + + proto.dblclickAsObservable = function (eventData) { + return this.bindAsObservable('dblclick', eventData); + }; + + proto.focusAsObservable = function(eventData) { + return this.bindAsObservable('focus', eventData); + }; + + proto.focusinAsObservable = function(eventData) { + return this.bindAsObservable('focusin', eventData); + }; + + proto.focusoutAsObservable = function(eventData) { + return this.bindAsObservable('focusout', eventData); + }; + + proto.keydownAsObservable = function(eventData) { + return this.bindAsObservable('keydown', eventData); + }; + + proto.keyupAsObservable = function(eventData) { + return this.bindAsObservable('keyup', eventData); + }; + + proto.loadAsObservable = function(eventData) { + return this.bindAsObservable('load', eventData); + }; + + proto.mousedownAsObservable = function(eventData) { + return this.bindAsObservable('mousedown', eventData); + }; + + proto.mouseenterAsObservable = function(eventData) { + return this.bindAsObservable('mouseenter', eventData); + }; + + proto.mouseleaveAsObservable = function(eventData) { + return this.bindAsObservable('mouseleave', eventData); + }; + + proto.mousemoveAsObservable = function(eventData) { + return this.bindAsObservable('mousemove', eventData); + }; + + proto.mouseoutAsObservable = function(eventData) { + return this.bindAsObservable('mouseout', eventData); + }; + + proto.mouseoverAsObservable = function(eventData) { + return this.bindAsObservable('mouseover', eventData); + }; + + proto.mouseupAsObservable = function(eventData) { + return this.bindAsObservable('mouseup', eventData); + }; + + proto.resizeAsObservable = function(eventData) { + return this.bindAsObservable('resize', eventData); + }; + + proto.scrollAsObservable = function(eventData) { + return this.bindAsObservable('scroll', eventData); + }; + + proto.selectAsObservable = function(eventData) { + return this.bindAsObservable('select', eventData); + }; + + proto.submitAsObservable = function(eventData) { + return this.bindAsObservable('submit', eventData); + }; + + proto.unloadAsObservable = function(eventData) { + return this.bindAsObservable('unload', eventData); + }; + + proto.oneAsObservable = function(types, selector, data) { + var parent = this; + return observableCreateWithDisposable(function(observer) { + + function handler (eventObject) { + eventObject.additionalArguments = slice.call(arguments, 1); + parent.off(types, selector, data, handler); + observer.onNext(eventObject); + observer.onCompleted(); + } + + parent.on(types, selector, data, handler.bind(parent)); + + return disposableEmpty; + }); + }; + + proto.readyAsObservable = function() { + var parent = this; + return observableCreateWithDisposable(function(observer) { + + function handler(eventObject) { + observer.onNext(eventObject); + } + + parent.ready(handler.bind(parent)); + + return disposableEmpty; + }); + }; + + proto.hideAsObservable = function (options) { + if (typeof options === 'number') { + options = { duration: options }; + } else if (!options) { + options = {}; + } + + var subject = new AsyncSubject(); + + options.complete = function() { + subject.onNext(this); + subject.onCompleted(); + }; + + this.hide(options); + + return subject; + }; + + proto.showAsObservable = function(options) { + if (typeof options === 'number') { + options = { duration: options }; + } else if (!options) { + options = {}; + } + + var subject = new AsyncSubject(); + + options.complete = function() { + subject.onNext(this); + subject.onCompleted(); + }; + + this.show(options); + + return subject; + }; + + proto.animateAsObservable = function(properties, duration, easing) { + var subject = new AsyncSubject(); + + this.animate(properties, duration, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.fadeInAsObservable = function(duration, easing) { + var subject = new AsyncSubject(); + + this.fadeIn(duration, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.fadeToAsObservable = function(duration, opacity, easing) { + var subject = new AsyncSubject(); + + this.fadeTo(duration, opacity, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.fadeOutAsObservable = function(duration, easing) { + var subject = new AsyncSubject(); + + this.fadeOut(duration, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.fadeToggleAsObservable = function(duration, easing) { + var subject = new AsyncSubject(); + + this.fadeToggle(duration, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.slideDownAsObservable = function(duration) { + var subject = new AsyncSubject(); + + this.slideDown(duration, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.slideUpAsObservable = function(duration) { + var subject = new AsyncSubject(); + + this.slideUp(duration, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.slideToggleAsObservable = function(duration) { + var subject = new AsyncSubject(); + + this.slideToggle(duration, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + proto.toggleAsObservable = function(duration, easing) { + var subject = new AsyncSubject(); + + this.toggle(duration, easing, function() { + subject.onNext(this); + subject.onCompleted(); + }); + + return subject; + }; + + var ajaxAsObservable = $.ajaxAsObservable = function(settings) { + var subject = new AsyncSubject(); + + var internalSettings = { + success: function(data, textStatus, jqXHR) { + subject.onNext({ data: data, textStatus: textStatus, jqXHR: jqXHR }); + subject.onCompleted(); + }, + error: function(jqXHR, textStatus, errorThrown) { + subject.onError({ jqXHR: jqXHR, textStatus: textStatus, errorThrown: errorThrown }); + } + }; + + $.extend(true, internalSettings, settings); + + $.ajax(internalSettings); + + return subject; + }; + + $.getAsObservable = function(url, data, dataType) { + return ajaxAsObservable({ url: url, dataType: dataType, data: data }); + }; + + $.getJSONAsObservable = function(url, data) { + return ajaxAsObservable({ url: url, dataType: 'json', data: data }); + }; + + $.getScriptAsObservable = function(url) { + return ajaxAsObservable({ url: url, dataType: 'script'}); + }; + + $.postAsObservable = function(url, data, dataType) { + return ajaxAsObservable({ url: url, dataType: dataType, data: data, type: 'POST'}); + }; + return root; +})); \ No newline at end of file diff --git a/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.min.js b/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.min.js new file mode 100755 index 000000000..1e0e0eac6 --- /dev/null +++ b/ajax/libs/rxjs-jquery/0.0.2/rx.jquery.min.js @@ -0,0 +1 @@ +(function(e,n){var t="object"==typeof exports&&exports&&("object"==typeof e&&e&&e==e.global&&(window=e),exports);"function"==typeof define&&define.amd?define(["rx","jQuery","exports"],function(t,r,s){return e.Rx=n(e,s,t,r),e.Rx}):"object"==typeof module&&module&&module.exports==t?module.exports=n(e,module.exports,require("./rx"),require("./jQuery")):e.Rx=n(e,{},e.Rx,jQuery)})(this,function(e,n,t,r){var t=e.Rx,s=t.Observable,o=s.prototype,i=t.AsyncSubject,u=s.create,b=s.createWithDisposable,a=t.Disposable.empty,l=Array.prototype.slice,c=r.fn;r.Deferred.prototype.toObservable=function(){var e=new i;return this.done(function(){e.onNext(l.call(arguments)),e.onCompleted()}).fail(function(){e.onError(l.call(arguments))}),e},o.toDeferred=function(){var e=r.Deferred();return this.subscribe(function(n){e.resolve(n)},function(n){e.reject(n)}),e},r.Callbacks&&(r.Callbacks.prototype.toObservable=function(){var e=this;return u(function(n){function t(e){n.onNext(e)}return e.add(t.bind(e)),function(){e.remove(t)}})}),c.onAsObservable=function(){var e=this,n=l.call(arguments,0);return u(function(t){function r(e){e.additionalArguments=l.call(arguments,1),t.onNext(e)}return n.push(r.bind(e)),e.on.apply(e,n),function(){e.off.apply(e,n)}})},c.bindAsObservable=function(e,n){var t=this;return u(function(r){function s(e){e.additionalArguments=l.call(arguments,1),r.onNext(e)}return t.bind(e,n,s.bind(t)),function(){t.unbind(e,s)}})},c.delegateAsObservable=function(e,n,t){var r=this;return u(function(s){function o(e){e.additionalArguments=l.call(arguments,1),s.onNext(e)}return r.delegate(e,n,t,o.bind(r)),function(){r.undelegate(e,n,o)}})},c.liveAsObservable=function(e,n){var t=this;return u(function(r){function s(e){e.additionalArguments=l.call(arguments,1),r.onNext(e)}return t.live(e,n,s.bind(t)),function(){t.die(e,s)}})},c.changeAsObservable=function(e){return this.bindAsObservable("change",e)},c.clickAsObservable=function(e){return this.bindAsObservable("click",e)},c.dblclickAsObservable=function(e){return this.bindAsObservable("dblclick",e)},c.focusAsObservable=function(e){return this.bindAsObservable("focus",e)},c.focusinAsObservable=function(e){return this.bindAsObservable("focusin",e)},c.focusoutAsObservable=function(e){return this.bindAsObservable("focusout",e)},c.keydownAsObservable=function(e){return this.bindAsObservable("keydown",e)},c.keyupAsObservable=function(e){return this.bindAsObservable("keyup",e)},c.loadAsObservable=function(e){return this.bindAsObservable("load",e)},c.mousedownAsObservable=function(e){return this.bindAsObservable("mousedown",e)},c.mouseenterAsObservable=function(e){return this.bindAsObservable("mouseenter",e)},c.mouseleaveAsObservable=function(e){return this.bindAsObservable("mouseleave",e)},c.mousemoveAsObservable=function(e){return this.bindAsObservable("mousemove",e)},c.mouseoutAsObservable=function(e){return this.bindAsObservable("mouseout",e)},c.mouseoverAsObservable=function(e){return this.bindAsObservable("mouseover",e)},c.mouseupAsObservable=function(e){return this.bindAsObservable("mouseup",e)},c.resizeAsObservable=function(e){return this.bindAsObservable("resize",e)},c.scrollAsObservable=function(e){return this.bindAsObservable("scroll",e)},c.selectAsObservable=function(e){return this.bindAsObservable("select",e)},c.submitAsObservable=function(e){return this.bindAsObservable("submit",e)},c.unloadAsObservable=function(e){return this.bindAsObservable("unload",e)},c.oneAsObservable=function(e,n,t){var r=this;return b(function(s){function o(i){i.additionalArguments=l.call(arguments,1),r.off(e,n,t,o),s.onNext(i),s.onCompleted()}return r.on(e,n,t,o.bind(r)),a})},c.readyAsObservable=function(){var e=this;return b(function(n){function t(e){n.onNext(e)}return e.ready(t.bind(e)),a})},c.hideAsObservable=function(e){"number"==typeof e?e={duration:e}:e||(e={});var n=new i;return e.complete=function(){n.onNext(this),n.onCompleted()},this.hide(e),n},c.showAsObservable=function(e){"number"==typeof e?e={duration:e}:e||(e={});var n=new i;return e.complete=function(){n.onNext(this),n.onCompleted()},this.show(e),n},c.animateAsObservable=function(e,n,t){var r=new i;return this.animate(e,n,t,function(){r.onNext(this),r.onCompleted()}),r},c.fadeInAsObservable=function(e,n){var t=new i;return this.fadeIn(e,n,function(){t.onNext(this),t.onCompleted()}),t},c.fadeToAsObservable=function(e,n,t){var r=new i;return this.fadeTo(e,n,t,function(){r.onNext(this),r.onCompleted()}),r},c.fadeOutAsObservable=function(e,n){var t=new i;return this.fadeOut(e,n,function(){t.onNext(this),t.onCompleted()}),t},c.fadeToggleAsObservable=function(e,n){var t=new i;return this.fadeToggle(e,n,function(){t.onNext(this),t.onCompleted()}),t},c.slideDownAsObservable=function(e){var n=new i;return this.slideDown(e,function(){n.onNext(this),n.onCompleted()}),n},c.slideUpAsObservable=function(e){var n=new i;return this.slideUp(e,function(){n.onNext(this),n.onCompleted()}),n},c.slideToggleAsObservable=function(e){var n=new i;return this.slideToggle(e,function(){n.onNext(this),n.onCompleted()}),n},c.toggleAsObservable=function(e,n){var t=new i;return this.toggle(e,n,function(){t.onNext(this),t.onCompleted()}),t};var f=r.ajaxAsObservable=function(e){var n=new i,t={success:function(e,t,r){n.onNext({data:e,textStatus:t,jqXHR:r}),n.onCompleted()},error:function(e,t,r){n.onError({jqXHR:e,textStatus:t,errorThrown:r})}};return r.extend(!0,t,e),r.ajax(t),n};return r.getAsObservable=function(e,n,t){return f({url:e,dataType:t,data:n})},r.getJSONAsObservable=function(e,n){return f({url:e,dataType:"json",data:n})},r.getScriptAsObservable=function(e){return f({url:e,dataType:"script"})},r.postAsObservable=function(e,n,t){return f({url:e,dataType:t,data:n,type:"POST"})},t}); \ No newline at end of file diff --git a/ajax/libs/rxjs-jquery/package.json b/ajax/libs/rxjs-jquery/package.json new file mode 100644 index 000000000..30ab3ab1a --- /dev/null +++ b/ajax/libs/rxjs-jquery/package.json @@ -0,0 +1,38 @@ +{ + "name": "rxjs-jquery", + "filename": "rx.jquery.js", + "title": "Reactive Extensions for JavaScript bindings for jQuery", + "description": "Library for composing asynchronous and event-based operations in JavaScript extending the jQuery library", + "version": "0.0.2", + "homepage": "https://github.com/Reactive-Extensions/rxjs-jquery", + "author": { + "name": "MS Open Tech", + "url": "https://github.com/Reactive-Extensions/rxjs-jquery/blob/master/authors.txt" + }, + "repository": { + "type": "git", + "url": "https://github.com/Reactive-Extensions/rxjs-jquery.git" + }, + "licenses": [ + { + "type": "Apache License, Version 2.0", + "url": "http://www.apache.org/licenses/LICENSE-2.0.html" + } + ], + "dependencies": {}, + "devDependencies": { + "grunt": "~0.4.0", + "grunt-contrib-uglify": "~0.1.2", + "grunt-contrib-concat": "~0.1.3", + "grunt-contrib-qunit": "~0.2.0" + }, + "keywords": [ + "Reactive", + "LINQ", + "Collections", + "jQuery", + "RxJS", + "Rx" + ], + "main": "rx.jquery.js" +} \ No newline at end of file