rxjs-rails 2.3.22 → 2.3.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +178 -146
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.all.compat.js +1706 -1156
- data/vendor/assets/javascripts/rx.all.compat.min.js +4 -4
- data/vendor/assets/javascripts/rx.all.js +1529 -1125
- data/vendor/assets/javascripts/rx.all.min.js +4 -3
- data/vendor/assets/javascripts/rx.async.compat.js +15 -79
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +15 -79
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.backpressure.js +38 -15
- data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
- data/vendor/assets/javascripts/rx.binding.js +42 -54
- data/vendor/assets/javascripts/rx.binding.min.js +1 -1
- data/vendor/assets/javascripts/rx.coincidence.js +6 -6
- data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +1234 -828
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +12 -6
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.joinpatterns.js +15 -11
- data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +1159 -791
- data/vendor/assets/javascripts/rx.lite.compat.js +1264 -920
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.extras.js +99 -27
- data/vendor/assets/javascripts/rx.lite.extras.min.js +1 -1
- data/vendor/assets/javascripts/rx.lite.js +1192 -886
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.testing.js +64 -63
- data/vendor/assets/javascripts/rx.testing.min.js +1 -1
- data/vendor/assets/javascripts/rx.time.js +32 -35
- data/vendor/assets/javascripts/rx.time.min.js +1 -1
- metadata +3 -3
@@ -1,4 +1,4 @@
|
|
1
1
|
/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
|
2
|
-
(function(a){function b(){if(this.isDisposed)throw new Error(Z)}function c(a,b){if($&&b.stack&&"object"==typeof a&&null!==a&&a.stack&&-1===a.stack.indexOf(cb)){for(var c=[],e=b;e;e=e.source)e.stack&&c.unshift(e.stack);c.unshift(a.stack);var f=c.join("\n"+cb+"\n");a.stack=d(f)}}function d(a){for(var b=a.split("\n"),c=[],d=0,g=b.length;g>d;d++){var h=b[d];e(h)||f(h)||!h||c.push(h)}return c.join("\n")}function e(a){var b=h(a);if(!b)return!1;var c=b[0],d=b[1];return c===ab&&d>=bb&&Oc>=d}function f(a){return-1!==a.indexOf("(module.js:")||-1!==a.indexOf("(node.js:")}function g(){if($)try{throw new Error}catch(a){var b=a.stack.split("\n"),c=b[0].indexOf("@")>0?b[1]:b[2],d=h(c);if(!d)return;return ab=d[0],d[1]}}function h(a){var b=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a);if(b)return[b[1],Number(b[2])];var c=/at ([^ ]+):(\d+):(?:\d+)$/.exec(a);if(c)return[c[1],Number(c[2])];var d=/.*@(.+):(\d+)$/.exec(a);return d?[d[1],Number(d[2])]:void 0}function i(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function j(a){var b=[];if(!i(a))return b;Cb.nonEnumArgs&&a.length&&Db(a)&&(a=Fb.call(a));var c=Cb.enumPrototypes&&"function"==typeof a,d=Cb.enumErrorProps&&(a===wb||a instanceof Error);for(var e in a)c&&"prototype"==e||d&&("message"==e||"name"==e)||b.push(e);if(Cb.nonEnumShadows&&a!==xb){var f=a.constructor,g=-1,h=Ab.length;if(a===(f&&f.prototype))var j=a===yb?sb:a===wb?nb:tb.call(a),k=Bb[j];for(;++g<h;)e=Ab[g],k&&k[e]||!ub.call(a,e)||b.push(e)}return b}function k(a,b,c){for(var d=-1,e=c(a),f=e.length;++d<f;){var g=e[d];if(b(a[g],g,a)===!1)break}return a}function l(a,b){return k(a,b,j)}function m(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}function n(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;var e=typeof a,f=typeof b;if(a===a&&(null==a||null==b||"function"!=e&&"object"!=e&&"function"!=f&&"object"!=f))return!1;var g=tb.call(a),h=tb.call(b);if(g==jb&&(g=qb),h==jb&&(h=qb),g!=h)return!1;switch(g){case lb:case mb:return+a==+b;case pb:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case rb:case sb:return a==String(b)}var i=g==kb;if(!i){if(g!=qb||!Cb.nodeClass&&(m(a)||m(b)))return!1;var j=!Cb.argsObject&&Db(a)?Object:a.constructor,k=!Cb.argsObject&&Db(b)?Object:b.constructor;if(!(j==k||ub.call(a,"constructor")&&ub.call(b,"constructor")||X(j)&&j instanceof j&&X(k)&&k instanceof k||!("constructor"in a&&"constructor"in b)))return!1}c||(c=[]),d||(d=[]);for(var o=c.length;o--;)if(c[o]==a)return d[o]==b;var p=0,q=!0;if(c.push(a),d.push(b),i){if(o=a.length,p=b.length,q=p==o)for(;p--;){var r=b[p];if(!(q=n(a[p],r,c,d)))break}}else l(b,function(b,e,f){return ub.call(f,e)?(p++,q=ub.call(a,e)&&n(a[e],b,c,d)):void 0}),q&&l(a,function(a,b,c){return ub.call(c,b)?q=--p>-1:void 0});return c.pop(),d.pop(),q}function o(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Fb.call(a)}function p(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function q(a,b){this.id=a,this.value=b}function r(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function t(){this._s=s}function u(){this._s=s,this._l=s.length,this._i=0}function v(a){this._a=a}function w(a){this._a=a,this._l=A(a),this._i=0}function x(a){return"number"==typeof a&&J.isFinite(a)}function y(b){var c,d=b[db];if(!d&&"string"==typeof b)return c=new t(b),c[db]();if(!d&&b.length!==a)return c=new v(b),c[db]();if(!d)throw new TypeError("Object is not iterable");return b[db]()}function z(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function A(a){var b=+a.length;return isNaN(b)?0:0!==b&&x(b)?(b=z(b)*Math.floor(Math.abs(b)),0>=b?0:b>yc?yc:b):b}function B(a,b){return Q(a)||(a=$b),new Jc(function(c){var d=0,e=b.length;return a.scheduleRecursive(function(a){e>d?(c.onNext(b[d++]),a()):c.onCompleted()})})}function C(a,b){return new Jc(function(c){var d=new Sb,e=new Tb;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}W(f)&&(f=vc(f)),d=new Sb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e},a)}function D(a,b){var c=this;return new Jc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))},c)}function E(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return W(f)&&(f=vc(f)),(gb(f)||fb(f))&&(f=zc(f)),f}).concatAll()}function F(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function G(a){this.comparer=a,this.set=[]}function H(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return W(f)&&(f=vc(f)),(gb(f)||fb(f))&&(f=zc(f)),f}).mergeAll()}var I={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},J=I[typeof window]&&window||this,K=I[typeof exports]&&exports&&!exports.nodeType&&exports,L=I[typeof module]&&module&&!module.nodeType&&module,M=L&&L.exports===K&&K,N=I[typeof global]&&global;!N||N.global!==N&&N.window!==N||(J=N);var O={internals:{},config:{Promise:J.Promise},helpers:{}},P=O.helpers.noop=function(){},Q=(O.helpers.notDefined=function(a){return"undefined"==typeof a},O.helpers.isScheduler=function(a){return a instanceof O.Scheduler}),R=O.helpers.identity=function(a){return a},S=(O.helpers.pluck=function(a){return function(b){return b[a]}},O.helpers.just=function(a){return function(){return a}},O.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),T=O.helpers.defaultComparer=function(a,b){return Eb(a,b)},U=O.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},V=(O.helpers.defaultKeySerializer=function(a){return a.toString()},O.helpers.defaultError=function(a){throw a}),W=O.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},X=(O.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},O.helpers.not=function(a){return!a},O.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==tb.call(a)}),a}()),Y="Argument out of range",Z="Object has been disposed";O.config.longStackSupport=!1;var $=!1;try{throw new Error}catch(_){$=!!_.stack}var ab,bb=g(),cb="From previous event:",db="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";J.Set&&"function"==typeof(new J.Set)["@@iterator"]&&(db="@@iterator");var eb=O.doneEnumerator={done:!0,value:a},fb=O.helpers.isIterable=function(b){return b[db]!==a},gb=O.helpers.isArrayLike=function(b){return b&&b.length!==a};O.helpers.iterator=db;var hb,ib=O.helpers.deprecate=function(){},jb="[object Arguments]",kb="[object Array]",lb="[object Boolean]",mb="[object Date]",nb="[object Error]",ob="[object Function]",pb="[object Number]",qb="[object Object]",rb="[object RegExp]",sb="[object String]",tb=Object.prototype.toString,ub=Object.prototype.hasOwnProperty,vb=tb.call(arguments)==jb,wb=Error.prototype,xb=Object.prototype,yb=String.prototype,zb=xb.propertyIsEnumerable;zb||(zb=xb.propertyIsEnumerable=function(a){for(var b in this)if(b===a)return!0;return!1});try{hb=!(tb.call(document)==qb&&!({toString:0}+""))}catch(_){hb=!0}var Ab=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Bb={};Bb[kb]=Bb[mb]=Bb[pb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Bb[lb]=Bb[sb]={constructor:!0,toString:!0,valueOf:!0},Bb[nb]=Bb[ob]=Bb[rb]={constructor:!0,toString:!0},Bb[qb]={constructor:!0};var Cb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Cb.enumErrorProps=zb.call(wb,"message")||zb.call(wb,"name"),Cb.enumPrototypes=zb.call(a,"prototype"),Cb.nonEnumArgs=0!=c,Cb.nonEnumShadows=!/valueOf/.test(b)}(1);var Db=function(a){return a&&"object"==typeof a?tb.call(a)==jb:!1};vb||(Db=function(a){return a&&"object"==typeof a?ub.call(a,"callee"):!1});var Eb=O.internals.isEqual=function(a,b){return n(a,b,[],[])},Fb=Array.prototype.slice,Gb=({}.hasOwnProperty,this.inherits=O.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),Hb=O.internals.addProperties=function(a){for(var b=Fb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}},Ib=O.internals.addRef=function(a,b){return new Jc(function(c){return new Nb(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Fb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Fb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Fb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var Jb=Object("a"),Kb="a"!=Jb[0]||!(0 in Jb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=Kb&&{}.toString.call(this)==sb?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=ob)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=Kb&&{}.toString.call(this)==sb?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=ob)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==kb}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),q.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var Lb=O.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Mb=Lb.prototype;Mb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Mb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Mb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(b<this.length&&this.isHigherPriority(b,d)&&(d=b),c<this.length&&this.isHigherPriority(c,d)&&(d=c),d!==a){var e=this.items[a];this.items[a]=this.items[d],this.items[d]=e,this.heapify(d)}}},Mb.peek=function(){return this.items[0].value},Mb.removeAt=function(a){this.items[a]=this.items[--this.length],delete this.items[this.length],this.heapify()},Mb.dequeue=function(){var a=this.peek();return this.removeAt(0),a},Mb.enqueue=function(a){var b=this.length++;this.items[b]=new q(Lb.count++,a),this.percolate(b)},Mb.remove=function(a){for(var b=0;b<this.length;b++)if(this.items[b].value===a)return this.removeAt(b),!0;return!1},Lb.count=0;var Nb=O.CompositeDisposable=function(){this.disposables=o(arguments,0),this.isDisposed=!1,this.length=this.disposables.length},Ob=Nb.prototype;Ob.add=function(a){this.isDisposed?a.dispose():(this.disposables.push(a),this.length++)},Ob.remove=function(a){var b=!1;if(!this.isDisposed){var c=this.disposables.indexOf(a);-1!==c&&(b=!0,this.disposables.splice(c,1),this.length--,a.dispose())}return b},Ob.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.disposables.slice(0);this.disposables=[],this.length=0;for(var b=0,c=a.length;c>b;b++)a[b].dispose()}},Ob.toArray=function(){return this.disposables.slice(0)};var Pb=O.Disposable=function(a){this.isDisposed=!1,this.action=a||P};Pb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Qb=Pb.create=function(a){return new Pb(a)},Rb=Pb.empty={dispose:P},Sb=O.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),Tb=O.SerialDisposable=Sb,Ub=O.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Rb:new a(this)},b}();r.prototype.dispose=function(){var a=this;this.scheduler.schedule(function(){a.isDisposed||(a.isDisposed=!0,a.disposable.dispose())})};var Vb=O.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||U,this.disposable=new Sb};Vb.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},Vb.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},Vb.prototype.isCancelled=function(){return this.disposable.isDisposed},Vb.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var Wb=O.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Rb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=S,a.normalize=function(a){return 0>a&&(a=0),a},a}(),Xb=Wb.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new Nb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Rb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new Nb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Rb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(Wb.prototype),function(){Wb.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},Wb.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof J.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=J.setInterval(function(){d=c(d)},b);return Qb(function(){J.clearInterval(e)})}}(Wb.prototype),function(a){a.catchError=a["catch"]=function(a){return new dc(this,a)}}(Wb.prototype);var Yb,Zb=(O.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Sb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),Wb.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=Xb(b);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Wb(S,a,b,c)}()),$b=Wb.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-Wb.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+Wb.normalize(c),g=new Vb(this,b,d,f);if(e)e.enqueue(g);else{e=new Lb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new Wb(S,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),_b=P,ac=function(){var a,b=P;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!J.setTimeout)throw new Error("No concurrency detected!");a=J.setTimeout,b=J.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),bc=ac.setTimeout,cc=ac.clearTimeout;!function(){function a(){if(!J.postMessage||J.importScripts)return!1;var a=!1,b=J.onmessage;return J.onmessage=function(){a=!0},J.postMessage("","*"),J.onmessage=b,a}var b=RegExp("^"+String(tb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),c="function"==typeof(c=N&&M&&N.setImmediate)&&!b.test(c)&&c,d="function"==typeof(d=N&&M&&N.clearImmediate)&&!b.test(d)&&d;if("function"==typeof c)Yb=c,_b=d;else if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))Yb=process.nextTick;else if(a()){var e="ms.rx.schedule"+Math.random(),f={},g=0,h=function(a){if("string"==typeof a.data&&a.data.substring(0,e.length)===e){var b=a.data.substring(e.length),c=f[b];c(),delete f[b]}};J.addEventListener?J.addEventListener("message",h,!1):J.attachEvent("onmessage",h,!1),Yb=function(a){var b=g++;f[b]=a,J.postMessage(e+b,"*")}}else if(J.MessageChannel){var i=new J.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},Yb=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in J&&"onreadystatechange"in J.document.createElement("script")?Yb=function(a){var b=J.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},J.document.documentElement.appendChild(b)}:(Yb=function(a){return bc(a,0)},_b=cc)}();var dc=(Wb.timeout=function(){function a(a,b){var c=this,d=new Sb,e=Yb(function(){d.isDisposed||d.setDisposable(b(c,a))});return new Nb(d,Qb(function(){_b(e)}))}function b(a,b,c){var d=this,e=Wb.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Sb,g=bc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new Nb(f,Qb(function(){cc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new Wb(S,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Gb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return Rb}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new Sb;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(Wb)),ec=O.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return Q(a)||(a=Zb),new Jc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),fc=ec.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new ec("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),gc=ec.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new ec("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),hc=ec.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new ec("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),ic=O.internals.Enumerator=function(a){this._next=a};ic.prototype.next=function(){return this._next()},ic.prototype[db]=function(){return this};var jc=O.internals.Enumerable=function(a){this._iterator=a};jc.prototype[db]=function(){return this._iterator()},jc.prototype.concat=function(){var a=this;return new Jc(function(b){var c;try{c=a[db]()}catch(d){return void b.onError(d)}var e,f=new Tb,g=Zb.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;W(h)&&(h=vc(h));var i=new Sb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new Nb(f,g,Qb(function(){e=!0}))})},jc.prototype.catchError=function(){var a=this;return new Jc(function(b){var c;try{c=a[db]()}catch(d){return void b.onError(d)}var e,f,g=new Tb,h=Zb.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;W(i)&&(i=vc(i));var j=new Sb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new Nb(g,h,Qb(function(){e=!0}))})};var kc=jc.repeat=function(a,b){return null==b&&(b=-1),new jc(function(){var c=b;return new ic(function(){return 0===c?eb:(c>0&&c--,{done:!1,value:a})})})},lc=jc.of=function(a,b,c){return b||(b=R),new jc(function(){var d=-1;return new ic(function(){return++d<a.length?{done:!1,value:b.call(c,a[d],d,a)}:eb})})},mc=O.Observer=function(){};mc.prototype.toNotifier=function(){var a=this;return function(b){return b.accept(a)}},mc.prototype.asObserver=function(){return new qc(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},mc.prototype.checked=function(){return new rc(this)};var nc=mc.create=function(a,b,c){return a||(a=P),b||(b=V),c||(c=P),new qc(a,b,c)};mc.fromNotifier=function(a,b){return new qc(function(c){return a.call(b,fc(c))},function(c){return a.call(b,gc(c))},function(){return a.call(b,hc())})},mc.prototype.notifyOn=function(a){return new tc(a,this)};var oc,pc=O.internals.AbstractObserver=function(a){function b(){this.isStopped=!1,a.call(this)}return Gb(b,a),b.prototype.onNext=function(a){this.isStopped||this.next(a)},b.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.error(a))},b.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},b.prototype.dispose=function(){this.isStopped=!0},b.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.error(a),!0)},b}(mc),qc=O.AnonymousObserver=function(a){function b(b,c,d){a.call(this),this._onNext=b,this._onError=c,this._onCompleted=d}return Gb(b,a),b.prototype.next=function(a){this._onNext(a)},b.prototype.error=function(a){this._onError(a)},b.prototype.completed=function(){this._onCompleted()},b}(pc),rc=function(a){function b(b){a.call(this),this._observer=b,this._state=0}Gb(b,a);var c=b.prototype;return c.onNext=function(a){this.checkAccess();try{this._observer.onNext(a)}catch(b){throw b}finally{this._state=0}},c.onError=function(a){this.checkAccess();try{this._observer.onError(a)}catch(b){throw b}finally{this._state=2}},c.onCompleted=function(){this.checkAccess();try{this._observer.onCompleted()}catch(a){throw a}finally{this._state=2}},c.checkAccess=function(){if(1===this._state)throw new Error("Re-entrancy detected");if(2===this._state)throw new Error("Observer completed");0===this._state&&(this._state=1)},b}(mc),sc=O.internals.ScheduledObserver=function(a){function b(b,c){a.call(this),this.scheduler=b,this.observer=c,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new Tb}return Gb(b,a),b.prototype.next=function(a){var b=this;this.queue.push(function(){b.observer.onNext(a)})},b.prototype.error=function(a){var b=this;this.queue.push(function(){b.observer.onError(a)})},b.prototype.completed=function(){var a=this;this.queue.push(function(){a.observer.onCompleted()})},b.prototype.ensureActive=function(){var a=!1,b=this;!this.hasFaulted&&this.queue.length>0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(pc),tc=function(a){function b(b,c,d){a.call(this,b,c),this._cancel=d}return Gb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b.prototype.dispose=function(){a.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},b}(sc),uc=O.Observable=function(){function a(a){if(O.config.longStackSupport&&$){try{throw new Error}catch(b){this.stack=b.stack.substring(b.stack.indexOf("\n")+1)}var d=this;this._subscribe=function(b){var e=b.onError.bind(b);return b.onError=function(a){c(a,d),e(a)},a(b)}}else this._subscribe=a}return oc=a.prototype,oc.subscribe=oc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:nc(a,b,c))},oc.subscribeOnNext=function(a,b){return this._subscribe(nc(2===arguments.length?function(c){a.call(b,c)}:a))},oc.subscribeOnError=function(a,b){return this._subscribe(nc(null,2===arguments.length?function(c){a.call(b,c)}:a))},oc.subscribeOnCompleted=function(a,b){return this._subscribe(nc(null,null,2===arguments.length?function(){a.call(b)}:a))},a}();oc.observeOn=function(a){var b=this;return new Jc(function(c){return b.subscribe(new tc(a,c))},b)},oc.subscribeOn=function(a){var b=this;return new Jc(function(c){var d=new Sb,e=new Tb;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new r(a,b.subscribe(c)))})),e},b)};var vc=uc.fromPromise=function(a){return wc(function(){var b=new O.AsyncSubject;return a.then(function(a){b.onNext(a),b.onCompleted()},b.onError.bind(b)),b})};oc.toPromise=function(a){if(a||(a=O.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},oc.toArray=function(){var a=this;return new Jc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})},a)},uc.create=uc.createWithDisposable=function(a,b){return new Jc(a,b)};var wc=uc.defer=function(a){return new Jc(function(b){var c;try{c=a()}catch(d){return Dc(d).subscribe(b)}return W(c)&&(c=vc(c)),c.subscribe(b)})},xc=uc.empty=function(a){return Q(a)||(a=Zb),new Jc(function(b){return a.schedule(function(){b.onCompleted()})})},yc=Math.pow(2,53)-1;t.prototype[db]=function(){return new u(this._s)},u.prototype[db]=function(){return this},u.prototype.next=function(){if(this._i<this._l){var a=this._s.charAt(this._i++);return{done:!1,value:a}}return eb},v.prototype[db]=function(){return new w(this._a)},w.prototype[db]=function(){return this},w.prototype.next=function(){if(this._i<this._l){var a=this._a[this._i++];return{done:!1,value:a}}return eb};var zc=uc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!X(b))throw new Error("mapFn when provided must be a function");Q(d)||(d=$b);var e=Object(a),f=y(e);return new Jc(function(a){var e=0;return d.scheduleRecursive(function(d){var g;try{g=f.next()}catch(h){return void a.onError(h)}if(g.done)return void a.onCompleted();var i=g.value;if(b&&X(b))try{i=b.call(c,i,e)}catch(h){return void a.onError(h)}a.onNext(i),e++,d()})})},Ac=uc.fromArray=function(a,b){return ib("fromArray","from"),Q(b)||(b=$b),new Jc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};uc.generate=function(a,b,c,d,e){return Q(e)||(e=$b),new Jc(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var Bc=uc.never=function(){return new Jc(function(){return Rb})};uc.of=function(){return B(null,arguments)},uc.ofWithScheduler=function(a){return B(a,Fb.call(arguments,1))},uc.range=function(a,b,c){return Q(c)||(c=$b),new Jc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},uc.repeat=function(a,b,c){return Q(c)||(c=$b),Cc(a,c).repeat(null==b?-1:b)};var Cc=uc["return"]=uc.just=function(a,b){return Q(b)||(b=Zb),new Jc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})};uc.returnValue=function(){return ib("returnValue","return or just"),Cc.apply(null,arguments)};var Dc=uc["throw"]=uc.throwException=uc.throwError=function(a,b){return Q(b)||(b=Zb),new Jc(function(c){return b.schedule(function(){c.onError(a)})})};uc.using=function(a,b){return new Jc(function(c){var d,e,f=Rb;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new Nb(Dc(g).subscribe(c),f)}return new Nb(e.subscribe(c),f)})},oc.amb=function(a){var b=this;return new Jc(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new Sb,j=new Sb;return W(a)&&(a=vc(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new Nb(i,j)})},uc.amb=function(){function a(a,b){return a.amb(b)}for(var b=Bc(),c=o(arguments,0),d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},oc["catch"]=oc.catchError=function(a){return"function"==typeof a?C(this,a):Ec([this,a])},oc.catchException=function(a){return ib("catchException","catch or catchError"),this.catchError(a)
|
3
|
-
};var Ec=uc.catchError=uc["catch"]=function(){return lc(o(arguments,0)).catchError()};uc.catchException=function(){return ib("catchException","catch or catchError"),Ec.apply(null,arguments)},oc.combineLatest=function(){var a=Fb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),Fc.apply(this,a)};var Fc=uc.combineLatest=function(){var a=Fb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new Jc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(R))){try{d=b.apply(null,k)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(R)&&c.onCompleted()}function e(a){j[a]=!0,j.every(R)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=p(g,f),i=!1,j=p(g,f),k=new Array(g),l=new Array(g),m=0;g>m;m++)!function(b){var f=a[b],g=new Sb;W(f)&&(f=vc(f)),g.setDisposable(f.subscribe(function(a){k[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),l[b]=g}(m);return new Nb(l)},this)};oc.concat=function(){var a=Fb.call(arguments,0);return a.unshift(this),Gc.apply(this,a)};var Gc=uc.concat=function(){return lc(o(arguments,0)).concat()};oc.concatAll=function(){return this.merge(1)},oc.concatObservable=function(){return ib("concatObservable","concatAll"),this.merge(1)},oc.merge=function(a){if("number"!=typeof a)return Hc(this,a);var b=this;return new Jc(function(c){function d(a){var b=new Sb;f.add(b),W(a)&&(a=vc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new Nb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f},b)};var Hc=uc.merge=function(){var a,b;return arguments[0]?Q(arguments[0])?(a=arguments[0],b=Fb.call(arguments,1)):(a=Zb,b=Fb.call(arguments,0)):(a=Zb,b=Fb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),B(a,b).mergeAll()};oc.mergeAll=function(){var a=this;return new Jc(function(b){var c=new Nb,d=!1,e=new Sb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Sb;c.add(e),W(a)&&(a=vc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c},a)},oc.mergeObservable=function(){return ib("mergeObservable","mergeAll"),this.mergeAll.apply(this,arguments)},oc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return Ic([this,a])};var Ic=uc.onErrorResumeNext=function(){var a=o(arguments,0);return new Jc(function(b){var c=0,d=new Tb,e=Zb.scheduleRecursive(function(e){var f,g;c<a.length?(f=a[c++],W(f)&&(f=vc(f)),g=new Sb,d.setDisposable(g),g.setDisposable(f.subscribe(b.onNext.bind(b),e,e))):b.onCompleted()});return new Nb(d,e)})};oc.skipUntil=function(a){var b=this;return new Jc(function(c){var d=!1,e=new Nb(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));W(a)&&(a=vc(a));var f=new Sb;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e},b)},oc["switch"]=oc.switchLatest=function(){var a=this;return new Jc(function(b){var c=!1,d=new Tb,e=!1,f=0,g=a.subscribe(function(a){var g=new Sb,h=++f;c=!0,d.setDisposable(g),W(a)&&(a=vc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new Nb(g,d)},a)},oc.takeUntil=function(a){var b=this;return new Jc(function(c){return W(a)&&(a=vc(a)),new Nb(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),P))},b)},oc.zip=function(){if(Array.isArray(arguments[0]))return D.apply(this,arguments);var a=this,b=Fb.call(arguments),c=b.pop();return b.unshift(a),new Jc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(R)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=p(g,function(){return[]}),i=p(g,function(){return!1}),j=new Array(g),k=0;g>k;k++)!function(a){var c=b[a],g=new Sb;W(c)&&(c=vc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(k);return new Nb(j)},a)},uc.zip=function(){var a=Fb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},uc.zipArray=function(){var a=o(arguments,0);return new Jc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(R))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(R)?void b.onCompleted():void 0}for(var e=a.length,f=p(e,function(){return[]}),g=p(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Sb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new Nb(h);return j.add(Qb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},oc.asObservable=function(){return new Jc(this.subscribe.bind(this),this)},oc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},oc.dematerialize=function(){var a=this;return new Jc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))},this)},oc.distinctUntilChanged=function(a,b){var c=this;return a||(a=R),b||(b=T),new Jc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))},this)},oc["do"]=oc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new Jc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})},this)},oc.doAction=function(){return ib("doAction","do or tap"),this.tap.apply(this,arguments)},oc.doOnNext=oc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},oc.doOnError=oc.tapOnError=function(a,b){return this.tap(P,2===arguments.length?function(c){a.call(b,c)}:a)},oc.doOnCompleted=oc.tapOnCompleted=function(a,b){return this.tap(P,null,2===arguments.length?function(){a.call(b)}:a)},oc["finally"]=oc.ensure=function(a){var b=this;return new Jc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Qb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})},this)},oc.finallyAction=function(a){return ib("finallyAction","finally or ensure"),this.ensure(a)},oc.ignoreElements=function(){var a=this;return new Jc(function(b){return a.subscribe(P,b.onError.bind(b),b.onCompleted.bind(b))},a)},oc.materialize=function(){var a=this;return new Jc(function(b){return a.subscribe(function(a){b.onNext(fc(a))},function(a){b.onNext(gc(a)),b.onCompleted()},function(){b.onNext(hc()),b.onCompleted()})},a)},oc.repeat=function(a){return kc(this,a).concat()},oc.retry=function(a){return kc(this,a).catchError()},oc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new Jc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})},d)},oc.skipLast=function(a){var b=this;return new Jc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))},b)},oc.startWith=function(){var a,b,c=0;return arguments.length&&Q(arguments[0])?(b=arguments[0],c=1):b=Zb,a=Fb.call(arguments,c),lc([Ac(a,b),this]).concat()},oc.takeLast=function(a){var b=this;return new Jc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})},b)},oc.takeLastBuffer=function(a){var b=this;return new Jc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){c.onNext(d),c.onCompleted()})},b)},oc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(Y);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(Y);return new Jc(function(d){function e(){var a=new Mc;i.push(a),d.onNext(Ib(a,g))}var f=new Sb,g=new Ub(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g},c)},oc.selectConcat=oc.concatMap=function(a,b,c){return X(a)&&X(b)?this.concatMap(function(c,d){var e=a(c,d);return W(e)&&(e=vc(e)),(gb(e)||fb(e))&&(e=zc(e)),e.map(function(a,e){return b(c,a,d,e)})}):X(a)?E(this,a,c):E(this,function(){return a})},oc.concatMapObserver=oc.selectConcatObserver=function(a,b,c,d){var e=this;return new Jc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}W(c)&&(c=vc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}W(c)&&(c=vc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}W(a)&&(a=vc(a)),f.onNext(a),f.onCompleted()})},this).concatAll()},oc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new Jc(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},a.onError.bind(a),function(){!d&&a.onNext(b),a.onCompleted()})},this)},G.prototype.push=function(a){var b=-1===F(this.set,a,this.comparer);return b&&this.set.push(a),b},oc.distinct=function(a,b){var c=this;return b||(b=T),new Jc(function(d){var e=new G(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},d.onError.bind(d),d.onCompleted.bind(d))},this)},oc.select=oc.map=function(a,b){var c=X(a)?a:function(){return a},d=this;return new Jc(function(a){var e=0;return d.subscribe(function(f){var g;try{g=c.call(b,f,e++,d)}catch(h){return void a.onError(h)}a.onNext(g)},a.onError.bind(a),a.onCompleted.bind(a))},d)},oc.pluck=function(a){return this.map(function(b){return b[a]})},oc.selectMany=oc.flatMap=function(a,b,c){return X(a)&&X(b)?this.flatMap(function(c,d){var e=a(c,d);return W(e)&&(e=vc(e)),(gb(e)||fb(e))&&(e=zc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):X(a)?H(this,a,c):H(this,function(){return a})},oc.flatMapObserver=oc.selectManyObserver=function(a,b,c,d){var e=this;return new Jc(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}W(c)&&(c=vc(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}W(c)&&(c=vc(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}W(a)&&(a=vc(a)),f.onNext(a),f.onCompleted()})},e).mergeAll()},oc.selectSwitch=oc.flatMapLatest=oc.switchMap=function(a,b){return this.select(a,b).switchLatest()},oc.skip=function(a){if(0>a)throw new Error(Y);var b=this;return new Jc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))},b)},oc.skipWhile=function(a,b){var c=this;return new Jc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))},c)},oc.take=function(a,b){if(0>a)throw new RangeError(Y);if(0===a)return xc(b);var c=this;return new Jc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))},c)},oc.takeWhile=function(a,b){var c=this;return new Jc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))},c)},oc.where=oc.filter=function(a,b){var c=this;return new Jc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))},c)},oc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new Jc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})},c)};var Jc=O.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Qb(a):Rb}function c(d,e){function f(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Kc(a);return $b.scheduleRequired()?$b.schedule(c):c(),e}return this.source=e,this instanceof c?void a.call(this,f):new c(d)}return Gb(c,a),c}(uc),Kc=function(a){function b(b){a.call(this),this.observer=b,this.m=new Sb}Gb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{!b&&this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(pc),Lc=function(a,b){this.subject=a,this.observer=b};Lc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Mc=O.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Rb):(a.onCompleted(),Rb):(this.observers.push(a),new Lc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Gb(d,a),Hb(d.prototype,mc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new Nc(a,b)},d}(uc),Nc=(O.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Lc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Rb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Gb(d,a),Hb(d.prototype,mc,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(uc),O.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Gb(b,a),Hb(b.prototype,mc,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(uc));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(J.Rx=O,define(function(){return O})):K&&L?M?(L.exports=O).Rx=O:K.Rx=O:J.Rx=O;var Oc=g()}).call(this);
|
2
|
+
(function(a){function b(a){if(a.isDisposed)throw new Error(eb)}function c(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c]);return b}function d(a,b){if(fb&&b.stack&&"object"==typeof a&&null!==a&&a.stack&&-1===a.stack.indexOf(jb)){for(var c=[],d=b;d;d=d.source)d.stack&&c.unshift(d.stack);c.unshift(a.stack);var f=c.join("\n"+jb+"\n");a.stack=e(f)}}function e(a){for(var b=a.split("\n"),c=[],d=0,e=b.length;e>d;d++){var h=b[d];f(h)||g(h)||!h||c.push(h)}return c.join("\n")}function f(a){var b=i(a);if(!b)return!1;var c=b[0],d=b[1];return c===hb&&d>=ib&&dd>=d}function g(a){return-1!==a.indexOf("(module.js:")||-1!==a.indexOf("(node.js:")}function h(){if(fb)try{throw new Error}catch(a){var b=a.stack.split("\n"),c=b[0].indexOf("@")>0?b[1]:b[2],d=i(c);if(!d)return;return hb=d[0],d[1]}}function i(a){var b=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a);if(b)return[b[1],Number(b[2])];var c=/at ([^ ]+):(\d+):(?:\d+)$/.exec(a);if(c)return[c[1],Number(c[2])];var d=/.*@(.+):(\d+)$/.exec(a);return d?[d[1],Number(d[2])]:void 0}function j(a){var b=[];if(!Lb(a))return b;Kb.nonEnumArgs&&a.length&&Mb(a)&&(a=Ob.call(a));var c=Kb.enumPrototypes&&"function"==typeof a,d=Kb.enumErrorProps&&(a===Fb||a instanceof Error);for(var e in a)c&&"prototype"==e||d&&("message"==e||"name"==e)||b.push(e);if(Kb.nonEnumShadows&&a!==Gb){var f=a.constructor,g=-1,h=rb;if(a===(f&&f.prototype))var i=a===Hb?Bb:a===Fb?wb:Cb.call(a),j=Jb[i];for(;++g<h;)e=qb[g],j&&j[e]||!Db.call(a,e)||b.push(e)}return b}function k(a,b,c){for(var d=-1,e=c(a),f=e.length;++d<f;){var g=e[d];if(b(a[g],g,a)===!1)break}return a}function l(a,b){return k(a,b,j)}function m(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}function n(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;var e=typeof a,f=typeof b;if(a===a&&(null==a||null==b||"function"!=e&&"object"!=e&&"function"!=f&&"object"!=f))return!1;var g=Cb.call(a),h=Cb.call(b);if(g==sb&&(g=zb),h==sb&&(h=zb),g!=h)return!1;switch(g){case ub:case vb:return+a==+b;case yb:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case Ab:case Bb:return a==String(b)}var i=g==tb;if(!i){if(g!=zb||!Kb.nodeClass&&(m(a)||m(b)))return!1;var j=!Kb.argsObject&&Mb(a)?Object:a.constructor,k=!Kb.argsObject&&Mb(b)?Object:b.constructor;if(!(j==k||Db.call(a,"constructor")&&Db.call(b,"constructor")||cb(j)&&j instanceof j&&cb(k)&&k instanceof k||!("constructor"in a&&"constructor"in b)))return!1}c||(c=[]),d||(d=[]);for(var o=c.length;o--;)if(c[o]==a)return d[o]==b;var p=0,q=!0;if(c.push(a),d.push(b),i){if(o=a.length,p=b.length,q=p==o)for(;p--;){var r=b[p];if(!(q=n(a[p],r,c,d)))break}}else l(b,function(b,e,f){return Db.call(f,e)?(p++,q=Db.call(a,e)&&n(a[e],b,c,d)):void 0}),q&&l(a,function(a,b,c){return Db.call(c,b)?q=--p>-1:void 0});return c.pop(),d.pop(),q}function o(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function p(a){throw a}function q(a,b){this.id=a,this.value=b}function r(a,b){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function t(a,b){b.isDisposed||(b.isDisposed=!0,b.disposable.dispose())}function u(a){this.observer=a,this.a=[],this.isStopped=!1}function v(){this._s=s}function w(){this._s=s,this._l=s.length,this._i=0}function x(a){this._a=a}function y(a){this._a=a,this._l=C(a),this._i=0}function z(a){return"number"==typeof a&&Q.isFinite(a)}function A(b){var c,d=b[kb];if(!d&&"string"==typeof b)return c=new v(b),c[kb]();if(!d&&b.length!==a)return c=new x(b),c[kb]();if(!d)throw new TypeError("Object is not iterable");return b[kb]()}function B(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function C(a){var b=+a.length;return isNaN(b)?0:0!==b&&z(b)?(b=B(b)*Math.floor(Math.abs(b)),0>=b?0:b>Kc?Kc:b):b}function D(a,b){this.observer=a,this.parent=b}function E(a,b){return new Mc(b,a)}function F(a,b){return new $c(function(c){var d=new _b,e=new ac;return e.setDisposable(d),d.setDisposable(a.subscribe(function(a){c.onNext(a)},function(a){try{var d=b(a)}catch(f){return c.onError(f)}bb(d)&&(d=Ec(d));var g=new _b;e.setDisposable(g),g.setDisposable(d.subscribe(c))},function(a){c.onCompleted(a)})),e},a)}function G(a,b){var c=this;return new $c(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return d.onError(i)}d.onNext(g)}else d.onCompleted()},function(a){d.onError(a)},function(){d.onCompleted()})},c)}function H(){return!1}function I(){return[]}function J(a,b,c){var d=pb(b,c,3);return a.map(function(b,c){var e=d(b,c,a);return bb(e)&&(e=Ec(e)),(nb(e)||mb(e))&&(e=Lc(e)),e}).concatAll()}function K(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function L(a){this.comparer=a,this.set=[]}function M(a,b,c){this.observer=a,this.selector=b,this.source=c,this.i=0,this.isStopped=!1}function N(a,b,c){var d=pb(b,c,3);return a.map(function(b,c){var e=d(b,c,a);return bb(e)&&(e=Ec(e)),(nb(e)||mb(e))&&(e=Lc(e)),e}).mergeAll()}function O(a,b,c){this.observer=a,this.predicate=b,this.source=c,this.i=0,this.isStopped=!1}var P={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},Q=P[typeof window]&&window||this,R=P[typeof exports]&&exports&&!exports.nodeType&&exports,S=P[typeof module]&&module&&!module.nodeType&&module,T=S&&S.exports===R&&R,U=P[typeof global]&&global;!U||U.global!==U&&U.window!==U||(Q=U);var V={internals:{},config:{Promise:Q.Promise},helpers:{}},W=V.helpers.noop=function(){},X=(V.helpers.notDefined=function(a){return"undefined"==typeof a},V.helpers.isScheduler=function(a){return a instanceof V.Scheduler}),Y=V.helpers.identity=function(a){return a},Z=(V.helpers.pluck=function(a){return function(b){return b[a]}},V.helpers.just=function(a){return function(){return a}},V.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),$=V.helpers.defaultComparer=function(a,b){return Nb(a,b)},_=V.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},ab=(V.helpers.defaultKeySerializer=function(a){return a.toString()},V.helpers.defaultError=function(a){throw a}),bb=V.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},cb=(V.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},V.helpers.not=function(a){return!a},V.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Cb.call(a)}),a}()),db="Argument out of range",eb="Object has been disposed";V.config.longStackSupport=!1;var fb=!1;try{throw new Error}catch(gb){fb=!!gb.stack}var hb,ib=h(),jb="From previous event:",kb="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";Q.Set&&"function"==typeof(new Q.Set)["@@iterator"]&&(kb="@@iterator");var lb=V.doneEnumerator={done:!0,value:a},mb=V.helpers.isIterable=function(b){return b[kb]!==a},nb=V.helpers.isArrayLike=function(b){return b&&b.length!==a};V.helpers.iterator=kb;var ob,pb=V.internals.bindCallback=function(a,b,c){if("undefined"==typeof b)return a;switch(c){case 0:return function(){return a.call(b)};case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}},qb=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],rb=qb.length,sb="[object Arguments]",tb="[object Array]",ub="[object Boolean]",vb="[object Date]",wb="[object Error]",xb="[object Function]",yb="[object Number]",zb="[object Object]",Ab="[object RegExp]",Bb="[object String]",Cb=Object.prototype.toString,Db=Object.prototype.hasOwnProperty,Eb=Cb.call(arguments)==sb,Fb=Error.prototype,Gb=Object.prototype,Hb=String.prototype,Ib=Gb.propertyIsEnumerable;try{ob=!(Cb.call(document)==zb&&!({toString:0}+""))}catch(gb){ob=!0}var Jb={};Jb[tb]=Jb[vb]=Jb[yb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Jb[ub]=Jb[Bb]={constructor:!0,toString:!0,valueOf:!0},Jb[wb]=Jb[xb]=Jb[Ab]={constructor:!0,toString:!0},Jb[zb]={constructor:!0};var Kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Kb.enumErrorProps=Ib.call(Fb,"message")||Ib.call(Fb,"name"),Kb.enumPrototypes=Ib.call(a,"prototype"),Kb.nonEnumArgs=0!=c,Kb.nonEnumShadows=!/valueOf/.test(b)}(1);var Lb=V.internals.isObject=function(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1},Mb=function(a){return a&&"object"==typeof a?Cb.call(a)==sb:!1};Eb||(Mb=function(a){return a&&"object"==typeof a?Db.call(a,"callee"):!1});var Nb=V.internals.isEqual=function(a,b){return n(a,b,[],[])},Ob=({}.hasOwnProperty,Array.prototype.slice),Pb=this.inherits=V.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c},Qb=V.internals.addProperties=function(a){for(var b=[],c=1,d=arguments.length;d>c;c++)b.push(arguments[c]);for(var e=0,f=b.length;f>e;e++){var g=b[e];for(var h in g)a[h]=g[h]}},Rb=V.internals.addRef=function(a,b){return new $c(function(c){return new Wb(b.getDisposable(),a.subscribe(c))})};Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Ob.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Ob.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Ob.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var Sb=Object("a"),Tb="a"!=Sb[0]||!(0 in Sb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=Tb&&{}.toString.call(this)==Bb?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=xb)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=Tb&&{}.toString.call(this)==Bb?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=xb)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==tb}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Object.prototype.propertyIsEnumerable||(Object.prototype.propertyIsEnumerable=function(a){for(var b in this)if(b===a)return!0;return!1}),Object.keys||(Object.keys=function(){"use strict";var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString");return function(c){if("object"!=typeof c&&("function"!=typeof c||null===c))throw new TypeError("Object.keys called on non-object");var d,e,f=[];for(d in c)a.call(c,d)&&f.push(d);if(b)for(e=0;rb>e;e++)a.call(c,qb[e])&&f.push(qb[e]);return f}}()),q.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var Ub=V.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Vb=Ub.prototype;Vb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Vb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Vb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(b<this.length&&this.isHigherPriority(b,d)&&(d=b),c<this.length&&this.isHigherPriority(c,d)&&(d=c),d!==a){var e=this.items[a];this.items[a]=this.items[d],this.items[d]=e,this.heapify(d)}}},Vb.peek=function(){return this.items[0].value},Vb.removeAt=function(b){this.items[b]=this.items[--this.length],this.items[this.length]=a,this.heapify()},Vb.dequeue=function(){var a=this.peek();return this.removeAt(0),a},Vb.enqueue=function(a){var b=this.length++;this.items[b]=new q(Ub.count++,a),this.percolate(b)},Vb.remove=function(a){for(var b=0;b<this.length;b++)if(this.items[b].value===a)return this.removeAt(b),!0;return!1},Ub.count=0;var Wb=V.CompositeDisposable=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}this.disposables=a,this.isDisposed=!1,this.length=a.length},Xb=Wb.prototype;Xb.add=function(a){this.isDisposed?a.dispose():(this.disposables.push(a),this.length++)},Xb.remove=function(a){var b=!1;if(!this.isDisposed){var c=this.disposables.indexOf(a);-1!==c&&(b=!0,this.disposables.splice(c,1),this.length--,a.dispose())}return b},Xb.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var a=this.disposables.length,b=new Array(a),c=0;a>c;c++)b[c]=this.disposables[c];for(this.disposables=[],this.length=0,c=0;a>c;c++)b[c].dispose()}};var Yb=V.Disposable=function(a){this.isDisposed=!1,this.action=a||W};Yb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Zb=Yb.create=function(a){return new Yb(a)},$b=Yb.empty={dispose:W},_b=V.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b=this.isDisposed;if(!b){var c=this.current;this.current=a}c&&c.dispose(),b&&a&&a.dispose()},b.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.current;this.current=null}a&&a.dispose()},a}(),ac=V.SerialDisposable=_b,bc=V.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?$b:new a(this)},b}();r.prototype.dispose=function(){this.scheduler.scheduleWithState(this,t)};var cc=V.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||_,this.disposable=new _b};cc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},cc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},cc.prototype.isCancelled=function(){return this.disposable.isDisposed},cc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};{var dc=V.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),$b}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=Z,a.normalize=function(a){return 0>a&&(a=0),a},a}();dc.normalize}!function(a){function b(a,b){var c=b.first,d=b.second,e=new Wb,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),$b});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new Wb,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c](b,d,function(a,b){return e?f.remove(i):h=!0,g(b),$b});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(dc.prototype),function(){dc.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},dc.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof Q.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=Q.setInterval(function(){d=c(d)},b);return Zb(function(){Q.clearInterval(e)})}}(dc.prototype),function(a){a.catchError=a["catch"]=function(a){return new lc(this,a)}}(dc.prototype);var ec,fc=(V.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new _b;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),dc.immediate=function(){function a(a,b){return b(this,a)}function b(){throw new Error("Not supported")}return new dc(Z,a,b,b)}()),gc=dc.currentThread=function(){function a(a){for(;a.length>0;){var b=a.dequeue();b.isCancelled()||!b.isCancelled()&&b.invoke()}}function b(b,c){var e=new cc(this,b,c,this.now());if(d)d.enqueue(e);else{d=new Ub(4),d.enqueue(e);try{a(d)}catch(f){throw f}finally{d=null}}return e.disposable}function c(){throw new Error("Not supported")}var d,e=new dc(Z,b,c,c);return e.scheduleRequired=function(){return!d},e.ensureTrampoline=function(a){d?a():this.schedule(a)},e}(),hc=W,ic=function(){var a,b=W;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!Q.setTimeout)throw new Error("No concurrency detected!");a=Q.setTimeout,b=Q.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),jc=ic.setTimeout,kc=ic.clearTimeout;!function(){function a(){if(!Q.postMessage||Q.importScripts)return!1;var a=!1,b=Q.onmessage;return Q.onmessage=function(){a=!0},Q.postMessage("","*"),Q.onmessage=b,a}var b=RegExp("^"+String(Cb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),c="function"==typeof(c=U&&T&&U.setImmediate)&&!b.test(c)&&c,d="function"==typeof(d=U&&T&&U.clearImmediate)&&!b.test(d)&&d;if("function"==typeof c)ec=c,hc=d;else if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))ec=process.nextTick;else if(a()){var e="ms.rx.schedule"+Math.random(),f={},g=0,h=function(a){if("string"==typeof a.data&&a.data.substring(0,e.length)===e){var b=a.data.substring(e.length),c=f[b];c(),delete f[b]}};Q.addEventListener?Q.addEventListener("message",h,!1):Q.attachEvent("onmessage",h,!1),ec=function(a){var b=g++;f[b]=a,Q.postMessage(e+b,"*")}}else if(Q.MessageChannel){var i=new Q.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},ec=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in Q&&"onreadystatechange"in Q.document.createElement("script")?ec=function(a){var b=Q.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},Q.document.documentElement.appendChild(b)}:(ec=function(a){return jc(a,0)},hc=kc)}();var lc=(dc.timeout=function(){function a(a,b){var c=this,d=new _b,e=ec(function(){d.isDisposed||d.setDisposable(b(c,a))});return new Wb(d,Zb(function(){hc(e)}))}function b(a,b,c){var d=this,e=dc.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new _b,g=jc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new Wb(f,Zb(function(){kc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new dc(Z,a,b,c)}(),function(a){function b(a,b){return this._scheduler.scheduleWithState(a,this._wrap(b))}function c(a,b,c){return this._scheduler.scheduleWithRelativeAndState(a,b,this._wrap(c))}function d(a,b,c){return this._scheduler.scheduleWithAbsoluteAndState(a,b,this._wrap(c))}function e(e,f){this._scheduler=e,this._handler=f,this._recursiveOriginal=null,this._recursiveWrapper=null,a.call(this,this._scheduler.now.bind(this._scheduler),b,c,d)}return Pb(e,a),e.prototype._clone=function(a){return new e(a,this._handler)},e.prototype._wrap=function(a){var b=this;return function(c,d){try{return a(b._getRecursiveWrapper(c),d)}catch(e){if(!b._handler(e))throw e;return $b}}},e.prototype._getRecursiveWrapper=function(a){if(this._recursiveOriginal!==a){this._recursiveOriginal=a;var b=this._clone(a);b._recursiveOriginal=a,b._recursiveWrapper=b,this._recursiveWrapper=b}return this._recursiveWrapper},e.prototype.schedulePeriodicWithState=function(a,b,c){var d=this,e=!1,f=new _b;return f.setDisposable(this._scheduler.schedulePeriodicWithState(a,b,function(a){if(e)return null;try{return c(a)}catch(b){if(e=!0,!d._handler(b))throw b;return f.dispose(),null}})),f},e}(dc)),mc=V.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return X(a)||(a=fc),new $c(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),nc=mc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new mc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),oc=mc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new mc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),pc=mc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new mc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),qc=V.internals.Enumerator=function(a){this._next=a};qc.prototype.next=function(){return this._next()},qc.prototype[kb]=function(){return this};var rc=V.internals.Enumerable=function(a){this._iterator=a};rc.prototype[kb]=function(){return this._iterator()},rc.prototype.concat=function(){var a=this;return new $c(function(b){var c,d=a[kb](),e=new ac,f=fc.scheduleRecursive(function(a){if(!c){try{var f=d.next()}catch(g){return b.onError(g)}if(f.done)return b.onCompleted();var h=f.value;bb(h)&&(h=Ec(h));var i=new _b;e.setDisposable(i),i.setDisposable(h.subscribe(function(a){b.onNext(a)},function(a){b.onError(a)},a))}});return new Wb(e,f,Zb(function(){c=!0}))})},rc.prototype.catchError=function(){var a=this;return new $c(function(b){var c,d=a[kb](),e=new ac,f=fc.scheduleRecursiveWithState(null,function(a,f){if(!c){try{var g=d.next()}catch(h){return observer.onError(h)}if(g.done)return void(null!==a?b.onError(a):b.onCompleted());var i=g.value;bb(i)&&(i=Ec(i));var j=new _b;e.setDisposable(j),j.setDisposable(i.subscribe(function(a){b.onNext(a)},f,function(){b.onCompleted()}))}});return new Wb(e,f,Zb(function(){c=!0}))})},rc.prototype.catchErrorWhen=function(a){var b=this;return new $c(function(c){var d,e,f=new bd,g=new bd,h=a(f),i=h.subscribe(g),j=b[kb](),k=new ac,l=fc.scheduleRecursive(function(a){if(!d){try{var b=j.next()}catch(h){return c.onError(h)}if(b.done)return void(e?c.onError(e):c.onCompleted());var i=b.value;bb(i)&&(i=Ec(i));var l=new _b,m=new _b;k.setDisposable(new Wb(m,l)),l.setDisposable(i.subscribe(function(a){c.onNext(a)},function(b){m.setDisposable(g.subscribe(a,function(a){c.onError(a)},function(){c.onCompleted()})),f.onNext(b)},function(){c.onCompleted()}))}});return new Wb(i,k,l,Zb(function(){d=!0}))})};var sc=rc.repeat=function(a,b){return null==b&&(b=-1),new rc(function(){var c=b;return new qc(function(){return 0===c?lb:(c>0&&c--,{done:!1,value:a})})})},tc=rc.of=function(a,b,c){if(b)var d=pb(b,c,3);return new rc(function(){var c=-1;return new qc(function(){return++c<a.length?{done:!1,value:b?d(a[c],c,a):a[c]}:lb})})},uc=V.Observer=function(){};uc.prototype.toNotifier=function(){var a=this;return function(b){return b.accept(a)}},uc.prototype.asObserver=function(){return new yc(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))},uc.prototype.checked=function(){return new zc(this)};var vc=uc.create=function(a,b,c){return a||(a=W),b||(b=ab),c||(c=W),new yc(a,b,c)};uc.fromNotifier=function(a,b){return new yc(function(c){return a.call(b,nc(c))},function(c){return a.call(b,oc(c))},function(){return a.call(b,pc())})},uc.prototype.notifyOn=function(a){return new Bc(a,this)},uc.prototype.makeSafe=function(a){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,a)};var wc,xc=V.internals.AbstractObserver=function(a){function b(){this.isStopped=!1,a.call(this)}function c(){throw new Error("Method not implemented")}return Pb(b,a),b.prototype.next=c,b.prototype.error=c,b.prototype.completed=c,b.prototype.onNext=function(a){this.isStopped||this.next(a)},b.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.error(a))},b.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},b.prototype.dispose=function(){this.isStopped=!0},b.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.error(a),!0)},b}(uc),yc=V.AnonymousObserver=function(a){function b(b,c,d){a.call(this),this._onNext=b,this._onError=c,this._onCompleted=d}return Pb(b,a),b.prototype.next=function(a){this._onNext(a)},b.prototype.error=function(a){this._onError(a)},b.prototype.completed=function(){this._onCompleted()},b}(xc),zc=function(a){function b(b){a.call(this),this._observer=b,this._state=0}Pb(b,a);var c=b.prototype;return c.onNext=function(a){this.checkAccess();try{this._observer.onNext(a)}catch(b){throw b}finally{this._state=0}},c.onError=function(a){this.checkAccess();try{this._observer.onError(a)}catch(b){throw b}finally{this._state=2}},c.onCompleted=function(){this.checkAccess();try{this._observer.onCompleted()}catch(a){throw a}finally{this._state=2}},c.checkAccess=function(){if(1===this._state)throw new Error("Re-entrancy detected");if(2===this._state)throw new Error("Observer completed");0===this._state&&(this._state=1)},b}(uc),Ac=V.internals.ScheduledObserver=function(a){function b(b,c){a.call(this),this.scheduler=b,this.observer=c,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new ac}return Pb(b,a),b.prototype.next=function(a){var b=this;this.queue.push(function(){b.observer.onNext(a)})},b.prototype.error=function(a){var b=this;this.queue.push(function(){b.observer.onError(a)})},b.prototype.completed=function(){var a=this;this.queue.push(function(){a.observer.onCompleted()})},b.prototype.ensureActive=function(){var a=!1,b=this;!this.hasFaulted&&this.queue.length>0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(xc),Bc=function(a){function b(b,c,d){a.call(this,b,c),this._cancel=d}return Pb(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b.prototype.dispose=function(){a.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},b}(Ac),Cc=V.Observable=function(){function a(a){if(V.config.longStackSupport&&fb){try{throw new Error}catch(b){this.stack=b.stack.substring(b.stack.indexOf("\n")+1)}var c=this;this._subscribe=function(b){var e=b.onError.bind(b);return b.onError=function(a){d(a,c),e(a)},a.call(c,b)}}else this._subscribe=a}return wc=a.prototype,wc.subscribe=wc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:vc(a,b,c))},wc.subscribeOnNext=function(a,b){return this._subscribe(vc("undefined"!=typeof b?function(c){a.call(b,c)}:a))},wc.subscribeOnError=function(a,b){return this._subscribe(vc(null,"undefined"!=typeof b?function(c){a.call(b,c)}:a))},wc.subscribeOnCompleted=function(a,b){return this._subscribe(vc(null,null,"undefined"!=typeof b?function(){a.call(b)}:a))},a}(),Dc=V.ObservableBase=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Zb(a):$b}function c(a,c){var d=c[0],e=c[1];try{d.setDisposable(b(e.subscribeCore(d)))}catch(f){if(!d.fail(f))throw f}}function d(a){var b=new _c(a),d=[b,this];return gc.scheduleRequired()?gc.scheduleWithState(d,c):c(null,d),b}function e(){a.call(this,d)}return Pb(e,a),e.prototype.subscribeCore=function(){throw new Error("Not implemeneted")},e}(Cc);wc.observeOn=function(a){var b=this;return new $c(function(c){return b.subscribe(new Bc(a,c))},b)},wc.subscribeOn=function(a){var b=this;return new $c(function(c){var d=new _b,e=new ac;return e.setDisposable(d),d.setDisposable(a.schedule(function(){e.setDisposable(new r(a,b.subscribe(c)))})),e},b)};var Ec=Cc.fromPromise=function(a){return Gc(function(){var b=new V.AsyncSubject;return a.then(function(a){b.onNext(a),b.onCompleted()},b.onError.bind(b)),b})};wc.toPromise=function(a){if(a||(a=V.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})};var Fc=function(a){function b(b){this.source=b,a.call(this)}return Pb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new u(a))},b}(Dc);u.prototype.onNext=function(a){this.isStopped||this.a.push(a)},u.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},u.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onNext(this.a),this.observer.onCompleted())},u.prototype.dispose=function(){this.isStopped=!0},u.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},wc.toArray=function(){return new Fc(this)},Cc.create=Cc.createWithDisposable=function(a,b){return new $c(a,b)};var Gc=Cc.defer=function(a){return new $c(function(b){var c;try{c=a()}catch(d){return Sc(d).subscribe(b)}return bb(c)&&(c=Ec(c)),c.subscribe(b)})},Hc=Cc.empty=function(a){return X(a)||(a=fc),new $c(function(b){return a.schedule(function(){b.onCompleted()})})},Ic=function(a){function b(b,c,d){this.iterable=b,this.mapper=c,this.scheduler=d,a.call(this)}return Pb(b,a),b.prototype.subscribeCore=function(a){var b=new Jc(a,this);return b.run()},b}(Dc),Jc=function(){function a(a,b){this.observer=a,this.parent=b}return a.prototype.run=function(){function a(a,b){try{var f=c.next()}catch(g){return d.onError(g)}if(f.done)return d.onCompleted();
|
3
|
+
var h=f.value;if(e)try{h=e(h,a)}catch(g){return d.onError(g)}d.onNext(h),b(a+1)}var b=Object(this.parent.iterable),c=A(b),d=this.observer,e=this.parent.mapper;return this.parent.scheduler.scheduleRecursiveWithState(0,a)},a}(),Kc=Math.pow(2,53)-1;v.prototype[kb]=function(){return new w(this._s)},w.prototype[kb]=function(){return this},w.prototype.next=function(){return this._i<this._l?{done:!1,value:this._s.charAt(this._i++)}:lb},x.prototype[kb]=function(){return new y(this._a)},y.prototype[kb]=function(){return this},y.prototype.next=function(){return this._i<this._l?{done:!1,value:this._a[this._i++]}:lb};var Lc=Cc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!cb(b))throw new Error("mapFn when provided must be a function");if(b)var e=pb(b,c,2);return X(d)||(d=gc),new Ic(a,e,d)},Mc=function(a){function b(b,c){this.args=b,this.scheduler=c||gc,a.call(this)}return Pb(b,a),b.prototype.subscribeCore=function(a){var b=new D(a,this);return b.run()},b}(Dc);D.prototype.run=function(){function a(a,e){d>a?(b.onNext(c[a]),e(a+1)):b.onCompleted()}var b=this.observer,c=this.parent.args,d=c.length;return this.parent.scheduler.scheduleRecursiveWithState(0,a)};var Nc=Cc.fromArray=function(a,b){return new Mc(a,b)};Cc.generate=function(a,b,c,d,e){return X(e)||(e=gc),new $c(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})};var Oc=Cc.never=function(){return new $c(function(){return $b})};Cc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return new Mc(b)},Cc.ofWithScheduler=function(a){for(var b=arguments.length,c=new Array(b-1),d=1;b>d;d++)c[d-1]=arguments[d];return new Mc(c,a)},Cc.pairs=function(a,b){return b||(b=V.Scheduler.currentThread),new $c(function(c){var d=Object.keys(a),e=d.length;return b.scheduleRecursiveWithState(0,function(b,f){if(e>b){var g=d[b];c.onNext([g,a[g]]),f(b+1)}else c.onCompleted()})})};var Pc=function(a){function b(b,c,d){this.start=b,this.count=c,this.scheduler=d,a.call(this)}return Pb(b,a),b.prototype.subscribeCore=function(a){var b=new Qc(a,this);return b.run()},b}(Dc),Qc=function(){function a(a,b){this.observer=a,this.parent=b}return a.prototype.run=function(){function a(a,e){c>a?(d.onNext(b+a),e(a+1)):d.onCompleted()}var b=this.parent.start,c=this.parent.count,d=this.observer;return this.parent.scheduler.scheduleRecursiveWithState(0,a)},a}();Cc.range=function(a,b,c){return X(c)||(c=gc),new Pc(a,b,c)},Cc.repeat=function(a,b,c){return X(c)||(c=gc),Rc(a,c).repeat(null==b?-1:b)};var Rc=Cc["return"]=Cc.just=function(a,b){return X(b)||(b=fc),new $c(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})};Cc.returnValue=function(){return Rc.apply(null,arguments)};var Sc=Cc["throw"]=Cc.throwError=function(a,b){return X(b)||(b=fc),new $c(function(c){return b.schedule(function(){c.onError(a)})})};Cc.throwException=function(){return Cc.throwError.apply(null,arguments)},Cc.using=function(a,b){return new $c(function(c){var d,e,f=$b;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new Wb(Sc(g).subscribe(c),f)}return new Wb(e.subscribe(c),f)})},wc.amb=function(a){var b=this;return new $c(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new _b,j=new _b;return bb(a)&&(a=Ec(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new Wb(i,j)})},Cc.amb=function(){function a(a,b){return a.amb(b)}var b=Oc(),c=[];if(Array.isArray(arguments[0]))c=arguments[0];else for(var d=0,e=arguments.length;e>d;d++)c.push(arguments[d]);for(var d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},wc["catch"]=wc.catchError=wc.catchException=function(a){return"function"==typeof a?F(this,a):Tc([this,a])};var Tc=Cc.catchError=Cc["catch"]=Cc.catchException=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else for(var b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return tc(a).catchError()};wc.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Array.isArray(b[0])?b[0].unshift(this):b.unshift(this),Uc.apply(this,b)};var Uc=Cc.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=b.pop();return a--,Array.isArray(b[0])&&(b=b[0]),new $c(function(c){function e(a){if(h[a]=!0,i||(i=h.every(Y))){try{var b=d.apply(null,k)}catch(e){return void c.onError(e)}c.onNext(b)}else j.filter(function(b,c){return c!==a}).every(Y)&&c.onCompleted()}function f(a){j[a]=!0,j.every(Y)&&c.onCompleted()}for(var g=function(){return!1},h=o(a,g),i=!1,j=o(a,g),k=new Array(a),l=new Array(a),m=0;a>m;m++)!function(a){var d=b[a],g=new _b;bb(d)&&(d=Ec(d)),g.setDisposable(d.subscribe(function(b){k[a]=b,e(a)},function(a){c.onError(a)},function(){f(a)})),l[a]=g}(m);return new Wb(l)},this)};wc.concat=function(){for(var a=[],b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return a.unshift(this),Vc.apply(null,a)};var Vc=Cc.concat=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{a=new Array(arguments.length);for(var b=0,c=arguments.length;c>b;b++)a[b]=arguments[b]}return tc(a).concat()};wc.concatAll=wc.concatObservable=function(){return this.merge(1)},wc.merge=function(a){if("number"!=typeof a)return Wc(this,a);var b=this;return new $c(function(c){function d(a){var b=new _b;f.add(b),bb(a)&&(a=Ec(a)),b.setDisposable(a.subscribe(function(a){c.onNext(a)},function(a){c.onError(a)},function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new Wb,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},function(a){c.onError(a)},function(){g=!0,0===e&&c.onCompleted()})),f},b)};var Wc=Cc.merge=function(){var a,b,c=[],d=arguments.length;if(arguments[0])if(X(arguments[0]))for(a=arguments[0],b=1;d>b;b++)c.push(arguments[b]);else for(a=fc,b=0;d>b;b++)c.push(arguments[b]);else for(a=fc,b=1;d>b;b++)c.push(arguments[b]);return Array.isArray(c[0])&&(c=c[0]),E(a,c).mergeAll()};wc.mergeAll=wc.mergeObservable=function(){var a=this;return new $c(function(b){var c=new Wb,d=!1,e=new _b;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new _b;c.add(e),bb(a)&&(a=Ec(a)),e.setDisposable(a.subscribe(function(a){b.onNext(a)},function(a){b.onError(a)},function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},function(a){b.onError(a)},function(){d=!0,1===c.length&&b.onCompleted()})),c},a)},wc.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return Xc([this,a])};var Xc=Cc.onErrorResumeNext=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else for(var b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return new $c(function(b){var c=0,d=new ac,e=fc.scheduleRecursive(function(e){var f,g;c<a.length?(f=a[c++],bb(f)&&(f=Ec(f)),g=new _b,d.setDisposable(g),g.setDisposable(f.subscribe(b.onNext.bind(b),e,e))):b.onCompleted()});return new Wb(d,e)})};wc.skipUntil=function(a){var b=this;return new $c(function(c){var d=!1,e=new Wb(b.subscribe(function(a){d&&c.onNext(a)},function(a){c.onError(a)},function(){d&&c.onCompleted()}));bb(a)&&(a=Ec(a));var f=new _b;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},function(a){c.onError(a)},function(){f.dispose()})),e},b)},wc["switch"]=wc.switchLatest=function(){var a=this;return new $c(function(b){var c=!1,d=new ac,e=!1,f=0,g=a.subscribe(function(a){var g=new _b,h=++f;c=!0,d.setDisposable(g),bb(a)&&(a=Ec(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},function(a){b.onError(a)},function(){e=!0,!c&&b.onCompleted()});return new Wb(g,d)},a)},wc.takeUntil=function(a){var b=this;return new $c(function(c){return bb(a)&&(a=Ec(a)),new Wb(b.subscribe(c),a.subscribe(function(){c.onCompleted()},function(a){c.onError(a)},W))},b)},wc.withLatestFrom=function(){for(var a=[],b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);var d=a.pop(),e=this;if("undefined"==typeof e)throw new Error("Source observable not found for withLatestFrom().");if("function"!=typeof d)throw new Error("withLatestFrom() expects a resultSelector function.");return Array.isArray(a[0])&&(a=a[0]),new $c(function(b){for(var c=function(){return!1},f=a.length,g=o(f,c),h=!1,i=new Array(f),j=new Array(f+1),k=0;f>k;k++)!function(c){var d=a[c],e=new _b;bb(d)&&(d=Ec(d)),e.setDisposable(d.subscribe(function(a){i[c]=a,g[c]=!0,h=g.every(Y)},b.onError.bind(b),function(){})),j[c]=e}(k);var l=new _b;return l.setDisposable(e.subscribe(function(a){var c,e=[a].concat(i);if(h){try{c=d.apply(null,e)}catch(f){return void b.onError(f)}b.onNext(c)}},b.onError.bind(b),function(){b.onCompleted()})),j[f]=l,new Wb(j)},this)},wc.zip=function(){if(Array.isArray(arguments[0]))return G.apply(this,arguments);for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=this,e=b.pop();return b.unshift(d),new $c(function(a){function c(b){var c,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),c=e.apply(d,f)}catch(g){return void a.onError(g)}a.onNext(c)}else i.filter(function(a,c){return c!==b}).every(Y)&&a.onCompleted()}function f(b){i[b]=!0,i.every(function(a){return a})&&a.onCompleted()}for(var g=b.length,h=o(g,I),i=o(g,H),j=new Array(g),k=0;g>k;k++)!function(d){var e=b[d],g=new _b;bb(e)&&(e=Ec(e)),g.setDisposable(e.subscribe(function(a){h[d].push(a),c(d)},function(b){a.onError(b)},function(){f(d)})),j[d]=g}(k);return new Wb(j)},d)},Cc.zip=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=b.shift();return d.zip.apply(d,b)},Cc.zipArray=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}return new $c(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(Y))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(Y)?void b.onCompleted():void 0}for(var e=a.length,f=o(e,function(){return[]}),g=o(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new _b,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},function(a){b.onError(a)},function(){d(e)}))}(i);return new Wb(h)})},wc.asObservable=function(){var a=this;return new $c(function(b){return a.subscribe(b)},this)},wc.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},wc.dematerialize=function(){var a=this;return new $c(function(b){return a.subscribe(function(a){return a.accept(b)},function(a){b.onError(a)},function(){b.onCompleted()})},this)},wc.distinctUntilChanged=function(a,b){var c=this;return b||(b=$),new $c(function(d){var e,f=!1;return c.subscribe(function(c){var g=c;if(a)try{g=a(c)}catch(h){return void d.onError(h)}if(f)try{var i=b(e,g)}catch(h){return void d.onError(h)}f&&i||(f=!0,e=g,d.onNext(c))},function(a){d.onError(a)},function(){d.onCompleted()})},this)},wc["do"]=wc.tap=wc.doAction=function(a,b,c){var d=this,e="function"==typeof a||"undefined"==typeof a?vc(a||W,b||W,c||W):a;return new $c(function(a){return d.subscribe(function(b){try{e.onNext(b)}catch(c){a.onError(c)}a.onNext(b)},function(b){try{e.onError(b)}catch(c){a.onError(c)}a.onError(b)},function(){try{e.onCompleted()}catch(b){a.onError(b)}a.onCompleted()})},this)},wc.doOnNext=wc.tapOnNext=function(a,b){return this.tap("undefined"!=typeof b?function(c){a.call(b,c)}:a)},wc.doOnError=wc.tapOnError=function(a,b){return this.tap(W,"undefined"!=typeof b?function(c){a.call(b,c)}:a)},wc.doOnCompleted=wc.tapOnCompleted=function(a,b){return this.tap(W,null,"undefined"!=typeof b?function(){a.call(b)}:a)},wc["finally"]=wc.ensure=function(a){var b=this;return new $c(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Zb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})},this)},wc.finallyAction=function(a){return this.ensure(a)},wc.ignoreElements=function(){var a=this;return new $c(function(b){return a.subscribe(W,function(a){b.onError(a)},function(){b.onCompleted()})},a)},wc.materialize=function(){var a=this;return new $c(function(b){return a.subscribe(function(a){b.onNext(nc(a))},function(a){b.onNext(oc(a)),b.onCompleted()},function(){b.onNext(pc()),b.onCompleted()})},a)},wc.repeat=function(a){return sc(this,a).concat()},wc.retry=function(a){return sc(this,a).catchError()},wc.retryWhen=function(a){return sc(this).catchErrorWhen(a)},wc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new $c(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},function(a){e.onError(a)},function(){!h&&c&&e.onNext(a),e.onCompleted()})},d)},wc.skipLast=function(a){var b=this;return new $c(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},function(a){c.onError(a)},function(){c.onCompleted()})},b)},wc.startWith=function(){var a,b=0;arguments.length&&X(arguments[0])?(a=arguments[0],b=1):a=fc;for(var c=[],d=b,e=arguments.length;e>d;d++)c.push(arguments[d]);return tc([Nc(c,a),this]).concat()},wc.takeLast=function(a){var b=this;return new $c(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},function(a){c.onError(a)},function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})},b)},wc.takeLastBuffer=function(a){var b=this;return new $c(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},function(a){c.onError(a)},function(){c.onNext(d),c.onCompleted()})},b)},wc.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(db);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(db);return new $c(function(d){function e(){var a=new bd;i.push(a),d.onNext(Rb(a,g))}var f=new _b,g=new bc(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g},c)},wc.selectConcat=wc.concatMap=function(a,b,c){return cb(a)&&cb(b)?this.concatMap(function(c,d){var e=a(c,d);return bb(e)&&(e=Ec(e)),(nb(e)||mb(e))&&(e=Lc(e)),e.map(function(a,e){return b(c,a,d,e)})}):cb(a)?J(this,a,c):J(this,function(){return a})},wc.concatMapObserver=wc.selectConcatObserver=function(a,b,c,d){var e=this,f=pb(a,d,2),g=pb(b,d,1),h=pb(c,d,0);return new $c(function(a){var b=0;return e.subscribe(function(c){var d;try{d=f(c,b++)}catch(e){return void a.onError(e)}bb(d)&&(d=Ec(d)),a.onNext(d)},function(b){var c;try{c=g(b)}catch(d){return void a.onError(d)}bb(c)&&(c=Ec(c)),a.onNext(c),a.onCompleted()},function(){var b;try{b=h()}catch(c){return void a.onError(c)}bb(b)&&(b=Ec(b)),a.onNext(b),a.onCompleted()})},this).concatAll()},wc.defaultIfEmpty=function(b){var c=this;return b===a&&(b=null),new $c(function(a){var d=!1;return c.subscribe(function(b){d=!0,a.onNext(b)},function(b){a.onError(b)},function(){!d&&a.onNext(b),a.onCompleted()})},c)},L.prototype.push=function(a){var b=-1===K(this.set,a,this.comparer);return b&&this.set.push(a),b},wc.distinct=function(a,b){var c=this;return b||(b=$),new $c(function(d){var e=new L(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},function(a){d.onError(a)},function(){d.onCompleted()})},this)};var Yc=function(a){function b(b,c,d){this.source=b,this.selector=pb(c,d,3),a.call(this)}return Pb(b,a),b.prototype.internalMap=function(a,c){var d=this;return new b(this.source,function(b,c,e){return a(d.selector(b,c,e),c,e)},c)},b.prototype.subscribeCore=function(a){return this.source.subscribe(new M(a,this.selector,this))},b}(Dc);M.prototype.onNext=function(a){if(!this.isStopped){try{var b=this.selector(a,this.i++,this.source)}catch(c){return this.observer.onError(c)}this.observer.onNext(b)}},M.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},M.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onCompleted())},M.prototype.dispose=function(){this.isStopped=!0},M.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},wc.map=wc.select=function(a,b){var c="function"==typeof a?a:function(){return a};return this instanceof Yc?this.internalMap(c,b):new Yc(this,c,b)},wc.pluck=function(){var b=arguments,c=arguments.length;if(0===c)throw new Error("List of properties cannot be empty.");return this.map(function(d){for(var e=d,f=0;c>f;f++){var g=e[b[f]];if("undefined"==typeof g)return a;e=g}return e})},wc.selectMany=wc.flatMap=function(a,b,c){return cb(a)&&cb(b)?this.flatMap(function(c,d){var e=a(c,d);return bb(e)&&(e=Ec(e)),(nb(e)||mb(e))&&(e=Lc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):cb(a)?N(this,a,c):N(this,function(){return a})},wc.flatMapObserver=wc.selectManyObserver=function(a,b,c,d){var e=this;return new $c(function(f){var g=0;return e.subscribe(function(b){var c;try{c=a.call(d,b,g++)}catch(e){return void f.onError(e)}bb(c)&&(c=Ec(c)),f.onNext(c)},function(a){var c;try{c=b.call(d,a)}catch(e){return void f.onError(e)}bb(c)&&(c=Ec(c)),f.onNext(c),f.onCompleted()},function(){var a;try{a=c.call(d)}catch(b){return void f.onError(b)}bb(a)&&(a=Ec(a)),f.onNext(a),f.onCompleted()})},e).mergeAll()},wc.selectSwitch=wc.flatMapLatest=wc.switchMap=function(a,b){return this.select(a,b).switchLatest()},wc.skip=function(a){if(0>a)throw new Error(db);var b=this;return new $c(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},function(a){c.onError(a)},function(){c.onCompleted()})},b)},wc.skipWhile=function(a,b){var c=this,d=pb(a,b,3);return new $c(function(a){var b=0,e=!1;return c.subscribe(function(f){if(!e)try{e=!d(f,b++,c)}catch(g){return void a.onError(g)}e&&a.onNext(f)},function(b){a.onError(b)},function(){a.onCompleted()})},c)},wc.take=function(a,b){if(0>a)throw new RangeError(db);if(0===a)return Hc(b);var c=this;return new $c(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},function(a){b.onError(a)},function(){b.onCompleted()})},c)},wc.takeWhile=function(a,b){var c=this,d=pb(a,b,3);return new $c(function(a){var b=0,e=!0;return c.subscribe(function(f){if(e){try{e=d(f,b++,c)}catch(g){return void a.onError(g)}e?a.onNext(f):a.onCompleted()}},function(b){a.onError(b)},function(){a.onCompleted()})},c)};var Zc=function(a){function b(b,c,d){this.source=b,this.predicate=pb(c,d,3),a.call(this)}return Pb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new O(a,this.predicate,this))},b.prototype.internalFilter=function(a,c){var d=this;return new b(this.source,function(b,c,e){return d.predicate(b,c,e)&&a(b,c,e)},c)},b}(Dc);O.prototype.onNext=function(a){if(!this.isStopped){try{var b=this.predicate(a,this.i++,this.source)}catch(c){return this.observer.onError(c)}b&&this.observer.onNext(a)}},O.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},O.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onCompleted())},O.prototype.dispose=function(){this.isStopped=!0},O.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},wc.filter=wc.where=function(a,b){return this instanceof Zc?this.internalFilter(a,b):new Zc(this,a,b)},wc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new $c(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})},c)};var $c=V.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Zb(a):$b}function c(a,c){var d=c[0],e=c[1];try{d.setDisposable(b(e(d)))}catch(f){if(!d.fail(f))throw f}}function d(b,d){function e(a){var d=new _c(a),e=[d,b];return gc.scheduleRequired()?gc.scheduleWithState(e,c):c(null,e),d}this.source=d,a.call(this,e)}return Pb(d,a),d}(Cc),_c=function(a){function b(b){a.call(this),this.observer=b,this.m=new _b}Pb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){return p(c)}finally{!b&&this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){return p(b)}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){return p(a)}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(xc),ad=function(a,b){this.subject=a,this.observer=b};ad.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var bd=V.Subject=function(a){function d(a){return b(this),this.isStopped?this.hasError?(a.onError(this.error),$b):(a.onCompleted(),$b):(this.observers.push(a),new ad(this,a))}function e(){a.call(this,d),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return Pb(e,a),Qb(e.prototype,uc.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b(this),!this.isStopped){this.isStopped=!0;for(var a=0,d=c(this.observers),e=d.length;e>a;a++)d[a].onCompleted();this.observers.length=0}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onError(a);this.observers.length=0}},onNext:function(a){if(b(this),!this.isStopped)for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),e.create=function(a,b){return new cd(a,b)},e}(Cc),cd=(V.AsyncSubject=function(a){function d(a){return b(this),this.isStopped?(this.hasError?a.onError(this.error):this.hasValue?(a.onNext(this.value),a.onCompleted()):a.onCompleted(),$b):(this.observers.push(a),new ad(this,a))}function e(){a.call(this,d),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return Pb(e,a),Qb(e.prototype,uc,{hasObservers:function(){return b(this),this.observers.length>0},onCompleted:function(){var a,d;if(b(this),!this.isStopped){this.isStopped=!0;var e=c(this.observers),d=e.length;if(this.hasValue)for(a=0;d>a;a++){var f=e[a];f.onNext(this.value),f.onCompleted()}else for(a=0;d>a;a++)e[a].onCompleted();this.observers.length=0}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onError(a);this.observers.length=0}},onNext:function(a){b(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),e}(Cc),V.AnonymousSubject=function(a){function b(a){return this.observable.subscribe(a)}function c(c,d){this.observer=c,this.observable=d,a.call(this,b)}return Pb(c,a),Qb(c.prototype,uc.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),c}(Cc));"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Q.Rx=V,define(function(){return V})):R&&S?T?(S.exports=V).Rx=V:R.Rx=V:Q.Rx=V;var dd=h()}).call(this);
|
4
4
|
//# sourceMappingURL=rx.compat.map
|
@@ -52,6 +52,7 @@
|
|
52
52
|
AsyncSubject = Rx.AsyncSubject,
|
53
53
|
Observer = Rx.Observer,
|
54
54
|
inherits = Rx.internals.inherits,
|
55
|
+
bindCallback = Rx.internals.bindCallback,
|
55
56
|
addProperties = Rx.internals.addProperties,
|
56
57
|
helpers = Rx.helpers,
|
57
58
|
noop = helpers.noop,
|
@@ -269,7 +270,12 @@
|
|
269
270
|
* @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences.
|
270
271
|
*/
|
271
272
|
Observable.forkJoin = function () {
|
272
|
-
var allSources =
|
273
|
+
var allSources = [];
|
274
|
+
if (Array.isArray(arguments[0])) {
|
275
|
+
allSources = arguments[0];
|
276
|
+
} else {
|
277
|
+
for(var i = 0, len = arguments.length; i < len; i++) { allSources.push(arguments[i]); }
|
278
|
+
}
|
273
279
|
return new AnonymousObservable(function (subscriber) {
|
274
280
|
var count = allSources.length;
|
275
281
|
if (count === 0) {
|
@@ -330,7 +336,6 @@
|
|
330
336
|
*/
|
331
337
|
observableProto.forkJoin = function (second, resultSelector) {
|
332
338
|
var first = this;
|
333
|
-
|
334
339
|
return new AnonymousObservable(function (observer) {
|
335
340
|
var leftStopped = false, rightStopped = false,
|
336
341
|
hasLeft = false, hasRight = false,
|
@@ -526,7 +531,8 @@
|
|
526
531
|
* @returns {Observable} An exclusive observable with only the results that happen when subscribed.
|
527
532
|
*/
|
528
533
|
observableProto.exclusiveMap = function (selector, thisArg) {
|
529
|
-
var sources = this
|
534
|
+
var sources = this,
|
535
|
+
selectorFunc = bindCallback(selector, thisArg, 3);
|
530
536
|
return new AnonymousObservable(function (observer) {
|
531
537
|
var index = 0,
|
532
538
|
hasCurrent = false,
|
@@ -551,7 +557,7 @@
|
|
551
557
|
function (x) {
|
552
558
|
var result;
|
553
559
|
try {
|
554
|
-
result =
|
560
|
+
result = selectorFunc(x, index++, innerSource);
|
555
561
|
} catch (e) {
|
556
562
|
observer.onError(e);
|
557
563
|
return;
|
@@ -559,7 +565,7 @@
|
|
559
565
|
|
560
566
|
observer.onNext(result);
|
561
567
|
},
|
562
|
-
observer.onError
|
568
|
+
function (e) { observer.onError(e); },
|
563
569
|
function () {
|
564
570
|
g.remove(innerSubscription);
|
565
571
|
hasCurrent = false;
|
@@ -570,7 +576,7 @@
|
|
570
576
|
}));
|
571
577
|
}
|
572
578
|
},
|
573
|
-
observer.onError
|
579
|
+
function (e) { observer.onError(e); },
|
574
580
|
function () {
|
575
581
|
isStopped = true;
|
576
582
|
if (g.length === 1 && !hasCurrent) {
|
@@ -1,3 +1,3 @@
|
|
1
1
|
/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
|
2
|
-
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return
|
2
|
+
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return new q(function(){return new p(function(){return a()?{done:!1,value:b}:{done:!0,value:d}})})}var f=c.Observable,g=f.prototype,h=c.AnonymousObservable,i=f.concat,j=f.defer,k=f.empty,l=c.Disposable.empty,m=c.CompositeDisposable,n=c.SerialDisposable,o=c.SingleAssignmentDisposable,p=c.internals.Enumerator,q=c.internals.Enumerable,r=q.of,s=c.Scheduler.immediate,t=c.Scheduler.currentThread,u=(Array.prototype.slice,c.AsyncSubject),v=c.Observer,w=c.internals.inherits,x=c.internals.bindCallback,y=c.internals.addProperties,z=c.helpers,A=z.noop,B=z.isPromise,C=z.isScheduler,D=f.fromPromise,E="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";a.Set&&"function"==typeof(new a.Set)["@@iterator"]&&(E="@@iterator");c.doneEnumerator={done:!0,value:d},c.helpers.isIterable=function(a){return a[E]!==d},c.helpers.isArrayLike=function(a){return a&&a.length!==d};c.helpers.iterator=E,g.letBind=g.let=function(a){return a(this)},f["if"]=f.ifThen=function(a,b,c){return j(function(){return c||(c=k()),B(b)&&(b=D(b)),B(c)&&(c=D(c)),"function"==typeof c.now&&(c=k(c)),a()?b:c})},f["for"]=f.forIn=function(a,b,c){return r(a,b,c).concat()};var F=f["while"]=f.whileDo=function(a,b){return B(b)&&(b=D(b)),e(a,b).concat()};g.doWhile=function(a){return i([this,F(a,this)])},f["case"]=f.switchCase=function(a,b,c){return j(function(){B(c)&&(c=D(c)),c||(c=k()),"function"==typeof c.now&&(c=k(c));var d=b[a()];return B(d)&&(d=D(d)),d||c})},g.expand=function(a,b){C(b)||(b=s);var c=this;return new h(function(d){var e=[],f=new n,g=new m(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new o;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g},this)},f.forkJoin=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else for(var b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return new h(function(b){var c=a.length;if(0===c)return b.onCompleted(),l;for(var d=new m,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];B(j)&&(j=D(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},g.forkJoin=function(a,b){var c=this;return new h(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new o,l=new o;return B(a)&&(a=D(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new m(k,l)},c)},g.manySelect=function(a,b){C(b)||(b=s);var c=this;return j(function(){var d;return c.map(function(a){var b=new G(a);return d&&d.onNext(a),d=b,b}).tap(A,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).map(a)},c)};var G=function(a){function b(a){var b=this,c=new m;return c.add(t.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeAll().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new u}return w(c,a),y(c.prototype,v,{onCompleted:function(){this.onNext(f.empty())},onError:function(a){this.onNext(f.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(f);return g.exclusive=function(){var a=this;return new h(function(b){var c=!1,d=!1,e=new o,f=new m;return f.add(e),e.setDisposable(a.subscribe(function(a){if(!c){c=!0,B(a)&&(a=D(a));var e=new o;f.add(e),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){f.remove(e),c=!1,d&&1===f.length&&b.onCompleted()}))}},b.onError.bind(b),function(){d=!0,c||1!==f.length||b.onCompleted()})),f},this)},g.exclusiveMap=function(a,b){var c=this,d=x(a,b,3);return new h(function(a){var b=0,e=!1,f=!0,g=new o,h=new m;return h.add(g),g.setDisposable(c.subscribe(function(c){e||(e=!0,innerSubscription=new o,h.add(innerSubscription),B(c)&&(c=D(c)),innerSubscription.setDisposable(c.subscribe(function(e){var f;try{f=d(e,b++,c)}catch(g){return void a.onError(g)}a.onNext(f)},function(b){a.onError(b)},function(){h.remove(innerSubscription),e=!1,f&&1===h.length&&a.onCompleted()})))},function(b){a.onError(b)},function(){f=!0,1!==h.length||e||a.onCompleted()})),h},this)},c});
|
3
3
|
//# sourceMappingURL=rx.experimental.map
|
@@ -197,7 +197,6 @@
|
|
197
197
|
};
|
198
198
|
|
199
199
|
var JoinObserver = (function (__super__) {
|
200
|
-
|
201
200
|
inherits(JoinObserver, __super__);
|
202
201
|
|
203
202
|
function JoinObserver(source, onError) {
|
@@ -215,8 +214,7 @@
|
|
215
214
|
JoinObserverPrototype.next = function (notification) {
|
216
215
|
if (!this.isDisposed) {
|
217
216
|
if (notification.kind === 'E') {
|
218
|
-
this.onError(notification.exception);
|
219
|
-
return;
|
217
|
+
return this.onError(notification.exception);
|
220
218
|
}
|
221
219
|
this.queue.push(notification);
|
222
220
|
var activePlans = this.activePlans.slice(0);
|
@@ -266,7 +264,7 @@
|
|
266
264
|
/**
|
267
265
|
* Matches when the observable sequence has an available value and projects the value.
|
268
266
|
*
|
269
|
-
* @param selector Selector that will be invoked for values in the source sequence.
|
267
|
+
* @param {Function} selector Selector that will be invoked for values in the source sequence.
|
270
268
|
* @returns {Plan} Plan that produces the projected values, to be fed (with other plans) to the when operator.
|
271
269
|
*/
|
272
270
|
observableProto.thenDo = function (selector) {
|
@@ -280,28 +278,34 @@
|
|
280
278
|
* @returns {Observable} Observable sequence with the results form matching several patterns.
|
281
279
|
*/
|
282
280
|
Observable.when = function () {
|
283
|
-
var
|
284
|
-
|
281
|
+
var len = arguments.length, plans;
|
282
|
+
if (Array.isArray(arguments[0])) {
|
283
|
+
plans = arguments[0];
|
284
|
+
} else {
|
285
|
+
plans = new Array(len);
|
286
|
+
for(var i = 0; i < len; i++) { plans[i] = arguments[i]; }
|
287
|
+
}
|
288
|
+
return new AnonymousObservable(function (o) {
|
285
289
|
var activePlans = [],
|
286
290
|
externalSubscriptions = new Map();
|
287
291
|
var outObserver = observerCreate(
|
288
|
-
|
292
|
+
function (x) { o.onNext(x); },
|
289
293
|
function (err) {
|
290
294
|
externalSubscriptions.forEach(function (v) { v.onError(err); });
|
291
|
-
|
295
|
+
o.onError(err);
|
292
296
|
},
|
293
|
-
|
297
|
+
function (x) { o.onCompleted(); }
|
294
298
|
);
|
295
299
|
try {
|
296
300
|
for (var i = 0, len = plans.length; i < len; i++) {
|
297
301
|
activePlans.push(plans[i].activate(externalSubscriptions, outObserver, function (activePlan) {
|
298
302
|
var idx = activePlans.indexOf(activePlan);
|
299
303
|
activePlans.splice(idx, 1);
|
300
|
-
activePlans.length === 0 &&
|
304
|
+
activePlans.length === 0 && o.onCompleted();
|
301
305
|
}));
|
302
306
|
}
|
303
307
|
} catch (e) {
|
304
|
-
observableThrow(e).subscribe(
|
308
|
+
observableThrow(e).subscribe(o);
|
305
309
|
}
|
306
310
|
var group = new CompositeDisposable();
|
307
311
|
externalSubscriptions.forEach(function (joinObserver) {
|
@@ -1,3 +1,3 @@
|
|
1
1
|
/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
|
2
|
-
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a
|
2
|
+
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx"],function(b,d){return a(c,d,b)}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a){this.patterns=a}function f(a,b){this.expression=a,this.selector=b}function g(a,b,c){var d=a.get(b);if(!d){var e=new t(b,c);return a.set(b,e),e}return d}function h(a,b,c){this.joinObserverArray=a,this.onNext=b,this.onCompleted=c,this.joinObservers=new s;for(var d=0,e=this.joinObserverArray.length;e>d;d++){var f=this.joinObserverArray[d];this.joinObservers.set(f,f)}}var i=c.Observable,j=i.prototype,k=c.AnonymousObservable,l=i.throwException,m=c.Observer.create,n=c.SingleAssignmentDisposable,o=c.CompositeDisposable,p=c.internals.AbstractObserver,q=c.helpers.noop,r=(c.internals.isEqual,c.internals.inherits),s=(c.internals.Enumerable,c.internals.Enumerator,c.iterator,c.doneEnumerator,Array.prototype.slice,a.Map||function(){function a(){this._keys=[],this._values=[]}return a.prototype.get=function(a){var b=this._keys.indexOf(a);return-1!==b?this._values[b]:d},a.prototype.set=function(a,b){var c=this._keys.indexOf(a);-1!==c&&(this._values[c]=b),this._values[this._keys.push(a)-1]=b},a.prototype.forEach=function(a,b){for(var c=0,d=this._keys.length;d>c;c++)a.call(b,this._values[c],this._keys[c])},a}());e.prototype.and=function(a){return new e(this.patterns.concat(a))},e.prototype.thenDo=function(a){return new f(this,a)},f.prototype.activate=function(a,b,c){for(var d=this,e=[],f=0,i=this.expression.patterns.length;i>f;f++)e.push(g(a,this.expression.patterns[f],b.onError.bind(b)));var j=new h(e,function(){var a;try{a=d.selector.apply(d,arguments)}catch(c){return void b.onError(c)}b.onNext(a)},function(){for(var a=0,b=e.length;b>a;a++)e[a].removeActivePlan(j);c(j)});for(f=0,i=e.length;i>f;f++)e[f].addActivePlan(j);return j},h.prototype.dequeue=function(){this.joinObservers.forEach(function(a){a.queue.shift()})},h.prototype.match=function(){var a,b,c=!0;for(a=0,b=this.joinObserverArray.length;b>a;a++)if(0===this.joinObserverArray[a].queue.length){c=!1;break}if(c){var d=[],e=!1;for(a=0,b=this.joinObserverArray.length;b>a;a++)d.push(this.joinObserverArray[a].queue[0]),"C"===this.joinObserverArray[a].queue[0].kind&&(e=!0);if(e)this.onCompleted();else{this.dequeue();var f=[];for(a=0,b=d.length;a<d.length;a++)f.push(d[a].value);this.onNext.apply(this,f)}}};var t=function(a){function b(b,c){a.call(this),this.source=b,this.onError=c,this.queue=[],this.activePlans=[],this.subscription=new n,this.isDisposed=!1}r(b,a);var c=b.prototype;return c.next=function(a){if(!this.isDisposed){if("E"===a.kind)return this.onError(a.exception);this.queue.push(a);for(var b=this.activePlans.slice(0),c=0,d=b.length;d>c;c++)b[c].match()}},c.error=q,c.completed=q,c.addActivePlan=function(a){this.activePlans.push(a)},c.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))},c.removeActivePlan=function(a){this.activePlans.splice(this.activePlans.indexOf(a),1),0===this.activePlans.length&&this.dispose()},c.dispose=function(){a.prototype.dispose.call(this),this.isDisposed||(this.isDisposed=!0,this.subscription.dispose())},b}(p);return j.and=function(a){return new e([this,a])},j.thenDo=function(a){return new e([this]).thenDo(a)},i.when=function(){var a,b=arguments.length;if(Array.isArray(arguments[0]))a=arguments[0];else{a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}return new k(function(b){var c=[],d=new s,e=m(function(a){b.onNext(a)},function(a){d.forEach(function(b){b.onError(a)}),b.onError(a)},function(){b.onCompleted()});try{for(var f=0,g=a.length;g>f;f++)c.push(a[f].activate(d,e,function(a){var d=c.indexOf(a);c.splice(d,1),0===c.length&&b.onCompleted()}))}catch(h){l(h).subscribe(b)}var i=new o;return d.forEach(function(a){a.subscribe(),i.add(a)}),i})},c});
|
3
3
|
//# sourceMappingURL=rx.joinpatterns.map
|
@@ -24,7 +24,7 @@
|
|
24
24
|
var Rx = {
|
25
25
|
internals: {},
|
26
26
|
config: {
|
27
|
-
Promise: root.Promise
|
27
|
+
Promise: root.Promise
|
28
28
|
},
|
29
29
|
helpers: { }
|
30
30
|
};
|
@@ -64,7 +64,8 @@
|
|
64
64
|
var sequenceContainsNoElements = 'Sequence contains no elements.';
|
65
65
|
var argumentOutOfRange = 'Argument out of range';
|
66
66
|
var objectDisposed = 'Object has been disposed';
|
67
|
-
function checkDisposed() { if (
|
67
|
+
function checkDisposed(self) { if (self.isDisposed) { throw new Error(objectDisposed); } }
|
68
|
+
function cloneArray(arr) { for(var a = [], i = 0, len = arr.length; i < len; i++) { a.push(arr[i]); } return a;}
|
68
69
|
|
69
70
|
Rx.config.longStackSupport = false;
|
70
71
|
var hasStacks = false;
|
@@ -182,11 +183,41 @@
|
|
182
183
|
|
183
184
|
Rx.helpers.iterator = $iterator$;
|
184
185
|
|
185
|
-
var
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
186
|
+
var bindCallback = Rx.internals.bindCallback = function (func, thisArg, argCount) {
|
187
|
+
if (typeof thisArg === 'undefined') { return func; }
|
188
|
+
switch(argCount) {
|
189
|
+
case 0:
|
190
|
+
return function() {
|
191
|
+
return func.call(thisArg)
|
192
|
+
};
|
193
|
+
case 1:
|
194
|
+
return function(arg) {
|
195
|
+
return func.call(thisArg, arg);
|
196
|
+
}
|
197
|
+
case 2:
|
198
|
+
return function(value, index) {
|
199
|
+
return func.call(thisArg, value, index);
|
200
|
+
};
|
201
|
+
case 3:
|
202
|
+
return function(value, index, collection) {
|
203
|
+
return func.call(thisArg, value, index, collection);
|
204
|
+
};
|
205
|
+
}
|
206
|
+
|
207
|
+
return function() {
|
208
|
+
return func.apply(thisArg, arguments);
|
209
|
+
};
|
210
|
+
};
|
211
|
+
|
212
|
+
/** Used to determine if values are of the language type Object */
|
213
|
+
var dontEnums = ['toString',
|
214
|
+
'toLocaleString',
|
215
|
+
'valueOf',
|
216
|
+
'hasOwnProperty',
|
217
|
+
'isPrototypeOf',
|
218
|
+
'propertyIsEnumerable',
|
219
|
+
'constructor'],
|
220
|
+
dontEnumsLength = dontEnums.length;
|
190
221
|
|
191
222
|
/** `Object#toString` result shortcuts */
|
192
223
|
var argsClass = '[object Arguments]',
|
@@ -209,24 +240,12 @@
|
|
209
240
|
stringProto = String.prototype,
|
210
241
|
propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
211
242
|
|
212
|
-
// Fix for Tessel
|
213
|
-
if (!propertyIsEnumerable) {
|
214
|
-
propertyIsEnumerable = objectProto.propertyIsEnumerable = function (key) {
|
215
|
-
for (var k in this) { if (k === key) { return true; } }
|
216
|
-
return false;
|
217
|
-
};
|
218
|
-
}
|
219
|
-
|
220
243
|
try {
|
221
244
|
supportNodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + ''));
|
222
245
|
} catch (e) {
|
223
246
|
supportNodeClass = true;
|
224
247
|
}
|
225
248
|
|
226
|
-
var shadowedProps = [
|
227
|
-
'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'
|
228
|
-
];
|
229
|
-
|
230
249
|
var nonEnumProps = {};
|
231
250
|
nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };
|
232
251
|
nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true };
|
@@ -255,14 +274,10 @@
|
|
255
274
|
support.nonEnumShadows = !/valueOf/.test(props);
|
256
275
|
}(1));
|
257
276
|
|
258
|
-
|
259
|
-
// check if the value is the ECMAScript language type of Object
|
260
|
-
// http://es5.github.io/#x8
|
261
|
-
// and avoid a V8 bug
|
262
|
-
// https://code.google.com/p/v8/issues/detail?id=2291
|
277
|
+
var isObject = Rx.internals.isObject = function(value) {
|
263
278
|
var type = typeof value;
|
264
279
|
return value && (type == 'function' || type == 'object') || false;
|
265
|
-
}
|
280
|
+
};
|
266
281
|
|
267
282
|
function keysIn(object) {
|
268
283
|
var result = [];
|
@@ -285,14 +300,14 @@
|
|
285
300
|
if (support.nonEnumShadows && object !== objectProto) {
|
286
301
|
var ctor = object.constructor,
|
287
302
|
index = -1,
|
288
|
-
length =
|
303
|
+
length = dontEnumsLength;
|
289
304
|
|
290
305
|
if (object === (ctor && ctor.prototype)) {
|
291
306
|
var className = object === stringProto ? stringClass : object === errorProto ? errorClass : toString.call(object),
|
292
307
|
nonEnum = nonEnumProps[className];
|
293
308
|
}
|
294
309
|
while (++index < length) {
|
295
|
-
key =
|
310
|
+
key = dontEnums[index];
|
296
311
|
if (!(nonEnum && nonEnum[key]) && hasOwnProperty.call(object, key)) {
|
297
312
|
result.push(key);
|
298
313
|
}
|
@@ -479,13 +494,8 @@
|
|
479
494
|
return result;
|
480
495
|
}
|
481
496
|
|
482
|
-
var
|
483
|
-
|
484
|
-
return args.length === 1 && Array.isArray(args[idx]) ?
|
485
|
-
args[idx] :
|
486
|
-
slice.call(args);
|
487
|
-
}
|
488
|
-
var hasProp = {}.hasOwnProperty;
|
497
|
+
var hasProp = {}.hasOwnProperty,
|
498
|
+
slice = Array.prototype.slice;
|
489
499
|
|
490
500
|
var inherits = this.inherits = Rx.internals.inherits = function (child, parent) {
|
491
501
|
function __() { this.constructor = child; }
|
@@ -494,9 +504,9 @@
|
|
494
504
|
};
|
495
505
|
|
496
506
|
var addProperties = Rx.internals.addProperties = function (obj) {
|
497
|
-
var sources =
|
498
|
-
for (var
|
499
|
-
var source = sources[
|
507
|
+
for(var sources = [], i = 1, len = arguments.length; i < len; i++) { sources.push(arguments[i]); }
|
508
|
+
for (var idx = 0, ln = sources.length; idx < ln; idx++) {
|
509
|
+
var source = sources[idx];
|
500
510
|
for (var prop in source) {
|
501
511
|
obj[prop] = source[prop];
|
502
512
|
}
|
@@ -518,6 +528,25 @@
|
|
518
528
|
return a;
|
519
529
|
}
|
520
530
|
|
531
|
+
var errorObj = {e: {}};
|
532
|
+
var tryCatchTarget;
|
533
|
+
function tryCatcher() {
|
534
|
+
try {
|
535
|
+
return tryCatchTarget.apply(this, arguments);
|
536
|
+
} catch (e) {
|
537
|
+
errorObj.e = e;
|
538
|
+
return errorObj;
|
539
|
+
}
|
540
|
+
}
|
541
|
+
function tryCatch(fn) {
|
542
|
+
if (!isFunction(fn)) { throw new TypeError('fn must be a function'); }
|
543
|
+
tryCatchTarget = fn;
|
544
|
+
return tryCatcher;
|
545
|
+
}
|
546
|
+
function thrower(e) {
|
547
|
+
throw e;
|
548
|
+
}
|
549
|
+
|
521
550
|
// Collections
|
522
551
|
function IndexedItem(id, value) {
|
523
552
|
this.id = id;
|
@@ -577,7 +606,7 @@
|
|
577
606
|
|
578
607
|
priorityProto.removeAt = function (index) {
|
579
608
|
this.items[index] = this.items[--this.length];
|
580
|
-
|
609
|
+
this.items[this.length] = undefined;
|
581
610
|
this.heapify();
|
582
611
|
};
|
583
612
|
|
@@ -609,9 +638,17 @@
|
|
609
638
|
* @constructor
|
610
639
|
*/
|
611
640
|
var CompositeDisposable = Rx.CompositeDisposable = function () {
|
612
|
-
|
641
|
+
var args = [];
|
642
|
+
if (Array.isArray(arguments[0])) {
|
643
|
+
args = arguments[0];
|
644
|
+
} else {
|
645
|
+
var len = arguments.length;
|
646
|
+
args = new Array(len);
|
647
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
648
|
+
}
|
649
|
+
this.disposables = args;
|
613
650
|
this.isDisposed = false;
|
614
|
-
this.length =
|
651
|
+
this.length = args.length;
|
615
652
|
};
|
616
653
|
|
617
654
|
var CompositeDisposablePrototype = CompositeDisposable.prototype;
|
@@ -654,28 +691,19 @@
|
|
654
691
|
CompositeDisposablePrototype.dispose = function () {
|
655
692
|
if (!this.isDisposed) {
|
656
693
|
this.isDisposed = true;
|
657
|
-
var
|
694
|
+
var len = this.disposables.length, currentDisposables = new Array(len);
|
695
|
+
for(var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; }
|
658
696
|
this.disposables = [];
|
659
697
|
this.length = 0;
|
660
698
|
|
661
|
-
for (
|
699
|
+
for (i = 0; i < len; i++) {
|
662
700
|
currentDisposables[i].dispose();
|
663
701
|
}
|
664
702
|
}
|
665
703
|
};
|
666
704
|
|
667
|
-
/**
|
668
|
-
* Converts the existing CompositeDisposable to an array of disposables
|
669
|
-
* @returns {Array} An array of disposable objects.
|
670
|
-
*/
|
671
|
-
CompositeDisposablePrototype.toArray = function () {
|
672
|
-
return this.disposables.slice(0);
|
673
|
-
};
|
674
|
-
|
675
705
|
/**
|
676
706
|
* Provides a set of static methods for creating Disposables.
|
677
|
-
*
|
678
|
-
* @constructor
|
679
707
|
* @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once.
|
680
708
|
*/
|
681
709
|
var Disposable = Rx.Disposable = function (action) {
|
@@ -724,9 +752,9 @@
|
|
724
752
|
* @param {Disposable} value The new underlying disposable.
|
725
753
|
*/
|
726
754
|
booleanDisposablePrototype.setDisposable = function (value) {
|
727
|
-
var shouldDispose = this.isDisposed
|
755
|
+
var shouldDispose = this.isDisposed;
|
728
756
|
if (!shouldDispose) {
|
729
|
-
old = this.current;
|
757
|
+
var old = this.current;
|
730
758
|
this.current = value;
|
731
759
|
}
|
732
760
|
old && old.dispose();
|
@@ -737,10 +765,9 @@
|
|
737
765
|
* Disposes the underlying disposable as well as all future replacements.
|
738
766
|
*/
|
739
767
|
booleanDisposablePrototype.dispose = function () {
|
740
|
-
var old;
|
741
768
|
if (!this.isDisposed) {
|
742
769
|
this.isDisposed = true;
|
743
|
-
old = this.current;
|
770
|
+
var old = this.current;
|
744
771
|
this.current = null;
|
745
772
|
}
|
746
773
|
old && old.dispose();
|
@@ -750,83 +777,80 @@
|
|
750
777
|
}());
|
751
778
|
var SerialDisposable = Rx.SerialDisposable = SingleAssignmentDisposable;
|
752
779
|
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
780
|
+
/**
|
781
|
+
* Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed.
|
782
|
+
*/
|
783
|
+
var RefCountDisposable = Rx.RefCountDisposable = (function () {
|
784
|
+
|
785
|
+
function InnerDisposable(disposable) {
|
786
|
+
this.disposable = disposable;
|
787
|
+
this.disposable.count++;
|
788
|
+
this.isInnerDisposed = false;
|
789
|
+
}
|
757
790
|
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
791
|
+
InnerDisposable.prototype.dispose = function () {
|
792
|
+
if (!this.disposable.isDisposed && !this.isInnerDisposed) {
|
793
|
+
this.isInnerDisposed = true;
|
794
|
+
this.disposable.count--;
|
795
|
+
if (this.disposable.count === 0 && this.disposable.isPrimaryDisposed) {
|
796
|
+
this.disposable.isDisposed = true;
|
797
|
+
this.disposable.underlyingDisposable.dispose();
|
762
798
|
}
|
799
|
+
}
|
800
|
+
};
|
763
801
|
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
};
|
802
|
+
/**
|
803
|
+
* Initializes a new instance of the RefCountDisposable with the specified disposable.
|
804
|
+
* @constructor
|
805
|
+
* @param {Disposable} disposable Underlying disposable.
|
806
|
+
*/
|
807
|
+
function RefCountDisposable(disposable) {
|
808
|
+
this.underlyingDisposable = disposable;
|
809
|
+
this.isDisposed = false;
|
810
|
+
this.isPrimaryDisposed = false;
|
811
|
+
this.count = 0;
|
812
|
+
}
|
776
813
|
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
this.count = 0;
|
814
|
+
/**
|
815
|
+
* Disposes the underlying disposable only when all dependent disposables have been disposed
|
816
|
+
*/
|
817
|
+
RefCountDisposable.prototype.dispose = function () {
|
818
|
+
if (!this.isDisposed && !this.isPrimaryDisposed) {
|
819
|
+
this.isPrimaryDisposed = true;
|
820
|
+
if (this.count === 0) {
|
821
|
+
this.isDisposed = true;
|
822
|
+
this.underlyingDisposable.dispose();
|
787
823
|
}
|
824
|
+
}
|
825
|
+
};
|
788
826
|
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
if (this.count === 0) {
|
797
|
-
this.isDisposed = true;
|
798
|
-
this.underlyingDisposable.dispose();
|
799
|
-
}
|
800
|
-
}
|
801
|
-
}
|
802
|
-
};
|
827
|
+
/**
|
828
|
+
* Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable.
|
829
|
+
* @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime.
|
830
|
+
*/
|
831
|
+
RefCountDisposable.prototype.getDisposable = function () {
|
832
|
+
return this.isDisposed ? disposableEmpty : new InnerDisposable(this);
|
833
|
+
};
|
803
834
|
|
804
|
-
|
805
|
-
|
806
|
-
* @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime.
|
807
|
-
*/
|
808
|
-
RefCountDisposable.prototype.getDisposable = function () {
|
809
|
-
return this.isDisposed ? disposableEmpty : new InnerDisposable(this);
|
810
|
-
};
|
835
|
+
return RefCountDisposable;
|
836
|
+
})();
|
811
837
|
|
812
|
-
|
813
|
-
|
838
|
+
function ScheduledDisposable(scheduler, disposable) {
|
839
|
+
this.scheduler = scheduler;
|
840
|
+
this.disposable = disposable;
|
841
|
+
this.isDisposed = false;
|
842
|
+
}
|
814
843
|
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
844
|
+
function scheduleItem(s, self) {
|
845
|
+
if (!self.isDisposed) {
|
846
|
+
self.isDisposed = true;
|
847
|
+
self.disposable.dispose();
|
819
848
|
}
|
849
|
+
}
|
820
850
|
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
if (!parent.isDisposed) {
|
825
|
-
parent.isDisposed = true;
|
826
|
-
parent.disposable.dispose();
|
827
|
-
}
|
828
|
-
});
|
829
|
-
};
|
851
|
+
ScheduledDisposable.prototype.dispose = function () {
|
852
|
+
this.scheduler.scheduleWithState(this, scheduleItem);
|
853
|
+
};
|
830
854
|
|
831
855
|
var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
|
832
856
|
this.scheduler = scheduler;
|
@@ -979,7 +1003,7 @@
|
|
979
1003
|
recursiveAction = function (state1) {
|
980
1004
|
action(state1, function (state2, dueTime1) {
|
981
1005
|
var isAdded = false, isDone = false,
|
982
|
-
d = scheduler[method]
|
1006
|
+
d = scheduler[method](state2, dueTime1, function (scheduler1, state3) {
|
983
1007
|
if (isAdded) {
|
984
1008
|
group.remove(d);
|
985
1009
|
} else {
|
@@ -1147,18 +1171,9 @@
|
|
1147
1171
|
var immediateScheduler = Scheduler.immediate = (function () {
|
1148
1172
|
|
1149
1173
|
function scheduleNow(state, action) { return action(this, state); }
|
1174
|
+
function notSupported() { throw new Error('Not supported'); }
|
1150
1175
|
|
1151
|
-
|
1152
|
-
var dt = normalizeTime(dueTime);
|
1153
|
-
while (dt - this.now() > 0) { }
|
1154
|
-
return action(this, state);
|
1155
|
-
}
|
1156
|
-
|
1157
|
-
function scheduleAbsolute(state, dueTime, action) {
|
1158
|
-
return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
|
1159
|
-
}
|
1160
|
-
|
1161
|
-
return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
|
1176
|
+
return new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
|
1162
1177
|
}());
|
1163
1178
|
|
1164
1179
|
/**
|
@@ -1168,27 +1183,16 @@
|
|
1168
1183
|
var queue;
|
1169
1184
|
|
1170
1185
|
function runTrampoline (q) {
|
1171
|
-
var item;
|
1172
1186
|
while (q.length > 0) {
|
1173
|
-
item = q.dequeue();
|
1187
|
+
var item = q.dequeue();
|
1174
1188
|
if (!item.isCancelled()) {
|
1175
|
-
|
1176
|
-
while (item.dueTime - Scheduler.now() > 0) {
|
1177
|
-
}
|
1178
|
-
if (!item.isCancelled()) {
|
1179
|
-
item.invoke();
|
1180
|
-
}
|
1189
|
+
!item.isCancelled() && item.invoke();
|
1181
1190
|
}
|
1182
1191
|
}
|
1183
1192
|
}
|
1184
1193
|
|
1185
1194
|
function scheduleNow(state, action) {
|
1186
|
-
|
1187
|
-
}
|
1188
|
-
|
1189
|
-
function scheduleRelative(state, dueTime, action) {
|
1190
|
-
var dt = this.now() + Scheduler.normalize(dueTime),
|
1191
|
-
si = new ScheduledItem(this, state, action, dt);
|
1195
|
+
var si = new ScheduledItem(this, state, action, this.now());
|
1192
1196
|
|
1193
1197
|
if (!queue) {
|
1194
1198
|
queue = new PriorityQueue(4);
|
@@ -1206,11 +1210,9 @@
|
|
1206
1210
|
return si.disposable;
|
1207
1211
|
}
|
1208
1212
|
|
1209
|
-
function
|
1210
|
-
return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
|
1211
|
-
}
|
1213
|
+
function notSupported() { throw new Error('Not supported'); }
|
1212
1214
|
|
1213
|
-
var currentScheduler = new Scheduler(defaultNow, scheduleNow,
|
1215
|
+
var currentScheduler = new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
|
1214
1216
|
|
1215
1217
|
currentScheduler.scheduleRequired = function () { return !queue; };
|
1216
1218
|
currentScheduler.ensureTrampoline = function (action) {
|
@@ -1577,31 +1579,20 @@
|
|
1577
1579
|
|
1578
1580
|
Enumerable.prototype.concat = function () {
|
1579
1581
|
var sources = this;
|
1580
|
-
return new AnonymousObservable(function (
|
1581
|
-
var e;
|
1582
|
-
try {
|
1583
|
-
e = sources[$iterator$]();
|
1584
|
-
} catch (err) {
|
1585
|
-
observer.onError(err);
|
1586
|
-
return;
|
1587
|
-
}
|
1582
|
+
return new AnonymousObservable(function (o) {
|
1583
|
+
var e = sources[$iterator$]();
|
1588
1584
|
|
1589
|
-
var isDisposed,
|
1590
|
-
subscription = new SerialDisposable();
|
1585
|
+
var isDisposed, subscription = new SerialDisposable();
|
1591
1586
|
var cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
1592
|
-
var currentItem;
|
1593
1587
|
if (isDisposed) { return; }
|
1594
|
-
|
1595
1588
|
try {
|
1596
|
-
currentItem = e.next();
|
1589
|
+
var currentItem = e.next();
|
1597
1590
|
} catch (ex) {
|
1598
|
-
|
1599
|
-
return;
|
1591
|
+
return o.onError(ex);
|
1600
1592
|
}
|
1601
1593
|
|
1602
1594
|
if (currentItem.done) {
|
1603
|
-
|
1604
|
-
return;
|
1595
|
+
return o.onCompleted();
|
1605
1596
|
}
|
1606
1597
|
|
1607
1598
|
// Check if promise
|
@@ -1611,9 +1602,9 @@
|
|
1611
1602
|
var d = new SingleAssignmentDisposable();
|
1612
1603
|
subscription.setDisposable(d);
|
1613
1604
|
d.setDisposable(currentValue.subscribe(
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1605
|
+
function(x) { o.onNext(x); },
|
1606
|
+
function(err) { o.onError(err); },
|
1607
|
+
self)
|
1617
1608
|
);
|
1618
1609
|
});
|
1619
1610
|
|
@@ -1625,14 +1616,55 @@
|
|
1625
1616
|
|
1626
1617
|
Enumerable.prototype.catchError = function () {
|
1627
1618
|
var sources = this;
|
1628
|
-
return new AnonymousObservable(function (
|
1629
|
-
var e;
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1619
|
+
return new AnonymousObservable(function (o) {
|
1620
|
+
var e = sources[$iterator$]();
|
1621
|
+
|
1622
|
+
var isDisposed, subscription = new SerialDisposable();
|
1623
|
+
var cancelable = immediateScheduler.scheduleRecursiveWithState(null, function (lastException, self) {
|
1624
|
+
if (isDisposed) { return; }
|
1625
|
+
|
1626
|
+
try {
|
1627
|
+
var currentItem = e.next();
|
1628
|
+
} catch (ex) {
|
1629
|
+
return observer.onError(ex);
|
1630
|
+
}
|
1631
|
+
|
1632
|
+
if (currentItem.done) {
|
1633
|
+
if (lastException !== null) {
|
1634
|
+
o.onError(lastException);
|
1635
|
+
} else {
|
1636
|
+
o.onCompleted();
|
1637
|
+
}
|
1638
|
+
return;
|
1639
|
+
}
|
1640
|
+
|
1641
|
+
// Check if promise
|
1642
|
+
var currentValue = currentItem.value;
|
1643
|
+
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1644
|
+
|
1645
|
+
var d = new SingleAssignmentDisposable();
|
1646
|
+
subscription.setDisposable(d);
|
1647
|
+
d.setDisposable(currentValue.subscribe(
|
1648
|
+
function(x) { o.onNext(x); },
|
1649
|
+
self,
|
1650
|
+
function() { o.onCompleted(); }));
|
1651
|
+
});
|
1652
|
+
return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
|
1653
|
+
isDisposed = true;
|
1654
|
+
}));
|
1655
|
+
});
|
1656
|
+
};
|
1657
|
+
|
1658
|
+
|
1659
|
+
Enumerable.prototype.catchErrorWhen = function (notificationHandler) {
|
1660
|
+
var sources = this;
|
1661
|
+
return new AnonymousObservable(function (o) {
|
1662
|
+
var exceptions = new Subject(),
|
1663
|
+
notifier = new Subject(),
|
1664
|
+
handled = notificationHandler(exceptions),
|
1665
|
+
notificationDisposable = handled.subscribe(notifier);
|
1666
|
+
|
1667
|
+
var e = sources[$iterator$]();
|
1636
1668
|
|
1637
1669
|
var isDisposed,
|
1638
1670
|
lastException,
|
@@ -1640,19 +1672,17 @@
|
|
1640
1672
|
var cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
1641
1673
|
if (isDisposed) { return; }
|
1642
1674
|
|
1643
|
-
var currentItem;
|
1644
1675
|
try {
|
1645
|
-
currentItem = e.next();
|
1676
|
+
var currentItem = e.next();
|
1646
1677
|
} catch (ex) {
|
1647
|
-
|
1648
|
-
return;
|
1678
|
+
return o.onError(ex);
|
1649
1679
|
}
|
1650
1680
|
|
1651
1681
|
if (currentItem.done) {
|
1652
1682
|
if (lastException) {
|
1653
|
-
|
1683
|
+
o.onError(lastException);
|
1654
1684
|
} else {
|
1655
|
-
|
1685
|
+
o.onCompleted();
|
1656
1686
|
}
|
1657
1687
|
return;
|
1658
1688
|
}
|
@@ -1661,17 +1691,24 @@
|
|
1661
1691
|
var currentValue = currentItem.value;
|
1662
1692
|
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1663
1693
|
|
1664
|
-
var
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1694
|
+
var outer = new SingleAssignmentDisposable();
|
1695
|
+
var inner = new SingleAssignmentDisposable();
|
1696
|
+
subscription.setDisposable(new CompositeDisposable(inner, outer));
|
1697
|
+
outer.setDisposable(currentValue.subscribe(
|
1698
|
+
function(x) { o.onNext(x); },
|
1668
1699
|
function (exn) {
|
1669
|
-
|
1670
|
-
|
1700
|
+
inner.setDisposable(notifier.subscribe(self, function(ex) {
|
1701
|
+
o.onError(ex);
|
1702
|
+
}, function() {
|
1703
|
+
o.onCompleted();
|
1704
|
+
}));
|
1705
|
+
|
1706
|
+
exceptions.onNext(exn);
|
1671
1707
|
},
|
1672
|
-
|
1708
|
+
function() { o.onCompleted(); }));
|
1673
1709
|
});
|
1674
|
-
|
1710
|
+
|
1711
|
+
return new CompositeDisposable(notificationDisposable, subscription, cancelable, disposableCreate(function () {
|
1675
1712
|
isDisposed = true;
|
1676
1713
|
}));
|
1677
1714
|
});
|
@@ -1690,13 +1727,15 @@
|
|
1690
1727
|
};
|
1691
1728
|
|
1692
1729
|
var enumerableOf = Enumerable.of = function (source, selector, thisArg) {
|
1693
|
-
|
1730
|
+
if (selector) {
|
1731
|
+
var selectorFn = bindCallback(selector, thisArg, 3);
|
1732
|
+
}
|
1694
1733
|
return new Enumerable(function () {
|
1695
1734
|
var index = -1;
|
1696
1735
|
return new Enumerator(
|
1697
1736
|
function () {
|
1698
1737
|
return ++index < source.length ?
|
1699
|
-
{ done: false, value: selector
|
1738
|
+
{ done: false, value: !selector ? source[index] : selectorFn(source[index], index, source) } :
|
1700
1739
|
doneEnumerator;
|
1701
1740
|
});
|
1702
1741
|
});
|
@@ -1772,6 +1811,10 @@
|
|
1772
1811
|
return new ObserveOnObserver(scheduler, this);
|
1773
1812
|
};
|
1774
1813
|
|
1814
|
+
Observer.prototype.makeSafe = function(disposable) {
|
1815
|
+
return new AnonymousSafeObserver(this._onNext, this._onError, this._onCompleted, disposable);
|
1816
|
+
};
|
1817
|
+
|
1775
1818
|
/**
|
1776
1819
|
* Abstract base class for implementations of the Observer class.
|
1777
1820
|
* This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages.
|
@@ -1787,6 +1830,15 @@
|
|
1787
1830
|
__super__.call(this);
|
1788
1831
|
}
|
1789
1832
|
|
1833
|
+
function notImplemented() {
|
1834
|
+
throw new Error('Method not implemented');
|
1835
|
+
}
|
1836
|
+
|
1837
|
+
// Must be implemented by other observers
|
1838
|
+
AbstractObserver.prototype.next = notImplemented;
|
1839
|
+
AbstractObserver.prototype.error = notImplemented;
|
1840
|
+
AbstractObserver.prototype.completed = notImplemented;
|
1841
|
+
|
1790
1842
|
/**
|
1791
1843
|
* Notifies the observer of a new element in the sequence.
|
1792
1844
|
* @param {Any} value Next element in the sequence.
|
@@ -2053,7 +2105,7 @@
|
|
2053
2105
|
oldOnError(err);
|
2054
2106
|
};
|
2055
2107
|
|
2056
|
-
return subscribe(observer);
|
2108
|
+
return subscribe.call(self, observer);
|
2057
2109
|
};
|
2058
2110
|
} else {
|
2059
2111
|
this._subscribe = subscribe;
|
@@ -2082,7 +2134,7 @@
|
|
2082
2134
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
2083
2135
|
*/
|
2084
2136
|
observableProto.subscribeOnNext = function (onNext, thisArg) {
|
2085
|
-
return this._subscribe(observerCreate(
|
2137
|
+
return this._subscribe(observerCreate(typeof thisArg !== 'undefined' ? function(x) { onNext.call(thisArg, x); } : onNext));
|
2086
2138
|
};
|
2087
2139
|
|
2088
2140
|
/**
|
@@ -2092,7 +2144,7 @@
|
|
2092
2144
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
2093
2145
|
*/
|
2094
2146
|
observableProto.subscribeOnError = function (onError, thisArg) {
|
2095
|
-
return this._subscribe(observerCreate(null,
|
2147
|
+
return this._subscribe(observerCreate(null, typeof thisArg !== 'undefined' ? function(e) { onError.call(thisArg, e); } : onError));
|
2096
2148
|
};
|
2097
2149
|
|
2098
2150
|
/**
|
@@ -2102,12 +2154,58 @@
|
|
2102
2154
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
2103
2155
|
*/
|
2104
2156
|
observableProto.subscribeOnCompleted = function (onCompleted, thisArg) {
|
2105
|
-
return this._subscribe(observerCreate(null, null,
|
2157
|
+
return this._subscribe(observerCreate(null, null, typeof thisArg !== 'undefined' ? function() { onCompleted.call(thisArg); } : onCompleted));
|
2106
2158
|
};
|
2107
2159
|
|
2108
2160
|
return Observable;
|
2109
2161
|
})();
|
2110
2162
|
|
2163
|
+
var ObservableBase = Rx.ObservableBase = (function (__super__) {
|
2164
|
+
|
2165
|
+
inherits(ObservableBase, __super__);
|
2166
|
+
|
2167
|
+
// Fix subscriber to check for undefined or function returned to decorate as Disposable
|
2168
|
+
function fixSubscriber(subscriber) {
|
2169
|
+
if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
|
2170
|
+
|
2171
|
+
return typeof subscriber === 'function' ?
|
2172
|
+
disposableCreate(subscriber) :
|
2173
|
+
disposableEmpty;
|
2174
|
+
}
|
2175
|
+
|
2176
|
+
function setDisposable(s, state) {
|
2177
|
+
var ado = state[0], self = state[1];
|
2178
|
+
try {
|
2179
|
+
ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
|
2180
|
+
} catch (e) {
|
2181
|
+
if (!ado.fail(e)) { throw e; }
|
2182
|
+
}
|
2183
|
+
}
|
2184
|
+
|
2185
|
+
function subscribe(observer) {
|
2186
|
+
var ado = new AutoDetachObserver(observer), state = [ado, this];
|
2187
|
+
|
2188
|
+
if (currentThreadScheduler.scheduleRequired()) {
|
2189
|
+
currentThreadScheduler.scheduleWithState(state, setDisposable);
|
2190
|
+
} else {
|
2191
|
+
setDisposable(null, state);
|
2192
|
+
}
|
2193
|
+
|
2194
|
+
return ado;
|
2195
|
+
}
|
2196
|
+
|
2197
|
+
function ObservableBase() {
|
2198
|
+
__super__.call(this, subscribe);
|
2199
|
+
}
|
2200
|
+
|
2201
|
+
ObservableBase.prototype.subscribeCore = function(observer) {
|
2202
|
+
throw new Error('Not implemeneted');
|
2203
|
+
}
|
2204
|
+
|
2205
|
+
return ObservableBase;
|
2206
|
+
|
2207
|
+
}(Observable));
|
2208
|
+
|
2111
2209
|
/**
|
2112
2210
|
* Wraps the source sequence in order to run its observer callbacks on the specified scheduler.
|
2113
2211
|
*
|
@@ -2193,22 +2291,56 @@
|
|
2193
2291
|
});
|
2194
2292
|
};
|
2195
2293
|
|
2294
|
+
var ToArrayObservable = (function(__super__) {
|
2295
|
+
inherits(ToArrayObservable, __super__);
|
2296
|
+
function ToArrayObservable(source) {
|
2297
|
+
this.source = source;
|
2298
|
+
__super__.call(this);
|
2299
|
+
}
|
2300
|
+
|
2301
|
+
ToArrayObservable.prototype.subscribeCore = function(observer) {
|
2302
|
+
return this.source.subscribe(new ToArrayObserver(observer));
|
2303
|
+
};
|
2304
|
+
|
2305
|
+
return ToArrayObservable;
|
2306
|
+
}(ObservableBase));
|
2307
|
+
|
2308
|
+
function ToArrayObserver(observer) {
|
2309
|
+
this.observer = observer;
|
2310
|
+
this.a = [];
|
2311
|
+
this.isStopped = false;
|
2312
|
+
}
|
2313
|
+
ToArrayObserver.prototype.onNext = function (x) { if(!this.isStopped) { this.a.push(x); } };
|
2314
|
+
ToArrayObserver.prototype.onError = function (e) {
|
2315
|
+
if (!this.isStopped) {
|
2316
|
+
this.isStopped = true;
|
2317
|
+
this.observer.onError(e);
|
2318
|
+
}
|
2319
|
+
};
|
2320
|
+
ToArrayObserver.prototype.onCompleted = function () {
|
2321
|
+
if (!this.isStopped) {
|
2322
|
+
this.isStopped = true;
|
2323
|
+
this.observer.onNext(this.a);
|
2324
|
+
this.observer.onCompleted();
|
2325
|
+
}
|
2326
|
+
};
|
2327
|
+
ToArrayObserver.prototype.dispose = function () { this.isStopped = true; }
|
2328
|
+
ToArrayObserver.prototype.fail = function (e) {
|
2329
|
+
if (!this.isStopped) {
|
2330
|
+
this.isStopped = true;
|
2331
|
+
this.observer.onError(e);
|
2332
|
+
return true;
|
2333
|
+
}
|
2334
|
+
|
2335
|
+
return false;
|
2336
|
+
};
|
2337
|
+
|
2196
2338
|
/**
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2339
|
+
* Creates an array from an observable sequence.
|
2340
|
+
* @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence.
|
2341
|
+
*/
|
2200
2342
|
observableProto.toArray = function () {
|
2201
|
-
|
2202
|
-
return new AnonymousObservable(function(observer) {
|
2203
|
-
var arr = [];
|
2204
|
-
return source.subscribe(
|
2205
|
-
arr.push.bind(arr),
|
2206
|
-
observer.onError.bind(observer),
|
2207
|
-
function () {
|
2208
|
-
observer.onNext(arr);
|
2209
|
-
observer.onCompleted();
|
2210
|
-
});
|
2211
|
-
}, source);
|
2343
|
+
return new ToArrayObservable(this);
|
2212
2344
|
};
|
2213
2345
|
|
2214
2346
|
/**
|
@@ -2263,6 +2395,65 @@
|
|
2263
2395
|
});
|
2264
2396
|
};
|
2265
2397
|
|
2398
|
+
var FromObservable = (function(__super__) {
|
2399
|
+
inherits(FromObservable, __super__);
|
2400
|
+
function FromObservable(iterable, mapper, scheduler) {
|
2401
|
+
this.iterable = iterable;
|
2402
|
+
this.mapper = mapper;
|
2403
|
+
this.scheduler = scheduler;
|
2404
|
+
__super__.call(this);
|
2405
|
+
}
|
2406
|
+
|
2407
|
+
FromObservable.prototype.subscribeCore = function (observer) {
|
2408
|
+
var sink = new FromSink(observer, this);
|
2409
|
+
return sink.run();
|
2410
|
+
};
|
2411
|
+
|
2412
|
+
return FromObservable;
|
2413
|
+
}(ObservableBase));
|
2414
|
+
|
2415
|
+
var FromSink = (function () {
|
2416
|
+
function FromSink(observer, parent) {
|
2417
|
+
this.observer = observer;
|
2418
|
+
this.parent = parent;
|
2419
|
+
}
|
2420
|
+
|
2421
|
+
FromSink.prototype.run = function () {
|
2422
|
+
var list = Object(this.parent.iterable),
|
2423
|
+
it = getIterable(list),
|
2424
|
+
observer = this.observer,
|
2425
|
+
mapper = this.parent.mapper;
|
2426
|
+
|
2427
|
+
function loopRecursive(i, recurse) {
|
2428
|
+
try {
|
2429
|
+
var next = it.next();
|
2430
|
+
} catch (e) {
|
2431
|
+
return observer.onError(e);
|
2432
|
+
}
|
2433
|
+
if (next.done) {
|
2434
|
+
return observer.onCompleted();
|
2435
|
+
}
|
2436
|
+
|
2437
|
+
var result = next.value;
|
2438
|
+
|
2439
|
+
if (mapper) {
|
2440
|
+
try {
|
2441
|
+
result = mapper(result, i);
|
2442
|
+
} catch (e) {
|
2443
|
+
return observer.onError(e);
|
2444
|
+
}
|
2445
|
+
}
|
2446
|
+
|
2447
|
+
observer.onNext(result);
|
2448
|
+
recurse(i + 1);
|
2449
|
+
}
|
2450
|
+
|
2451
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2452
|
+
};
|
2453
|
+
|
2454
|
+
return FromSink;
|
2455
|
+
}());
|
2456
|
+
|
2266
2457
|
var maxSafeInteger = Math.pow(2, 53) - 1;
|
2267
2458
|
|
2268
2459
|
function StringIterable(str) {
|
@@ -2284,12 +2475,7 @@
|
|
2284
2475
|
};
|
2285
2476
|
|
2286
2477
|
StringIterator.prototype.next = function () {
|
2287
|
-
|
2288
|
-
var val = this._s.charAt(this._i++);
|
2289
|
-
return { done: false, value: val };
|
2290
|
-
} else {
|
2291
|
-
return doneEnumerator;
|
2292
|
-
}
|
2478
|
+
return this._i < this._l ? { done: false, value: this._s.charAt(this._i++) } : doneEnumerator;
|
2293
2479
|
};
|
2294
2480
|
|
2295
2481
|
function ArrayIterable(a) {
|
@@ -2311,12 +2497,7 @@
|
|
2311
2497
|
};
|
2312
2498
|
|
2313
2499
|
ArrayIterator.prototype.next = function () {
|
2314
|
-
|
2315
|
-
var val = this._a[this._i++];
|
2316
|
-
return { done: false, value: val };
|
2317
|
-
} else {
|
2318
|
-
return doneEnumerator;
|
2319
|
-
}
|
2500
|
+
return this._i < this._l ? { done: false, value: this._a[this._i++] } : doneEnumerator;
|
2320
2501
|
};
|
2321
2502
|
|
2322
2503
|
function numberIsFinite(value) {
|
@@ -2359,12 +2540,12 @@
|
|
2359
2540
|
}
|
2360
2541
|
|
2361
2542
|
/**
|
2362
|
-
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2367
|
-
|
2543
|
+
* This method creates a new Observable sequence from an array-like or iterable object.
|
2544
|
+
* @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence.
|
2545
|
+
* @param {Function} [mapFn] Map function to call on every element of the array.
|
2546
|
+
* @param {Any} [thisArg] The context to use calling the mapFn if provided.
|
2547
|
+
* @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread.
|
2548
|
+
*/
|
2368
2549
|
var observableFrom = Observable.from = function (iterable, mapFn, thisArg, scheduler) {
|
2369
2550
|
if (iterable == null) {
|
2370
2551
|
throw new Error('iterable cannot be null.')
|
@@ -2372,61 +2553,56 @@
|
|
2372
2553
|
if (mapFn && !isFunction(mapFn)) {
|
2373
2554
|
throw new Error('mapFn when provided must be a function');
|
2374
2555
|
}
|
2556
|
+
if (mapFn) {
|
2557
|
+
var mapper = bindCallback(mapFn, thisArg, 2);
|
2558
|
+
}
|
2375
2559
|
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2376
|
-
|
2377
|
-
|
2378
|
-
var i = 0;
|
2379
|
-
return scheduler.scheduleRecursive(function (self) {
|
2380
|
-
var next;
|
2381
|
-
try {
|
2382
|
-
next = it.next();
|
2383
|
-
} catch (e) {
|
2384
|
-
observer.onError(e);
|
2385
|
-
return;
|
2386
|
-
}
|
2387
|
-
if (next.done) {
|
2388
|
-
observer.onCompleted();
|
2389
|
-
return;
|
2390
|
-
}
|
2560
|
+
return new FromObservable(iterable, mapper, scheduler);
|
2561
|
+
}
|
2391
2562
|
|
2392
|
-
|
2563
|
+
var FromArrayObservable = (function(__super__) {
|
2564
|
+
inherits(FromArrayObservable, __super__);
|
2565
|
+
function FromArrayObservable(args, scheduler) {
|
2566
|
+
this.args = args;
|
2567
|
+
this.scheduler = scheduler || currentThreadScheduler;
|
2568
|
+
__super__.call(this);
|
2569
|
+
}
|
2393
2570
|
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
|
2398
|
-
observer.onError(e);
|
2399
|
-
return;
|
2400
|
-
}
|
2401
|
-
}
|
2571
|
+
FromArrayObservable.prototype.subscribeCore = function (observer) {
|
2572
|
+
var sink = new FromArraySink(observer, this);
|
2573
|
+
return sink.run();
|
2574
|
+
};
|
2402
2575
|
|
2403
|
-
|
2404
|
-
|
2405
|
-
|
2406
|
-
|
2407
|
-
|
2576
|
+
return FromArrayObservable;
|
2577
|
+
}(ObservableBase));
|
2578
|
+
|
2579
|
+
function FromArraySink(observer, parent) {
|
2580
|
+
this.observer = observer;
|
2581
|
+
this.parent = parent;
|
2582
|
+
}
|
2583
|
+
|
2584
|
+
FromArraySink.prototype.run = function () {
|
2585
|
+
var observer = this.observer, args = this.parent.args, len = args.length;
|
2586
|
+
function loopRecursive(i, recurse) {
|
2587
|
+
if (i < len) {
|
2588
|
+
observer.onNext(args[i]);
|
2589
|
+
recurse(i + 1);
|
2590
|
+
} else {
|
2591
|
+
observer.onCompleted();
|
2592
|
+
}
|
2593
|
+
}
|
2594
|
+
|
2595
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2408
2596
|
};
|
2409
2597
|
|
2410
2598
|
/**
|
2411
|
-
|
2412
|
-
|
2413
|
-
|
2414
|
-
|
2415
|
-
|
2599
|
+
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
|
2600
|
+
* @deprecated use Observable.from or Observable.of
|
2601
|
+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
|
2602
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
|
2603
|
+
*/
|
2416
2604
|
var observableFromArray = Observable.fromArray = function (array, scheduler) {
|
2417
|
-
|
2418
|
-
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2419
|
-
return new AnonymousObservable(function (observer) {
|
2420
|
-
var count = 0, len = array.length;
|
2421
|
-
return scheduler.scheduleRecursive(function (self) {
|
2422
|
-
if (count < len) {
|
2423
|
-
observer.onNext(array[count++]);
|
2424
|
-
self();
|
2425
|
-
} else {
|
2426
|
-
observer.onCompleted();
|
2427
|
-
}
|
2428
|
-
});
|
2429
|
-
});
|
2605
|
+
return new FromArrayObservable(array, scheduler)
|
2430
2606
|
};
|
2431
2607
|
|
2432
2608
|
/**
|
@@ -2483,55 +2659,45 @@
|
|
2483
2659
|
};
|
2484
2660
|
|
2485
2661
|
function observableOf (scheduler, array) {
|
2486
|
-
|
2487
|
-
return new AnonymousObservable(function (observer) {
|
2488
|
-
var count = 0, len = array.length;
|
2489
|
-
return scheduler.scheduleRecursive(function (self) {
|
2490
|
-
if (count < len) {
|
2491
|
-
observer.onNext(array[count++]);
|
2492
|
-
self();
|
2493
|
-
} else {
|
2494
|
-
observer.onCompleted();
|
2495
|
-
}
|
2496
|
-
});
|
2497
|
-
});
|
2662
|
+
return new FromArrayObservable(array, scheduler);
|
2498
2663
|
}
|
2499
2664
|
|
2500
2665
|
/**
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2666
|
+
* This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments.
|
2667
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given arguments.
|
2668
|
+
*/
|
2504
2669
|
Observable.of = function () {
|
2505
|
-
|
2670
|
+
var len = arguments.length, args = new Array(len);
|
2671
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2672
|
+
return new FromArrayObservable(args);
|
2506
2673
|
};
|
2507
2674
|
|
2508
2675
|
/**
|
2509
|
-
|
2510
|
-
|
2511
|
-
|
2512
|
-
|
2676
|
+
* This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments.
|
2677
|
+
* @param {Scheduler} scheduler A scheduler to use for scheduling the arguments.
|
2678
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given arguments.
|
2679
|
+
*/
|
2513
2680
|
Observable.ofWithScheduler = function (scheduler) {
|
2514
|
-
|
2681
|
+
var len = arguments.length, args = new Array(len - 1);
|
2682
|
+
for(var i = 1; i < len; i++) { args[i - 1] = arguments[i]; }
|
2683
|
+
return new FromArrayObservable(args, scheduler);
|
2515
2684
|
};
|
2516
2685
|
|
2517
2686
|
/**
|
2518
|
-
*
|
2519
|
-
*
|
2520
|
-
* @
|
2521
|
-
*
|
2522
|
-
* var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout);
|
2523
|
-
* @param {Number} start The value of the first integer in the sequence.
|
2524
|
-
* @param {Number} count The number of sequential integers to generate.
|
2525
|
-
* @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread.
|
2526
|
-
* @returns {Observable} An observable sequence that contains a range of sequential integral numbers.
|
2687
|
+
* Convert an object into an observable sequence of [key, value] pairs.
|
2688
|
+
* @param {Object} obj The object to inspect.
|
2689
|
+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
|
2690
|
+
* @returns {Observable} An observable sequence of [key, value] pairs from the object.
|
2527
2691
|
*/
|
2528
|
-
Observable.
|
2529
|
-
|
2692
|
+
Observable.pairs = function (obj, scheduler) {
|
2693
|
+
scheduler || (scheduler = Rx.Scheduler.currentThread);
|
2530
2694
|
return new AnonymousObservable(function (observer) {
|
2531
|
-
|
2532
|
-
|
2533
|
-
|
2534
|
-
|
2695
|
+
var keys = Object.keys(obj), len = keys.length;
|
2696
|
+
return scheduler.scheduleRecursiveWithState(0, function (idx, self) {
|
2697
|
+
if (idx < len) {
|
2698
|
+
var key = keys[idx];
|
2699
|
+
observer.onNext([key, obj[key]]);
|
2700
|
+
self(idx + 1);
|
2535
2701
|
} else {
|
2536
2702
|
observer.onCompleted();
|
2537
2703
|
}
|
@@ -2539,6 +2705,58 @@
|
|
2539
2705
|
});
|
2540
2706
|
};
|
2541
2707
|
|
2708
|
+
var RangeObservable = (function(__super__) {
|
2709
|
+
inherits(RangeObservable, __super__);
|
2710
|
+
function RangeObservable(start, count, scheduler) {
|
2711
|
+
this.start = start;
|
2712
|
+
this.count = count;
|
2713
|
+
this.scheduler = scheduler;
|
2714
|
+
__super__.call(this);
|
2715
|
+
}
|
2716
|
+
|
2717
|
+
RangeObservable.prototype.subscribeCore = function (observer) {
|
2718
|
+
var sink = new RangeSink(observer, this);
|
2719
|
+
return sink.run();
|
2720
|
+
};
|
2721
|
+
|
2722
|
+
return RangeObservable;
|
2723
|
+
}(ObservableBase));
|
2724
|
+
|
2725
|
+
var RangeSink = (function () {
|
2726
|
+
function RangeSink(observer, parent) {
|
2727
|
+
this.observer = observer;
|
2728
|
+
this.parent = parent;
|
2729
|
+
}
|
2730
|
+
|
2731
|
+
RangeSink.prototype.run = function () {
|
2732
|
+
var start = this.parent.start, count = this.parent.count, observer = this.observer;
|
2733
|
+
function loopRecursive(i, recurse) {
|
2734
|
+
if (i < count) {
|
2735
|
+
observer.onNext(start + i);
|
2736
|
+
recurse(i + 1);
|
2737
|
+
} else {
|
2738
|
+
observer.onCompleted();
|
2739
|
+
}
|
2740
|
+
}
|
2741
|
+
|
2742
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2743
|
+
};
|
2744
|
+
|
2745
|
+
return RangeSink;
|
2746
|
+
}());
|
2747
|
+
|
2748
|
+
/**
|
2749
|
+
* Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages.
|
2750
|
+
* @param {Number} start The value of the first integer in the sequence.
|
2751
|
+
* @param {Number} count The number of sequential integers to generate.
|
2752
|
+
* @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread.
|
2753
|
+
* @returns {Observable} An observable sequence that contains a range of sequential integral numbers.
|
2754
|
+
*/
|
2755
|
+
Observable.range = function (start, count, scheduler) {
|
2756
|
+
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2757
|
+
return new RangeObservable(start, count, scheduler);
|
2758
|
+
};
|
2759
|
+
|
2542
2760
|
/**
|
2543
2761
|
* Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages.
|
2544
2762
|
*
|
@@ -2560,10 +2778,6 @@
|
|
2560
2778
|
/**
|
2561
2779
|
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
|
2562
2780
|
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
|
2563
|
-
*
|
2564
|
-
* @example
|
2565
|
-
* var res = Rx.Observable.return(42);
|
2566
|
-
* var res = Rx.Observable.return(42, Rx.Scheduler.timeout);
|
2567
2781
|
* @param {Mixed} value Single element in the resulting observable sequence.
|
2568
2782
|
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
|
2569
2783
|
* @returns {Observable} An observable sequence containing the single specified element.
|
@@ -2580,26 +2794,32 @@
|
|
2580
2794
|
|
2581
2795
|
/** @deprecated use return or just */
|
2582
2796
|
Observable.returnValue = function () {
|
2583
|
-
deprecate('returnValue', 'return or just');
|
2797
|
+
//deprecate('returnValue', 'return or just');
|
2584
2798
|
return observableReturn.apply(null, arguments);
|
2585
2799
|
};
|
2586
2800
|
|
2587
2801
|
/**
|
2588
2802
|
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
|
2589
2803
|
* There is an alias to this method called 'throwError' for browsers <IE9.
|
2590
|
-
* @param {Mixed}
|
2804
|
+
* @param {Mixed} error An object used for the sequence's termination.
|
2591
2805
|
* @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate.
|
2592
2806
|
* @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object.
|
2593
2807
|
*/
|
2594
|
-
var observableThrow = Observable['throw'] = Observable.
|
2808
|
+
var observableThrow = Observable['throw'] = Observable.throwError = function (error, scheduler) {
|
2595
2809
|
isScheduler(scheduler) || (scheduler = immediateScheduler);
|
2596
2810
|
return new AnonymousObservable(function (observer) {
|
2597
2811
|
return scheduler.schedule(function () {
|
2598
|
-
observer.onError(
|
2812
|
+
observer.onError(error);
|
2599
2813
|
});
|
2600
2814
|
});
|
2601
2815
|
};
|
2602
2816
|
|
2817
|
+
/** @deprecated use #some instead */
|
2818
|
+
Observable.throwException = function () {
|
2819
|
+
//deprecate('throwException', 'throwError');
|
2820
|
+
return Observable.throwError.apply(null, arguments);
|
2821
|
+
};
|
2822
|
+
|
2603
2823
|
/**
|
2604
2824
|
* Constructs an observable sequence that depends on a resource object, whose lifetime is tied to the resulting observable sequence's lifetime.
|
2605
2825
|
* @param {Function} resourceFactory Factory function to obtain a resource object.
|
@@ -2695,8 +2915,13 @@
|
|
2695
2915
|
* @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first.
|
2696
2916
|
*/
|
2697
2917
|
Observable.amb = function () {
|
2698
|
-
var acc = observableNever(),
|
2699
|
-
|
2918
|
+
var acc = observableNever(), items = [];
|
2919
|
+
if (Array.isArray(arguments[0])) {
|
2920
|
+
items = arguments[0];
|
2921
|
+
} else {
|
2922
|
+
for(var i = 0, len = arguments.length; i < len; i++) { items.push(arguments[i]); }
|
2923
|
+
}
|
2924
|
+
|
2700
2925
|
function func(previous, current) {
|
2701
2926
|
return previous.amb(current);
|
2702
2927
|
}
|
@@ -2707,23 +2932,21 @@
|
|
2707
2932
|
};
|
2708
2933
|
|
2709
2934
|
function observableCatchHandler(source, handler) {
|
2710
|
-
return new AnonymousObservable(function (
|
2935
|
+
return new AnonymousObservable(function (o) {
|
2711
2936
|
var d1 = new SingleAssignmentDisposable(), subscription = new SerialDisposable();
|
2712
2937
|
subscription.setDisposable(d1);
|
2713
|
-
d1.setDisposable(source.subscribe(
|
2714
|
-
var d, result;
|
2938
|
+
d1.setDisposable(source.subscribe(function (x) { o.onNext(x); }, function (e) {
|
2715
2939
|
try {
|
2716
|
-
result = handler(
|
2940
|
+
var result = handler(e);
|
2717
2941
|
} catch (ex) {
|
2718
|
-
|
2719
|
-
return;
|
2942
|
+
return o.onError(ex);
|
2720
2943
|
}
|
2721
2944
|
isPromise(result) && (result = observableFromPromise(result));
|
2722
2945
|
|
2723
|
-
d = new SingleAssignmentDisposable();
|
2946
|
+
var d = new SingleAssignmentDisposable();
|
2724
2947
|
subscription.setDisposable(d);
|
2725
|
-
d.setDisposable(result.subscribe(
|
2726
|
-
},
|
2948
|
+
d.setDisposable(result.subscribe(o));
|
2949
|
+
}, function (x) { o.onCompleted(x); }));
|
2727
2950
|
|
2728
2951
|
return subscription;
|
2729
2952
|
}, source);
|
@@ -2737,35 +2960,25 @@
|
|
2737
2960
|
* @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence.
|
2738
2961
|
* @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred.
|
2739
2962
|
*/
|
2740
|
-
observableProto['catch'] = observableProto.catchError = function (handlerOrSecond) {
|
2963
|
+
observableProto['catch'] = observableProto.catchError = observableProto.catchException = function (handlerOrSecond) {
|
2741
2964
|
return typeof handlerOrSecond === 'function' ?
|
2742
2965
|
observableCatchHandler(this, handlerOrSecond) :
|
2743
2966
|
observableCatch([this, handlerOrSecond]);
|
2744
2967
|
};
|
2745
2968
|
|
2746
|
-
/**
|
2747
|
-
* @deprecated use #catch or #catchError instead.
|
2748
|
-
*/
|
2749
|
-
observableProto.catchException = function (handlerOrSecond) {
|
2750
|
-
deprecate('catchException', 'catch or catchError');
|
2751
|
-
return this.catchError(handlerOrSecond);
|
2752
|
-
};
|
2753
|
-
|
2754
2969
|
/**
|
2755
2970
|
* Continues an observable sequence that is terminated by an exception with the next observable sequence.
|
2756
2971
|
* @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs.
|
2757
2972
|
* @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully.
|
2758
2973
|
*/
|
2759
|
-
var observableCatch = Observable.catchError = Observable['catch'] = function () {
|
2760
|
-
|
2761
|
-
|
2762
|
-
|
2763
|
-
|
2764
|
-
|
2765
|
-
|
2766
|
-
|
2767
|
-
deprecate('catchException', 'catch or catchError');
|
2768
|
-
return observableCatch.apply(null, arguments);
|
2974
|
+
var observableCatch = Observable.catchError = Observable['catch'] = Observable.catchException = function () {
|
2975
|
+
var items = [];
|
2976
|
+
if (Array.isArray(arguments[0])) {
|
2977
|
+
items = arguments[0];
|
2978
|
+
} else {
|
2979
|
+
for(var i = 0, len = arguments.length; i < len; i++) { items.push(arguments[i]); }
|
2980
|
+
}
|
2981
|
+
return enumerableOf(items).catchError();
|
2769
2982
|
};
|
2770
2983
|
|
2771
2984
|
/**
|
@@ -2778,7 +2991,8 @@
|
|
2778
2991
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2779
2992
|
*/
|
2780
2993
|
observableProto.combineLatest = function () {
|
2781
|
-
var args =
|
2994
|
+
var len = arguments.length, args = new Array(len);
|
2995
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2782
2996
|
if (Array.isArray(args[0])) {
|
2783
2997
|
args[0].unshift(this);
|
2784
2998
|
} else {
|
@@ -2796,54 +3010,51 @@
|
|
2796
3010
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2797
3011
|
*/
|
2798
3012
|
var combineLatest = Observable.combineLatest = function () {
|
2799
|
-
var
|
2800
|
-
|
2801
|
-
|
2802
|
-
|
2803
|
-
|
3013
|
+
var len = arguments.length, args = new Array(len);
|
3014
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
3015
|
+
var resultSelector = args.pop();
|
3016
|
+
len--;
|
3017
|
+
Array.isArray(args[0]) && (args = args[0]);
|
2804
3018
|
|
2805
|
-
return new AnonymousObservable(function (
|
3019
|
+
return new AnonymousObservable(function (o) {
|
2806
3020
|
var falseFactory = function () { return false; },
|
2807
|
-
|
2808
|
-
hasValue = arrayInitialize(n, falseFactory),
|
3021
|
+
hasValue = arrayInitialize(len, falseFactory),
|
2809
3022
|
hasValueAll = false,
|
2810
|
-
isDone = arrayInitialize(
|
2811
|
-
values = new Array(
|
3023
|
+
isDone = arrayInitialize(len, falseFactory),
|
3024
|
+
values = new Array(len);
|
2812
3025
|
|
2813
3026
|
function next(i) {
|
2814
|
-
var res;
|
2815
3027
|
hasValue[i] = true;
|
2816
3028
|
if (hasValueAll || (hasValueAll = hasValue.every(identity))) {
|
2817
3029
|
try {
|
2818
|
-
res = resultSelector.apply(null, values);
|
3030
|
+
var res = resultSelector.apply(null, values);
|
2819
3031
|
} catch (ex) {
|
2820
|
-
|
3032
|
+
o.onError(ex);
|
2821
3033
|
return;
|
2822
3034
|
}
|
2823
|
-
|
3035
|
+
o.onNext(res);
|
2824
3036
|
} else if (isDone.filter(function (x, j) { return j !== i; }).every(identity)) {
|
2825
|
-
|
3037
|
+
o.onCompleted();
|
2826
3038
|
}
|
2827
3039
|
}
|
2828
3040
|
|
2829
3041
|
function done (i) {
|
2830
3042
|
isDone[i] = true;
|
2831
|
-
|
2832
|
-
observer.onCompleted();
|
2833
|
-
}
|
3043
|
+
isDone.every(identity) && o.onCompleted();
|
2834
3044
|
}
|
2835
3045
|
|
2836
|
-
var subscriptions = new Array(
|
2837
|
-
for (var idx = 0; idx <
|
3046
|
+
var subscriptions = new Array(len);
|
3047
|
+
for (var idx = 0; idx < len; idx++) {
|
2838
3048
|
(function (i) {
|
2839
3049
|
var source = args[i], sad = new SingleAssignmentDisposable();
|
2840
3050
|
isPromise(source) && (source = observableFromPromise(source));
|
2841
3051
|
sad.setDisposable(source.subscribe(function (x) {
|
2842
|
-
|
2843
|
-
|
2844
|
-
|
2845
|
-
|
2846
|
-
|
3052
|
+
values[i] = x;
|
3053
|
+
next(i);
|
3054
|
+
},
|
3055
|
+
function(e) { o.onError(e); },
|
3056
|
+
function () { done(i); }
|
3057
|
+
));
|
2847
3058
|
subscriptions[i] = sad;
|
2848
3059
|
}(idx));
|
2849
3060
|
}
|
@@ -2852,19 +3063,15 @@
|
|
2852
3063
|
}, this);
|
2853
3064
|
};
|
2854
3065
|
|
2855
|
-
|
2856
|
-
|
2857
|
-
|
2858
|
-
|
2859
|
-
|
2860
|
-
|
2861
|
-
|
2862
|
-
|
2863
|
-
|
2864
|
-
var items = slice.call(arguments, 0);
|
2865
|
-
items.unshift(this);
|
2866
|
-
return observableConcat.apply(this, items);
|
2867
|
-
};
|
3066
|
+
/**
|
3067
|
+
* Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate.
|
3068
|
+
* @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order.
|
3069
|
+
*/
|
3070
|
+
observableProto.concat = function () {
|
3071
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3072
|
+
args.unshift(this);
|
3073
|
+
return observableConcat.apply(null, args);
|
3074
|
+
};
|
2868
3075
|
|
2869
3076
|
/**
|
2870
3077
|
* Concatenates all the observable sequences.
|
@@ -2872,20 +3079,21 @@
|
|
2872
3079
|
* @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order.
|
2873
3080
|
*/
|
2874
3081
|
var observableConcat = Observable.concat = function () {
|
2875
|
-
|
3082
|
+
var args;
|
3083
|
+
if (Array.isArray(arguments[0])) {
|
3084
|
+
args = arguments[0];
|
3085
|
+
} else {
|
3086
|
+
args = new Array(arguments.length);
|
3087
|
+
for(var i = 0, len = arguments.length; i < len; i++) { args[i] = arguments[i]; }
|
3088
|
+
}
|
3089
|
+
return enumerableOf(args).concat();
|
2876
3090
|
};
|
2877
3091
|
|
2878
3092
|
/**
|
2879
3093
|
* Concatenates an observable sequence of observable sequences.
|
2880
3094
|
* @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order.
|
2881
3095
|
*/
|
2882
|
-
observableProto.concatAll = function () {
|
2883
|
-
return this.merge(1);
|
2884
|
-
};
|
2885
|
-
|
2886
|
-
/** @deprecated Use `concatAll` instead. */
|
2887
|
-
observableProto.concatObservable = function () {
|
2888
|
-
deprecate('concatObservable', 'concatAll');
|
3096
|
+
observableProto.concatAll = observableProto.concatObservable = function () {
|
2889
3097
|
return this.merge(1);
|
2890
3098
|
};
|
2891
3099
|
|
@@ -2902,7 +3110,7 @@
|
|
2902
3110
|
observableProto.merge = function (maxConcurrentOrOther) {
|
2903
3111
|
if (typeof maxConcurrentOrOther !== 'number') { return observableMerge(this, maxConcurrentOrOther); }
|
2904
3112
|
var sources = this;
|
2905
|
-
return new AnonymousObservable(function (
|
3113
|
+
return new AnonymousObservable(function (o) {
|
2906
3114
|
var activeCount = 0, group = new CompositeDisposable(), isStopped = false, q = [];
|
2907
3115
|
|
2908
3116
|
function subscribe(xs) {
|
@@ -2912,13 +3120,13 @@
|
|
2912
3120
|
// Check for promises support
|
2913
3121
|
isPromise(xs) && (xs = observableFromPromise(xs));
|
2914
3122
|
|
2915
|
-
subscription.setDisposable(xs.subscribe(
|
3123
|
+
subscription.setDisposable(xs.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
|
2916
3124
|
group.remove(subscription);
|
2917
3125
|
if (q.length > 0) {
|
2918
3126
|
subscribe(q.shift());
|
2919
3127
|
} else {
|
2920
3128
|
activeCount--;
|
2921
|
-
isStopped && activeCount === 0 &&
|
3129
|
+
isStopped && activeCount === 0 && o.onCompleted();
|
2922
3130
|
}
|
2923
3131
|
}));
|
2924
3132
|
}
|
@@ -2929,9 +3137,9 @@
|
|
2929
3137
|
} else {
|
2930
3138
|
q.push(innerSource);
|
2931
3139
|
}
|
2932
|
-
},
|
3140
|
+
}, function (e) { o.onError(e); }, function () {
|
2933
3141
|
isStopped = true;
|
2934
|
-
activeCount === 0 &&
|
3142
|
+
activeCount === 0 && o.onCompleted();
|
2935
3143
|
}));
|
2936
3144
|
return group;
|
2937
3145
|
}, sources);
|
@@ -2943,16 +3151,16 @@
|
|
2943
3151
|
* @returns {Observable} The observable sequence that merges the elements of the observable sequences.
|
2944
3152
|
*/
|
2945
3153
|
var observableMerge = Observable.merge = function () {
|
2946
|
-
var scheduler, sources;
|
3154
|
+
var scheduler, sources = [], i, len = arguments.length;
|
2947
3155
|
if (!arguments[0]) {
|
2948
3156
|
scheduler = immediateScheduler;
|
2949
|
-
|
3157
|
+
for(i = 1; i < len; i++) { sources.push(arguments[i]); }
|
2950
3158
|
} else if (isScheduler(arguments[0])) {
|
2951
3159
|
scheduler = arguments[0];
|
2952
|
-
|
3160
|
+
for(i = 1; i < len; i++) { sources.push(arguments[i]); }
|
2953
3161
|
} else {
|
2954
3162
|
scheduler = immediateScheduler;
|
2955
|
-
|
3163
|
+
for(i = 0; i < len; i++) { sources.push(arguments[i]); }
|
2956
3164
|
}
|
2957
3165
|
if (Array.isArray(sources[0])) {
|
2958
3166
|
sources = sources[0];
|
@@ -2964,9 +3172,9 @@
|
|
2964
3172
|
* Merges an observable sequence of observable sequences into an observable sequence.
|
2965
3173
|
* @returns {Observable} The observable sequence that merges the elements of the inner sequences.
|
2966
3174
|
*/
|
2967
|
-
observableProto.mergeAll = function () {
|
3175
|
+
observableProto.mergeAll = observableProto.mergeObservable = function () {
|
2968
3176
|
var sources = this;
|
2969
|
-
return new AnonymousObservable(function (
|
3177
|
+
return new AnonymousObservable(function (o) {
|
2970
3178
|
var group = new CompositeDisposable(),
|
2971
3179
|
isStopped = false,
|
2972
3180
|
m = new SingleAssignmentDisposable();
|
@@ -2979,26 +3187,18 @@
|
|
2979
3187
|
// Check for promises support
|
2980
3188
|
isPromise(innerSource) && (innerSource = observableFromPromise(innerSource));
|
2981
3189
|
|
2982
|
-
innerSubscription.setDisposable(innerSource.subscribe(
|
3190
|
+
innerSubscription.setDisposable(innerSource.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
|
2983
3191
|
group.remove(innerSubscription);
|
2984
|
-
isStopped && group.length === 1 &&
|
3192
|
+
isStopped && group.length === 1 && o.onCompleted();
|
2985
3193
|
}));
|
2986
|
-
},
|
3194
|
+
}, function (e) { o.onError(e); }, function () {
|
2987
3195
|
isStopped = true;
|
2988
|
-
group.length === 1 &&
|
3196
|
+
group.length === 1 && o.onCompleted();
|
2989
3197
|
}));
|
2990
3198
|
return group;
|
2991
3199
|
}, sources);
|
2992
3200
|
};
|
2993
3201
|
|
2994
|
-
/**
|
2995
|
-
* @deprecated use #mergeAll instead.
|
2996
|
-
*/
|
2997
|
-
observableProto.mergeObservable = function () {
|
2998
|
-
deprecate('mergeObservable', 'mergeAll');
|
2999
|
-
return this.mergeAll.apply(this, arguments);
|
3000
|
-
};
|
3001
|
-
|
3002
3202
|
/**
|
3003
3203
|
* Continues an observable sequence that is terminated normally or by an exception with the next observable sequence.
|
3004
3204
|
* @param {Observable} second Second observable sequence used to produce results after the first sequence terminates.
|
@@ -3018,7 +3218,12 @@
|
|
3018
3218
|
* @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally.
|
3019
3219
|
*/
|
3020
3220
|
var onErrorResumeNext = Observable.onErrorResumeNext = function () {
|
3021
|
-
var sources =
|
3221
|
+
var sources = [];
|
3222
|
+
if (Array.isArray(arguments[0])) {
|
3223
|
+
sources = arguments[0];
|
3224
|
+
} else {
|
3225
|
+
for(var i = 0, len = arguments.length; i < len; i++) { sources.push(arguments[i]); }
|
3226
|
+
}
|
3022
3227
|
return new AnonymousObservable(function (observer) {
|
3023
3228
|
var pos = 0, subscription = new SerialDisposable(),
|
3024
3229
|
cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
@@ -3044,12 +3249,12 @@
|
|
3044
3249
|
*/
|
3045
3250
|
observableProto.skipUntil = function (other) {
|
3046
3251
|
var source = this;
|
3047
|
-
return new AnonymousObservable(function (
|
3252
|
+
return new AnonymousObservable(function (o) {
|
3048
3253
|
var isOpen = false;
|
3049
3254
|
var disposables = new CompositeDisposable(source.subscribe(function (left) {
|
3050
|
-
isOpen &&
|
3051
|
-
},
|
3052
|
-
isOpen &&
|
3255
|
+
isOpen && o.onNext(left);
|
3256
|
+
}, function (e) { o.onError(e); }, function () {
|
3257
|
+
isOpen && o.onCompleted();
|
3053
3258
|
}));
|
3054
3259
|
|
3055
3260
|
isPromise(other) && (other = observableFromPromise(other));
|
@@ -3059,7 +3264,7 @@
|
|
3059
3264
|
rightSubscription.setDisposable(other.subscribe(function () {
|
3060
3265
|
isOpen = true;
|
3061
3266
|
rightSubscription.dispose();
|
3062
|
-
},
|
3267
|
+
}, function (e) { o.onError(e); }, function () {
|
3063
3268
|
rightSubscription.dispose();
|
3064
3269
|
}));
|
3065
3270
|
|
@@ -3097,7 +3302,7 @@
|
|
3097
3302
|
}
|
3098
3303
|
}));
|
3099
3304
|
},
|
3100
|
-
observer.onError
|
3305
|
+
function (e) { observer.onError(e); },
|
3101
3306
|
function () {
|
3102
3307
|
isStopped = true;
|
3103
3308
|
!hasLatest && observer.onCompleted();
|
@@ -3113,15 +3318,79 @@
|
|
3113
3318
|
*/
|
3114
3319
|
observableProto.takeUntil = function (other) {
|
3115
3320
|
var source = this;
|
3116
|
-
return new AnonymousObservable(function (
|
3321
|
+
return new AnonymousObservable(function (o) {
|
3117
3322
|
isPromise(other) && (other = observableFromPromise(other));
|
3118
3323
|
return new CompositeDisposable(
|
3119
|
-
source.subscribe(
|
3120
|
-
other.subscribe(
|
3324
|
+
source.subscribe(o),
|
3325
|
+
other.subscribe(function () { o.onCompleted(); }, function (e) { o.onError(e); }, noop)
|
3121
3326
|
);
|
3122
3327
|
}, source);
|
3123
3328
|
};
|
3124
3329
|
|
3330
|
+
/**
|
3331
|
+
* Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element.
|
3332
|
+
*
|
3333
|
+
* @example
|
3334
|
+
* 1 - obs = obs1.withLatestFrom(obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; });
|
3335
|
+
* 2 - obs = obs1.withLatestFrom([obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; });
|
3336
|
+
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
3337
|
+
*/
|
3338
|
+
observableProto.withLatestFrom = function () {
|
3339
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3340
|
+
var resultSelector = args.pop(), source = this;
|
3341
|
+
|
3342
|
+
if (typeof source === 'undefined') {
|
3343
|
+
throw new Error('Source observable not found for withLatestFrom().');
|
3344
|
+
}
|
3345
|
+
if (typeof resultSelector !== 'function') {
|
3346
|
+
throw new Error('withLatestFrom() expects a resultSelector function.');
|
3347
|
+
}
|
3348
|
+
if (Array.isArray(args[0])) {
|
3349
|
+
args = args[0];
|
3350
|
+
}
|
3351
|
+
|
3352
|
+
return new AnonymousObservable(function (observer) {
|
3353
|
+
var falseFactory = function () { return false; },
|
3354
|
+
n = args.length,
|
3355
|
+
hasValue = arrayInitialize(n, falseFactory),
|
3356
|
+
hasValueAll = false,
|
3357
|
+
values = new Array(n);
|
3358
|
+
|
3359
|
+
var subscriptions = new Array(n + 1);
|
3360
|
+
for (var idx = 0; idx < n; idx++) {
|
3361
|
+
(function (i) {
|
3362
|
+
var other = args[i], sad = new SingleAssignmentDisposable();
|
3363
|
+
isPromise(other) && (other = observableFromPromise(other));
|
3364
|
+
sad.setDisposable(other.subscribe(function (x) {
|
3365
|
+
values[i] = x;
|
3366
|
+
hasValue[i] = true;
|
3367
|
+
hasValueAll = hasValue.every(identity);
|
3368
|
+
}, observer.onError.bind(observer), function () {}));
|
3369
|
+
subscriptions[i] = sad;
|
3370
|
+
}(idx));
|
3371
|
+
}
|
3372
|
+
|
3373
|
+
var sad = new SingleAssignmentDisposable();
|
3374
|
+
sad.setDisposable(source.subscribe(function (x) {
|
3375
|
+
var res;
|
3376
|
+
var allValues = [x].concat(values);
|
3377
|
+
if (!hasValueAll) return;
|
3378
|
+
try {
|
3379
|
+
res = resultSelector.apply(null, allValues);
|
3380
|
+
} catch (ex) {
|
3381
|
+
observer.onError(ex);
|
3382
|
+
return;
|
3383
|
+
}
|
3384
|
+
observer.onNext(res);
|
3385
|
+
}, observer.onError.bind(observer), function () {
|
3386
|
+
observer.onCompleted();
|
3387
|
+
}));
|
3388
|
+
subscriptions[n] = sad;
|
3389
|
+
|
3390
|
+
return new CompositeDisposable(subscriptions);
|
3391
|
+
}, this);
|
3392
|
+
};
|
3393
|
+
|
3125
3394
|
function zipArray(second, resultSelector) {
|
3126
3395
|
var first = this;
|
3127
3396
|
return new AnonymousObservable(function (observer) {
|
@@ -3132,36 +3401,39 @@
|
|
3132
3401
|
try {
|
3133
3402
|
result = resultSelector(left, right);
|
3134
3403
|
} catch (e) {
|
3135
|
-
observer.onError(e);
|
3136
|
-
return;
|
3404
|
+
return observer.onError(e);
|
3137
3405
|
}
|
3138
3406
|
observer.onNext(result);
|
3139
3407
|
} else {
|
3140
3408
|
observer.onCompleted();
|
3141
3409
|
}
|
3142
|
-
}, observer.onError
|
3410
|
+
}, function (e) { observer.onError(e); }, function () { observer.onCompleted(); });
|
3143
3411
|
}, first);
|
3144
3412
|
}
|
3145
3413
|
|
3414
|
+
function falseFactory() { return false; }
|
3415
|
+
function emptyArrayFactory() { return []; }
|
3416
|
+
|
3146
3417
|
/**
|
3147
3418
|
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
|
3148
|
-
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the
|
3419
|
+
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
|
3149
3420
|
*
|
3150
3421
|
* @example
|
3151
3422
|
* 1 - res = obs1.zip(obs2, fn);
|
3152
3423
|
* 1 - res = x1.zip([1,2,3], fn);
|
3153
|
-
* @returns {Observable} An observable sequence containing the result of combining elements of the
|
3424
|
+
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
|
3154
3425
|
*/
|
3155
3426
|
observableProto.zip = function () {
|
3156
|
-
if (Array.isArray(arguments[0])) {
|
3157
|
-
|
3158
|
-
}
|
3159
|
-
|
3160
|
-
|
3427
|
+
if (Array.isArray(arguments[0])) { return zipArray.apply(this, arguments); }
|
3428
|
+
var len = arguments.length, args = new Array(len);
|
3429
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
3430
|
+
|
3431
|
+
var parent = this, resultSelector = args.pop();
|
3432
|
+
args.unshift(parent);
|
3161
3433
|
return new AnonymousObservable(function (observer) {
|
3162
|
-
var n =
|
3163
|
-
queues = arrayInitialize(n,
|
3164
|
-
isDone = arrayInitialize(n,
|
3434
|
+
var n = args.length,
|
3435
|
+
queues = arrayInitialize(n, emptyArrayFactory),
|
3436
|
+
isDone = arrayInitialize(n, falseFactory);
|
3165
3437
|
|
3166
3438
|
function next(i) {
|
3167
3439
|
var res, queuedValues;
|
@@ -3189,12 +3461,12 @@
|
|
3189
3461
|
var subscriptions = new Array(n);
|
3190
3462
|
for (var idx = 0; idx < n; idx++) {
|
3191
3463
|
(function (i) {
|
3192
|
-
var source =
|
3464
|
+
var source = args[i], sad = new SingleAssignmentDisposable();
|
3193
3465
|
isPromise(source) && (source = observableFromPromise(source));
|
3194
3466
|
sad.setDisposable(source.subscribe(function (x) {
|
3195
3467
|
queues[i].push(x);
|
3196
3468
|
next(i);
|
3197
|
-
}, observer.onError
|
3469
|
+
}, function (e) { observer.onError(e); }, function () {
|
3198
3470
|
done(i);
|
3199
3471
|
}));
|
3200
3472
|
subscriptions[i] = sad;
|
@@ -3212,7 +3484,9 @@
|
|
3212
3484
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
3213
3485
|
*/
|
3214
3486
|
Observable.zip = function () {
|
3215
|
-
var
|
3487
|
+
var len = arguments.length, args = new Array(len);
|
3488
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
3489
|
+
var first = args.shift();
|
3216
3490
|
return first.zip.apply(first, args);
|
3217
3491
|
};
|
3218
3492
|
|
@@ -3222,7 +3496,14 @@
|
|
3222
3496
|
* @returns {Observable} An observable sequence containing lists of elements at corresponding indexes.
|
3223
3497
|
*/
|
3224
3498
|
Observable.zipArray = function () {
|
3225
|
-
var sources
|
3499
|
+
var sources;
|
3500
|
+
if (Array.isArray(arguments[0])) {
|
3501
|
+
sources = arguments[0];
|
3502
|
+
} else {
|
3503
|
+
var len = arguments.length;
|
3504
|
+
sources = new Array(len);
|
3505
|
+
for(var i = 0; i < len; i++) { sources[i] = arguments[i]; }
|
3506
|
+
}
|
3226
3507
|
return new AnonymousObservable(function (observer) {
|
3227
3508
|
var n = sources.length,
|
3228
3509
|
queues = arrayInitialize(n, function () { return []; }),
|
@@ -3253,17 +3534,13 @@
|
|
3253
3534
|
subscriptions[i].setDisposable(sources[i].subscribe(function (x) {
|
3254
3535
|
queues[i].push(x);
|
3255
3536
|
next(i);
|
3256
|
-
}, observer.onError
|
3537
|
+
}, function (e) { observer.onError(e); }, function () {
|
3257
3538
|
done(i);
|
3258
3539
|
}));
|
3259
3540
|
})(idx);
|
3260
3541
|
}
|
3261
3542
|
|
3262
|
-
|
3263
|
-
compositeDisposable.add(disposableCreate(function () {
|
3264
|
-
for (var qIdx = 0, qLen = queues.length; qIdx < qLen; qIdx++) { queues[qIdx] = []; }
|
3265
|
-
}));
|
3266
|
-
return compositeDisposable;
|
3543
|
+
return new CompositeDisposable(subscriptions);
|
3267
3544
|
});
|
3268
3545
|
};
|
3269
3546
|
|
@@ -3272,7 +3549,8 @@
|
|
3272
3549
|
* @returns {Observable} An observable sequence that hides the identity of the source sequence.
|
3273
3550
|
*/
|
3274
3551
|
observableProto.asObservable = function () {
|
3275
|
-
|
3552
|
+
var source = this;
|
3553
|
+
return new AnonymousObservable(function (o) { return source.subscribe(o); }, this);
|
3276
3554
|
};
|
3277
3555
|
|
3278
3556
|
/**
|
@@ -3302,8 +3580,8 @@
|
|
3302
3580
|
*/
|
3303
3581
|
observableProto.dematerialize = function () {
|
3304
3582
|
var source = this;
|
3305
|
-
return new AnonymousObservable(function (
|
3306
|
-
return source.subscribe(function (x) { return x.accept(
|
3583
|
+
return new AnonymousObservable(function (o) {
|
3584
|
+
return source.subscribe(function (x) { return x.accept(o); }, function(e) { o.onError(e); }, function () { o.onCompleted(); });
|
3307
3585
|
}, this);
|
3308
3586
|
};
|
3309
3587
|
|
@@ -3320,32 +3598,33 @@
|
|
3320
3598
|
*/
|
3321
3599
|
observableProto.distinctUntilChanged = function (keySelector, comparer) {
|
3322
3600
|
var source = this;
|
3323
|
-
keySelector || (keySelector = identity);
|
3324
3601
|
comparer || (comparer = defaultComparer);
|
3325
|
-
return new AnonymousObservable(function (
|
3602
|
+
return new AnonymousObservable(function (o) {
|
3326
3603
|
var hasCurrentKey = false, currentKey;
|
3327
3604
|
return source.subscribe(function (value) {
|
3328
|
-
|
3605
|
+
var key = value;
|
3606
|
+
if (keySelector) {
|
3329
3607
|
try {
|
3330
3608
|
key = keySelector(value);
|
3331
3609
|
} catch (e) {
|
3332
|
-
|
3610
|
+
o.onError(e);
|
3333
3611
|
return;
|
3334
3612
|
}
|
3335
|
-
|
3336
|
-
|
3337
|
-
|
3338
|
-
|
3339
|
-
|
3340
|
-
|
3341
|
-
|
3342
|
-
}
|
3343
|
-
if (!hasCurrentKey || !comparerEquals) {
|
3344
|
-
hasCurrentKey = true;
|
3345
|
-
currentKey = key;
|
3346
|
-
observer.onNext(value);
|
3613
|
+
}
|
3614
|
+
if (hasCurrentKey) {
|
3615
|
+
try {
|
3616
|
+
var comparerEquals = comparer(currentKey, key);
|
3617
|
+
} catch (e) {
|
3618
|
+
o.onError(e);
|
3619
|
+
return;
|
3347
3620
|
}
|
3348
|
-
|
3621
|
+
}
|
3622
|
+
if (!hasCurrentKey || !comparerEquals) {
|
3623
|
+
hasCurrentKey = true;
|
3624
|
+
currentKey = key;
|
3625
|
+
o.onNext(value);
|
3626
|
+
}
|
3627
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3349
3628
|
}, this);
|
3350
3629
|
};
|
3351
3630
|
|
@@ -3357,51 +3636,36 @@
|
|
3357
3636
|
* @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function.
|
3358
3637
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
3359
3638
|
*/
|
3360
|
-
observableProto['do'] = observableProto.tap = function (observerOrOnNext, onError, onCompleted) {
|
3361
|
-
var source = this,
|
3362
|
-
|
3363
|
-
|
3364
|
-
} else {
|
3365
|
-
onNextFunc = observerOrOnNext.onNext.bind(observerOrOnNext);
|
3366
|
-
onError = observerOrOnNext.onError.bind(observerOrOnNext);
|
3367
|
-
onCompleted = observerOrOnNext.onCompleted.bind(observerOrOnNext);
|
3368
|
-
}
|
3639
|
+
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
|
3640
|
+
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
|
3641
|
+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
|
3642
|
+
observerOrOnNext;
|
3369
3643
|
return new AnonymousObservable(function (observer) {
|
3370
3644
|
return source.subscribe(function (x) {
|
3371
3645
|
try {
|
3372
|
-
|
3646
|
+
tapObserver.onNext(x);
|
3373
3647
|
} catch (e) {
|
3374
3648
|
observer.onError(e);
|
3375
3649
|
}
|
3376
3650
|
observer.onNext(x);
|
3377
3651
|
}, function (err) {
|
3378
|
-
if (onError) {
|
3379
3652
|
try {
|
3380
|
-
onError(err);
|
3653
|
+
tapObserver.onError(err);
|
3381
3654
|
} catch (e) {
|
3382
3655
|
observer.onError(e);
|
3383
3656
|
}
|
3384
|
-
}
|
3385
3657
|
observer.onError(err);
|
3386
3658
|
}, function () {
|
3387
|
-
|
3388
|
-
|
3389
|
-
|
3390
|
-
|
3391
|
-
observer.onError(e);
|
3392
|
-
}
|
3659
|
+
try {
|
3660
|
+
tapObserver.onCompleted();
|
3661
|
+
} catch (e) {
|
3662
|
+
observer.onError(e);
|
3393
3663
|
}
|
3394
3664
|
observer.onCompleted();
|
3395
3665
|
});
|
3396
3666
|
}, this);
|
3397
3667
|
};
|
3398
3668
|
|
3399
|
-
/** @deprecated use #do or #tap instead. */
|
3400
|
-
observableProto.doAction = function () {
|
3401
|
-
deprecate('doAction', 'do or tap');
|
3402
|
-
return this.tap.apply(this, arguments);
|
3403
|
-
};
|
3404
|
-
|
3405
3669
|
/**
|
3406
3670
|
* Invokes an action for each element in the observable sequence.
|
3407
3671
|
* This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline.
|
@@ -3410,7 +3674,7 @@
|
|
3410
3674
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
3411
3675
|
*/
|
3412
3676
|
observableProto.doOnNext = observableProto.tapOnNext = function (onNext, thisArg) {
|
3413
|
-
return this.tap(
|
3677
|
+
return this.tap(typeof thisArg !== 'undefined' ? function (x) { onNext.call(thisArg, x); } : onNext);
|
3414
3678
|
};
|
3415
3679
|
|
3416
3680
|
/**
|
@@ -3421,7 +3685,7 @@
|
|
3421
3685
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
3422
3686
|
*/
|
3423
3687
|
observableProto.doOnError = observableProto.tapOnError = function (onError, thisArg) {
|
3424
|
-
return this.tap(noop,
|
3688
|
+
return this.tap(noop, typeof thisArg !== 'undefined' ? function (e) { onError.call(thisArg, e); } : onError);
|
3425
3689
|
};
|
3426
3690
|
|
3427
3691
|
/**
|
@@ -3432,7 +3696,7 @@
|
|
3432
3696
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
3433
3697
|
*/
|
3434
3698
|
observableProto.doOnCompleted = observableProto.tapOnCompleted = function (onCompleted, thisArg) {
|
3435
|
-
return this.tap(noop, null,
|
3699
|
+
return this.tap(noop, null, typeof thisArg !== 'undefined' ? function () { onCompleted.call(thisArg); } : onCompleted);
|
3436
3700
|
};
|
3437
3701
|
|
3438
3702
|
/**
|
@@ -3466,7 +3730,7 @@
|
|
3466
3730
|
* @deprecated use #finally or #ensure instead.
|
3467
3731
|
*/
|
3468
3732
|
observableProto.finallyAction = function (action) {
|
3469
|
-
deprecate('finallyAction', 'finally or ensure');
|
3733
|
+
//deprecate('finallyAction', 'finally or ensure');
|
3470
3734
|
return this.ensure(action);
|
3471
3735
|
};
|
3472
3736
|
|
@@ -3476,8 +3740,8 @@
|
|
3476
3740
|
*/
|
3477
3741
|
observableProto.ignoreElements = function () {
|
3478
3742
|
var source = this;
|
3479
|
-
return new AnonymousObservable(function (
|
3480
|
-
return source.subscribe(noop,
|
3743
|
+
return new AnonymousObservable(function (o) {
|
3744
|
+
return source.subscribe(noop, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3481
3745
|
}, source);
|
3482
3746
|
};
|
3483
3747
|
|
@@ -3523,6 +3787,19 @@
|
|
3523
3787
|
return enumerableRepeat(this, retryCount).catchError();
|
3524
3788
|
};
|
3525
3789
|
|
3790
|
+
/**
|
3791
|
+
* Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates.
|
3792
|
+
* if the notifier completes, the observable sequence completes.
|
3793
|
+
*
|
3794
|
+
* @example
|
3795
|
+
* var timer = Observable.timer(500);
|
3796
|
+
* var source = observable.retryWhen(timer);
|
3797
|
+
* @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively.
|
3798
|
+
* @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully.
|
3799
|
+
*/
|
3800
|
+
observableProto.retryWhen = function (notifier) {
|
3801
|
+
return enumerableRepeat(this).catchErrorWhen(notifier);
|
3802
|
+
};
|
3526
3803
|
/**
|
3527
3804
|
* Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value.
|
3528
3805
|
* For aggregation behavior with no intermediate results, see Observable.aggregate.
|
@@ -3542,7 +3819,7 @@
|
|
3542
3819
|
} else {
|
3543
3820
|
accumulator = arguments[0];
|
3544
3821
|
}
|
3545
|
-
return new AnonymousObservable(function (
|
3822
|
+
return new AnonymousObservable(function (o) {
|
3546
3823
|
var hasAccumulation, accumulation, hasValue;
|
3547
3824
|
return source.subscribe (
|
3548
3825
|
function (x) {
|
@@ -3555,16 +3832,16 @@
|
|
3555
3832
|
hasAccumulation = true;
|
3556
3833
|
}
|
3557
3834
|
} catch (e) {
|
3558
|
-
|
3835
|
+
o.onError(e);
|
3559
3836
|
return;
|
3560
3837
|
}
|
3561
3838
|
|
3562
|
-
|
3839
|
+
o.onNext(accumulation);
|
3563
3840
|
},
|
3564
|
-
|
3841
|
+
function (e) { o.onError(e); },
|
3565
3842
|
function () {
|
3566
|
-
!hasValue && hasSeed &&
|
3567
|
-
|
3843
|
+
!hasValue && hasSeed && o.onNext(seed);
|
3844
|
+
o.onCompleted();
|
3568
3845
|
}
|
3569
3846
|
);
|
3570
3847
|
}, source);
|
@@ -3580,12 +3857,12 @@
|
|
3580
3857
|
*/
|
3581
3858
|
observableProto.skipLast = function (count) {
|
3582
3859
|
var source = this;
|
3583
|
-
return new AnonymousObservable(function (
|
3860
|
+
return new AnonymousObservable(function (o) {
|
3584
3861
|
var q = [];
|
3585
3862
|
return source.subscribe(function (x) {
|
3586
3863
|
q.push(x);
|
3587
|
-
q.length > count &&
|
3588
|
-
},
|
3864
|
+
q.length > count && o.onNext(q.shift());
|
3865
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3589
3866
|
}, source);
|
3590
3867
|
};
|
3591
3868
|
|
@@ -3605,8 +3882,8 @@
|
|
3605
3882
|
} else {
|
3606
3883
|
scheduler = immediateScheduler;
|
3607
3884
|
}
|
3608
|
-
|
3609
|
-
return enumerableOf([observableFromArray(
|
3885
|
+
for(var args = [], i = start, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3886
|
+
return enumerableOf([observableFromArray(args, scheduler), this]).concat();
|
3610
3887
|
};
|
3611
3888
|
|
3612
3889
|
/**
|
@@ -3619,14 +3896,14 @@
|
|
3619
3896
|
*/
|
3620
3897
|
observableProto.takeLast = function (count) {
|
3621
3898
|
var source = this;
|
3622
|
-
return new AnonymousObservable(function (
|
3899
|
+
return new AnonymousObservable(function (o) {
|
3623
3900
|
var q = [];
|
3624
3901
|
return source.subscribe(function (x) {
|
3625
3902
|
q.push(x);
|
3626
3903
|
q.length > count && q.shift();
|
3627
|
-
},
|
3628
|
-
while (q.length > 0) {
|
3629
|
-
|
3904
|
+
}, function (e) { o.onError(e); }, function () {
|
3905
|
+
while (q.length > 0) { o.onNext(q.shift()); }
|
3906
|
+
o.onCompleted();
|
3630
3907
|
});
|
3631
3908
|
}, source);
|
3632
3909
|
};
|
@@ -3642,14 +3919,14 @@
|
|
3642
3919
|
*/
|
3643
3920
|
observableProto.takeLastBuffer = function (count) {
|
3644
3921
|
var source = this;
|
3645
|
-
return new AnonymousObservable(function (
|
3922
|
+
return new AnonymousObservable(function (o) {
|
3646
3923
|
var q = [];
|
3647
3924
|
return source.subscribe(function (x) {
|
3648
3925
|
q.push(x);
|
3649
3926
|
q.length > count && q.shift();
|
3650
|
-
},
|
3651
|
-
|
3652
|
-
|
3927
|
+
}, function (e) { o.onError(e); }, function () {
|
3928
|
+
o.onNext(q);
|
3929
|
+
o.onCompleted();
|
3653
3930
|
});
|
3654
3931
|
}, source);
|
3655
3932
|
};
|
@@ -3708,8 +3985,9 @@
|
|
3708
3985
|
};
|
3709
3986
|
|
3710
3987
|
function concatMap(source, selector, thisArg) {
|
3988
|
+
var selectorFunc = bindCallback(selector, thisArg, 3);
|
3711
3989
|
return source.map(function (x, i) {
|
3712
|
-
var result =
|
3990
|
+
var result = selectorFunc(x, i, source);
|
3713
3991
|
isPromise(result) && (result = observableFromPromise(result));
|
3714
3992
|
(isArrayLike(result) || isIterable(result)) && (result = observableFrom(result));
|
3715
3993
|
return result;
|
@@ -3761,15 +4039,17 @@
|
|
3761
4039
|
* @returns {Observable} An observable sequence whose elements are the result of invoking the one-to-many transform function corresponding to each notification in the input sequence.
|
3762
4040
|
*/
|
3763
4041
|
observableProto.concatMapObserver = observableProto.selectConcatObserver = function(onNext, onError, onCompleted, thisArg) {
|
3764
|
-
var source = this
|
4042
|
+
var source = this,
|
4043
|
+
onNextFunc = bindCallback(onNext, thisArg, 2),
|
4044
|
+
onErrorFunc = bindCallback(onError, thisArg, 1),
|
4045
|
+
onCompletedFunc = bindCallback(onCompleted, thisArg, 0);
|
3765
4046
|
return new AnonymousObservable(function (observer) {
|
3766
4047
|
var index = 0;
|
3767
|
-
|
3768
4048
|
return source.subscribe(
|
3769
4049
|
function (x) {
|
3770
4050
|
var result;
|
3771
4051
|
try {
|
3772
|
-
result =
|
4052
|
+
result = onNextFunc(x, index++);
|
3773
4053
|
} catch (e) {
|
3774
4054
|
observer.onError(e);
|
3775
4055
|
return;
|
@@ -3780,7 +4060,7 @@
|
|
3780
4060
|
function (err) {
|
3781
4061
|
var result;
|
3782
4062
|
try {
|
3783
|
-
result =
|
4063
|
+
result = onErrorFunc(err);
|
3784
4064
|
} catch (e) {
|
3785
4065
|
observer.onError(e);
|
3786
4066
|
return;
|
@@ -3792,7 +4072,7 @@
|
|
3792
4072
|
function () {
|
3793
4073
|
var result;
|
3794
4074
|
try {
|
3795
|
-
result =
|
4075
|
+
result = onCompletedFunc();
|
3796
4076
|
} catch (e) {
|
3797
4077
|
observer.onError(e);
|
3798
4078
|
return;
|
@@ -3822,11 +4102,13 @@
|
|
3822
4102
|
return source.subscribe(function (x) {
|
3823
4103
|
found = true;
|
3824
4104
|
observer.onNext(x);
|
3825
|
-
},
|
4105
|
+
},
|
4106
|
+
function (e) { observer.onError(e); },
|
4107
|
+
function () {
|
3826
4108
|
!found && observer.onNext(defaultValue);
|
3827
4109
|
observer.onCompleted();
|
3828
4110
|
});
|
3829
|
-
},
|
4111
|
+
}, source);
|
3830
4112
|
};
|
3831
4113
|
|
3832
4114
|
// Swap out for Array.findIndex
|
@@ -3862,7 +4144,7 @@
|
|
3862
4144
|
observableProto.distinct = function (keySelector, comparer) {
|
3863
4145
|
var source = this;
|
3864
4146
|
comparer || (comparer = defaultComparer);
|
3865
|
-
return new AnonymousObservable(function (
|
4147
|
+
return new AnonymousObservable(function (o) {
|
3866
4148
|
var hashSet = new HashSet(comparer);
|
3867
4149
|
return source.subscribe(function (x) {
|
3868
4150
|
var key = x;
|
@@ -3871,48 +4153,106 @@
|
|
3871
4153
|
try {
|
3872
4154
|
key = keySelector(x);
|
3873
4155
|
} catch (e) {
|
3874
|
-
|
4156
|
+
o.onError(e);
|
3875
4157
|
return;
|
3876
4158
|
}
|
3877
4159
|
}
|
3878
|
-
hashSet.push(key) &&
|
4160
|
+
hashSet.push(key) && o.onNext(x);
|
3879
4161
|
},
|
3880
|
-
|
3881
|
-
observer.onCompleted.bind(observer));
|
4162
|
+
function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3882
4163
|
}, this);
|
3883
4164
|
};
|
3884
4165
|
|
4166
|
+
var MapObservable = (function (__super__) {
|
4167
|
+
inherits(MapObservable, __super__);
|
4168
|
+
|
4169
|
+
function MapObservable(source, selector, thisArg) {
|
4170
|
+
this.source = source;
|
4171
|
+
this.selector = bindCallback(selector, thisArg, 3);
|
4172
|
+
__super__.call(this);
|
4173
|
+
}
|
4174
|
+
|
4175
|
+
MapObservable.prototype.internalMap = function (selector, thisArg) {
|
4176
|
+
var self = this;
|
4177
|
+
return new MapObservable(this.source, function (x, i, o) { return selector(self.selector(x, i, o), i, o); }, thisArg)
|
4178
|
+
};
|
4179
|
+
|
4180
|
+
MapObservable.prototype.subscribeCore = function (observer) {
|
4181
|
+
return this.source.subscribe(new MapObserver(observer, this.selector, this));
|
4182
|
+
};
|
4183
|
+
|
4184
|
+
return MapObservable;
|
4185
|
+
|
4186
|
+
}(ObservableBase));
|
4187
|
+
|
4188
|
+
function MapObserver(observer, selector, source) {
|
4189
|
+
this.observer = observer;
|
4190
|
+
this.selector = selector;
|
4191
|
+
this.source = source;
|
4192
|
+
this.i = 0;
|
4193
|
+
this.isStopped = false;
|
4194
|
+
}
|
4195
|
+
|
4196
|
+
MapObserver.prototype.onNext = function(x) {
|
4197
|
+
if (this.isStopped) { return; }
|
4198
|
+
try {
|
4199
|
+
var result = this.selector(x, this.i++, this.source);
|
4200
|
+
} catch (e) {
|
4201
|
+
return this.observer.onError(e);
|
4202
|
+
}
|
4203
|
+
this.observer.onNext(result);
|
4204
|
+
};
|
4205
|
+
MapObserver.prototype.onError = function (e) {
|
4206
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onError(e); }
|
4207
|
+
};
|
4208
|
+
MapObserver.prototype.onCompleted = function () {
|
4209
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onCompleted(); }
|
4210
|
+
};
|
4211
|
+
MapObserver.prototype.dispose = function() { this.isStopped = true; };
|
4212
|
+
MapObserver.prototype.fail = function (e) {
|
4213
|
+
if (!this.isStopped) {
|
4214
|
+
this.isStopped = true;
|
4215
|
+
this.observer.onError(e);
|
4216
|
+
return true;
|
4217
|
+
}
|
4218
|
+
|
4219
|
+
return false;
|
4220
|
+
};
|
4221
|
+
|
3885
4222
|
/**
|
3886
|
-
|
3887
|
-
|
3888
|
-
|
3889
|
-
|
3890
|
-
|
3891
|
-
observableProto.
|
3892
|
-
var selectorFn =
|
3893
|
-
|
3894
|
-
|
3895
|
-
|
3896
|
-
return source.subscribe(function (value) {
|
3897
|
-
var result;
|
3898
|
-
try {
|
3899
|
-
result = selectorFn.call(thisArg, value, count++, source);
|
3900
|
-
} catch (e) {
|
3901
|
-
observer.onError(e);
|
3902
|
-
return;
|
3903
|
-
}
|
3904
|
-
observer.onNext(result);
|
3905
|
-
}, observer.onError.bind(observer), observer.onCompleted.bind(observer));
|
3906
|
-
}, source);
|
4223
|
+
* Projects each element of an observable sequence into a new form by incorporating the element's index.
|
4224
|
+
* @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
|
4225
|
+
* @param {Any} [thisArg] Object to use as this when executing callback.
|
4226
|
+
* @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source.
|
4227
|
+
*/
|
4228
|
+
observableProto.map = observableProto.select = function (selector, thisArg) {
|
4229
|
+
var selectorFn = typeof selector === 'function' ? selector : function () { return selector; };
|
4230
|
+
return this instanceof MapObservable ?
|
4231
|
+
this.internalMap(selectorFn, thisArg) :
|
4232
|
+
new MapObservable(this, selectorFn, thisArg);
|
3907
4233
|
};
|
3908
4234
|
|
3909
4235
|
/**
|
3910
|
-
* Retrieves the value of a specified property from all elements in
|
3911
|
-
*
|
4236
|
+
* Retrieves the value of a specified nested property from all elements in
|
4237
|
+
* the Observable sequence.
|
4238
|
+
* @param {Arguments} arguments The nested properties to pluck.
|
3912
4239
|
* @returns {Observable} Returns a new Observable sequence of property values.
|
3913
4240
|
*/
|
3914
|
-
observableProto.pluck = function (
|
3915
|
-
|
4241
|
+
observableProto.pluck = function () {
|
4242
|
+
var args = arguments, len = arguments.length;
|
4243
|
+
if (len === 0) { throw new Error('List of properties cannot be empty.'); }
|
4244
|
+
return this.map(function (x) {
|
4245
|
+
var currentProp = x;
|
4246
|
+
for (var i = 0; i < len; i++) {
|
4247
|
+
var p = currentProp[args[i]];
|
4248
|
+
if (typeof p !== 'undefined') {
|
4249
|
+
currentProp = p;
|
4250
|
+
} else {
|
4251
|
+
return undefined;
|
4252
|
+
}
|
4253
|
+
}
|
4254
|
+
return currentProp;
|
4255
|
+
});
|
3916
4256
|
};
|
3917
4257
|
|
3918
4258
|
/**
|
@@ -3968,8 +4308,9 @@
|
|
3968
4308
|
};
|
3969
4309
|
|
3970
4310
|
function flatMap(source, selector, thisArg) {
|
4311
|
+
var selectorFunc = bindCallback(selector, thisArg, 3);
|
3971
4312
|
return source.map(function (x, i) {
|
3972
|
-
var result =
|
4313
|
+
var result = selectorFunc(x, i, source);
|
3973
4314
|
isPromise(result) && (result = observableFromPromise(result));
|
3974
4315
|
(isArrayLike(result) || isIterable(result)) && (result = observableFrom(result));
|
3975
4316
|
return result;
|
@@ -4032,15 +4373,15 @@
|
|
4032
4373
|
observableProto.skip = function (count) {
|
4033
4374
|
if (count < 0) { throw new Error(argumentOutOfRange); }
|
4034
4375
|
var source = this;
|
4035
|
-
return new AnonymousObservable(function (
|
4376
|
+
return new AnonymousObservable(function (o) {
|
4036
4377
|
var remaining = count;
|
4037
4378
|
return source.subscribe(function (x) {
|
4038
4379
|
if (remaining <= 0) {
|
4039
|
-
|
4380
|
+
o.onNext(x);
|
4040
4381
|
} else {
|
4041
4382
|
remaining--;
|
4042
4383
|
}
|
4043
|
-
},
|
4384
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
4044
4385
|
}, source);
|
4045
4386
|
};
|
4046
4387
|
|
@@ -4055,20 +4396,21 @@
|
|
4055
4396
|
* @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate.
|
4056
4397
|
*/
|
4057
4398
|
observableProto.skipWhile = function (predicate, thisArg) {
|
4058
|
-
var source = this
|
4059
|
-
|
4399
|
+
var source = this,
|
4400
|
+
callback = bindCallback(predicate, thisArg, 3);
|
4401
|
+
return new AnonymousObservable(function (o) {
|
4060
4402
|
var i = 0, running = false;
|
4061
4403
|
return source.subscribe(function (x) {
|
4062
4404
|
if (!running) {
|
4063
4405
|
try {
|
4064
|
-
running = !
|
4406
|
+
running = !callback(x, i++, source);
|
4065
4407
|
} catch (e) {
|
4066
|
-
|
4408
|
+
o.onError(e);
|
4067
4409
|
return;
|
4068
4410
|
}
|
4069
4411
|
}
|
4070
|
-
running &&
|
4071
|
-
},
|
4412
|
+
running && o.onNext(x);
|
4413
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
4072
4414
|
}, source);
|
4073
4415
|
};
|
4074
4416
|
|
@@ -4085,14 +4427,14 @@
|
|
4085
4427
|
if (count < 0) { throw new RangeError(argumentOutOfRange); }
|
4086
4428
|
if (count === 0) { return observableEmpty(scheduler); }
|
4087
4429
|
var source = this;
|
4088
|
-
return new AnonymousObservable(function (
|
4430
|
+
return new AnonymousObservable(function (o) {
|
4089
4431
|
var remaining = count;
|
4090
4432
|
return source.subscribe(function (x) {
|
4091
4433
|
if (remaining-- > 0) {
|
4092
|
-
|
4093
|
-
remaining === 0 &&
|
4434
|
+
o.onNext(x);
|
4435
|
+
remaining === 0 && o.onCompleted();
|
4094
4436
|
}
|
4095
|
-
},
|
4437
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
4096
4438
|
}, source);
|
4097
4439
|
};
|
4098
4440
|
|
@@ -4104,52 +4446,92 @@
|
|
4104
4446
|
* @returns {Observable} An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes.
|
4105
4447
|
*/
|
4106
4448
|
observableProto.takeWhile = function (predicate, thisArg) {
|
4107
|
-
var source = this
|
4108
|
-
|
4449
|
+
var source = this,
|
4450
|
+
callback = bindCallback(predicate, thisArg, 3);
|
4451
|
+
return new AnonymousObservable(function (o) {
|
4109
4452
|
var i = 0, running = true;
|
4110
4453
|
return source.subscribe(function (x) {
|
4111
4454
|
if (running) {
|
4112
4455
|
try {
|
4113
|
-
running =
|
4456
|
+
running = callback(x, i++, source);
|
4114
4457
|
} catch (e) {
|
4115
|
-
|
4458
|
+
o.onError(e);
|
4116
4459
|
return;
|
4117
4460
|
}
|
4118
4461
|
if (running) {
|
4119
|
-
|
4462
|
+
o.onNext(x);
|
4120
4463
|
} else {
|
4121
|
-
|
4464
|
+
o.onCompleted();
|
4122
4465
|
}
|
4123
4466
|
}
|
4124
|
-
},
|
4467
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
4125
4468
|
}, source);
|
4126
4469
|
};
|
4127
4470
|
|
4471
|
+
var FilterObservable = (function (__super__) {
|
4472
|
+
inherits(FilterObservable, __super__);
|
4473
|
+
|
4474
|
+
function FilterObservable(source, predicate, thisArg) {
|
4475
|
+
this.source = source;
|
4476
|
+
this.predicate = bindCallback(predicate, thisArg, 3);
|
4477
|
+
__super__.call(this);
|
4478
|
+
}
|
4479
|
+
|
4480
|
+
FilterObservable.prototype.subscribeCore = function (observer) {
|
4481
|
+
return this.source.subscribe(new FilterObserver(observer, this.predicate, this));
|
4482
|
+
};
|
4483
|
+
|
4484
|
+
FilterObservable.prototype.internalFilter = function(predicate, thisArg) {
|
4485
|
+
var self = this;
|
4486
|
+
return new FilterObservable(this.source, function(x, i, o) { return self.predicate(x, i, o) && predicate(x, i, o); }, thisArg);
|
4487
|
+
};
|
4488
|
+
|
4489
|
+
return FilterObservable;
|
4490
|
+
|
4491
|
+
}(ObservableBase));
|
4492
|
+
|
4493
|
+
function FilterObserver(observer, predicate, source) {
|
4494
|
+
this.observer = observer;
|
4495
|
+
this.predicate = predicate;
|
4496
|
+
this.source = source;
|
4497
|
+
this.i = 0;
|
4498
|
+
this.isStopped = false;
|
4499
|
+
}
|
4500
|
+
|
4501
|
+
FilterObserver.prototype.onNext = function(x) {
|
4502
|
+
if (this.isStopped) { return; }
|
4503
|
+
try {
|
4504
|
+
var shouldYield = this.predicate(x, this.i++, this.source);
|
4505
|
+
} catch (e) {
|
4506
|
+
return this.observer.onError(e);
|
4507
|
+
}
|
4508
|
+
shouldYield && this.observer.onNext(x);
|
4509
|
+
};
|
4510
|
+
FilterObserver.prototype.onError = function (e) {
|
4511
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onError(e); }
|
4512
|
+
};
|
4513
|
+
FilterObserver.prototype.onCompleted = function () {
|
4514
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onCompleted(); }
|
4515
|
+
};
|
4516
|
+
FilterObserver.prototype.dispose = function() { this.isStopped = true; };
|
4517
|
+
FilterObserver.prototype.fail = function (e) {
|
4518
|
+
if (!this.isStopped) {
|
4519
|
+
this.isStopped = true;
|
4520
|
+
this.observer.onError(e);
|
4521
|
+
return true;
|
4522
|
+
}
|
4523
|
+
return false;
|
4524
|
+
};
|
4525
|
+
|
4128
4526
|
/**
|
4129
|
-
|
4130
|
-
|
4131
|
-
|
4132
|
-
|
4133
|
-
|
4134
|
-
|
4135
|
-
|
4136
|
-
|
4137
|
-
*/
|
4138
|
-
observableProto.where = observableProto.filter = function (predicate, thisArg) {
|
4139
|
-
var source = this;
|
4140
|
-
return new AnonymousObservable(function (observer) {
|
4141
|
-
var count = 0;
|
4142
|
-
return source.subscribe(function (value) {
|
4143
|
-
var shouldRun;
|
4144
|
-
try {
|
4145
|
-
shouldRun = predicate.call(thisArg, value, count++, source);
|
4146
|
-
} catch (e) {
|
4147
|
-
observer.onError(e);
|
4148
|
-
return;
|
4149
|
-
}
|
4150
|
-
shouldRun && observer.onNext(value);
|
4151
|
-
}, observer.onError.bind(observer), observer.onCompleted.bind(observer));
|
4152
|
-
}, source);
|
4527
|
+
* Filters the elements of an observable sequence based on a predicate by incorporating the element's index.
|
4528
|
+
* @param {Function} predicate A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
|
4529
|
+
* @param {Any} [thisArg] Object to use as this when executing callback.
|
4530
|
+
* @returns {Observable} An observable sequence that contains elements from the input sequence that satisfy the condition.
|
4531
|
+
*/
|
4532
|
+
observableProto.filter = observableProto.where = function (predicate, thisArg) {
|
4533
|
+
return this instanceof FilterObservable ? this.internalFilter(predicate, thisArg) :
|
4534
|
+
new FilterObservable(this, predicate, thisArg);
|
4153
4535
|
};
|
4154
4536
|
|
4155
4537
|
/**
|
@@ -4202,31 +4584,29 @@
|
|
4202
4584
|
disposableEmpty;
|
4203
4585
|
}
|
4204
4586
|
|
4587
|
+
function setDisposable(s, state) {
|
4588
|
+
var ado = state[0], subscribe = state[1];
|
4589
|
+
try {
|
4590
|
+
ado.setDisposable(fixSubscriber(subscribe(ado)));
|
4591
|
+
} catch (e) {
|
4592
|
+
if (!ado.fail(e)) { throw e; }
|
4593
|
+
}
|
4594
|
+
}
|
4595
|
+
|
4205
4596
|
function AnonymousObservable(subscribe, parent) {
|
4206
4597
|
this.source = parent;
|
4207
|
-
if (!(this instanceof AnonymousObservable)) {
|
4208
|
-
return new AnonymousObservable(subscribe);
|
4209
|
-
}
|
4210
4598
|
|
4211
4599
|
function s(observer) {
|
4212
|
-
var setDisposable = function () {
|
4213
|
-
try {
|
4214
|
-
autoDetachObserver.setDisposable(fixSubscriber(subscribe(autoDetachObserver)));
|
4215
|
-
} catch (e) {
|
4216
|
-
if (!autoDetachObserver.fail(e)) {
|
4217
|
-
throw e;
|
4218
|
-
}
|
4219
|
-
}
|
4220
|
-
};
|
4221
4600
|
|
4222
|
-
var
|
4601
|
+
var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
|
4602
|
+
|
4223
4603
|
if (currentThreadScheduler.scheduleRequired()) {
|
4224
|
-
currentThreadScheduler.
|
4604
|
+
currentThreadScheduler.scheduleWithState(state, setDisposable);
|
4225
4605
|
} else {
|
4226
|
-
setDisposable();
|
4606
|
+
setDisposable(null, state);
|
4227
4607
|
}
|
4228
4608
|
|
4229
|
-
return
|
4609
|
+
return ado;
|
4230
4610
|
}
|
4231
4611
|
|
4232
4612
|
__super__.call(this, s);
|
@@ -4253,7 +4633,7 @@
|
|
4253
4633
|
this.observer.onNext(value);
|
4254
4634
|
noError = true;
|
4255
4635
|
} catch (e) {
|
4256
|
-
|
4636
|
+
return thrower(e);
|
4257
4637
|
} finally {
|
4258
4638
|
!noError && this.dispose();
|
4259
4639
|
}
|
@@ -4263,7 +4643,7 @@
|
|
4263
4643
|
try {
|
4264
4644
|
this.observer.onError(err);
|
4265
4645
|
} catch (e) {
|
4266
|
-
|
4646
|
+
return thrower(e);
|
4267
4647
|
} finally {
|
4268
4648
|
this.dispose();
|
4269
4649
|
}
|
@@ -4273,7 +4653,7 @@
|
|
4273
4653
|
try {
|
4274
4654
|
this.observer.onCompleted();
|
4275
4655
|
} catch (e) {
|
4276
|
-
|
4656
|
+
return thrower(e);
|
4277
4657
|
} finally {
|
4278
4658
|
this.dispose();
|
4279
4659
|
}
|
@@ -4290,130 +4670,121 @@
|
|
4290
4670
|
return AutoDetachObserver;
|
4291
4671
|
}(AbstractObserver));
|
4292
4672
|
|
4293
|
-
|
4294
|
-
|
4295
|
-
|
4296
|
-
|
4297
|
-
};
|
4673
|
+
var InnerSubscription = function (subject, observer) {
|
4674
|
+
this.subject = subject;
|
4675
|
+
this.observer = observer;
|
4676
|
+
};
|
4298
4677
|
|
4299
|
-
|
4300
|
-
|
4301
|
-
|
4302
|
-
|
4303
|
-
|
4304
|
-
|
4305
|
-
|
4306
|
-
|
4307
|
-
|
4308
|
-
|
4309
|
-
|
4678
|
+
InnerSubscription.prototype.dispose = function () {
|
4679
|
+
if (!this.subject.isDisposed && this.observer !== null) {
|
4680
|
+
var idx = this.subject.observers.indexOf(this.observer);
|
4681
|
+
this.subject.observers.splice(idx, 1);
|
4682
|
+
this.observer = null;
|
4683
|
+
}
|
4684
|
+
};
|
4685
|
+
|
4686
|
+
/**
|
4687
|
+
* Represents an object that is both an observable sequence as well as an observer.
|
4688
|
+
* Each notification is broadcasted to all subscribed observers.
|
4689
|
+
*/
|
4690
|
+
var Subject = Rx.Subject = (function (__super__) {
|
4691
|
+
function subscribe(observer) {
|
4692
|
+
checkDisposed(this);
|
4693
|
+
if (!this.isStopped) {
|
4694
|
+
this.observers.push(observer);
|
4695
|
+
return new InnerSubscription(this, observer);
|
4696
|
+
}
|
4697
|
+
if (this.hasError) {
|
4698
|
+
observer.onError(this.error);
|
4699
|
+
return disposableEmpty;
|
4700
|
+
}
|
4701
|
+
observer.onCompleted();
|
4702
|
+
return disposableEmpty;
|
4703
|
+
}
|
4704
|
+
|
4705
|
+
inherits(Subject, __super__);
|
4310
4706
|
|
4311
4707
|
/**
|
4312
|
-
*
|
4313
|
-
* Each notification is broadcasted to all subscribed observers.
|
4708
|
+
* Creates a subject.
|
4314
4709
|
*/
|
4315
|
-
|
4316
|
-
|
4317
|
-
|
4318
|
-
|
4319
|
-
|
4320
|
-
|
4321
|
-
|
4322
|
-
if (this.exception) {
|
4323
|
-
observer.onError(this.exception);
|
4324
|
-
return disposableEmpty;
|
4325
|
-
}
|
4326
|
-
observer.onCompleted();
|
4327
|
-
return disposableEmpty;
|
4328
|
-
}
|
4710
|
+
function Subject() {
|
4711
|
+
__super__.call(this, subscribe);
|
4712
|
+
this.isDisposed = false,
|
4713
|
+
this.isStopped = false,
|
4714
|
+
this.observers = [];
|
4715
|
+
this.hasError = false;
|
4716
|
+
}
|
4329
4717
|
|
4330
|
-
|
4331
|
-
|
4332
|
-
|
4333
|
-
|
4334
|
-
|
4335
|
-
|
4336
|
-
|
4337
|
-
|
4338
|
-
|
4339
|
-
|
4340
|
-
|
4718
|
+
addProperties(Subject.prototype, Observer.prototype, {
|
4719
|
+
/**
|
4720
|
+
* Indicates whether the subject has observers subscribed to it.
|
4721
|
+
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
4722
|
+
*/
|
4723
|
+
hasObservers: function () { return this.observers.length > 0; },
|
4724
|
+
/**
|
4725
|
+
* Notifies all subscribed observers about the end of the sequence.
|
4726
|
+
*/
|
4727
|
+
onCompleted: function () {
|
4728
|
+
checkDisposed(this);
|
4729
|
+
if (!this.isStopped) {
|
4730
|
+
this.isStopped = true;
|
4731
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
4732
|
+
os[i].onCompleted();
|
4733
|
+
}
|
4734
|
+
|
4735
|
+
this.observers.length = 0;
|
4341
4736
|
}
|
4737
|
+
},
|
4738
|
+
/**
|
4739
|
+
* Notifies all subscribed observers about the exception.
|
4740
|
+
* @param {Mixed} error The exception to send to all observers.
|
4741
|
+
*/
|
4742
|
+
onError: function (error) {
|
4743
|
+
checkDisposed(this);
|
4744
|
+
if (!this.isStopped) {
|
4745
|
+
this.isStopped = true;
|
4746
|
+
this.error = error;
|
4747
|
+
this.hasError = true;
|
4748
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
4749
|
+
os[i].onError(error);
|
4750
|
+
}
|
4342
4751
|
|
4343
|
-
|
4344
|
-
|
4345
|
-
|
4346
|
-
|
4347
|
-
|
4348
|
-
|
4349
|
-
|
4350
|
-
|
4351
|
-
|
4352
|
-
|
4353
|
-
|
4354
|
-
|
4355
|
-
|
4356
|
-
|
4357
|
-
|
4358
|
-
|
4359
|
-
|
4360
|
-
|
4361
|
-
|
4362
|
-
|
4363
|
-
|
4364
|
-
|
4365
|
-
|
4366
|
-
/**
|
4367
|
-
* Notifies all subscribed observers about the exception.
|
4368
|
-
* @param {Mixed} error The exception to send to all observers.
|
4369
|
-
*/
|
4370
|
-
onError: function (exception) {
|
4371
|
-
checkDisposed.call(this);
|
4372
|
-
if (!this.isStopped) {
|
4373
|
-
var os = this.observers.slice(0);
|
4374
|
-
this.isStopped = true;
|
4375
|
-
this.exception = exception;
|
4376
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
4377
|
-
os[i].onError(exception);
|
4378
|
-
}
|
4379
|
-
|
4380
|
-
this.observers = [];
|
4381
|
-
}
|
4382
|
-
},
|
4383
|
-
/**
|
4384
|
-
* Notifies all subscribed observers about the arrival of the specified element in the sequence.
|
4385
|
-
* @param {Mixed} value The value to send to all observers.
|
4386
|
-
*/
|
4387
|
-
onNext: function (value) {
|
4388
|
-
checkDisposed.call(this);
|
4389
|
-
if (!this.isStopped) {
|
4390
|
-
var os = this.observers.slice(0);
|
4391
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
4392
|
-
os[i].onNext(value);
|
4393
|
-
}
|
4394
|
-
}
|
4395
|
-
},
|
4396
|
-
/**
|
4397
|
-
* Unsubscribe all observers and release resources.
|
4398
|
-
*/
|
4399
|
-
dispose: function () {
|
4400
|
-
this.isDisposed = true;
|
4401
|
-
this.observers = null;
|
4402
|
-
}
|
4403
|
-
});
|
4752
|
+
this.observers.length = 0;
|
4753
|
+
}
|
4754
|
+
},
|
4755
|
+
/**
|
4756
|
+
* Notifies all subscribed observers about the arrival of the specified element in the sequence.
|
4757
|
+
* @param {Mixed} value The value to send to all observers.
|
4758
|
+
*/
|
4759
|
+
onNext: function (value) {
|
4760
|
+
checkDisposed(this);
|
4761
|
+
if (!this.isStopped) {
|
4762
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
4763
|
+
os[i].onNext(value);
|
4764
|
+
}
|
4765
|
+
}
|
4766
|
+
},
|
4767
|
+
/**
|
4768
|
+
* Unsubscribe all observers and release resources.
|
4769
|
+
*/
|
4770
|
+
dispose: function () {
|
4771
|
+
this.isDisposed = true;
|
4772
|
+
this.observers = null;
|
4773
|
+
}
|
4774
|
+
});
|
4404
4775
|
|
4405
|
-
|
4406
|
-
|
4407
|
-
|
4408
|
-
|
4409
|
-
|
4410
|
-
|
4411
|
-
|
4412
|
-
|
4413
|
-
|
4776
|
+
/**
|
4777
|
+
* Creates a subject from the specified observer and observable.
|
4778
|
+
* @param {Observer} observer The observer used to send messages to the subject.
|
4779
|
+
* @param {Observable} observable The observable used to subscribe to messages sent from the subject.
|
4780
|
+
* @returns {Subject} Subject implemented using the given observer and observable.
|
4781
|
+
*/
|
4782
|
+
Subject.create = function (observer, observable) {
|
4783
|
+
return new AnonymousSubject(observer, observable);
|
4784
|
+
};
|
4414
4785
|
|
4415
|
-
|
4416
|
-
|
4786
|
+
return Subject;
|
4787
|
+
}(Observable));
|
4417
4788
|
|
4418
4789
|
/**
|
4419
4790
|
* Represents the result of an asynchronous operation.
|
@@ -4422,21 +4793,17 @@
|
|
4422
4793
|
var AsyncSubject = Rx.AsyncSubject = (function (__super__) {
|
4423
4794
|
|
4424
4795
|
function subscribe(observer) {
|
4425
|
-
checkDisposed
|
4796
|
+
checkDisposed(this);
|
4426
4797
|
|
4427
4798
|
if (!this.isStopped) {
|
4428
4799
|
this.observers.push(observer);
|
4429
4800
|
return new InnerSubscription(this, observer);
|
4430
4801
|
}
|
4431
4802
|
|
4432
|
-
|
4433
|
-
|
4434
|
-
|
4435
|
-
|
4436
|
-
if (ex) {
|
4437
|
-
observer.onError(ex);
|
4438
|
-
} else if (hv) {
|
4439
|
-
observer.onNext(v);
|
4803
|
+
if (this.hasError) {
|
4804
|
+
observer.onError(this.error);
|
4805
|
+
} else if (this.hasValue) {
|
4806
|
+
observer.onNext(this.value);
|
4440
4807
|
observer.onCompleted();
|
4441
4808
|
} else {
|
4442
4809
|
observer.onCompleted();
|
@@ -4456,10 +4823,9 @@
|
|
4456
4823
|
|
4457
4824
|
this.isDisposed = false;
|
4458
4825
|
this.isStopped = false;
|
4459
|
-
this.value = null;
|
4460
4826
|
this.hasValue = false;
|
4461
4827
|
this.observers = [];
|
4462
|
-
this.
|
4828
|
+
this.hasError = false;
|
4463
4829
|
}
|
4464
4830
|
|
4465
4831
|
addProperties(AsyncSubject.prototype, Observer, {
|
@@ -4468,34 +4834,32 @@
|
|
4468
4834
|
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
4469
4835
|
*/
|
4470
4836
|
hasObservers: function () {
|
4471
|
-
checkDisposed
|
4837
|
+
checkDisposed(this);
|
4472
4838
|
return this.observers.length > 0;
|
4473
4839
|
},
|
4474
4840
|
/**
|
4475
4841
|
* Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any).
|
4476
4842
|
*/
|
4477
4843
|
onCompleted: function () {
|
4478
|
-
var
|
4479
|
-
checkDisposed
|
4844
|
+
var i, len;
|
4845
|
+
checkDisposed(this);
|
4480
4846
|
if (!this.isStopped) {
|
4481
4847
|
this.isStopped = true;
|
4482
|
-
var os = this.observers
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4488
|
-
o = os[i];
|
4489
|
-
o.onNext(v);
|
4848
|
+
var os = cloneArray(this.observers), len = os.length;
|
4849
|
+
|
4850
|
+
if (this.hasValue) {
|
4851
|
+
for (i = 0; i < len; i++) {
|
4852
|
+
var o = os[i];
|
4853
|
+
o.onNext(this.value);
|
4490
4854
|
o.onCompleted();
|
4491
4855
|
}
|
4492
4856
|
} else {
|
4493
|
-
for (i = 0
|
4857
|
+
for (i = 0; i < len; i++) {
|
4494
4858
|
os[i].onCompleted();
|
4495
4859
|
}
|
4496
4860
|
}
|
4497
4861
|
|
4498
|
-
this.observers =
|
4862
|
+
this.observers.length = 0;
|
4499
4863
|
}
|
4500
4864
|
},
|
4501
4865
|
/**
|
@@ -4503,17 +4867,17 @@
|
|
4503
4867
|
* @param {Mixed} error The Error to send to all observers.
|
4504
4868
|
*/
|
4505
4869
|
onError: function (error) {
|
4506
|
-
checkDisposed
|
4870
|
+
checkDisposed(this);
|
4507
4871
|
if (!this.isStopped) {
|
4508
|
-
var os = this.observers.slice(0);
|
4509
4872
|
this.isStopped = true;
|
4510
|
-
this.
|
4873
|
+
this.hasError = true;
|
4874
|
+
this.error = error;
|
4511
4875
|
|
4512
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
4876
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
4513
4877
|
os[i].onError(error);
|
4514
4878
|
}
|
4515
4879
|
|
4516
|
-
this.observers =
|
4880
|
+
this.observers.length = 0;
|
4517
4881
|
}
|
4518
4882
|
},
|
4519
4883
|
/**
|
@@ -4521,7 +4885,7 @@
|
|
4521
4885
|
* @param {Mixed} value The value to store in the subject.
|
4522
4886
|
*/
|
4523
4887
|
onNext: function (value) {
|
4524
|
-
checkDisposed
|
4888
|
+
checkDisposed(this);
|
4525
4889
|
if (this.isStopped) { return; }
|
4526
4890
|
this.value = value;
|
4527
4891
|
this.hasValue = true;
|
@@ -4543,18 +4907,22 @@
|
|
4543
4907
|
var AnonymousSubject = Rx.AnonymousSubject = (function (__super__) {
|
4544
4908
|
inherits(AnonymousSubject, __super__);
|
4545
4909
|
|
4910
|
+
function subscribe(observer) {
|
4911
|
+
return this.observable.subscribe(observer);
|
4912
|
+
}
|
4913
|
+
|
4546
4914
|
function AnonymousSubject(observer, observable) {
|
4547
4915
|
this.observer = observer;
|
4548
4916
|
this.observable = observable;
|
4549
|
-
__super__.call(this,
|
4917
|
+
__super__.call(this, subscribe);
|
4550
4918
|
}
|
4551
4919
|
|
4552
|
-
addProperties(AnonymousSubject.prototype, Observer, {
|
4920
|
+
addProperties(AnonymousSubject.prototype, Observer.prototype, {
|
4553
4921
|
onCompleted: function () {
|
4554
4922
|
this.observer.onCompleted();
|
4555
4923
|
},
|
4556
|
-
onError: function (
|
4557
|
-
this.observer.onError(
|
4924
|
+
onError: function (error) {
|
4925
|
+
this.observer.onError(error);
|
4558
4926
|
},
|
4559
4927
|
onNext: function (value) {
|
4560
4928
|
this.observer.onNext(value);
|
@@ -4564,23 +4932,23 @@
|
|
4564
4932
|
return AnonymousSubject;
|
4565
4933
|
}(Observable));
|
4566
4934
|
|
4567
|
-
|
4568
|
-
|
4935
|
+
if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
|
4936
|
+
root.Rx = Rx;
|
4569
4937
|
|
4570
|
-
|
4571
|
-
|
4572
|
-
|
4573
|
-
|
4574
|
-
|
4575
|
-
|
4576
|
-
|
4577
|
-
} else {
|
4578
|
-
freeExports.Rx = Rx;
|
4579
|
-
}
|
4938
|
+
define(function() {
|
4939
|
+
return Rx;
|
4940
|
+
});
|
4941
|
+
} else if (freeExports && freeModule) {
|
4942
|
+
// in Node.js or RingoJS
|
4943
|
+
if (moduleExports) {
|
4944
|
+
(freeModule.exports = Rx).Rx = Rx;
|
4580
4945
|
} else {
|
4581
|
-
|
4582
|
-
root.Rx = Rx;
|
4946
|
+
freeExports.Rx = Rx;
|
4583
4947
|
}
|
4948
|
+
} else {
|
4949
|
+
// in a browser or Rhino
|
4950
|
+
root.Rx = Rx;
|
4951
|
+
}
|
4584
4952
|
|
4585
4953
|
// All code before this point will be filtered from stack traces.
|
4586
4954
|
var rEndingLine = captureLine();
|